You've already forked Magisk
mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-09-06 06:36:58 +00:00
Update to libsu 1.0.0
This commit is contained in:
@@ -26,6 +26,7 @@ public class Const {
|
||||
public static final String SU_KEYSTORE_KEY = "su_key";
|
||||
|
||||
// Paths
|
||||
private static String MAGISK_PATH = null;
|
||||
public static final String MAGISK_DISABLE_FILE = "/cache/.disable_magisk";
|
||||
public static final String BUSYBOX_PATH = "/sbin/.core/busybox";
|
||||
public static final String TMP_FOLDER_PATH = "/dev/tmp";
|
||||
@@ -38,14 +39,17 @@ public class Const {
|
||||
public static final int SNET_VER = 7;
|
||||
public static final int MIN_MODULE_VER = 1400;
|
||||
|
||||
public static String MAGISK_PATH() {
|
||||
if (Utils.itemExist("/sbin/.core/img")) {
|
||||
return "/sbin/.core/img";
|
||||
} else if (Utils.itemExist("/dev/magisk/img")) {
|
||||
return "/dev/magisk/img";
|
||||
} else {
|
||||
return "/magisk";
|
||||
public synchronized static String MAGISK_PATH() {
|
||||
if (MAGISK_PATH == null) {
|
||||
if (Utils.itemExist("/sbin/.core/img")) {
|
||||
MAGISK_PATH = "/sbin/.core/img";
|
||||
} else if (Utils.itemExist("/dev/magisk/img")) {
|
||||
MAGISK_PATH = "/dev/magisk/img";
|
||||
} else {
|
||||
MAGISK_PATH = "/magisk";
|
||||
}
|
||||
}
|
||||
return MAGISK_PATH;
|
||||
}
|
||||
|
||||
public static String MAGISK_HOST_FILE() {
|
||||
|
||||
@@ -111,7 +111,7 @@ public class ShowUI {
|
||||
if (Shell.rootAccess()) {
|
||||
options.add(mm.getString(R.string.direct_install));
|
||||
}
|
||||
List<String> res = Shell.su("echo $SLOT");
|
||||
List<String> res = Shell.Sync.su("echo $SLOT");
|
||||
if (Utils.isValidShellResponse(res)) {
|
||||
options.add(mm.getString(R.string.install_second_slot));
|
||||
}
|
||||
@@ -185,13 +185,13 @@ public class ShowUI {
|
||||
if (slot[1] == 'a') slot[1] = 'b';
|
||||
else slot[1] = 'a';
|
||||
// Then find the boot image again
|
||||
List<String> ret = Shell.su(
|
||||
List<String> ret = Shell.Sync.su(
|
||||
"SLOT=" + String.valueOf(slot),
|
||||
"find_boot_image",
|
||||
"echo \"$BOOTIMAGE\""
|
||||
);
|
||||
boot = Utils.isValidShellResponse(ret) ? ret.get(ret.size() - 1) : null;
|
||||
Shell.su_raw("mount_partitions");
|
||||
Shell.Async.su("mount_partitions");
|
||||
if (boot == null)
|
||||
return;
|
||||
receiver = new DownloadReceiver() {
|
||||
@@ -266,7 +266,7 @@ public class ShowUI {
|
||||
return;
|
||||
}
|
||||
|
||||
Shell.su(
|
||||
Shell.Sync.su(
|
||||
Utils.fmt("echo '%s' > /cache/%s", uninstaller.toString().replace("'", "'\\''"), Const.UNINSTALLER),
|
||||
Utils.fmt("echo '%s' > %s/%s", utils.toString().replace("'", "'\\''"),
|
||||
mm.magiskVersionCode >= 1464 ? "/data/adb/magisk" : "/data/magisk", Const.UTIL_FUNCTIONS)
|
||||
|
||||
@@ -47,12 +47,12 @@ public class Utils {
|
||||
public static boolean isDownloading = false;
|
||||
|
||||
public static boolean itemExist(Object path) {
|
||||
List<String> ret = Shell.su(fmt("[ -e %s ] && echo true || echo false", path));
|
||||
List<String> ret = Shell.Sync.su(fmt("[ -e %s ] && echo true || echo false", path));
|
||||
return isValidShellResponse(ret) && Boolean.parseBoolean(ret.get(0));
|
||||
}
|
||||
|
||||
public static void createFile(Object path) {
|
||||
Shell.su_raw(fmt("mkdir -p `dirname '%s'` 2>/dev/null; touch '%s' 2>/dev/null", path, path));
|
||||
Shell.Async.su(fmt("mkdir -p `dirname '%s'` 2>/dev/null; touch '%s' 2>/dev/null", path, path));
|
||||
}
|
||||
|
||||
public static boolean javaCreateFile(File path) {
|
||||
@@ -67,20 +67,20 @@ public class Utils {
|
||||
}
|
||||
|
||||
public static void removeItem(Object path) {
|
||||
Shell.su_raw(fmt("rm -rf %s 2>/dev/null", path));
|
||||
Shell.Async.su(fmt("rm -rf %s 2>/dev/null", path));
|
||||
}
|
||||
|
||||
public static List<String> readFile(Object path) {
|
||||
return Shell.su(fmt("cat %s | sed '$a\\ ' | sed '$d'", path));
|
||||
return Shell.Sync.su(fmt("cat %s | sed '$a\\ ' | sed '$d'", path));
|
||||
}
|
||||
|
||||
public static String checkInode(Object path) {
|
||||
List<String> ret = Shell.su(fmt("ls -i %s", path));
|
||||
List<String> ret = Shell.Sync.su(fmt("ls -i %s", path));
|
||||
return isValidShellResponse(ret) ? ret.get(0).trim().split("\\s+")[0] : path.toString();
|
||||
}
|
||||
|
||||
public static void uninstallPkg(String pkg) {
|
||||
Shell.su(fmt("umount -l /data/user*/*/%s/*/*.db 2>/dev/null; pm uninstall %s", pkg, pkg));
|
||||
Shell.Sync.su(fmt("umount -l /data/user*/*/%s/*/*.db 2>/dev/null; pm uninstall %s", pkg, pkg));
|
||||
}
|
||||
|
||||
public static void dlAndReceive(Context context, DownloadReceiver receiver, String link, String filename) {
|
||||
@@ -260,7 +260,7 @@ public class Utils {
|
||||
public static void patchDTBO() {
|
||||
MagiskManager mm = MagiskManager.get();
|
||||
if (mm.magiskVersionCode >= 1446 && !mm.keepVerity) {
|
||||
List<String> ret = Shell.su("patch_dtbo_image && echo true || echo false");
|
||||
List<String> ret = Shell.Sync.su("patch_dtbo_image && echo true || echo false");
|
||||
if (Utils.isValidShellResponse(ret) && Boolean.parseBoolean(ret.get(ret.size() - 1))) {
|
||||
ShowUI.dtboPatchedNotification();
|
||||
}
|
||||
@@ -278,7 +278,7 @@ public class Utils {
|
||||
Map<String, ?> prefs = MagiskManager.get().prefs.getAll();
|
||||
prefs.remove("App Restrictions");
|
||||
String json = gson.toJson(prefs, new TypeToken<Map<String, ?>>(){}.getType());
|
||||
Shell.su(fmt("for usr in /data/user/*; do echo '%s' > ${usr}/%s; done", json, Const.MANAGER_CONFIGS));
|
||||
Shell.Sync.su(fmt("for usr in /data/user/*; do echo '%s' > ${usr}/%s; done", json, Const.MANAGER_CONFIGS));
|
||||
}
|
||||
|
||||
public static void loadPrefs() {
|
||||
|
||||
Reference in New Issue
Block a user