diff --git a/manager/.gitignore b/manager/.gitignore index a595ddf7..14febcea 100644 --- a/manager/.gitignore +++ b/manager/.gitignore @@ -8,3 +8,4 @@ captures .cxx local.properties key.jks +setup.sh \ No newline at end of file diff --git a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt index 086af656..2b6eefa3 100644 --- a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt +++ b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt @@ -372,15 +372,16 @@ private fun InfoCard() { } - InfoCardItem(stringResource(R.string.home_kernel), - uname.release, + InfoCardItem( + label = stringResource(R.string.home_kernel), + content = uname.release, icon = Icons.Filled.Memory, ) Spacer(Modifier.height(16.dp)) InfoCardItem( - stringResource(R.string.home_android), - "${Build.VERSION.RELEASE} (${Build.VERSION.SDK_INT})", + label = stringResource(R.string.home_android), + content = "${Build.VERSION.RELEASE} (${Build.VERSION.SDK_INT})", icon = Icons.Filled.Android, ) @@ -388,8 +389,8 @@ private fun InfoCard() { Spacer(Modifier.height(16.dp)) val managerVersion = getManagerVersion(context) InfoCardItem( - stringResource(R.string.home_manager_version), - "${managerVersion.first}-next (${managerVersion.second})", + label = stringResource(R.string.home_manager_version), + content = "${managerVersion.first}-next (${managerVersion.second})", icon = Icons.AutoMirrored.Filled.Article, ) @@ -405,7 +406,7 @@ private fun InfoCard() { if (suSFS != "Unsupported") { InfoCardItem( label = stringResource(R.string.home_susfs_version), - content = getSuSFSVersion(), + content = "${getSuSFSVersion()} (${getSuSFSVariant()})", icon = Icons.Filled.SettingsSuggest, ) } 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 9a234ef6..8e2b706e 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 @@ -127,14 +127,18 @@ private fun getSuSFSPath(): String { fun getSuSFS(): String { val shell = getRootShell() val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} support") - return result } fun getSuSFSVersion(): String { val shell = getRootShell() val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} version") + return result +} +fun getSuSFSVariant(): String { + val shell = getRootShell() + val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} variant") return result } diff --git a/manager/app/src/main/jniLibs/arm64-v8a/libsusfs.so b/manager/app/src/main/jniLibs/arm64-v8a/libsusfs.so index 3cb1407c..77077b87 100755 Binary files a/manager/app/src/main/jniLibs/arm64-v8a/libsusfs.so and b/manager/app/src/main/jniLibs/arm64-v8a/libsusfs.so differ diff --git a/userspace/susfs/jni/susfs.c b/userspace/susfs/jni/susfs.c index 5c137f1f..6c8d596d 100644 --- a/userspace/susfs/jni/susfs.c +++ b/userspace/susfs/jni/susfs.c @@ -5,10 +5,12 @@ #define KERNEL_SU_OPTION 0xDEADBEEF #define CMD_SUSFS_SHOW_VERSION 0x555e1 +#define CMD_SUSFS_SHOW_VARIANT 0x555e3 int main(int argc, char *argv[]) { int error = -1; char version[16]; + char variant[16]; // Check for arguments if (argc < 2) { @@ -17,26 +19,30 @@ int main(int argc, char *argv[]) { } // If 'version' is given, show version - if (strcmp(argv[1], "version") == 0) { - prctl(KERNEL_SU_OPTION, CMD_SUSFS_SHOW_VERSION, version, NULL, &error); - if (!error) { - printf("%s\n", version); - } else { - printf("Unsupported\n"); - } - } - // If 'support' is given, check if version starts with 'v' - else if (strcmp(argv[1], "support") == 0) { + if (strcmp(argv[1], "support") == 0) { prctl(KERNEL_SU_OPTION, CMD_SUSFS_SHOW_VERSION, version, NULL, &error); if (!error) { if (version[0] == 'v') { printf("Supported\n"); - } else { - printf("Unsupported\n"); } } else { printf("Unsupported\n"); } + + } else if (strcmp(argv[1], "version") == 0) { + prctl(KERNEL_SU_OPTION, CMD_SUSFS_SHOW_VERSION, version, NULL, &error); + if (!error) { + printf("%s\n", version); + } else { + printf("Invalid\n"); + } + } else if (strcmp(argv[1], "variant") == 0) { + prctl(KERNEL_SU_OPTION, CMD_SUSFS_SHOW_VARIANT, variant, NULL, &error); + if (!error) { + printf("%s\n", variant); + } else { + printf("Invalid\n"); + } } else { fprintf(stderr, "Invalid argument: %s\n", argv[1]); return 1;