You've already forked KernelSU-Next
mirror of
https://github.com/KernelSU-Next/KernelSU-Next.git
synced 2025-08-27 23:46:34 +00:00
manager: also detect susfs variant
This commit is contained in:
1
manager/.gitignore
vendored
1
manager/.gitignore
vendored
@@ -8,3 +8,4 @@ captures
|
|||||||
.cxx
|
.cxx
|
||||||
local.properties
|
local.properties
|
||||||
key.jks
|
key.jks
|
||||||
|
setup.sh
|
||||||
@@ -372,15 +372,16 @@ private fun InfoCard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
InfoCardItem(stringResource(R.string.home_kernel),
|
InfoCardItem(
|
||||||
uname.release,
|
label = stringResource(R.string.home_kernel),
|
||||||
|
content = uname.release,
|
||||||
icon = Icons.Filled.Memory,
|
icon = Icons.Filled.Memory,
|
||||||
)
|
)
|
||||||
|
|
||||||
Spacer(Modifier.height(16.dp))
|
Spacer(Modifier.height(16.dp))
|
||||||
InfoCardItem(
|
InfoCardItem(
|
||||||
stringResource(R.string.home_android),
|
label = stringResource(R.string.home_android),
|
||||||
"${Build.VERSION.RELEASE} (${Build.VERSION.SDK_INT})",
|
content = "${Build.VERSION.RELEASE} (${Build.VERSION.SDK_INT})",
|
||||||
icon = Icons.Filled.Android,
|
icon = Icons.Filled.Android,
|
||||||
|
|
||||||
)
|
)
|
||||||
@@ -388,8 +389,8 @@ private fun InfoCard() {
|
|||||||
Spacer(Modifier.height(16.dp))
|
Spacer(Modifier.height(16.dp))
|
||||||
val managerVersion = getManagerVersion(context)
|
val managerVersion = getManagerVersion(context)
|
||||||
InfoCardItem(
|
InfoCardItem(
|
||||||
stringResource(R.string.home_manager_version),
|
label = stringResource(R.string.home_manager_version),
|
||||||
"${managerVersion.first}-next (${managerVersion.second})",
|
content = "${managerVersion.first}-next (${managerVersion.second})",
|
||||||
icon = Icons.AutoMirrored.Filled.Article,
|
icon = Icons.AutoMirrored.Filled.Article,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -405,7 +406,7 @@ private fun InfoCard() {
|
|||||||
if (suSFS != "Unsupported") {
|
if (suSFS != "Unsupported") {
|
||||||
InfoCardItem(
|
InfoCardItem(
|
||||||
label = stringResource(R.string.home_susfs_version),
|
label = stringResource(R.string.home_susfs_version),
|
||||||
content = getSuSFSVersion(),
|
content = "${getSuSFSVersion()} (${getSuSFSVariant()})",
|
||||||
icon = Icons.Filled.SettingsSuggest,
|
icon = Icons.Filled.SettingsSuggest,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,14 +127,18 @@ private fun getSuSFSPath(): String {
|
|||||||
fun getSuSFS(): String {
|
fun getSuSFS(): String {
|
||||||
val shell = getRootShell()
|
val shell = getRootShell()
|
||||||
val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} support")
|
val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} support")
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getSuSFSVersion(): String {
|
fun getSuSFSVersion(): String {
|
||||||
val shell = getRootShell()
|
val shell = getRootShell()
|
||||||
val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} version")
|
val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} version")
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getSuSFSVariant(): String {
|
||||||
|
val shell = getRootShell()
|
||||||
|
val result = ShellUtils.fastCmd(shell, "${getSuSFSPath()} variant")
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -5,10 +5,12 @@
|
|||||||
|
|
||||||
#define KERNEL_SU_OPTION 0xDEADBEEF
|
#define KERNEL_SU_OPTION 0xDEADBEEF
|
||||||
#define CMD_SUSFS_SHOW_VERSION 0x555e1
|
#define CMD_SUSFS_SHOW_VERSION 0x555e1
|
||||||
|
#define CMD_SUSFS_SHOW_VARIANT 0x555e3
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
int error = -1;
|
int error = -1;
|
||||||
char version[16];
|
char version[16];
|
||||||
|
char variant[16];
|
||||||
|
|
||||||
// Check for arguments
|
// Check for arguments
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
@@ -17,26 +19,30 @@ int main(int argc, char *argv[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If 'version' is given, show version
|
// If 'version' is given, show version
|
||||||
if (strcmp(argv[1], "version") == 0) {
|
if (strcmp(argv[1], "support") == 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) {
|
|
||||||
prctl(KERNEL_SU_OPTION, CMD_SUSFS_SHOW_VERSION, version, NULL, &error);
|
prctl(KERNEL_SU_OPTION, CMD_SUSFS_SHOW_VERSION, version, NULL, &error);
|
||||||
if (!error) {
|
if (!error) {
|
||||||
if (version[0] == 'v') {
|
if (version[0] == 'v') {
|
||||||
printf("Supported\n");
|
printf("Supported\n");
|
||||||
} else {
|
|
||||||
printf("Unsupported\n");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
printf("Unsupported\n");
|
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 {
|
} else {
|
||||||
fprintf(stderr, "Invalid argument: %s\n", argv[1]);
|
fprintf(stderr, "Invalid argument: %s\n", argv[1]);
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user