63 lines
2.7 KiB
Markdown
63 lines
2.7 KiB
Markdown
# 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.
|