
SQLcipher はAndroidでSQLiteをAES暗号化するナイスなライブラリ
BSDライセンスっぽいので商用でも安心して使えそう。
SQLcipherの使い方はググれば簡単に素敵な記事が見つかるので省略。
同様にセキュリティ関連でJNIを一緒に使おうとして数時間ハマッタので共存させるメモ。
簡潔に答えのみを
/jni/以下に適当なフォルダ(今回はexternal/armeabi/)を作りsqlcipherのlibsに入れるべきファイルを入れる。

Android.mkを以下のような感じにする。
以上でOK
説明としては、JNIで.soをビルドする時に他の.soを消してしまうので、既存の.soを別ディレクトリからコピーするようにする。らしい。
armeabi-v7a と x86 についてはどうするかは調べてないです。
→調べてみた。『JNI と SQLcipher の共存 と複数ターゲット』
詳しい説明は以下参照
『Android NDK の使用とapkファイルへの入れ方』
『.[ Android ] 自分でコンパイルした既存のビルド済みの複数の共有ライブラリ(lib***.so)を使う方法。 Android.mk の設定が必要』
BSDライセンスっぽいので商用でも安心して使えそう。
SQLcipherの使い方はググれば簡単に素敵な記事が見つかるので省略。
同様にセキュリティ関連でJNIを一緒に使おうとして数時間ハマッタので共存させるメモ。
簡潔に答えのみを
/jni/以下に適当なフォルダ(今回はexternal/armeabi/)を作りsqlcipherのlibsに入れるべきファイルを入れる。

Android.mkを以下のような感じにする。
include $(CLEAR_VARS)
LOCAL_MODULE := OwnJNISource
LOCAL_SRC_FILES := OwnJNISource.cpp
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := database_sqlcipher
LOCAL_SRC_FILES := external/armeabi/libdatabase_sqlcipher.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := sqlcipher_android
LOCAL_SRC_FILES := external/armeabi/libsqlcipher_android.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := stlport_shared
LOCAL_SRC_FILES := external/armeabi/libstlport_shared.so
include $(PREBUILT_SHARED_LIBRARY)
以上でOK
説明としては、JNIで.soをビルドする時に他の.soを消してしまうので、既存の.soを別ディレクトリからコピーするようにする。らしい。
→調べてみた。『JNI と SQLcipher の共存 と複数ターゲット』
詳しい説明は以下参照
『Android NDK の使用とapkファイルへの入れ方』
『.[ Android ] 自分でコンパイルした既存のビルド済みの複数の共有ライブラリ(lib***.so)を使う方法。 Android.mk の設定が必要』
スポンサーサイト


