From f3c3b5a649087c49080d4f3321d4cdc80f48574b Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Sun, 3 Dec 2017 04:15:17 +0800 Subject: [PATCH] Cleanup prefs --- app/build.gradle | 2 +- app/src/main/assets/changelog.md | 7 ++--- .../com/topjohnwu/magisk/MagiskFragment.java | 2 +- .../com/topjohnwu/magisk/MagiskManager.java | 14 +++------- .../com/topjohnwu/magisk/MainActivity.java | 5 ++-- .../topjohnwu/magisk/SettingsActivity.java | 27 +++++++------------ .../com/topjohnwu/magisk/SplashActivity.java | 7 +++-- .../magisk/asyncs/CheckSafetyNet.java | 4 +-- .../com/topjohnwu/magisk/utils/Const.java | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 11 files changed, 29 insertions(+), 43 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0dc4ae60f..83cbdb7fa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ android { applicationId "com.topjohnwu.magisk" minSdkVersion 21 targetSdkVersion 27 - versionCode 68 + versionCode 69 versionName "5.4.3" ndk { moduleName 'zipadjust' diff --git a/app/src/main/assets/changelog.md b/app/src/main/assets/changelog.md index aa29daf42..7560f34a0 100644 --- a/app/src/main/assets/changelog.md +++ b/app/src/main/assets/changelog.md @@ -1,5 +1,6 @@ -### v5.4.3 (68) -- Fix dynamic resource loading, should prevent crashing when chacking SafetyNet +### v5.4.3 (69) +- Fix dynamic resource loading, should prevent crashing when checking SafetyNet - Update SignAPK to use very little RAM, should expand old device support - Support settings migration after hiding Magisk Manager -- Add changelog in app +- Add reboot menu in modules section +- Add changelog in app diff --git a/app/src/main/java/com/topjohnwu/magisk/MagiskFragment.java b/app/src/main/java/com/topjohnwu/magisk/MagiskFragment.java index 57897df65..f8aa61055 100644 --- a/app/src/main/java/com/topjohnwu/magisk/MagiskFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/MagiskFragment.java @@ -91,7 +91,7 @@ public class MagiskFragment extends Fragment new CheckSafetyNet(getActivity()).exec(); collapse(); }; - if (mm.snet_version < 0) { + if (mm.snetVersion < 0) { // Show dialog new AlertDialogBuilder(getActivity()) .setTitle(R.string.proprietary_title) diff --git a/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java b/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java index 257554711..08b4b328c 100644 --- a/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java +++ b/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java @@ -50,9 +50,7 @@ public class MagiskManager extends Application { public int remoteManagerVersionCode = -1; public String managerLink; public String bootBlock = null; - public int snet_version; - public int updateServiceVersion; - public int appVersion; + public int snetVersion; // Data public Map moduleMap; @@ -66,7 +64,6 @@ public class MagiskManager extends Application { public boolean isDarkTheme; public boolean updateNotification; public boolean suReauth; - public boolean coreOnly; public int suRequestTimeout; public int suLogTimeout = 14; public int suAccessState; @@ -146,8 +143,6 @@ public class MagiskManager extends Application { } public void loadConfig() { - isDarkTheme = prefs.getBoolean(Const.Key.DARK_THEME, false); - // su suRequestTimeout = Utils.getPrefsInt(prefs, Const.Key.SU_REQUEST_TIMEOUT, Const.Value.timeoutList[2]); suResponseType = Utils.getPrefsInt(prefs, Const.Key.SU_AUTO_RESPONSE, Const.Value.SU_PROMPT); @@ -157,14 +152,13 @@ public class MagiskManager extends Application { multiuserMode = suDB.getSettings(Const.Key.SU_MULTIUSER_MODE, Const.Value.MULTIUSER_MODE_OWNER_ONLY); suNamespaceMode = suDB.getSettings(Const.Key.SU_MNT_NS, Const.Value.NAMESPACE_MODE_REQUESTER); - coreOnly = prefs.getBoolean(Const.Key.DISABLE, false); + // config + isDarkTheme = prefs.getBoolean(Const.Key.DARK_THEME, false); updateNotification = prefs.getBoolean(Const.Key.UPDATE_NOTIFICATION, true); updateChannel = Utils.getPrefsInt(prefs, Const.Key.UPDATE_CHANNEL, Const.Value.STABLE_CHANNEL); bootFormat = prefs.getString(Const.Key.BOOT_FORMAT, ".img"); - snet_version = prefs.getInt(Const.Key.SNET_VER, -1); - updateServiceVersion = prefs.getInt(Const.Key.UPDATE_SERVICE_VER, -1); + snetVersion = prefs.getInt(Const.Key.SNET_VER, -1); customChannelUrl = prefs.getString(Const.Key.CUSTOM_CHANNEL, ""); - appVersion = prefs.getInt(Const.Key.APP_VER, 0); } public static void toast(String msg, int duration) { diff --git a/app/src/main/java/com/topjohnwu/magisk/MainActivity.java b/app/src/main/java/com/topjohnwu/magisk/MainActivity.java index 2612b16bc..8d5746a8a 100644 --- a/app/src/main/java/com/topjohnwu/magisk/MainActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/MainActivity.java @@ -92,9 +92,8 @@ public class MainActivity extends Activity navigationView.setNavigationItemSelectedListener(this); - if (mm.appVersion < BuildConfig.VERSION_CODE) { + if (mm.prefs.getInt(Const.Key.APP_VER, -1) < BuildConfig.VERSION_CODE) { prefs.edit().putInt(Const.Key.APP_VER, BuildConfig.VERSION_CODE).apply(); - mm.appVersion = BuildConfig.VERSION_CODE; try { InputStream is = getAssets().open("changelog.md"); new MarkDownWindow(this, getString(R.string.app_changelog), is).exec(); @@ -149,7 +148,7 @@ public class MainActivity extends Activity Shell.rootAccess() && mm.magiskVersionCode >= 0); menu.findItem(R.id.downloads).setVisible(Utils.checkNetworkStatus() && Shell.rootAccess() && mm.magiskVersionCode >= 0); - menu.setGroupVisible(R.id.second_group, !mm.coreOnly); + menu.setGroupVisible(R.id.second_group, !mm.prefs.getBoolean(Const.Key.COREONLY, false)); menu.findItem(R.id.log).setVisible(Shell.rootAccess()); menu.findItem(R.id.superuser).setVisible(Shell.rootAccess()); } diff --git a/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java b/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java index 6fb087e6b..9515fdeed 100644 --- a/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java @@ -141,7 +141,8 @@ public class SettingsActivity extends Activity implements Topic.Subscriber { // Remove re-authentication option on Android O, it will not work if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - suCategory.removePreference(reauth); + reauth.setEnabled(false); + reauth.setSummary(R.string.android_o_not_support); } if (mm.getPackageName().equals(Const.ORIG_PKG_NAME) && mm.magiskVersionCode >= 1440) { @@ -204,18 +205,14 @@ public class SettingsActivity extends Activity implements Topic.Subscriber { @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { - boolean enabled; switch (key) { case Const.Key.DARK_THEME: - enabled = prefs.getBoolean(Const.Key.DARK_THEME, false); - if (mm.isDarkTheme != enabled) { - mm.reloadActivity.publish(false); - } + mm.isDarkTheme = prefs.getBoolean(key, false); + mm.reloadActivity.publish(false); break; - case Const.Key.DISABLE: - enabled = prefs.getBoolean(Const.Key.DISABLE, false); - if (enabled) { + case Const.Key.COREONLY: + if (prefs.getBoolean(key, false)) { Utils.createFile(Const.MAGISK_DISABLE_FILE); } else { Utils.removeItem(Const.MAGISK_DISABLE_FILE); @@ -223,16 +220,14 @@ public class SettingsActivity extends Activity implements Topic.Subscriber { Toast.makeText(getActivity(), R.string.settings_reboot_toast, Toast.LENGTH_LONG).show(); break; case Const.Key.MAGISKHIDE: - enabled = prefs.getBoolean(Const.Key.MAGISKHIDE, false); - if (enabled) { + if (prefs.getBoolean(key, false)) { Shell.su_raw("magiskhide --enable"); } else { Shell.su_raw("magiskhide --disable"); } break; case Const.Key.HOSTS: - enabled = prefs.getBoolean(Const.Key.HOSTS, false); - if (enabled) { + if (prefs.getBoolean(key, false)) { Shell.su_raw( "cp -af /system/etc/hosts " + Const.MAGISK_HOST_FILE(), "mount -o bind " + Const.MAGISK_HOST_FILE() + " /system/etc/hosts"); @@ -243,13 +238,9 @@ public class SettingsActivity extends Activity implements Topic.Subscriber { } break; case Const.Key.ROOT_ACCESS: - mm.suDB.setSettings(Const.Key.ROOT_ACCESS, Utils.getPrefsInt(prefs, Const.Key.ROOT_ACCESS)); - break; case Const.Key.SU_MULTIUSER_MODE: - mm.suDB.setSettings(Const.Key.SU_MULTIUSER_MODE, Utils.getPrefsInt(prefs, Const.Key.SU_MULTIUSER_MODE)); - break; case Const.Key.SU_MNT_NS: - mm.suDB.setSettings(Const.Key.SU_MNT_NS, Utils.getPrefsInt(prefs, Const.Key.SU_MNT_NS)); + mm.suDB.setSettings(key, Utils.getPrefsInt(prefs, key)); break; case Const.Key.LOCALE: mm.setLocale(); diff --git a/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java b/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java index d39d47fc3..dca4bac66 100644 --- a/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java @@ -69,7 +69,7 @@ public class SplashActivity extends Activity { SuDatabaseHelper.setupSuDB(); // Add update checking service - if (Const.Value.UPDATE_SERVICE_VER > mm.updateServiceVersion) { + if (Const.Value.UPDATE_SERVICE_VER > mm.prefs.getInt(Const.Key.UPDATE_SERVICE_VER, -1)) { ComponentName service = new ComponentName(this, UpdateCheckService.class); JobInfo info = new JobInfo.Builder(Const.ID.UPDATE_SERVICE_ID, service) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) @@ -77,7 +77,6 @@ public class SplashActivity extends Activity { .setPeriodic(8 * 60 * 60 * 1000) .build(); ((JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE)).schedule(info); - mm.updateServiceVersion = Const.Value.UPDATE_SERVICE_VER; } // Fire asynctasks @@ -93,7 +92,7 @@ public class SplashActivity extends Activity { .putBoolean(Const.Key.MAGISKHIDE, mm.magiskHide) .putBoolean(Const.Key.UPDATE_NOTIFICATION, mm.updateNotification) .putBoolean(Const.Key.HOSTS, Utils.itemExist(Const.MAGISK_HOST_FILE())) - .putBoolean(Const.Key.DISABLE, Utils.itemExist(Const.MAGISK_DISABLE_FILE)) + .putBoolean(Const.Key.COREONLY, Utils.itemExist(Const.MAGISK_DISABLE_FILE)) .putBoolean(Const.Key.SU_REAUTH, mm.suReauth) .putString(Const.Key.SU_REQUEST_TIMEOUT, String.valueOf(mm.suRequestTimeout)) .putString(Const.Key.SU_AUTO_RESPONSE, String.valueOf(mm.suResponseType)) @@ -104,7 +103,7 @@ public class SplashActivity extends Activity { .putString(Const.Key.UPDATE_CHANNEL, String.valueOf(mm.updateChannel)) .putString(Const.Key.LOCALE, mm.localeConfig) .putString(Const.Key.BOOT_FORMAT, mm.bootFormat) - .putInt(Const.Key.UPDATE_SERVICE_VER, mm.updateServiceVersion) + .putInt(Const.Key.UPDATE_SERVICE_VER, Const.Value.UPDATE_SERVICE_VER) .apply(); mm.hasInit = true; diff --git a/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckSafetyNet.java b/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckSafetyNet.java index 38c8fb51c..87fb1cf14 100644 --- a/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckSafetyNet.java +++ b/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckSafetyNet.java @@ -32,10 +32,10 @@ public class CheckSafetyNet extends ParallelTask { @Override protected void onPreExecute() { MagiskManager mm = MagiskManager.get(); - if (mm.snet_version != Const.Value.SNET_VER) { + if (mm.snetVersion != Const.Value.SNET_VER) { Shell.sh("rm -rf " + dexPath.getParent()); } - mm.snet_version = Const.Value.SNET_VER; + mm.snetVersion = Const.Value.SNET_VER; mm.prefs.edit().putInt(Const.Key.SNET_VER, Const.Value.SNET_VER).apply(); } diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/Const.java b/app/src/main/java/com/topjohnwu/magisk/utils/Const.java index aa635e0b9..c1dcfcb0e 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/Const.java +++ b/app/src/main/java/com/topjohnwu/magisk/utils/Const.java @@ -121,7 +121,7 @@ public class Const { public static final String APP_VER = "app_version"; public static final String MAGISKHIDE = "magiskhide"; public static final String HOSTS = "hosts"; - public static final String DISABLE = "disable"; + public static final String COREONLY = "disable"; public static final String LOCALE = "locale"; public static final String DARK_THEME = "dark_theme"; public static final String ETAG_KEY = "ETag"; diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index abfe8d896..3a5cc9f2a 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -210,5 +210,6 @@ 重啟到 Recovery 重啟到 Bootloader 重啟到 Download + 不支援 Android 8.0+ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8c10c4908..50fd6b2eb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,6 +180,7 @@ All root sessions use the global mount namespace Root sessions will inherit its requester\'s namespace Each root session will have its own isolated namespace + Does not support on Android 8.0+ Superuser Request