Repository navigation
This update fixes Country apply/Restore failures when another UiAutomation client is already registered, and removes the unsafe automatic UICC disable/enable recovery sequence reported in #2.
- Country operations now use a per-run shell permission handshake without opening an accessibility automation connection. Restore can finish and release a pending session so Start disguise becomes available again.
- Restore never automatically switches UICC applications off. It observes IMS for up to 15 seconds and reports when registration remains unconfirmed.
- Failed results name the Country or Network layer. Missing/failed IMS observations no longer appear as registered in diagnostics. Recovery guidance is updated in all 15 languages.
Validation: 43 unit tests passed; debug lint has 0 errors and 12 private-API warnings; debug, release and Android-test APK builds passed. On an SM-S938B / Android 17, repeated Country-only apply/restore cycles and a seeded pending journal recovered correctly. The exact signed APK was installed over 4.0.0 with the same certificate; the real stuck pending session was restored and Start became available again. A further Country-only apply/restore cycle passed in the signed app. Scoped permissions were independently checked after both debug and signed Restore and were no longer delegated. Full Android UI automation tests were compiled, not run.
Network disguise still changes the SIM identity globally and can break IMS/VoLTE on reconnect (#3, #4); this release does not claim to remove that limitation. A SIM already persistently disabled by 4.0.0 needs explicit re-enabling; reboot alone is insufficient. Other device/firmware combinations require further validation.
Detailed validation · IMS investigation
Install the APK as an update to 4.0.0. The signing identity and application ID are unchanged.