From d161a02e71e514d4066e190763602172f9ca6cd3 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Mon, 25 Dec 2017 01:32:17 +0800 Subject: [PATCH] Fix bug in sudb init --- .../com/topjohnwu/magisk/database/SuDatabaseHelper.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/topjohnwu/magisk/database/SuDatabaseHelper.java b/src/main/java/com/topjohnwu/magisk/database/SuDatabaseHelper.java index 757534169..2a7b61e54 100644 --- a/src/main/java/com/topjohnwu/magisk/database/SuDatabaseHelper.java +++ b/src/main/java/com/topjohnwu/magisk/database/SuDatabaseHelper.java @@ -41,6 +41,10 @@ public class SuDatabaseHelper extends SQLiteOpenHelper { private PackageManager pm; private SQLiteDatabase mDb; + private static void unmntDB() { + Shell.su(Utils.fmt("umount -l /data/user*/*/%s/*/*.db", MagiskManager.get().getPackageName())); + } + private static Context initDB(boolean verify) { Context context, de = null; MagiskManager ce = MagiskManager.get(); @@ -70,16 +74,20 @@ public class SuDatabaseHelper extends SQLiteOpenHelper { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (ce.magiskVersionCode < 1410) { if (context == de) { + unmntDB(); ce.moveDatabaseFrom(de, DB_NAME); context = ce; } } else { if (context == ce) { + unmntDB(); de.moveDatabaseFrom(ce, DB_NAME); context = de; } } } + // Context might be updated + db = Utils.getDB(context, DB_NAME); if (!Shell.rootAccess()) return context;