問題タブ [sqlcipher-android]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
276 参照

android - Room SQLCipher は代替の LibraryLoader を提供します

SQLCipher の代替 LibraryLoader を追加する方法があるかどうか疑問に思っています。(Android 5.1 をルート化した) および(Android 6.0.1 をルート化していない)
一部のデバイスでは、次のクラッシュが発生します。Huawei Enjoy 9sNexus 4

致命的な例外: java.lang.UnsatisfiedLinkError dalvik.system.PathClassLoader[DexPathList[[zip ファイル "/data/app/com.application-1/base.apk"]、nativeLibraryDirectories=[/data/app/com.application.app -1/lib/arm、/vendor/lib、/system/lib]]] で「libsqlcipher.so」が見つかりませんでした

可能であれば、ロードする適切なライブラリ名とアクションを実行する場所を見つけるにはどうすればよいですか?
のコードは次のSQLiteDatabaseとおりです。

これは、DB インスタンスを作成する方法です。

0 投票する
0 に答える
74 参照

android - amitshekhar を使用して暗号化されたデータベースを開くことができません

こんにちは、長い間このライブラリを使用していますが、sqlcipher を使用せずにデータベースを sqlcipher に変換し、ここで定義されているすべての手順に従いましたhttps://github.com/amitshekhariitbhu/Android-Debug-Database、アプリケーションの起動後、いつでも開く共有設定データを正しく表示するためのIPですが、sqlcipherデータベースをクリックすると何も表示されず、ログも取得されます

Build.gradle で

実装されたライブラリ

1

2

データベースをクリックすると、これもログに記録されます

2021-04-22 13:24:05.712 7274-7372/com.xxx.xxxE/ClientServer: 例外。net.sqlcipher.database.SQLiteException: ファイルはデータベースではありません: 、コンパイル中: select count(*) from sqlite_master; net.sqlcipher.database.SQLiteCompiledSql.native_compile(ネイティブ メソッド) で net.sqlcipher.database.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:89) で net.sqlcipher.database.SQLiteCompiledSql.(SQLiteCompiledSql.java:62) で net. sqlcipher.database.SQLiteProgram.(SQLiteProgram.java:91) net.sqlcipher.database.SQLiteQuery.(SQLiteQuery.java:48) net.sqlcipher.database.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:60) で net.sqlcipher .database.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:2016) で net.sqlcipher.database.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1902) で net.sqlcipher.database.SQLiteDatabase.

0 投票する
0 に答える
117 参照

android - UndeliverableException: android.database.sqlite.SQLiteReadOnlyDatabaseException: 読み取り専用データベースを書き込もうとしています

SQLCipher で DBFlow を使用しています。AndroidでSQLCipherを使用して、既存のSQLiteデータベース(DBFlowを使用)を暗号化しようとしています。

次のコードを使用して DB を暗号化しました。

DB は問題なく暗号化されていますが、操作を書き込もうとすると、次のようになります。

DB モデル:

次に、次の例外を取得します。

io.reactivex.exceptions.UndeliverableException: android.database.sqlite.SQLiteReadOnlyDatabaseException: 読み取り専用データベースを書き込もうとしています (コード 1032 SQLITE_READONLY_DBMOVED[1032])

ここで同様の投稿を見つけましたが、解決策は見つかりませんでした。

また、DBFlow データベースを SQLCipher で暗号化する方法を発見し、実装しましたその後、新しいアプリとしてインストールすると機能しますが、DB を暗号化していない古いアプリの上にこのアプリをインストールすると失敗します。

net.sqlcipher.database.SQLiteException: ファイルはデータベースではありません: 、コンパイル中: select count(*) from sqlite_master;

どうすればこれを修正できますか?