manager: also detect susfs variant

This commit is contained in:
Rifat Azad
2024-12-23 01:07:21 +06:00
parent 74876b3b40
commit 2538f51bb4
5 changed files with 32 additions and 20 deletions

View File

@@ -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;