sqlcipher / android-database-sqlcipher

Android SQLite API based on SQLCipher
https://www.zetetic.net/sqlcipher/sqlcipher-for-android/
Other
2.76k stars 568 forks source link

Sqlcipher android M #180

Closed abalufaske closed 9 years ago

abalufaske commented 9 years ago

Hi, I was testing my app in a nexus 6 with the android version M (beta) and it's crashing because of sqlcipher. Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "EVP_CipherFinal" referenced by "/data/app/com.testtest-1/lib/arm/libsqlcipher_android.so"...

developernotes commented 9 years ago

Hi @abalufaske

What version of SQLCipher for Android are you using for your testing?

abalufaske commented 9 years ago

3.1.0

developernotes commented 9 years ago

Hi @abalufaske,

Did you build the binaries yourself, or were they provided, either as a community or commercial build?

abalufaske commented 9 years ago

Community build

karan-yb commented 9 years ago

Android M has removed OpenSSL libraries, therefore its not working. You need to include libcrypto.so and libssl.so (and load them) in your libs directory for it to work.

See this link for more info: http://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client

On Tue, Jun 9, 2015 at 7:05 AM, Alberto Alonso notifications@github.com wrote:

Community build

— Reply to this email directly or view it on GitHub https://github.com/sqlcipher/android-database-sqlcipher/issues/180#issuecomment-110365716 .

developernotes commented 9 years ago

Hi @karanpopali

I don't think that is the issue as we perform a static link of OpenSSL when building SQLCipher for Android, so we do not have a system provided dependency on OpenSSL.

karan-yb commented 9 years ago

I don't think so. Here's the 3.3 so info:

{code} $ arm-linux-androideabi-readelf -d ~/Downloads/android-database-sqlcipher-3.3.0/dist/SQLCipherForAndroid-SDK/libs/armeabi/libsqlcipher_android.so | grep libcrypto 0x00000001 (NEEDED) Shared library: [libcrypto.so] {code}

On Tue, Jun 9, 2015 at 9:48 AM, Nick Parker notifications@github.com wrote:

Hi @karanpopali https://github.com/karanpopali

I don't think that is the issue as we perform a static link of OpenSSL when building SQLCipher for Android, so we do not have a system provided dependency on OpenSSL.

— Reply to this email directly or view it on GitHub https://github.com/sqlcipher/android-database-sqlcipher/issues/180#issuecomment-110428843 .

brodycj commented 9 years ago

I am able to run the sqlcipher-android-tests on an Android M (Preview) ARM (armeabi-v7a) simulator on my Windows (8.1) machine, using the libraries from the 3.3.0 build. I imported and ran the sqlcipher-android-tests project using Android Studio on my Windows machine.

UPDATED: As an extra test, when I tried removing the arbeabi-v7a JNI libraries from the project and running sqlcipher-android-tests again it is still running OK.

developernotes commented 9 years ago

Hi @karanpopali

I downloaded the latest community binaries from here. When I unzip them, and read the results from arm-linux-androideabi-readelf, I do not see that:

./arm-linux-androideabi-readelf -d ~/Desktop/sqlcipher-for-android-v3.3.0/libs/armeabi/libsqlcipher_android.so

