Files
AXP-Resurection/specs/008-call-rec-flag-secure/research.md
T
sunfish-admin 12d2179c20 AXP Magisk resurrection track: Speckit 009 port AXP/LOS22 to LOS23.
Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
2026-09-16 21:56:22 +00:00

62 lines
2.3 KiB
Markdown

# Research: `008-call-rec-flag-secure`
## Decision: Call-rec = AXP GOLDEN / EXTENDROM native model
**Decision**: Port EXTENDROM `F_CALLREC` (same behaviour as AXP GOLDEN), not
Magisk Dialer RRO.
**GOLDEN evidence**: LAB dump already has
`extendrom_call_recording=1` in
`.local-artifacts/002-golden/20260915-spoofing-phonesky/settings/secure-*.txt`.
**Mechanism** (`/srv/rom/references/extendrom/er.sh`):
1. Overlay Dialer `config.xml`: `call_recording_enabled=true`,
`call_recording_audio_source=4`.
2. Settings DO: category + legal info + switch
`extendrom_call_recording`.
3. Controllers: `ER_CallRecPreferenceController` /
`ER_CallRecInfo` → `Settings.Secure.ER_ALLOW_ANY_CALL_REC`.
4. `Settings.java`:
`ER_ALLOW_ANY_CALL_REC = "extendrom_call_recording"`.
5. Dialer `CallRecorder.canRecordInCurrentCountry()`: if Secure int == 1,
return `true` before country XML map.
**Secure key (product)**: `extendrom_call_recording` (GOLDEN-compatible).
Do **not** invent `allow_call_recording_any_region` for call-rec.
**Alternatives rejected**:
- Magisk static RRO of `call_record_states.xml` — always-on, not native ROM,
no DO parity with GOLDEN.
- Blind A11 overlay-only without Dialer Java gate — may no-op on A16.
## Decision: FLAG_SECURE = AOSP `disable_secure_windows` + DO
**Decision**: Do **not** invent a second frameworks hook. LOS 23.2 / A16 already
has `Settings.Secure.DISABLE_SECURE_WINDOWS` wired through
`WindowManagerService` → `WindowState.isSecureLocked()`. Ship a Developer
Options switch (preference key `allow_flag_secure_override`) that writes
`disable_secure_windows`.
**Constraint**: WMS applies the setting only on debuggable builds
(`ro.debuggable`). LAB `userdebug` is in scope; `user` retest before release.
**Alternatives rejected**: Magisk `services.jar` dex patchers as shipping
mechanism.
## Decision: Packaging = `vendor/sunfish-a16` apply like `005`
Idempotent script under `patches/008-call-rec-flag-secure/`, EXTENDROM/`er.sh`
attribution for call-rec.
## Decision: Combined feature directory
One Spec Kit feature absorbs roadmap `008` + `009`.
## Decision: No Magisk artifacts in the repo
Owner-supplied Magisk zips were temporary agent aids only; removed from the
working tree. Implementation references EXTENDROM + GOLDEN dumps + A16 source
inventory.