After updating SQL Chipper from 3.1.0 to 4.1.3 and releasing it to the market for 64 bit support, many Android 5.1.1 users have reported crashes.
As a result that we analyzed with Android 5.1.1,
It seems to be crashing with SQLiteDatabase.loadLibs.
W / linker: ourapp / lib / arm64 / libsqlcipher.so: unused DT entry: type 0x6ffffffe arg 0x7768
W / linker: ourapp / lib / arm64 / libsqlcipher.so: unused DT entry: type 0x6fffffff arg 0x3
As a trial, I incorporated an AAR using elf cleaner posted at the following URL, but it did not improve.
Finally, the problem was solved when a new application that incorporated SQL Chiper ver.4.0.1 was installed.
However, applications incorporating SQL Chipper ver.4.1.3 have already been released to the market and can not be easily downgraded.
Is there a problem with compatibility between SQL Chiper ver.4.1.3 and Android 5.1.1?
Please tell me the solution.
We just restored a factory image of Android OS 5.1.1 onto a Nexus 9, then ran the SQLCipher for Android test suite using 4.1.3 and all tests pass. Out of curiosity, what device(s) are you seeing the error on? Are they the Oppo devices mentioned in the GitHub Issue you linked to?
We also restored ver.5.1.1 to Nexus 7 and confirmed its operation, but it worked without problems.
Apparently, it does not occur with all Android 5.1.1, but seems to be limited to some devices.
However, although the devices for which a crash was reported here are all models manufactured by a Japanese manufacturer, these are reports from multiple manufacturers, so it is unlikely to be a defect by the manufacturer.
The OPPO we referred to is the same error code, so I think it’s the same cause.
If possible, is it possible to check a little more on other Android 5.1.1 smartphones?
In addition, because SQL Chiper 4.0.1 works without any problems, is there no cause for the difference between 4.0.1 and 4.1.x?
Can you provide a list of devices models, with their Android OS version that have reported this issue? Also, are you a Commercial Edition license holder of SQLCipher for Android?
@developernotes I have the similar issue, same log message and same behavior - an app can not be opened. An App is closed without any dialog. I tried sqlcipher 4.1.3 and 4.2.0.
With sqlcipher 4.0.1 there is no issue, but I have an issue with db migration.
My device is very specific - Bluebird ef500 with Android 5.1.1.
@vit - do you actually have a Bluebird ef500 with Android 5.1.1 in your possession? If so, can you please run the SQLCipher for Android Test Suite on the device and tell us if you are able to reproduce any crashes, and if so, in what tests?
Unfortunately, we do not have that specific device to test on. We do have a suggestion, however it will require you to compile a command line utility using the Android NDK and post process the native libraries found within the SQLCipher for Android AAR artifact available here. The AAR package was built using the Android NDK version r15c available here.
Download the AAR file linked above, rename the file extension to .zip and unzip it
Run the android-elf-cleaner binary on all libsqlcipher.so files located within the following folders of the unzipped archive:
a. jni/armeabi/libsqlcipher.so
b. jni/armeabi-v7a/libsqlcipher.so
c. jni/x86/libsqlcipher.so
d. jni/x86_64/libsqlcipher.so
e. jni/arm64-v8a/libsqlcipher.so
Zip the android-database-sqlcipher-4.2.0 folder and rename the extension from .zip to .aar.
Adjust your project to reference this locally modified AAR package instead of the Community Edition version
Followed the steps. The app crashes with error message below:
08-23 14:21:45.315 12997 12997 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot find verneed/verdef for version index=2 referenced by symbol “strcmp” at “jS9-qSkjTYXcq0PRa_FL5Q==/lib/arm64/libsqlcipher.so”
Followed the steps provided by @developernotes the app also crashes with error message:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot find verneed/verdef for version index=2 referenced by symbol “strcmp” at “lib/arm/libsqlcipher.so”
However on my specific device - Bluebird ef500 the app also cannot be opened. It`s closed without any exception.
Its with one of our support in a different location. If you have instrumented libraries, we can help get logs/test. @snouv from our team, had some issues testing with the modified aar you suggested.