0

我已经使用带有 sqlcipher 的 greendao 生成器来加密数据库。但是当我将 sqlcipher 从 3.5.7 升级到 4.4.3 时,我的应用程序崩溃了,因为我的应用程序无法访问旧的加密数据库。我已经搜索了一个解决方案,发现我需要在 SQLiteDatabaseHook 的 postKey 中运行 PRAGMA cipher_migrate 来迁移我的数据库。

过程必须按照此链接 https://discuss.zetetic.net/t/upgrading-sqlcipher-for-android-from-3-to-4/3580完成 但我无法弄清楚如何使用 greendao 执行此操作或?非常感谢有关此升级的任何帮助

我的自定义开放助手类:

public class MyOpenHelper extends DaoMaster.OpenHelper {
    private static final String TAG = "MyOpenHelper";

    public OpenHelperCustomized(Context context, String name) {
        super(context, name);
    }

    public OpenHelperCustomized(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }

    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        //super.onUpgrade(db, oldVersion, newVersion);
        migrate(db, oldVersion, newVersion);
    }
}

这就是我初始化数据库的方式

 DaoMaster.OpenHelper helper = new OpenHelperCustomized(getApplicationContext(), "market_enc_db");
 Database db = helper.getEncryptedWritableDb(secret);
 daoMaster = new DaoMaster(db);
 daoSession = daoMaster.newSession();
4

0 回答 0