Closed n8fr8 closed 5 years ago
Ok, so maybe the 32-bit crashes I saw were not an anomoly. Have you tried running it on a 64-bit device or emulator? Which device is that crash dump from?
https://lists.mayfirst.org/pipermail/guardian-dev/2019-July/005511.html
try the 0.5 official release I just made
crash still happening on 0.5 release: https://gist.github.com/n8fr8/dbc0da2f992bd1ee42dc4b88f9085e8c
I am using the non-standalone build with SQLCipher 4.2 btw
Given that keanu is probably the most complex project to test with, I can try on a smaller sample project shortly too!
Can you point me to your branch in Keanu so I can see the details?
FYI, your crash seems to be a "null pointer exception" which is different than the crashes I was seeing during testing on 32-bit.
Also, this crash log that started this issue is a 32-bit build (ABI: 'arm'
) while the gist crash dump is 64-bit (ABI: 'arm64'
).
Yes, I had it set before to be an armeabi-v7a only build, since i need to do that for the old 32bit only builds. Some other third party libraries we use have 64-bit libs, and it causes an error to mix libraries with partial and full 64 bit support.
Like I said, Keanu is probably the most complicated environment to test this in, but if you want it, then it is here: https://gitlab.com/keanuapp/keanuapp-android
did you push your branch with NetCipher 0.5 somewhere ? What's a simpler app to try?
I didn't but I can.
Maybe this on: https://github.com/n8fr8/CameraCipher ?
(though that doesn't test the SQLCipher + IOCipher interaction)
So I built CameraCipher with this gradle config:
dependencies {
implementation 'com.android.support:support-v4:21.0.3'
implementation 'info.guardianproject.iocipher:IOCipher:0.5@aar'
implementation 'net.zetetic:android-database-sqlcipher:4.2.0@aar'
implementation 'info.guardianproject.cacheword:cachewordlib:0.1.1'
implementation files('libs/jcodec.jar')
}
And on the first run, I got an null pointer exception like you first reported. But then after that, I wasn't able to reproduce it and everything seems to work fine. I can take pictures, lock the app, restart it, unlock it, browse the gallery, etc. This is running in a 64-bit _x8664 emulator.
I noticed that while you updated the libsqlcipher.so files to sqlcipher 4.2, the external sqlcipher submodule is sitll pointing at a release from 3 years ago. Is that intentional?
As far as I remember, the sqlcipher submodule is only there to provide the headers since the binaries come from Maven Central. Since it worked, I guessed that the public API hasn't changed for IOCipher's needs, so I didn't bother to update it.