# Android v1 release checklist Run the automated target-host gate first: ```bash ./scripts/verify-linux.sh ``` Pass a device id from `phonecamctl devices` when more than one phone is ready: ```bash ./scripts/verify-linux.sh 'adb:PHONE_SERIAL' ``` The script proves that the user service is active, every dependency is present, `/dev/video50` has the exact `Omarchy Phone Camera` label, a selected phone reaches streaming state, three live frames can be consumed, disconnect stops the phone stream, and the privacy producer supplies frames afterward. The following checks require real applications or physical state changes and must be completed on an Omarchy machine before a public release: - [ ] `omarchy plugin validate .` passes on the target Omarchy version. - [ ] The service and bar icon load without QML warnings in `journalctl --user`. - [ ] An unauthorized USB-debugging phone appears in the yellow approval state and becomes ready after approval without restarting the shell. - [ ] A phone in native Android **Webcam** mode is detected as UVC; built-in and unrelated USB webcams do not appear in the phone list. - [ ] Google Meet in Chromium lists **Omarchy Phone Camera** and displays the live phone feed. - [ ] Google Meet in Firefox lists the same persistent output. - [ ] Zoom lists and displays the output. - [ ] Discord or Slack lists and displays the output. - [ ] OBS lists and captures the output. - [ ] The panel's **Record screen** action starts Omarchy recording with `/dev/video50`, even when an Intel IPU Bayer node is `/dev/video0`. - [ ] Front and rear camera selection work on an Android 12+ `scrcpy` device. - [ ] 720p and 1080p work at the default 30 fps. - [ ] Rotation and mirroring are correct in portrait and landscape. - [ ] Torch toggles only on a supported rear camera. - [ ] The panel shutter and `phonecamctl snapshot` save a JPEG from a connected phone. - [ ] USB unplug switches to the black privacy frame without changing the selected camera in an open call. - [ ] Reconnecting the trusted phone resumes the stream. - [ ] A manually stopped phone stays stopped until it is unplugged or explicitly selected again. - [ ] `systemd-inhibit --list --no-pager` shows Omacam holding a delay inhibitor for sleep. - [ ] Suspend stops `scrcpy`; resume restores privacy or reconnects a trusted phone. - [ ] Locking the Omarchy session stops the phone stream. - [ ] A second physical webcam remains selectable and is never mistaken for the permanent output. - [ ] Disabling/removing the plugin stops all video producers after the watcher grace period. - [ ] `./uninstall-host.sh` stops the service and unloads `v4l2loopback` when it is not used elsewhere. For Wi-Fi, repeat the live-frame portion after pairing and connecting through Android Wireless debugging. Reboot the phone once to confirm the documented expectation that Wireless debugging may need to be re-enabled.