# ADR 0005: Owner-controlled LixelGO/iPhone observation - Status: accepted - Date: 2026-07-16 - Supersedes: only the unavailable-phone assumption in ADR 0001 ## Context ADR 0001 correctly described the original stand: no phone and no LixelGO were available, so they could not be dependencies or test oracles. An owner-controlled iPhone with LixelGO is now available for a new, evidence-only experiment. The previous no-phone results remain valid historical evidence. An ordinary third client on the mesh Wi-Fi cannot normally observe unicast traffic between the iPhone and K1. Apple's native Remote Virtual Interface path requires `rvictl`, which is installed by full Xcode and is absent from the current Mac. Installing full Xcode solely for the first capture is unnecessary. ## Decision The XGRIDS plugin may use a pinned, isolated `pymobiledevice3` lab environment to read the iPhone `pcapd` service over a trusted USB connection. This mirrors the iPhone IP stack while the phone remains connected to K1 over Wi-Fi. It is a lab subprocess, not a root Mission Core dependency. The experiment is evidence-only: - no TLS interception or MITM certificate; - no app automation; - no new BLE or MQTT write; - no router, firmware, device-file, or application mutation; - no camera or command semantic claim until bounded decode and a controlled physical correlation are both present. Network capture does not include BLE HCI. Bluetooth capture is a separate gate that requires Apple's diagnostic logging profile, explicit operator approval, and removal of that profile after the experiment. All captures are sensitive, mode `0600`, bounded in duration, stored under ignored `sessions/`, hashed, and represented in Git/Ops only by redacted facts. No device ID, credential, SSID, router metadata, or raw packet payload enters normal Git history. ## Entry gate LixelGO/iPhone observation starts only after ADR 0004's post-refactor physical regression succeeds on exact firmware `3.0.2` and direct-LAN: 1. operator attestation; 2. prepare the receiver; 3. physical double-click start; 4. first real point frame and pose through the new normalizer/viewer path; 5. raw evidence finalization; 6. operator-confirmed physical stop; 7. verification that Mission Core emitted no K1 application command. ## Consequences Full Xcode, `rvictl`, Wireshark, and system/Homebrew changes are not required for the first IP capture. TLS or proprietary encryption may remain opaque; endpoint, port, size, timing, interface, process, and plaintext local protocol evidence are still useful. Any discovered state-changing contract requires a new profile revision and its own acceptance gate before implementation. ## Outcome recorded on 2026-07-16 Lab 002 completed the bounded observation. It found a plaintext local MQTT data and control plane plus two RTSP/H.264 camera preview endpoints. Owner-operated LixelGO start and stop were correlated with bounded protobuf action values `1` and `2`, device success responses, physical K1 transitions and start/stop of the high-rate streams. No LixelGO WAN flow was observed in either principal window. This outcome updates descriptive evidence only. Mission Core still emits no modeling request: private header/settings construction, save-complete semantics, timeouts and rollback remain unresolved. See `docs/lab/002_LIXELGO_IPHONE_LOCAL_PROTOCOL_20260716.redacted.md`.