SigBypass Dropdown

This commit is contained in:
Nullptr 2022-03-03 10:24:22 +08:00
parent 4b7d644c43
commit bfd4fb12d0
2 changed files with 34 additions and 7 deletions

View File

@ -161,6 +161,15 @@ private fun ConfiguringFab(onClick: () -> Unit) {
)
}
@Composable
private fun sigBypassLvStr(level: Int) = when (level) {
0 -> stringResource(R.string.patch_sigbypasslv_0)
1 -> stringResource(R.string.patch_sigbypasslv_1)
2 -> stringResource(R.string.patch_sigbypasslv_2)
else -> throw IllegalArgumentException("Invalid sigBypassLv: $level")
}
@OptIn(ExperimentalMaterial3Api::class)
@Composable
private fun PatchOptionsBody(
modifier: Modifier,
@ -174,7 +183,7 @@ private fun PatchOptionsBody(
var v1 by rememberSaveable { mutableStateOf(false) }
var v2 by rememberSaveable { mutableStateOf(true) }
var v3 by rememberSaveable { mutableStateOf(true) }
val sigBypassLevel by rememberSaveable { mutableStateOf(2) }
var sigBypassLevel by rememberSaveable { mutableStateOf(2) }
var overrideVersionCode by rememberSaveable { mutableStateOf(false) }
val embeddedModules = navController.currentBackStackEntry!!
.savedStateHandle.getLiveData<SnapshotStateList<AppInfo>>("selected", SnapshotStateList())
@ -246,11 +255,27 @@ private fun PatchOptionsBody(
onClick = { v3 = !v3 },
title = stringResource(R.string.patch_v3)
)
SettingsItem(
onClick = { /*TODO*/ },
title = stringResource(R.string.patch_sigbypasslv),
desc = stringResource(R.string.patch_sigbypasslv_desc)
)
Box {
var expanded by remember { mutableStateOf(false) }
SettingsItem(
onClick = { expanded = true },
title = stringResource(R.string.patch_sigbypasslv),
desc = sigBypassLvStr(sigBypassLevel)
)
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
repeat(3) {
DropdownMenuItem(
text = {
Row(verticalAlignment = Alignment.CenterVertically) {
RadioButton(selected = sigBypassLevel == it, onClick = { sigBypassLevel = it })
Text(sigBypassLvStr(it))
}
},
onClick = { sigBypassLevel = it }
)
}
}
}
SettingsCheckBox(
checked = overrideVersionCode,
onClick = { overrideVersionCode = !overrideVersionCode },

View File

@ -23,7 +23,9 @@
<string name="patch_v2">V2 signature</string>
<string name="patch_v3">V3 signature</string>
<string name="patch_sigbypasslv">Signature bypass level</string>
<string name="patch_sigbypasslv_desc">lv0: off\nlv1: bypass pm\nlv2: bypass openat (libc)</string>
<string name="patch_sigbypasslv_0">lv0: Off</string>
<string name="patch_sigbypasslv_1">lv1: Bypass PM</string>
<string name="patch_sigbypasslv_2">lv2: Bypass PM + openat (libc)</string>
<string name="patch_override_version_code">Override version code</string>
<string name="patch_override_version_code_desc">Override the patched app\'s version code to 1\nThis allows downgrade installation</string>
<string name="patch_start">Start Patch</string>