you-apps / ConnectYou

Privacy focused contacts and SMS messenger app built with MD3
https://you-apps.net
GNU General Public License v3.0
517 stars 21 forks source link

Corrupted manual encrypted backup #230

Closed Vinfall closed 1 year ago

Vinfall commented 1 year ago

Steps to reproduce

  1. Go to settings
  2. Enable encrypt backups as zip option
  3. Go back to local tab, select export vCard
  4. Choose and select a folder when prompted (its path is sdcard:/Aaa/backup)
  5. A toast saying Exported appears
  6. Go to the target folder and try to unarchive the zip

Expected behavior

The backup can be unarchived successfully.

Actual behavior

Output:

$ unar contacts.zip
contacts.zip: Zip
Archive parsing failed! (Unknown error.)
No files extracted.
# I thought this password is randomly generated by Connect You
# \ is added to escape the dollar sign, and removing it does not change the error
$ unar -p "TuvXYRa\$XLak" contacts.zip
contacts.zip: Zip
Archive parsing failed! (Unknown error.)
No files extracted.

$ unzip -tv contacts.zip
Archive:  contacts.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
note:  contacts.zip may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of contacts.zip or
        contacts.zip.zip, and cannot find contacts.zip.ZIP, period.

Connect You version

6.0 (23)

Android version

Android 12 (originOS, iQOO)

Other details

When encrypt backups as zip option is disabled, contacts can be exported without error. And the vcf file can be imported back too. This alone is not a problem if automatic backup is working as intended. It just unfortunately does not work for me either😞.

Logcat caught via adb logcat | grep "$(adb shell ps | awk '/com.bnyro.contacts/{print $2}')":

08-24 09:52:50.739 20261 20261 E .bnyro.contact: Not starting debugger since process cannot load the jdwp agent.
08-24 09:52:50.878 20261 20303 E ion     : ioctl c0044901 failed with code -1: Invalid argument
08-24 09:52:50.895 20261 20284 E OpenGLRenderer: fbcNotifyFrameComplete error: undefined symbol: fbcNotifyFrameComplete
08-24 09:52:50.895 20261 20284 E OpenGLRenderer: fbcNotifyNoRender error: undefined symbol: fbcNotifyNoRender
08-24 09:52:51.507 20261 20380 E BLASTBufferQueue: [ViewRootImpl[MainActivity]#0](f:0,a:3) isEGL=1, mPendingRelease.size()=1, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:51.528 20261 20276 E BLASTBufferQueue: [ViewRootImpl[MainActivity]#0](f:0,a:3) isEGL=1, mPendingRelease.size()=2, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:51.706 20261 20276 E BLASTBufferQueue: [ViewRootImpl[MainActivity]#0](f:0,a:5) isEGL=1, mPendingRelease.size()=3, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:51.827 20261 20276 E BLASTBufferQueue: [ViewRootImpl[Pop-Up Window]#1](f:0,a:2) isEGL=1, mPendingRelease.size()=1, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:51.845 20261 20378 E BLASTBufferQueue: [ViewRootImpl[Pop-Up Window]#1](f:0,a:3) isEGL=1, mPendingRelease.size()=2, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:51.860 20261 20378 E BLASTBufferQueue: [ViewRootImpl[Pop-Up Window]#1](f:0,a:4) isEGL=1, mPendingRelease.size()=3, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:53.703 20261 20378 E BLASTBufferQueue: [ViewRootImpl[Pop-Up Window]#2](f:0,a:2) isEGL=1, mPendingRelease.size()=1, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:53.736 20261 20384 E BLASTBufferQueue: [ViewRootImpl[Pop-Up Window]#2](f:0,a:4) isEGL=1, mPendingRelease.size()=2, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2
08-24 09:52:53.752 20261 20384 E BLASTBufferQueue: [ViewRootImpl[Pop-Up Window]#2](f:0,a:5) isEGL=1, mPendingRelease.size()=3, 
mMaxAcquiredBuffers=5, currentMaxAcquiredBufferCount=2

Acknowledgements

Bnyro commented 1 year ago

Have you tried extracting the file using Material Files? It works very well for me, and I don't see how this is an issue of the app.

Vinfall commented 1 year ago

Yes, I'm using Material Files too. Opening/Extracting the file throws an error java.util.zip.ZipException: Archive is not a ZIP archive. I think it's caused by either OEM system or special characters. Would report back when I investigate further.

Bnyro commented 1 year ago

Could you try to create only one or two contacts (and delete all others), and export an encrypted backup to see if the issue is there too? That might tell us whether it's an issue with something special in your contacts or something else with the device.

Vinfall commented 1 year ago

Could you try to create only one or two contacts (and delete all others), and export an encrypted backup to see if the issue is there too?

I did so and the issue persists. I also tried to remove characters outside \u0000 - \uFFFF, keep them ASCII only, and it's still the same error. And removing all local contacts and creating a contact named test with the number 1234567890 cannot solve this for me. So I guess this has nothing to do with the contacts themselves and I really have no clue how this happened now. But I wrote a Termux script to do this for me so feel free to close this if you want.

BTW, I noticed that if encrypt backups as zip option is enabled, Connect You will make *.vcf greyed out and only highlight those zip files when importing contacts. I need to deselect the option to import raw vcards. This is unexpected IMO.