fix(spoof): order spoofers before keystore hook

BootStateManager.apply and PatchLevelManager.initialize ran after
initializeInterceptors, so keystore2 cached ro.boot.* and
ro.build.version.security_patch from the un-spoofed values during
hook init. Move both before the interceptor so the hook sees the
spoofed snapshot. ConfigurationManager stays between them since
it only loads files and is independent of prop state.
This commit is contained in:
Enginex0
2026-05-19 05:04:36 +01:00
parent a0e7fcf400
commit 37179bbbfc
@@ -42,13 +42,18 @@ object App {
try {
prepareEnvironment()
// Initialize and start the appropriate keystore interceptors.
initializeInterceptors()
// Spoof boot-state and patch-level props before any hook attaches,
// so keystore2's cached snapshot reflects the spoofed values.
BootStateManager.apply()
PatchLevelManager.initialize()
// Load the package configuration.
ConfigurationManager.initialize()
BootStateManager.apply()
PatchLevelManager.initialize()
// Initialize and start the appropriate keystore interceptors.
initializeInterceptors()
// Set up the device's boot key and hash, which are crucial for attestation.
AndroidDeviceUtils.setupBootKeyAndHash()