diff --git a/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java b/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java index 65340c2e6..9f4af79c4 100644 --- a/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java @@ -79,7 +79,7 @@ public class InstallFragment extends Fragment implements CallbackEvent.Listener< } } final String finalBootImage = bootImage; - String filename = "Magisk-v" + magiskManager.remoteMagiskVersion + ".zip"; + String filename = "Magisk-v" + magiskManager.remoteMagiskVersionCode + ".zip"; new AlertDialogBuilder(getActivity()) .setTitle(getString(R.string.repo_install_title, getString(R.string.magisk))) .setMessage(getString(R.string.repo_install_msg, filename)) @@ -160,12 +160,12 @@ public class InstallFragment extends Fragment implements CallbackEvent.Listener< View v = inflater.inflate(R.layout.fragment_install, container, false); unbinder = ButterKnife.bind(this, v); magiskManager = getApplication(); - if (magiskManager.magiskVersion < 0) { + if (magiskManager.magiskVersionCode < 0) { currentVersionTitle.setText(getString(R.string.current_magisk_title, getString(R.string.version_none))); } else { currentVersionTitle.setText(getString(R.string.current_magisk_title, "v" + magiskManager.magiskVersionString)); } - installTitle.setText(getString(R.string.install_magisk_title, "v" + String.format(Locale.US, "%.1f", magiskManager.remoteMagiskVersion))); + installTitle.setText(getString(R.string.install_magisk_title, "v" + magiskManager.remoteMagiskVersionString)); updateUI(); return v; @@ -185,7 +185,7 @@ public class InstallFragment extends Fragment implements CallbackEvent.Listener< keepVerityChkbox.setEnabled(false); spinner.setEnabled(false); } else { - uninstallButton.setVisibility(magiskManager.magiskVersion > 10.3 ? View.VISIBLE : View.GONE); + uninstallButton.setVisibility(magiskManager.magiskVersionCode >= 130 ? View.VISIBLE : View.GONE); installText.setText(R.string.download_install); detectButton.setEnabled(true); keepEncChkbox.setEnabled(true); diff --git a/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java b/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java index 50de14303..cd86edaf8 100644 --- a/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java +++ b/app/src/main/java/com/topjohnwu/magisk/MagiskManager.java @@ -38,9 +38,10 @@ public class MagiskManager extends Application { public final SparseArray> uidSuRequest = new SparseArray<>(); // Info - public double magiskVersion; public String magiskVersionString; - public double remoteMagiskVersion = -1; + public int magiskVersionCode = -1; + public String remoteMagiskVersionString; + public int remoteMagiskVersionCode = -1; public String magiskLink; public String releaseNoteLink; public int SNCheckResult = -1; @@ -91,8 +92,13 @@ public class MagiskManager extends Application { public void init() { isDarkTheme = prefs.getBoolean("dark_theme", false); - devLogging = prefs.getBoolean("developer_logging", false); - shellLogging = prefs.getBoolean("shell_logging", false); + if (BuildConfig.DEBUG) { + devLogging = prefs.getBoolean("developer_logging", false); + shellLogging = prefs.getBoolean("shell_logging", false); + } else { + devLogging = false; + shellLogging = false; + } magiskHide = prefs.getBoolean("magiskhide", false); updateNotification = prefs.getBoolean("notification", true); // Always start a new root shell manually, just for safety @@ -139,17 +145,22 @@ public class MagiskManager extends Application { } public void updateMagiskInfo() { - List ret = Shell.sh("getprop magisk.version"); + List ret; + ret = Shell.sh("magisk -v"); if (!Utils.isValidShellResponse(ret)) { - magiskVersion = -1; - } else { - try { - magiskVersionString = ret.get(0); - magiskVersion = Double.parseDouble(ret.get(0)); - } catch (NumberFormatException e) { - // Custom version don't need to receive updates - magiskVersion = Double.POSITIVE_INFINITY; + ret = Shell.sh("getprop magisk.version"); + if (Utils.isValidShellResponse(ret)) { + try { + magiskVersionString = ret.get(0); + magiskVersionCode = (int) Double.parseDouble(ret.get(0)) * 10; + } catch (NumberFormatException ignored) {} } + } else { + magiskVersionString = ret.get(0).split(":")[0]; + ret = Shell.sh("magisk -V"); + try { + magiskVersionCode = Integer.parseInt(ret.get(0)); + } catch (NumberFormatException ignored) {} } ret = Shell.sh("getprop persist.magisk.busybox"); try { diff --git a/app/src/main/java/com/topjohnwu/magisk/MainActivity.java b/app/src/main/java/com/topjohnwu/magisk/MainActivity.java index 98af3ca30..02077425d 100644 --- a/app/src/main/java/com/topjohnwu/magisk/MainActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/MainActivity.java @@ -138,16 +138,16 @@ public class MainActivity extends Activity private void checkHideSection() { Menu menu = navigationView.getMenu(); menu.findItem(R.id.magiskhide).setVisible( - Shell.rootAccess() && getApplicationContext().magiskVersion >= 8 + Shell.rootAccess() && getApplicationContext().magiskVersionCode >= 130 && prefs.getBoolean("magiskhide", false)); menu.findItem(R.id.modules).setVisible( - Shell.rootAccess() && getApplicationContext().magiskVersion >= 4); + Shell.rootAccess() && getApplicationContext().magiskVersionCode >= 0); menu.findItem(R.id.downloads).setVisible( - Shell.rootAccess() && getApplicationContext().magiskVersion >= 4); + Shell.rootAccess() && getApplicationContext().magiskVersionCode >= 0); menu.findItem(R.id.log).setVisible(Shell.rootAccess()); menu.findItem(R.id.superuser).setVisible( Shell.rootAccess() && getApplicationContext().isSuClient); - menu.findItem(R.id.install).setVisible(getApplicationContext().remoteMagiskVersion > 0); + menu.findItem(R.id.install).setVisible(getApplicationContext().remoteMagiskVersionCode > 0); } public void navigate(String item) { diff --git a/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java b/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java index bd4b0a1ff..de50b8806 100644 --- a/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/SettingsActivity.java @@ -90,6 +90,7 @@ public class SettingsActivity extends Activity { PreferenceCategory magiskCategory = (PreferenceCategory) findPreference("magisk"); PreferenceCategory suCategory = (PreferenceCategory) findPreference("superuser"); + PreferenceCategory developer = (PreferenceCategory) findPreference("developer"); suAccess = (ListPreference) findPreference("su_access"); autoRes = (ListPreference) findPreference("su_auto_response"); @@ -103,6 +104,10 @@ public class SettingsActivity extends Activity { return true; }); + if (!BuildConfig.DEBUG) { + prefScreen.removePreference(developer); + } + if (!Shell.rootAccess()) { prefScreen.removePreference(magiskCategory); prefScreen.removePreference(suCategory); @@ -110,7 +115,7 @@ public class SettingsActivity extends Activity { if (!getApplication().isSuClient) { prefScreen.removePreference(suCategory); } - if (getApplication().magiskVersion < 11) { + if (getApplication().magiskVersionCode < 130) { prefScreen.removePreference(magiskCategory); } } diff --git a/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java b/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java index bf7117bf3..f57993820 100644 --- a/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/SplashActivity.java @@ -44,10 +44,6 @@ public class SplashActivity extends Activity{ // Now fire all async tasks new GetBootBlocks(this).exec(); - if (magiskManager.magiskHide && magiskManager.magiskVersion > 11 && - !magiskManager.magiskHideStarted) { - new MagiskHide().enable(); - } new LoadModules(this) { @Override protected void onPostExecute(Void v) { diff --git a/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java b/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java index d74ba9e66..a0a1b6f2a 100644 --- a/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java @@ -65,7 +65,7 @@ public class StatusFragment extends Fragment implements CallbackEvent.Listener 0) { + if (getApplication().remoteMagiskVersionCode > 0) { ((MainActivity) getActivity()).navigate(R.id.install); } } @@ -100,7 +100,7 @@ public class StatusFragment extends Fragment implements CallbackEvent.Listener getApplication().magiskVersion) { + } else if (getApplication().remoteMagiskVersionCode > getApplication().magiskVersionCode) { color = colorInfo; image = R.drawable.ic_update; - magiskUpdateText.setText(getString(R.string.magisk_update_available, getApplication().remoteMagiskVersion)); + magiskUpdateText.setText(getString(R.string.magisk_update_available, getApplication().remoteMagiskVersionString)); } else { color = colorOK; image = R.drawable.ic_check_circle; magiskUpdateText.setText(getString(R.string.up_to_date, getString(R.string.magisk))); } - if (getApplication().magiskVersion < 0) { + if (getApplication().magiskVersionCode < 0) { color = colorBad; image = R.drawable.ic_cancel; } diff --git a/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckUpdates.java b/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckUpdates.java index f5c1e9dd7..36ea6b7a7 100644 --- a/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckUpdates.java +++ b/app/src/main/java/com/topjohnwu/magisk/asyncs/CheckUpdates.java @@ -18,7 +18,7 @@ import org.json.JSONObject; public class CheckUpdates extends ParallelTask { - private static final String UPDATE_JSON = "https://raw.githubusercontent.com/topjohnwu/MagiskManager/updates/magisk_update.json"; + private static final String UPDATE_JSON = "https://raw.githubusercontent.com/topjohnwu/MagiskManager/update/magisk_update.json"; private static final int NOTIFICATION_ID = 1; private boolean showNotification = false; @@ -38,22 +38,22 @@ public class CheckUpdates extends ParallelTask { try { JSONObject json = new JSONObject(jsonStr); JSONObject magisk = json.getJSONObject("magisk"); - magiskManager.remoteMagiskVersion = magisk.getDouble("versionCode"); + magiskManager.remoteMagiskVersionString = magisk.getString("version"); + magiskManager.remoteMagiskVersionCode = magisk.getInt("versionCode"); magiskManager.magiskLink = magisk.getString("link"); magiskManager.releaseNoteLink = magisk.getString("note"); - } catch (JSONException ignored) { - } + } catch (JSONException ignored) {} return null; } @Override protected void onPostExecute(Void v) { - if (magiskManager.magiskVersion < magiskManager.remoteMagiskVersion + if (magiskManager.magiskVersionCode < magiskManager.remoteMagiskVersionCode && showNotification && magiskManager.updateNotification) { NotificationCompat.Builder builder = new NotificationCompat.Builder(magiskManager); builder.setSmallIcon(R.drawable.ic_magisk) .setContentTitle(magiskManager.getString(R.string.magisk_update_title)) - .setContentText(magiskManager.getString(R.string.magisk_update_available, magiskManager.remoteMagiskVersion)) + .setContentText(magiskManager.getString(R.string.magisk_update_available, magiskManager.remoteMagiskVersionString)) .setVibrate(new long[]{0, 100, 100, 100}) .setAutoCancel(true); Intent intent = new Intent(magiskManager, SplashActivity.class); diff --git a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessMagiskZip.java b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessMagiskZip.java index 91ecfb434..5f075e9a2 100644 --- a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessMagiskZip.java +++ b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessMagiskZip.java @@ -81,7 +81,7 @@ public class ProcessMagiskZip extends ParallelTask { @Override protected Void doInBackground(Void... params) { Shell.su("setprop magisk.version " - + String.valueOf(magiskManager.remoteMagiskVersion)); + + String.valueOf(magiskManager.remoteMagiskVersionCode)); magiskManager.updateCheckDone.trigger(); return null; } diff --git a/app/src/main/java/com/topjohnwu/magisk/services/BootupIntentService.java b/app/src/main/java/com/topjohnwu/magisk/services/BootupIntentService.java index 2ba39b25b..de1f72c5b 100644 --- a/app/src/main/java/com/topjohnwu/magisk/services/BootupIntentService.java +++ b/app/src/main/java/com/topjohnwu/magisk/services/BootupIntentService.java @@ -21,7 +21,7 @@ public class BootupIntentService extends IntentService { magiskManager.initSuAccess(); magiskManager.updateMagiskInfo(); if (magiskManager.prefs.getBoolean("magiskhide", false) && - !magiskManager.disabled && !magiskManager.magiskHideStarted && magiskManager.magiskVersion > 11) { + !magiskManager.disabled && !magiskManager.magiskHideStarted && magiskManager.magiskVersionCode >= 130) { magiskManager.toast(R.string.start_magiskhide, Toast.LENGTH_LONG); Shell.su(true, MagiskManager.MAGISK_HIDE_PATH + "enable", "setprop persist.magisk.hide 1"); diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 9aa6d02eb..8ebc6d77b 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -13,7 +13,7 @@ المثبت Magisk v%1$s هل قمت بتثبيت Magisk؟ - Magisk v%1$.1f تحديث! + Magisk v%1$s تحديث! لا يمكن التحقق من التحديثات أحدث إصدار من %1$s مثبت diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 23dee8fdf..10be91b7b 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -17,7 +17,7 @@ Magisk není nainstalován Kontrola aktualizací… - Magisk v%1$.1f je dostupný! + Magisk v%1$s je dostupný! Nelze zkontrolovat aktualizace. Jste připojeni k Internetu? Poslední verze z %1$s nainstalovaných Zařízení s rootem ale chybí root povolení, máte jej zpřístupněno? diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 687388bcb..0a9794dc2 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -20,7 +20,7 @@ Magisk ist nicht installiert Suche nach Updates… - Magisk %1$.1f ist verfügbar! + Magisk %1$s ist verfügbar! Updatesuche fehlgeschlagen.\nIst eine Internetverbindung verfügbar? Die neueste Version von %1$s ist bereits installiert Gerootet, aber keine root-Rechte. Wurde der root-Zugriff verweigert? diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 7fc6895ae..dee3777ef 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -17,7 +17,7 @@ Magisk no está instalado Comprobando actualizaciones… - ¡Disponible Magisk v%1$.1f! + ¡Disponible Magisk v%1$s! No se pueden comprobar actualizaciones ¿No tiene internet? Última versión de %1$s instalada Rooteado pero sin permiso root, ¿No lo permitiste? diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 197c49810..4f05ca5c7 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -15,7 +15,7 @@ Magisk v%1$s installée (Mode Core uniquement) Magisk non installé Vérification de mises à jour… - Magisk v%1$.1f disponible ! + Magisk v%1$s disponible ! Impossible de vérifier les mises à jour, pas d\'Internet ? Dernière version %1$s installée Rooté mais aucune permission root, non acceptée ? diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 67d405ca3..54cb8ad2e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -18,7 +18,7 @@ Hai installato Magisk? Controllo aggiornamenti… - È disponibile Magisk v%1$.1f! + È disponibile Magisk v%1$s! Impossibile controllare aggiornamenti La versione di %1$s è aggiornata Rootato ma senza permessi. Non sei autorizzato? diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index a95a7dd1e..ac407596b 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -18,7 +18,7 @@ Magisk がインストールされていません 更新を確認中... - Magisk v%1$.1f が利用可能です! + Magisk v%1$s が利用可能です! 更新を確認できませんでした。インターネットに接続されていますか? 最新の %1$s がインストール済です Root化はされていますが権限がありません。拒否していませんか? diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 9cb099c5d..21169aaf8 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -18,7 +18,7 @@ Magisk가 설치되지 않음 업데이트 확인 중… - Magisk v%1$.1f 사용 가능! + Magisk v%1$s 사용 가능! 업데이트를 확인할 수 없음. 인터넷 연결을 확인하세요. 최신 버전의 %1$s 설치됨 루팅은 되어 있으나 루트 권한을 얻을 수 없음. 루트 권한 허용 상태를 확인하세요. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 84b843558..3023a2926 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -13,7 +13,6 @@ Geïnstalleerde Magisk: v%1$s Heb jij Magisk wel geïnstalleerd? - Magisk v%1$.1f update! Kan niet controleren op updates. Nieuwste versie van %1$s geïnstalleerd diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index dfc56d691..f2a63ba1b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -21,7 +21,7 @@ Magisk nie jest zainstalowany Sprawdzanie aktualizacji… - Magisk v%1$.1f dostępny! + Magisk v%1$s dostępny! Nie można sprawdzić dostępności aktualizacji, brak internetu Zainstalowana najnowsza wersja %1$s Root dostępny, ale dostęp nie przyznany diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index e38d7c5e1..ba3b72a09 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -21,7 +21,7 @@ Magisk não instalado Checando por atualizações… - Magisk v%1$.1f disponível! + Magisk v%1$s disponível! Não é possível verificar se há atualizações Última versão do %1$s instalado Rooteado mas sem permissão de root, o acesso foi permitido? diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f57523bf1..6dcf53e74 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -15,7 +15,7 @@ Magisk не установлен Проверка обновлений… - Доступен Magisk v%1$.1f! + Доступен Magisk v%1$s! Невозможно проверить обновления, нет соединения? Установлена последняя версия %1$s Рут есть, но нет разрешения, не разрешено? diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 6f9711649..a0ce9fa5b 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -15,7 +15,7 @@ Magisk yüklü değil Güncelleştirmeler denetleniyor… - Magisk v%1$.1f mevcut! + Magisk v%1$s mevcut! Güncelleştirmeler denetlenemiyor, İnternet yok mu? %1$s\'in son sürümü yüklü Rootlu ama root izni yok, izin verilmedi mi? diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 4f6c254af..83fc0c541 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -17,7 +17,7 @@ Magisk chưa được cài đặt Đang kiểm tra cập nhật… - Magisk v%1$.1f available! + Magisk v%1$s available! Không thể kiểm tra cập nhật, không có Internet? Đã cài đặt phiên bản mới nhất của %1$s Đã root nhưng không có quyền root, chưa được cho phép? diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d91061325..1471e6239 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -18,7 +18,7 @@ 未安装 Magisk 正在检查更新… - Magisk 可更新到 v%1$.1f! + Magisk 可更新到 v%1$s! 无法检查更新,没有网络连接? 已安装最新版本的 %1$s 已 ROOT 但没有 ROOT 权限,未授予权限? diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index bc92c8ab7..59fd6e370 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -17,7 +17,7 @@ 未安裝 Magisk 正在檢查更新… - Magisk 可更新到 v%1$.1f! + Magisk 可更新到 v%1$s! 無法檢查更新,沒有網絡連線? 已安裝最新版本的 %1$s 已 ROOT 但沒有 ROOT 權限,未授予權限? diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 539c3482c..e11554902 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,7 +21,7 @@ Magisk not installed Checking for updates… - Magisk v%1$.1f available! + Magisk v%1$s available! Cannot check for updates, no Internet? Latest version of %1$s installed Rooted but no root permission, not allowed? diff --git a/app/src/main/res/xml/app_settings.xml b/app/src/main/res/xml/app_settings.xml index c83eecdb0..7925d00c8 100644 --- a/app/src/main/res/xml/app_settings.xml +++ b/app/src/main/res/xml/app_settings.xml @@ -82,6 +82,7 @@