vpnhide/testdata/storage_config_v1.json
okhsunrog a3fc3bac9c fix(activator): tolerate per-hook Java selection in canonical config
The app writes a per-app Java hook selection as a string array ("java":
["lsposed_network", ...]), the same shape as "native". The Rust activator
typed "java" as a plain bool, so serde rejected the whole canonical with
'invalid type: sequence, expected a boolean'. Because the native activator
parses the entire config, a partial Java selection for a single app silently
disabled the kmod/KPM/Zygisk backend for every app.

The activator never acts on "java" (LSPosed self-reads and owns Java hook
selection), it only needs to parse it. Accept both the bool and the array
form, collapsing to enabled-ness.

- activator: de_bool_or_hook_list deserializer for the java field; regression
  test covering the array form (and an empty array = disabled), asserting
  native projection is unaffected
- testdata/storage_config_v1.json: give org.example.proxy a per-hook java
  array so the shared Rust+Kotlin parity fixture exercises the shape that
  previously slipped through; update both fixture assertions
2026-06-29 18:03:01 +03:00

15 lines
581 B
JSON

{
"version": 1,
"debug": true,
"apps": {
"com.example.bank": { "java": true, "native": true, "appHiding": false, "ports": false },
"dev.okhsunrog.vpnhide": { "java": true, "native": true, "appHiding": false, "ports": false, "hidden": true },
"org.example.proxy": { "java": ["lsposed_network_capabilities", "lsposed_network_info"], "native": ["fib_route_seq_show", "sock_ioctl"], "appHiding": true, "ports": true }
},
"settings": {
"rememberSuperkey": true,
"autoHideVpnServices": true,
"autoHideVpnName": false,
"autoHiddenPackages": []
}
}