diff --git a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Module.kt b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Module.kt index d5f5b81d..f9e56623 100644 --- a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Module.kt +++ b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Module.kt @@ -1089,6 +1089,7 @@ fun ModuleItem( } fun formatSize(size: Long): String { + if (size == 0L) return "null" val kb = 1024 val mb = kb * 1024 val gb = mb * 1024 diff --git a/manager/app/src/main/java/com/rifsxd/ksunext/ui/util/KsuCli.kt b/manager/app/src/main/java/com/rifsxd/ksunext/ui/util/KsuCli.kt index 1e4919d0..10a9dc26 100644 --- a/manager/app/src/main/java/com/rifsxd/ksunext/ui/util/KsuCli.kt +++ b/manager/app/src/main/java/com/rifsxd/ksunext/ui/util/KsuCli.kt @@ -28,6 +28,7 @@ import java.io.File * @date 2023/1/1. */ private const val TAG = "KsuCli" +private const val BUSYBOX = "/data/adb/ksu/bin/busybox" private fun ksuDaemonMagicPath(): String { return ksuApp.applicationInfo.nativeLibraryDir + File.separator + "libksud_magic.so" @@ -490,7 +491,7 @@ fun moduleBackup(): Boolean { val internalBackupDir = "/sdcard/.ksunext/modules" val internalBackupPath = "$internalBackupDir/$tarName" - val tarCmd = "tar -cpf $tarPath -C /data/adb/modules $(ls /data/adb/modules)" + val tarCmd = "$BUSYBOX tar -cpf $tarPath -C /data/adb/modules $(ls /data/adb/modules)" val tarResult = ShellUtils.fastCmd(shell, tarCmd).trim() if (tarResult.isNotEmpty()) return false @@ -511,7 +512,7 @@ fun moduleRestore(): Boolean { val tarPath = ShellUtils.fastCmd(shell, findTarCmd).trim() if (tarPath.isEmpty()) return false - val extractCmd = "tar -xpf $tarPath -C /data/adb/modules_update" + val extractCmd = "$BUSYBOX tar -xpf $tarPath -C /data/adb/modules_update" val extractResult = ShellUtils.fastCmd(shell, extractCmd).trim() return extractResult.isEmpty() } @@ -533,7 +534,7 @@ fun allowlistBackup(): Boolean { val internalBackupDir = "/sdcard/.ksunext/allowlist" val internalBackupPath = "$internalBackupDir/$tarName" - val tarCmd = "tar -cpf $tarPath -C /data/adb/ksu .allowlist" + val tarCmd = "$BUSYBOX tar -cpf $tarPath -C /data/adb/ksu .allowlist" val tarResult = ShellUtils.fastCmd(shell, tarCmd).trim() if (tarResult.isNotEmpty()) return false @@ -556,7 +557,7 @@ fun allowlistRestore(): Boolean { if (tarPath.isEmpty()) return false // Extract the tar to /data/adb/ksu (restores .allowlist folder with permissions) - val extractCmd = "tar -xpf $tarPath -C /data/adb/ksu" + val extractCmd = "$BUSYBOX tar -xpf $tarPath -C /data/adb/ksu" val extractResult = ShellUtils.fastCmd(shell, extractCmd).trim() return extractResult.isEmpty() } @@ -623,7 +624,7 @@ fun currentMountSystem(): String { fun getModuleSize(dir: File): Long { val shell = getRootShell() - val cmd = "du -sb '${dir.absolutePath}' | awk '{print \$1}'" + val cmd = "$BUSYBOX du -sb '${dir.absolutePath}' | awk '{print \$1}'" val result = ShellUtils.fastCmd(shell, cmd).trim() return result.toLongOrNull() ?: 0L }