Prevent Magisk Manager to run on pre-v18.0

This commit is contained in:
topjohnwu 2019-02-02 05:30:16 -05:00
parent 7c82690852
commit 56d2fb9a3b
3 changed files with 21 additions and 4 deletions

View File

@ -46,7 +46,7 @@ public class Const {
public static final int USER_ID = Process.myUid() / 100000; public static final int USER_ID = Process.myUid() / 100000;
public static final class MAGISK_VER { public static final class MAGISK_VER {
/* Currently no backwards compatibility needed */ public static final int MIN_SUPPORT = 18000;
} }
public static class ID { public static class ID {

View File

@ -15,15 +15,14 @@ import com.topjohnwu.magisk.utils.Utils;
import com.topjohnwu.net.Networking; import com.topjohnwu.net.Networking;
import com.topjohnwu.superuser.Shell; import com.topjohnwu.superuser.Shell;
import androidx.appcompat.app.AlertDialog;
public class SplashActivity extends BaseActivity { public class SplashActivity extends BaseActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
// Dynamic detect all locales
LocaleManager.loadAvailableLocales(R.string.app_changelog);
String pkg = Config.get(Config.Key.SU_MANAGER); String pkg = Config.get(Config.Key.SU_MANAGER);
if (pkg != null && getPackageName().equals(BuildConfig.APPLICATION_ID)) { if (pkg != null && getPackageName().equals(BuildConfig.APPLICATION_ID)) {
Config.remove(Config.Key.SU_MANAGER); Config.remove(Config.Key.SU_MANAGER);
@ -37,6 +36,22 @@ public class SplashActivity extends BaseActivity {
} catch (PackageManager.NameNotFoundException ignored) {} } catch (PackageManager.NameNotFoundException ignored) {}
} }
if (Config.magiskVersionCode > 0 && Config.magiskVersionCode < Const.MAGISK_VER.MIN_SUPPORT) {
new AlertDialog.Builder(this)
.setTitle(R.string.unsupport_magisk_title)
.setMessage(R.string.unsupport_magisk_message)
.setNegativeButton(R.string.ok, null)
.setOnDismissListener(dialog -> finish())
.show();
} else {
initAndStart();
}
}
private void initAndStart() {
// Dynamic detect all locales
LocaleManager.loadAvailableLocales(R.string.app_changelog);
// Set default configs // Set default configs
Config.initialize(); Config.initialize();

View File

@ -7,6 +7,8 @@
<string name="log">Log</string> <string name="log">Log</string>
<string name="settings">Settings</string> <string name="settings">Settings</string>
<string name="install">Install</string> <string name="install">Install</string>
<string name="unsupport_magisk_title">Unsupported Magisk Version</string>
<string name="unsupport_magisk_message">This version of Magisk Manager does not support Magisk version lower than v18.0.\n\nYou can either manually upgrade Magisk, or downgrade the app to an older version.</string>
<!--Status Fragment--> <!--Status Fragment-->
<string name="magisk_version_error">Magisk is not installed.</string> <string name="magisk_version_error">Magisk is not installed.</string>