SIM Change Detection — Android Background Service Continuously monitor SIM state changes to help mitigate SIM-swap account takeovers. Runs silently in the background and sends only non-sensitive metadata for risk scoring. High-level flow User installs/opens the banking app with the SDK. A lightweight background service starts automatically (and after reboots). Service periodically checks SIM state allowed by Android. If the current SIM differs from the baseline, an event is triggered. Event (NO_CHANGE | SIM_CHANGED | UNKNOWN) + session metadata is sent securely to the backend.   Required permission (AndroidManifest.xml) Notes: Android 10+ restricts some identifiers; behavior varies by OEM. Event types NO_CHANGE — SIM unchanged SIM_CHANGED — SIM differs from baseline UNKNOWN — SIM info unavailable on device/OS Example payload to backend { "device_id": "abcd-1234", "timestamp": "2025-09-16T15:00:00Z", "sim_status": "SIM_CHANGED", "carrier": "CarrierName", "os_version": "Android 14", "sdk_version": "2.1.0" } Security & privacy No SMS/contacts/phone numbers are read; only SIM status + technical metadata. TLS 1.2+ for transport; designed for data minimization. Limitations & compatibility Android-only; newer Android versions/OEMs may mask info. Dual-SIM devices may complicate detection; not available on iOS. Maintain a tested device/OS compatibility list and validate before rollout. Next steps Add permission. 2) Initialize background service at app start. 3) Ingest events server-side. 4) Combine with other signals for scoring. 5) Validate on your device matrix pre-production.