Dynamic section at offset 0x25a74c contains 30 entries:
  Tag        Type                         Name/Value
 0x00000003 (PLTGOT)                     0x25bddc
 0x00000002 (PLTRELSZ)                   1072 (bytes)
 0x00000017 (JMPREL)                     0x5ed60
 0x00000014 (PLTREL)                     REL
 0x00000011 (REL)                        0x492e0
 0x00000012 (RELSZ)                      88704 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffa (RELCOUNT)                   10847
 0x00000006 (SYMTAB)                     0x114
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000005 (STRTAB)                     0x18114
 0x0000000a (STRSZ)                      160182 (bytes)
 0x00000004 (HASH)                       0x3f2cc
 0x00000001 (NEEDED)                     Shared library: [libstlport_shared.so]
 0x00000001 (NEEDED)                     Shared library: [liblog.so]
 0x00000001 (NEEDED)                     Shared library: [libutils.so]
 0x00000001 (NEEDED)                     Shared library: [libcutils.so]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so]
 0x00000001 (NEEDED)                     Shared library: [libm.so]
 0x00000001 (NEEDED)                     Shared library: [libc.so]
 0x00000001 (NEEDED)                     Shared library: [libdl.so]
 0x0000000e (SONAME)                     Library soname: [libsqlcipher_android.so]
 0x0000001a (FINI_ARRAY)                 0x256448
 0x0000001c (FINI_ARRAYSZ)               8 (bytes)
 0x00000019 (INIT_ARRAY)                 0x25b748
 0x0000001b (INIT_ARRAYSZ)               4 (bytes)
 0x00000010 (SYMBOLIC)                   0x0
 0x0000001e (FLAGS)                      SYMBOLIC BIND_NOW
 0x6ffffffb (FLAGS_1)                    Flags: NOW
 0x00000000 (NULL)                       0x0
karan-yb commented 9 years ago

Ohhk, I downloaded the zip file from GitHub releases page.

On Tue, Jun 9, 2015 at 2:49 PM, Nick Parker notifications@github.com wrote:

Hi @karanpopali https://github.com/karanpopali

I downloaded the latest community binaries from here https://s3.amazonaws.com/sqlcipher/3.3.0/sqlcipher-for-android-community-v3.3.0.zip. When I unzip them, and read the results from arm-linux-androideabi-readelf, I do not see that:

./arm-linux-androideabi-readelf -d ~/Desktop/sqlcipher-for-android-v3.3.0/libs/armeabi/libsqlcipher_android.so

Dynamic section at offset 0x25a74c contains 30 entries: Tag Type Name/Value 0x00000003 (PLTGOT) 0x25bddc 0x00000002 (PLTRELSZ) 1072 (bytes) 0x00000017 (JMPREL) 0x5ed60 0x00000014 (PLTREL) REL 0x00000011 (REL) 0x492e0 0x00000012 (RELSZ) 88704 (bytes) 0x00000013 (RELENT) 8 (bytes) 0x6ffffffa (RELCOUNT) 10847 0x00000006 (SYMTAB) 0x114 0x0000000b (SYMENT) 16 (bytes) 0x00000005 (STRTAB) 0x18114 0x0000000a (STRSZ) 160182 (bytes) 0x00000004 (HASH) 0x3f2cc 0x00000001 (NEEDED) Shared library: [libstlport_shared.so] 0x00000001 (NEEDED) Shared library: [liblog.so] 0x00000001 (NEEDED) Shared library: [libutils.so] 0x00000001 (NEEDED) Shared library: [libcutils.so] 0x00000001 (NEEDED) Shared library: [libstdc++.so] 0x00000001 (NEEDED) Shared library: [libm.so] 0x00000001 (NEEDED) Shared library: [libc.so] 0x00000001 (NEEDED) Shared library: [libdl.so] 0x0000000e (SONAME) Library soname: [libsqlcipher_android.so] 0x0000001a (FINI_ARRAY) 0x256448 0x0000001c (FINI_ARRAYSZ) 8 (bytes) 0x00000019 (INIT_ARRAY) 0x25b748 0x0000001b (INIT_ARRAYSZ) 4 (bytes) 0x00000010 (SYMBOLIC) 0x0 0x0000001e (FLAGS) SYMBOLIC BIND_NOW 0x6ffffffb (FLAGS_1) Flags: NOW 0x00000000 (NULL) 0x0

— Reply to this email directly or view it on GitHub https://github.com/sqlcipher/android-database-sqlcipher/issues/180#issuecomment-110514420 .

abalufaske commented 9 years ago

I will try tomorrow with the amazon ones, I had the ones of github! thank you everyone for the quick answers!

danimontoya commented 9 years ago

It worked :)

developernotes commented 9 years ago

Hello @abalufaske

Can you report back on your status of this issue? Thanks!

abalufaske commented 9 years ago

thank you :)