Skip to content

API 33 legacy preprocessor session evidence

Date: 2026-07-16 Device: emulator-5554, Android API 33, x86_64, SELinux enforcing

Not feature-complete evidence

The module-independent gates below pass (companion identity/policy, one-way PID-0 rejection, synchronous v7 registration/drain, deterministic injected-audio baseline). The enabled DSP/HMAC/replay proof is BLOCKED: this emulator still carries an incomplete old Magisk install (mislabeled trust key, live AVC denials), and the final verified ZIP was never boot-completed here. No claim of functional legacy input DSP follows from this run.

Result

Gate Result Evidence
Companion setup identity and compatibility policy PASS LSPosed owner and v7 policy published
Raw FLAG_ONEWAY registration with Binder PID 0 PASS Rejected before handoff callbacks
Normal synchronous v7 registration and owner drain PASS Generation 30; handoff token 1
Deterministic injected-audio baseline PASS RMS 4799.94; peak 12000; 1 kHz magnitude 3745.03
Enabled DSP, ECHT v2 HMAC, replay/tamper/stale-nonce proof BLOCKED Current module lifecycle is not ready

The PASS gates above are module-independent. They do not prove that the legacy effect attached or mutated audio.

The baseline used 100 raw-stdin gRPC packets of 960 signed 16-bit mono samples at 48 kHz through the emulator's official EmulatorController.injectAudio method. The API v7 result recorded oneWayPidZeroRejected=true, provider generation 30, and the non-silent measurements above.

Running the enabled method without readiness arguments produced AndroidJUnitRunner status -4 with actual=null/null/null/null/null/null. The cache file list, timestamps, and provider handoff state were identical before and after, proving that the assumption occurred before evidence cleanup, provider registration, or effect work.

Current module blocker

The emulator has no /data/adb/modules/echidna/module.prop. Its mounted effect key is still labeled u:object_r:system_file:s0, not u:object_r:echidna_telemetry_key_file:s0:

text -r--r----- 1 root audio u:object_r:system_file:s0 32 2026-07-16 10:34 preprocessor_telemetry_hmac.key

The exact enforcing-SELinux denial captured from the audio HAL is:

text type=1400 audit(0.0:132): avc: denied { read } for comm="binder:7111_2" name="preprocessor_telemetry_hmac.key" dev="dm-34" ino=65936 scontext=u:r:hal_audio_default:s0 tcontext=u:object_r:system_file:s0 tclass=file permissive=0

The controller SPKI is affected by the same incomplete install:

text type=1400 audit(0.0:133): avc: denied { read } for comm="binder:7111_2" name="preprocessor_controller_p256.spki" dev="dm-34" ino=65935 scontext=u:r:hal_audio_default:s0 tcontext=u:object_r:system_file:s0 tclass=file permissive=0

Source commit ed8fb3a fixes the HMAC key-label lifecycle, but it does not fix the separate controller-SPKI label shown above. The reproducible ZIP from that commit is build/echidna-selinux-key-final-a.zip, SHA-256 02785906A7ECC3AD74D87894A23BAC7DE1128F3725327CFB8137751693948257. That ZIP has not been installed or boot-completed on this emulator, and it remains incomplete for the SPKI denial.

Production commit 274c4c5 adds the corresponding controller-SPKI lifecycle fix. Final packaging HEAD cea16af9a4a617e6277b5e55cfb5bf2619ebaf0f hardens verification of the complete artifact. The final reproducible ZIP was independently verified at SHA-256 54dd0e373fbc3bc050dd8147ffdfbc6ea613d050dcaf36f09ea3e59ebd95834f, but it was not installed or boot-completed on this emulator. The live device therefore still represents the incomplete old Magisk install and both AVCs above, not the final source/package fixes.

The enabled instrumentation test therefore assumption-skips before provider/effect work unless the host supplies the exact ready, module ID, version, version code, source commit, and ZIP hash tuple. The host may supply that tuple only after verifying the installed module, completed reboot, key label/read access, and absence of relevant AVCs. Once supplied, effect attachment, authorization, capability issuance, audio mutation, HMAC, replay, tamper, and stale-nonce failures are hard failures.

Completion statement

This is not feature-complete evidence. A boot-completed install of the final verified ZIP and a green enabled proof are still required before claiming functional legacy input DSP on API 33.