# LixelGO / iPhone observation runbook This runbook prepares the Mac without full Xcode and defines the first bounded, read-only capture. The accepted decision is ADR 0005. Do not start the iPhone experiment until the exact-profile physical regression in ADR 0004 passes. ## Current Mac baseline - macOS 26.5.1, Apple Silicon; - Xcode Command Line Tools 16.4 are present; - full Xcode and `rvictl` are absent; - built-in `tcpdump` and `uv` are present; - Wireshark/tshark are not required for capture; - the isolated lab uses Python 3.12 and `pymobiledevice3==9.36.0`. ## Preparation ```bash uv sync --project plugins/xgrids-k1/lab/iphone-capture --frozen uv run --project plugins/xgrids-k1/lab/iphone-capture --frozen \ pymobiledevice3 version ``` Expected version: `9.36.0`. Connect one unlocked iPhone using a data cable, approve the Mac accessory prompt, and tap **Trust This Computer**. Do not paste a UDID into Terminal or notes. ```bash uv run --project plugins/xgrids-k1/lab/iphone-capture --frozen \ python plugins/xgrids-k1/lab/iphone-capture/preflight.py ``` ## First smoke without K1 After the iPhone preflight succeeds, run a 10-second idle capture only after the current source milestone is committed or with an explicitly recorded dirty-tree fingerprint: ```bash uv run --project plugins/xgrids-k1/lab/iphone-capture --frozen \ python plugins/xgrids-k1/lab/iphone-capture/capture.py \ --duration 10 ``` The tool retains the original metadata-bearing `PCAPNG` and creates a compatible classic `PCAP`. Validate the latter with built-in `tcpdump`: ```bash tcpdump -nn -r sessions/iphone-k1-observation//captures/iphone-network.pcap -c 1 ``` After the capture and operator timeline are both closed, seal the complete session without rewriting the capture manifest: ```bash uv run python plugins/xgrids-k1/lab/iphone-capture/session_integrity.py \ sessions/iphone-k1-observation/ ``` The derived private inventory verifies all manifest hashes and also hashes the late operator-event artifact when it exists. ## Full baseline sequence 1. Complete the ADR 0004 physical K1 regression without LixelGO. 2. Close unrelated iPhone apps and pause unrelated network activity. 3. Keep the iPhone on the K1/shared Wi-Fi while USB remains connected to Mac. 4. Start a bounded 60–180 second network capture. 5. Perform one predefined LixelGO action at a recorded monotonic offset. 6. Stop and retain the raw capture; analyze only offline. 7. Record endpoints, ports, sizes, timing and correlation before interpreting a payload as a command, image, or model frame. The first baseline does not install the Bluetooth logging profile. BLE/HCI is a separate operator-approved experiment.