manager: Optimized import, optimized all libsu shell calls, and fixed WebUI memory leaks (#369)
* manager: simply optimize * manager: optimize webui functions * manager: detect selinux using libsu:io * manager: optimize webui functions * manager: use the default shell * manager: optimize import * manager: optimize shell builder * manager: fix memory leaks * manager: optimize magisk detection * manager: use libsu * manager: optimize webui --------- Co-authored-by: 白彩恋 <shiro@oom-wg.dev>
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
package io.sukisu.ultra;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import com.topjohnwu.superuser.Shell;
|
||||
|
||||
import com.sukisu.ultra.ui.util.KsuCli;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class UltraShellHelper {
|
||||
public static String runCmd(String cmds) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(String str : KsuCli.INSTANCE.getGLOBAL_MNT_SHELL()
|
||||
.newJob()
|
||||
.add(cmds)
|
||||
for(String str : Shell.cmd(cmds)
|
||||
.to(new ArrayList<>(), null)
|
||||
.exec()
|
||||
.getOut()) {
|
||||
@@ -18,11 +16,6 @@ public class UltraShellHelper {
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static boolean isPathExists(String path) {
|
||||
String result = runCmd("test -f '" + path + "' && echo 'exists'");
|
||||
return result.contains("exists");
|
||||
}
|
||||
|
||||
public static void CopyFileTo(String path, String target) {
|
||||
runCmd("cp -f '" + path + "' '" + target + "' 2>&1");
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package io.sukisu.ultra;
|
||||
|
||||
import com.topjohnwu.superuser.io.SuFile;
|
||||
|
||||
import static com.sukisu.ultra.ui.util.KsuCliKt.getKpmmgrPath;
|
||||
import static com.sukisu.ultra.ui.util.KsuCliKt.getSuSFSDaemonPath;
|
||||
|
||||
@@ -7,15 +9,17 @@ public class UltraToolInstall {
|
||||
private static final String OUTSIDE_KPMMGR_PATH = "/data/adb/ksu/bin/kpmmgr";
|
||||
private static final String OUTSIDE_SUSFSD_PATH = "/data/adb/ksu/bin/susfsd";
|
||||
public static void tryToInstall() {
|
||||
String kpmmgrPath = getKpmmgrPath();
|
||||
if (UltraShellHelper.isPathExists(OUTSIDE_KPMMGR_PATH)) {
|
||||
UltraShellHelper.CopyFileTo(kpmmgrPath, OUTSIDE_KPMMGR_PATH);
|
||||
UltraShellHelper.runCmd("chmod a+rx " + OUTSIDE_KPMMGR_PATH);
|
||||
SuFile KpmmgrFile = new SuFile(OUTSIDE_KPMMGR_PATH);
|
||||
if (KpmmgrFile.exists()) {
|
||||
UltraShellHelper.CopyFileTo(getKpmmgrPath(), OUTSIDE_KPMMGR_PATH);
|
||||
boolean _ = KpmmgrFile.setReadable(true, false);
|
||||
boolean _ = KpmmgrFile.setExecutable(true, false);
|
||||
}
|
||||
String SuSFSDaemonPath = getSuSFSDaemonPath();
|
||||
if (UltraShellHelper.isPathExists(OUTSIDE_SUSFSD_PATH)) {
|
||||
UltraShellHelper.CopyFileTo(SuSFSDaemonPath, OUTSIDE_SUSFSD_PATH);
|
||||
UltraShellHelper.runCmd("chmod a+rx " + OUTSIDE_SUSFSD_PATH);
|
||||
SuFile SuSFSDaemonFile = new SuFile(OUTSIDE_SUSFSD_PATH);
|
||||
if (SuSFSDaemonFile.exists()) {
|
||||
UltraShellHelper.CopyFileTo(getSuSFSDaemonPath(), OUTSIDE_SUSFSD_PATH);
|
||||
boolean _ = SuSFSDaemonFile.setReadable(true, false);
|
||||
boolean _ = SuSFSDaemonFile.setExecutable(true, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user