# IntelliRAT v0.2 Systemless Magisk controller for automatic, reversible Android 16 network-profile changes. It does not modify `/system`, `/system_ext`, `/vendor`, RIL, modem firmware or framework. ## Scope - Backend: Android 16 `cmd phone set-allowed-network-types-for-users`. - Target: one slot at a time, default slot `0`. - HIGH: LTE + UMTS/HSPA + GSM families. - LOW: UMTS/HSPA + GSM families. - Safety: capture/restore, active-call refusal, result verification and event log. - No Xposed or Vector. The companion APK source is included under `app/`; the module zip includes it only after the AOSP app build produces `system/app/IntelliRAT/IntelliRAT.apk`. The binary masks are derived from the LOS23/A16 `TelephonyManager` constants: network type bits are `1 << (NETWORK_TYPE - 1)`, with LTE CA normalized to LTE. They must be treated as target-build data, not a universal Qualcomm constant. ## Install on GOLDEN only Do not install this in the production ROM or on LAB yet. Build a Magisk module zip with `scripts/build-intellirat-module.sh`, install it on GOLDEN with a test SIM, and keep the known-good ROM available. GOLDEN now detects the inserted test SIM as `LOADED` on `SIMon mobile`. After Magisk loads the module: ```text su -g 2000 -G 2000 -c /system/bin/intellirat status 0 su -g 2000 -G 2000 -c /system/bin/intellirat capture 0 su -g 2000 -G 2000 -c /system/bin/intellirat --dry-run high 0 su -g 2000 -G 2000 -c /system/bin/intellirat high 0 su -g 2000 -G 2000 -c /system/bin/intellirat status 0 su -g 2000 -G 2000 -c /system/bin/intellirat low 0 su -g 2000 -G 2000 -c /system/bin/intellirat restore 0 ``` `capture` must be run before a transition. `restore` uses the captured user mask and does not guess a stock mode. `events.log` is stored under `/data/local/tmp/intellirat/`. The prototype uses the root-owned `shell` group for this small network-mask state because MagiskSU drops DAC capabilities for `su` commands; no credentials or private data are stored. When the companion APK is present, launch **IntelliRAT** from the app drawer. It shows the current backend result, slot selector, automatic toggle, delay, foreground-package exceptions, capture/HIGH/LOW/restore buttons and a persistent status notification with quick actions. The automatic policy uses lock delay, unlock restoration and a safe call guard. ## Not implemented yet - traffic protection - multi-SIM/eSIM UI and subscription discovery - Quick Settings tile The current automatic policy is deliberately limited to Keyguard lock state, a configurable delay and explicit foreground-package exceptions. Wi-Fi, battery, traffic and multi-SIM rules remain disabled until their real device behavior is specified and tested with calls, IMS, SMS, data and signal loss.