# Android Control Matrix Orchestrator `scripts/adb_control_matrix_orchestrator.mjs` is the batch runner for: 1. Discovering ADB devices (USB + wireless) 2. Deduplicating transports for one physical phone 3. Installing APK 4. Launching app 5. Mapping ADB device to server `deviceId` 6. Running control-panel smoke test 7. Applying ROM-specific recovery actions and retrying ## Quick start Run with defaults: ```bash npm run autotest:android-control ``` Dry run: ```bash npm run autotest:android-control -- --dry-run --max-devices 2 ``` Single device: ```bash npm run autotest:android-control -- --only-serials 271d9738 ``` ## Common options - `--build-apk`: build debug APK before testing - `--apk `: custom APK path - `--server-http `: override server HTTP endpoint - `--socket-url `: override socket endpoint for smoke script - `--max-devices `: limit tested devices - `--attempts `: override retry attempts - `--skip-install`: skip APK install stage - `--report `: save matrix JSON to custom path ## ROM profile strategy Built-in rule profiles: - `oppo_family` - `vivo_iqoo` - `xiaomi_hyperos` - `huawei_honor` - `default` Each profile controls: - max attempts - warning tolerance - settle/wait timeout - recovery action sequence ## Output The matrix report contains: - selected serial and deduped transports - resolved `deviceId` mapping logic - per-attempt install/launch/online/smoke details - final pass/fail summary