From 7ff22c68c7ea4f61fb94e092df277fecc7b0785a Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 9 Dec 2020 02:15:16 -0800 Subject: [PATCH] Only try to install APK when no manager is active --- native/jni/core/bootstages.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/native/jni/core/bootstages.cpp b/native/jni/core/bootstages.cpp index f07817c3b..49feba470 100644 --- a/native/jni/core/bootstages.cpp +++ b/native/jni/core/bootstages.cpp @@ -363,17 +363,18 @@ void boot_complete(int client) { if (pfs_done) auto_start_magiskhide(); - if (access(MANAGERAPK, F_OK) == 0) { - // Install Magisk Manager if exists - rename(MANAGERAPK, "/data/magisk.apk"); - install_apk("/data/magisk.apk"); - } else { - // Check whether we have manager installed - if (!check_manager()) { + if (!check_manager()) { + if (access(MANAGERAPK, F_OK) == 0) { + // Only try to install APK when no manager is installed + // Magisk Manager should be upgraded by itself, not through recovery installs + rename(MANAGERAPK, "/data/magisk.apk"); + install_apk("/data/magisk.apk"); + } else { // Install stub auto init = MAGISKTMP + "/magiskinit"; exec_command_sync(init.data(), "-x", "manager", "/data/magisk.apk"); install_apk("/data/magisk.apk"); } } + unlink(MANAGERAPK); }