From c777a9ec8a76097443bd827435a3fae20d8251fb Mon Sep 17 00:00:00 2001 From: Danny Date: Thu, 22 Oct 2026 15:37:20 -0700 Subject: [PATCH] iOS: Add the Galaxy companion with live device pages and CarPlay Add LAN and Bluetooth connections, secure pairing, device-matched Galaxy page caching, phone location and CarPlay navigation. Include connection recovery, diagnostics, regression tests and a simulator CI build. Add shared companion docs and host tests, and remove obsolete bundled-web lint exceptions. --- .gitattributes | 1 - .github/workflows/ios-companion.yaml | 69 ++ openpilot/starpilot/companion/README.md | 125 +++ openpilot/starpilot/companion/ios/.gitignore | 5 + .../starpilot/companion/ios/CARPLAY-PILOT.md | 16 + .../GalaxyBluetooth.xcodeproj/project.pbxproj | 301 ++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/GalaxyBluetooth.xcscheme | 77 ++ .../ios/GalaxyBluetooth/AudioPairing.swift | 149 ++++ .../GalaxyBluetooth/AudioPairingSheet.swift | 37 + .../GalaxyBluetooth/BluetoothTransport.swift | 579 ++++++++++++++ .../ios/GalaxyBluetooth/CarPlay.entitlements | 8 + .../CarPlaySceneDelegate.swift | 554 ++++++++++++++ .../ios/GalaxyBluetooth/ClaimPairing.swift | 234 ++++++ .../CompanionDiagnostics.swift | 348 +++++++++ .../ConnectionSettingsView.swift | 280 +++++++ .../GalaxyBluetooth/GalaxyAssetStore.swift | 162 ++++ .../GalaxyBluetooth/GalaxyBluetoothApp.swift | 722 ++++++++++++++++++ .../GalaxyRequestTransport.swift | 124 +++ .../ios/GalaxyBluetooth/GalaxyWebView.swift | 463 +++++++++++ .../companion/ios/GalaxyBluetooth/HTTP.swift | 76 ++ .../companion/ios/GalaxyBluetooth/Info.plist | 83 ++ .../ios/GalaxyBluetooth/LANDiscovery.swift | 126 +++ .../ios/GalaxyBluetooth/LoopbackServer.swift | 398 ++++++++++ .../GalaxyBluetooth/NetworkTransport.swift | 326 ++++++++ .../ios/GalaxyBluetooth/PairingCode.swift | 13 + .../ios/GalaxyBluetooth/PairingKeyStore.swift | 73 ++ .../ios/GalaxyBluetooth/PhoneLocation.swift | 94 +++ .../ios/GalaxyBluetooth/PrivacyInfo.xcprivacy | 25 + .../ios/GalaxyBluetooth/PrivateLANHTTP.swift | 185 +++++ .../AppIcon.appiconset/Contents.json | 14 + .../AppIcon.appiconset/StarPilotIcon.png | Bin 0 -> 542271 bytes .../Contents.json | 16 + .../bluetooth.svg | 13 + .../ConnectionNetwork.imageset/Contents.json | 16 + .../ConnectionNetwork.imageset/network.svg | 17 + .../ConnectionWiFi.imageset/Contents.json | 16 + .../ConnectionWiFi.imageset/wifi.svg | 16 + .../Resources/Branding.xcassets/Contents.json | 6 + .../StarPilotHero.imageset/Contents.json | 12 + .../StarPilotHero.imageset/StarPilot.png | Bin 0 -> 472016 bytes .../StarPilotMark.imageset/Contents.json | 12 + .../StarPilotMark.imageset/StarPilotMark.png | Bin 0 -> 270765 bytes .../Resources/Lucide-LICENSE.txt | 43 ++ .../GalaxyBluetooth/Resources/Sora-OFL.txt | 93 +++ .../ios/GalaxyBluetooth/Resources/Sora.ttf | Bin 0 -> 111400 bytes .../companion/ios/GalaxyBluetooth/Wire.swift | 194 +++++ .../starpilot/companion/ios/QUICK-START.md | 35 + openpilot/starpilot/companion/ios/README.md | 24 + .../starpilot/companion/ios/TESTER-GUIDE.md | 37 + .../companion/ios/UPSTREAM-GALAXY-LICENSE | 7 + .../companion/ios/ci_scripts/ci_post_clone.sh | 54 ++ .../starpilot/companion/ios/docs/privacy.md | 39 + .../ios/tests/AudioPairingRegression.swift | 108 +++ .../tests/CarPlayNavigationRegression.swift | 67 ++ .../ios/tests/ClaimPairingRegression.swift | 45 ++ .../ios/tests/GalaxyReadCacheRegression.swift | 79 ++ .../ios/tests/LANPairingRegression.swift | 33 + .../tests/LoopbackRecoveryRegression.swift | 102 +++ .../ios/tests/PairingPhoneRegression.swift | 50 ++ .../ios/tests/PhoneLocationRegression.swift | 57 ++ .../tests/SecretGoodAssetsRegression.swift | 91 +++ .../ios/tests/SecretGoodLANRegression.swift | 137 ++++ .../ios/tests/ToggleSearchRegression.mjs | 71 ++ .../companion/ios/tests/check_lan_contract.py | 13 + .../ios/tests/extract_bluetooth_reads.py | 56 ++ .../ios/tests/extract_carplay_navigation.py | 19 + .../ios/tests/extract_claim_transport.py | 121 +++ .../ios/tests/extract_connection_monitor.py | 79 ++ .../ios/tests/extract_legacy_link.py | 21 + .../starpilot/companion/run_host_tests.py | 75 ++ pyproject.toml | 2 +- scripts/lint/check_added_large_files.py | 1 - 73 files changed, 7548 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/ios-companion.yaml create mode 100644 openpilot/starpilot/companion/README.md create mode 100644 openpilot/starpilot/companion/ios/.gitignore create mode 100644 openpilot/starpilot/companion/ios/CARPLAY-PILOT.md create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.pbxproj create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/xcshareddata/xcschemes/GalaxyBluetooth.xcscheme create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/AudioPairing.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/AudioPairingSheet.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/BluetoothTransport.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlay.entitlements create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlaySceneDelegate.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/ClaimPairing.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/CompanionDiagnostics.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/ConnectionSettingsView.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyAssetStore.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyBluetoothApp.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyRequestTransport.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyWebView.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/HTTP.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Info.plist create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/LANDiscovery.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/LoopbackServer.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/NetworkTransport.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingCode.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingKeyStore.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/PhoneLocation.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivacyInfo.xcprivacy create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivateLANHTTP.swift create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/AppIcon.appiconset/Contents.json create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/AppIcon.appiconset/StarPilotIcon.png create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/Contents.json create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/bluetooth.svg create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/Contents.json create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/network.svg create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/Contents.json create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/wifi.svg create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/Contents.json create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotHero.imageset/Contents.json create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotHero.imageset/StarPilot.png create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotMark.imageset/Contents.json create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotMark.imageset/StarPilotMark.png create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Lucide-LICENSE.txt create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Sora-OFL.txt create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Sora.ttf create mode 100644 openpilot/starpilot/companion/ios/GalaxyBluetooth/Wire.swift create mode 100644 openpilot/starpilot/companion/ios/QUICK-START.md create mode 100644 openpilot/starpilot/companion/ios/README.md create mode 100644 openpilot/starpilot/companion/ios/TESTER-GUIDE.md create mode 100644 openpilot/starpilot/companion/ios/UPSTREAM-GALAXY-LICENSE create mode 100644 openpilot/starpilot/companion/ios/ci_scripts/ci_post_clone.sh create mode 100644 openpilot/starpilot/companion/ios/docs/privacy.md create mode 100644 openpilot/starpilot/companion/ios/tests/AudioPairingRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/CarPlayNavigationRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/ClaimPairingRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/GalaxyReadCacheRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/LANPairingRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/LoopbackRecoveryRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/PairingPhoneRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/PhoneLocationRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/SecretGoodAssetsRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/SecretGoodLANRegression.swift create mode 100644 openpilot/starpilot/companion/ios/tests/ToggleSearchRegression.mjs create mode 100644 openpilot/starpilot/companion/ios/tests/check_lan_contract.py create mode 100644 openpilot/starpilot/companion/ios/tests/extract_bluetooth_reads.py create mode 100644 openpilot/starpilot/companion/ios/tests/extract_carplay_navigation.py create mode 100644 openpilot/starpilot/companion/ios/tests/extract_claim_transport.py create mode 100644 openpilot/starpilot/companion/ios/tests/extract_connection_monitor.py create mode 100644 openpilot/starpilot/companion/ios/tests/extract_legacy_link.py create mode 100644 openpilot/starpilot/companion/run_host_tests.py diff --git a/.gitattributes b/.gitattributes index 016185bfd7..bf941bbe75 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,7 +12,6 @@ openpilot/selfdrive/modeld/models/big_*_tinygrad.pkl -text *.woff2 -text *.wav -text openpilot/starpilot/galaxy/web/vendor/vue/vue.esm-browser.js -text -openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Web/vendor/vue/vue.esm-browser.js -text *.apk -text openpilot/starpilot/galaxy/bin/hev-socks5-tunnel_linux_arm64 -text openpilot/starpilot/soloist/pulseaudio/bin/pulseaudio -text diff --git a/.github/workflows/ios-companion.yaml b/.github/workflows/ios-companion.yaml new file mode 100644 index 0000000000..2bba37b383 --- /dev/null +++ b/.github/workflows/ios-companion.yaml @@ -0,0 +1,69 @@ +name: iOS companion + +on: + push: + branches: [SecretGoodStarPilot, secretgood-ios-integration] + paths: + - 'openpilot/starpilot/companion/ios/**' + - 'openpilot/starpilot/galaxy_bluetooth/**' + - '.github/workflows/ios-companion.yaml' + pull_request: + paths: + - 'openpilot/starpilot/companion/ios/**' + - 'openpilot/starpilot/galaxy_bluetooth/**' + - '.github/workflows/ios-companion.yaml' + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ios-companion-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + app: + name: Swift tests and iOS Simulator build + runs-on: macos-26 + timeout-minutes: 25 + defaults: + run: + working-directory: openpilot/starpilot/companion/ios + steps: + - uses: actions/checkout@v4 + with: + submodules: false + lfs: false + persist-credentials: false + - uses: actions/setup-node@v4 + with: + node-version: '22' + - name: Run companion regressions + env: + CI_PRIMARY_REPOSITORY_PATH: ${{ github.workspace }}/openpilot/starpilot/companion/ios + run: sh ci_scripts/ci_post_clone.sh + - name: Build for iOS Simulator + run: >- + xcodebuild -project GalaxyBluetooth.xcodeproj + -scheme GalaxyBluetooth -configuration Debug + -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' + -derivedDataPath "$RUNNER_TEMP/galaxy-ios-build" + CODE_SIGNING_ALLOWED=NO build + + bridge: + name: Comma Bluetooth bridge tests + runs-on: ubuntu-24.04 + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + with: + submodules: false + lfs: false + persist-credentials: false + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: Install bridge test dependencies + run: python -m pip install pycryptodome + - name: Run bridge regressions + run: python -m unittest discover -s openpilot/starpilot/galaxy_bluetooth/tests -v diff --git a/openpilot/starpilot/companion/README.md b/openpilot/starpilot/companion/README.md new file mode 100644 index 0000000000..452ccef901 --- /dev/null +++ b/openpilot/starpilot/companion/README.md @@ -0,0 +1,125 @@ +# StarPilot companion apps + +Phone apps for Galaxy. Both talk to the comma over Wi-Fi/LAN or Bluetooth and +share one pairing key. + +``` +companion/ +├── android/ Android app (Gradle project, build_apk.sh, host tests) +├── ios/ iPhone app (Xcode project, CarPlay, tests) — see ios/README.md +└── run_host_tests.py +``` + +The comma side lives elsewhere: + +- `openpilot/starpilot/galaxy_bluetooth/` — Bluetooth bridge, LAN discovery and + the pairing screen, run by the `galaxy_phone` process. +- `openpilot/starpilot/galaxy/companion*.py` — phone internet sharing. + +Over Bluetooth, pairing, phone internet sharing, APK downloads, recordings, +replay, cameras and map tiles are blocked; they need Wi-Fi. + +## Pairing and phone music + +One step pairs the app and phone music. On comma open Settings → Bluetooth → +**Pair phone**; comma opens a two-minute window that takes one phone. + +Before pairing over Wi-Fi/LAN the app asks comma `GET /api/companion/bluetooth-ready` and waits out a boot or a +Bluetooth bridge restart; it stops with the reason (not parked, Bluetooth off or unavailable) instead of scanning. +If the app already reaches comma over Wi-Fi/LAN, **Add Bluetooth Phone Pairing** (Android) or **Pair with comma** (iPhone) opens that window itself (the call +Galaxy's Bluetooth page makes), so nothing needs touching on comma. Without a Wi-Fi/LAN session it waits for +the window as above. + +- Android: tap **Add Bluetooth Phone Pairing** in the app. If the app can't reach comma over Wi-Fi it first asks you to open + **Pair phone** on comma and keep it open. It then gets its key, bonds for music and shows one system prompt to approve. + The first time Galaxy opens over Wi-Fi/LAN on a phone with no comma key (or an expired one), the app offers + **Add pairing**. It opens comma's pairing window itself, shows each step, and asks for the Nearby devices permission if + needed. **Not now** asks again next launch; **Don't ask again** leaves it to **Add Bluetooth Phone Pairing** in the menu. +- iPhone: tap **Pair with comma** in the app, then tap comma once in + Settings → Bluetooth (iOS cannot start a Bluetooth bond from an app). +- No app: tap comma in the phone's Bluetooth settings to pair music only. + +Forgetting a Bluetooth device in comma Settings also removes its app key. On Android, forgetting comma in the phone's +Bluetooth settings removes the app pairing too, and if comma no longer recognizes the phone's key the app stops retrying +and says the pairing expired until you pair again. Installing +Spotify (`/api/spotify/upload`) is blocked over Bluetooth like the other large uploads. + +## Phone GPS + +Each app can send the phone's GPS to comma about once a second, over Bluetooth or +Galaxy Wi-Fi. Comma carries it inside the navigation message as `phoneGps`, keeps the last fix for +10 seconds, and navigation uses it only when comma's own GPS and the car's GPS have no fix. Galaxy → Navigation → GPS Source can +instead ignore the phone or prefer it; mapd follows the same choice. + +The 10-second hold is an expiry allowance, not an update interval. Navigation +checks for new phone fixes five times a second and forwards each new measurement +at the next check; without new fixes it publishes its usual once-a-second heartbeat. +The car map smooths movement between fixes using speed and heading for at most +2.5 seconds, then holds the position until another fix arrives or the hold expires. +Stationary phones retain the full 10-second allowance without predicted movement. + +- Android: Connections → **Share phone GPS with comma**. Runs as a foreground + service with a notification. + +`POST /api/companion/location` with JSON: `latitude`, `longitude`, +`horizontalAccuracy` (m) and `ageMs` (phone-measured age, at most 2000) are +required; `altitude`, `verticalAccuracy`, `speed`, `speedAccuracy`, `bearing`, +`bearingAccuracy` and `timestamp` (Unix ms) are optional. Leave out unknown +values. Comma dates the fix by its own clock minus `ageMs`, never by `timestamp`. +Refused through the remote tunnel. + +## Android + +Install: join the Galaxy hotspot, open Galaxy → **Galaxy Access & Install** → +**Android companion**, and install the APK. Later updates install from inside +the app: tap **Update app** while connected over Galaxy Wi-Fi/LAN, allow +installation from StarPilot if Android asks, and confirm the Android update dialog. +The APK streams into Android's installer; there is no file to find in Downloads. +After replacement, an **Update installed → Reopen** notification opens the new app. +Enable app notifications for this prompt. If notifications are disabled, open +StarPilot normally; the app confirms the completed update on launch. + +### When an APK rebuild is needed + +| Change | Rebuild Android APK? | +| --- | --- | +| Kotlin/Java code, native bridge, updater, phone GPS, Bluetooth or services | Yes | +| Android manifest, permissions, resources, icons, Gradle config or dependencies | Yes | +| Files in `android/app/src/main/assets/`, including `bluetooth-fetch.js` | Yes | +| Galaxy HTML/CSS/JS used over Bluetooth | No: the app downloads these pages from comma over Wi-Fi/LAN (see below) | +| Galaxy HTML/CSS/JS used over Wi-Fi/LAN | No: screens load from comma | +| Comma-side Python/services/API changes only | No, unless the phone protocol also needs a change | + +### Galaxy screens over Bluetooth + +Neither app bundles Galaxy's pages. Bluetooth Galaxy shows a copy the app saved from comma, so **connect to comma over +Wi-Fi/LAN once** before using Bluetooth. Until then the Bluetooth route says it needs one Wi-Fi visit. + +- Whenever the phone reaches comma over Wi-Fi/LAN (and from **Refresh Galaxy screens** in the menu), the app reads + `GET /api/companion/web-manifest`, which lists every file in `galaxy/web` with its SHA-256 and comma's commit. It downloads + only the files that changed, verifies each hash, and keeps the old copy if anything fails. +- The pages come from comma itself, so custom and unpushed branches work and nothing depends on GitHub. +- If comma updated since the last Wi-Fi visit, Bluetooth still opens the saved copy and says it is from an older comma build. + Join comma's Wi-Fi to refresh. +- A comma without the manifest route is too old to share its screens; update comma. + +### Handing the signing key to another developer + +Updates install over an existing app only when signed with the same `companion.jks`; a different key forces every user to +uninstall first. To pass signing on, copy `~/.starpilot/companion.jks` and `~/.starpilot/companion-signing-password` to the +new developer over a private channel (a password manager share, not git or chat), or have them point `COMPANION_KEYSTORE` +and `COMPANION_PASSWORD_FILE` at wherever the files live. Keep a backup: losing the key means a forced reinstall. + +## Tests + +From the repo root: + +```sh +uv run --extra testing --with pycryptodome==3.23.0 --with dbus-next==0.2.3 --with zeroconf==0.151.3 \ + python openpilot/starpilot/companion/run_host_tests.py +node --test openpilot/starpilot/companion/android/tests/test_bluetooth_fetch.mjs +(cd openpilot/starpilot/companion/android && ./gradlew testDebugUnitTest) +``` + +`run_host_tests.py` stubs native modules so it runs on a laptop; it also takes +explicit test paths. iPhone tests are in `ios/README.md`. diff --git a/openpilot/starpilot/companion/ios/.gitignore b/openpilot/starpilot/companion/ios/.gitignore new file mode 100644 index 0000000000..9e037719bc --- /dev/null +++ b/openpilot/starpilot/companion/ios/.gitignore @@ -0,0 +1,5 @@ +build/ +DerivedData/ +*.xcuserstate +xcuserdata/ +.DS_Store diff --git a/openpilot/starpilot/companion/ios/CARPLAY-PILOT.md b/openpilot/starpilot/companion/ios/CARPLAY-PILOT.md new file mode 100644 index 0000000000..76bf6ab6f9 --- /dev/null +++ b/openpilot/starpilot/companion/ios/CARPLAY-PILOT.md @@ -0,0 +1,16 @@ +# carplay testing + +carplay support is in `GalaxyBluetooth/CarPlaySceneDelegate.swift`. it uses native CarPlay templates for the overview, temperatures, rates and Galaxy settings. + +physical CarPlay needs Apple's approved entitlement and a matching signing profile. check the target's signing setup before testing; a TestFlight invitation alone does not provide the entitlement. + +## check on a head unit + +- open each top-level page and confirm values stay readable in light and dark mode. +- open settings categories and use the top-bar arrows to reach the remaining pages. +- check Back navigation and numeric controls. change and restore a display preference to confirm saving. +- Disconnect and reconnect the phone. check that stale readings clear and the connection recovers. + +keep initial tests parked. Share the head unit, iPhone/iOS version and a photo of any layout problem. Copy the app's connection reports after a failure. + +the old Dom full-screen video capture instructions do not apply to SecretGood. carplay does not show a full comma-screen video stream. diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.pbxproj b/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..1b7ccc36f5 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.pbxproj @@ -0,0 +1,301 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + C0AA00000000000000000007 /* Lucide-LICENSE.txt in Resources */ = {isa = PBXBuildFile; fileRef = C0AA00000000000000000008 /* Lucide-LICENSE.txt */; }; + C0AA00000000000000000005 /* Sora-OFL.txt in Resources */ = {isa = PBXBuildFile; fileRef = C0AA00000000000000000006 /* Sora-OFL.txt */; }; + C0AA00000000000000000003 /* Sora.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C0AA00000000000000000004 /* Sora.ttf */; }; + C0AA00000000000000000001 /* ConnectionSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0AA00000000000000000002 /* ConnectionSettingsView.swift */; }; + D92135C445C249E6A5DC0011 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = D92135C445C249E6A5DC0012 /* PrivacyInfo.xcprivacy */; }; + 140107256F4F4DF2910BED61 /* BluetoothTransport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47658A09FCC6A6C73D1A1A3 /* BluetoothTransport.swift */; }; + 1698566BBEF2185D9C80B6BB /* HTTP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34DE7063A67F0755E6E69BF7 /* HTTP.swift */; }; + 28D504D2BD92FF8A8AEB68A7 /* CompanionDiagnostics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AD85D1A585138AF80FEADB9 /* CompanionDiagnostics.swift */; }; + 36EBF9BB2BE027F139572ADA /* GalaxyBluetoothApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3356A9DC86451A9D92F074F8 /* GalaxyBluetoothApp.swift */; }; + 5992DC6B04748581DE47AA02 /* LoopbackServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B07071562661895558F74EE6 /* LoopbackServer.swift */; }; + 606A672A792903E98EFFC2D9 /* Resources/Branding.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F0B8B04FE0E80BA046C0042 /* Resources/Branding.xcassets */; }; + 754B6F8C853BDD47D7593948 /* NetworkTransport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 114E3D37646B3A8626A8A232 /* NetworkTransport.swift */; }; + 7F54642B30B38C648001D4ED /* Wire.swift in Sources */ = {isa = PBXBuildFile; fileRef = F48B8D06AA8D8C4AC21E5982 /* Wire.swift */; }; + 887D84D1E3F00F0A5A8AD090 /* PrivateLANHTTP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5492C1BC71EB8D0DBF12896E /* PrivateLANHTTP.swift */; }; + 8BA587954B4079F504AAD35E /* GalaxyRequestTransport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0F5CDB02B33E408C75D8C /* GalaxyRequestTransport.swift */; }; + A6D597850E6DD0CDFB754EF8 /* CarPlaySceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F213860FC7A532DBD355109 /* CarPlaySceneDelegate.swift */; }; + B2DE76B1CE686BDFB635FAAE /* GalaxyAssetStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BBE1488FD8A83E3983FEDE /* GalaxyAssetStore.swift */; }; + BC3706D8A74BDB5B0AA8063E /* PairingKeyStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A1199899003FF3F5F30831 /* PairingKeyStore.swift */; }; + DE64BADD40C934E610D4D505 /* GalaxyWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF41C7E4AB86DEB71B85E4F6 /* GalaxyWebView.swift */; }; + FACE00000000000000000001 /* PairingCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = FACE00000000000000000002 /* PairingCode.swift */; }; + C1A100000000000000000001 /* ClaimPairing.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1A100000000000000000002 /* ClaimPairing.swift */; }; + D15C00000000000000000001 /* LANDiscovery.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C00000000000000000002 /* LANDiscovery.swift */; }; + D15C00000000000000000011 /* AudioPairing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C00000000000000000012 /* AudioPairing.swift */; }; + D15C00000000000000000013 /* AudioPairingSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C00000000000000000014 /* AudioPairingSheet.swift */; }; + D15C00000000000000000015 /* PhoneLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C00000000000000000016 /* PhoneLocation.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + C0AA00000000000000000008 /* Lucide-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = Resources/Lucide-LICENSE.txt; sourceTree = ""; }; + C0AA00000000000000000006 /* Sora-OFL.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = Resources/Sora-OFL.txt; sourceTree = ""; }; + C0AA00000000000000000004 /* Sora.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Resources/Sora.ttf; sourceTree = ""; }; + C0AA00000000000000000002 /* ConnectionSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionSettingsView.swift; sourceTree = ""; }; + D92135C445C249E6A5DC0012 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 114E3D37646B3A8626A8A232 /* NetworkTransport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkTransport.swift; sourceTree = ""; }; + 3356A9DC86451A9D92F074F8 /* GalaxyBluetoothApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalaxyBluetoothApp.swift; sourceTree = ""; }; + 34DE7063A67F0755E6E69BF7 /* HTTP.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTP.swift; sourceTree = ""; }; + 43A1199899003FF3F5F30831 /* PairingKeyStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingKeyStore.swift; sourceTree = ""; }; + 5492C1BC71EB8D0DBF12896E /* PrivateLANHTTP.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivateLANHTTP.swift; sourceTree = ""; }; + 80D0F5CDB02B33E408C75D8C /* GalaxyRequestTransport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalaxyRequestTransport.swift; sourceTree = ""; }; + 8AD85D1A585138AF80FEADB9 /* CompanionDiagnostics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompanionDiagnostics.swift; sourceTree = ""; }; + 8F213860FC7A532DBD355109 /* CarPlaySceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarPlaySceneDelegate.swift; sourceTree = ""; }; + 9CEEC13202AFBF12EE3ABB99 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9F0B8B04FE0E80BA046C0042 /* Resources/Branding.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Resources/Branding.xcassets; sourceTree = ""; }; + A172CEDCAE47474B615C54D5 /* GalaxyBluetooth.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; path = GalaxyBluetooth.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B07071562661895558F74EE6 /* LoopbackServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopbackServer.swift; sourceTree = ""; }; + BF41C7E4AB86DEB71B85E4F6 /* GalaxyWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalaxyWebView.swift; sourceTree = ""; }; + D3BBE1488FD8A83E3983FEDE /* GalaxyAssetStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalaxyAssetStore.swift; sourceTree = ""; }; + D47658A09FCC6A6C73D1A1A3 /* BluetoothTransport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BluetoothTransport.swift; sourceTree = ""; }; + F48B8D06AA8D8C4AC21E5982 /* Wire.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Wire.swift; sourceTree = ""; }; + FACE00000000000000000002 /* PairingCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingCode.swift; sourceTree = ""; }; + C1A100000000000000000002 /* ClaimPairing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClaimPairing.swift; sourceTree = ""; }; + D15C00000000000000000002 /* LANDiscovery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LANDiscovery.swift; sourceTree = ""; }; + D15C00000000000000000012 /* AudioPairing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPairing.swift; sourceTree = ""; }; + D15C00000000000000000014 /* AudioPairingSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPairingSheet.swift; sourceTree = ""; }; + D15C00000000000000000016 /* PhoneLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneLocation.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E2AA269EB967A8853A258BFA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0A3E27B8CA818264D75C8D81 /* Products */ = { + isa = PBXGroup; + children = ( + A172CEDCAE47474B615C54D5 /* GalaxyBluetooth.app */, + ); + name = Products; + sourceTree = ""; + }; + 9E61AFF607A3704A97803240 /* GalaxyBluetooth */ = { + isa = PBXGroup; + children = ( + D92135C445C249E6A5DC0012 /* PrivacyInfo.xcprivacy */, + D15C00000000000000000002 /* LANDiscovery.swift */, + D15C00000000000000000014 /* AudioPairingSheet.swift */, + D15C00000000000000000012 /* AudioPairing.swift */, + D15C00000000000000000016 /* PhoneLocation.swift */, + 114E3D37646B3A8626A8A232 /* NetworkTransport.swift */, + D3BBE1488FD8A83E3983FEDE /* GalaxyAssetStore.swift */, + 5492C1BC71EB8D0DBF12896E /* PrivateLANHTTP.swift */, + D47658A09FCC6A6C73D1A1A3 /* BluetoothTransport.swift */, + FACE00000000000000000002 /* PairingCode.swift */, + C1A100000000000000000002 /* ClaimPairing.swift */, + 3356A9DC86451A9D92F074F8 /* GalaxyBluetoothApp.swift */, + C0AA00000000000000000002 /* ConnectionSettingsView.swift */, + C0AA00000000000000000004 /* Sora.ttf */, + C0AA00000000000000000006 /* Sora-OFL.txt */, + C0AA00000000000000000008 /* Lucide-LICENSE.txt */, + 80D0F5CDB02B33E408C75D8C /* GalaxyRequestTransport.swift */, + BF41C7E4AB86DEB71B85E4F6 /* GalaxyWebView.swift */, + 34DE7063A67F0755E6E69BF7 /* HTTP.swift */, + B07071562661895558F74EE6 /* LoopbackServer.swift */, + 43A1199899003FF3F5F30831 /* PairingKeyStore.swift */, + F48B8D06AA8D8C4AC21E5982 /* Wire.swift */, + 9CEEC13202AFBF12EE3ABB99 /* Info.plist */, + 8AD85D1A585138AF80FEADB9 /* CompanionDiagnostics.swift */, + 8F213860FC7A532DBD355109 /* CarPlaySceneDelegate.swift */, + 9F0B8B04FE0E80BA046C0042 /* Resources/Branding.xcassets */, + ); + path = GalaxyBluetooth; + sourceTree = ""; + }; + C69913C7EE4DFDD011BE172F = { + isa = PBXGroup; + children = ( + 9E61AFF607A3704A97803240 /* GalaxyBluetooth */, + 0A3E27B8CA818264D75C8D81 /* Products */, + ); + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 34A04005BCAF206EEC990BD9 /* GalaxyBluetooth */ = { + isa = PBXNativeTarget; + buildConfigurationList = EE8ED050E3386ACB51F5825B /* Build configuration list for PBXNativeTarget "GalaxyBluetooth" */; + buildPhases = ( + 878A52FC5FF6A57D50B7B870 /* Sources */, + E2AA269EB967A8853A258BFA /* Frameworks */, + 41D311A605520FC7B8B9A980 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GalaxyBluetooth; + productName = GalaxyBluetooth; + productReference = A172CEDCAE47474B615C54D5 /* GalaxyBluetooth.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 244210E48437B6556980A702 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1600; + }; + buildConfigurationList = 442D61E217DD044EA4245BF2 /* Build configuration list for PBXProject "GalaxyBluetooth" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = C69913C7EE4DFDD011BE172F; + productRefGroup = 0A3E27B8CA818264D75C8D81 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 34A04005BCAF206EEC990BD9 /* GalaxyBluetooth */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 41D311A605520FC7B8B9A980 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D92135C445C249E6A5DC0011 /* PrivacyInfo.xcprivacy in Resources */, + 606A672A792903E98EFFC2D9 /* Resources/Branding.xcassets in Resources */, + C0AA00000000000000000003 /* Sora.ttf in Resources */, + C0AA00000000000000000005 /* Sora-OFL.txt in Resources */, + C0AA00000000000000000007 /* Lucide-LICENSE.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 878A52FC5FF6A57D50B7B870 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D15C00000000000000000001 /* LANDiscovery.swift in Sources */, + D15C00000000000000000013 /* AudioPairingSheet.swift in Sources */, + D15C00000000000000000011 /* AudioPairing.swift in Sources */, + D15C00000000000000000015 /* PhoneLocation.swift in Sources */, + 754B6F8C853BDD47D7593948 /* NetworkTransport.swift in Sources */, + B2DE76B1CE686BDFB635FAAE /* GalaxyAssetStore.swift in Sources */, + 887D84D1E3F00F0A5A8AD090 /* PrivateLANHTTP.swift in Sources */, + 140107256F4F4DF2910BED61 /* BluetoothTransport.swift in Sources */, + FACE00000000000000000001 /* PairingCode.swift in Sources */, + C1A100000000000000000001 /* ClaimPairing.swift in Sources */, + 28D504D2BD92FF8A8AEB68A7 /* CompanionDiagnostics.swift in Sources */, + A6D597850E6DD0CDFB754EF8 /* CarPlaySceneDelegate.swift in Sources */, + 36EBF9BB2BE027F139572ADA /* GalaxyBluetoothApp.swift in Sources */, + C0AA00000000000000000001 /* ConnectionSettingsView.swift in Sources */, + 8BA587954B4079F504AAD35E /* GalaxyRequestTransport.swift in Sources */, + DE64BADD40C934E610D4D505 /* GalaxyWebView.swift in Sources */, + 1698566BBEF2185D9C80B6BB /* HTTP.swift in Sources */, + 5992DC6B04748581DE47AA02 /* LoopbackServer.swift in Sources */, + BC3706D8A74BDB5B0AA8063E /* PairingKeyStore.swift in Sources */, + 7F54642B30B38C648001D4ED /* Wire.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 35B1014F135DE9B45529B733 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + SDKROOT = iphoneos; + }; + name = Release; + }; + 488864B3D19480A82F7F1786 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 952548237D7F645F11D1E7B6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = GalaxyBluetooth/CarPlay.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5P9DLC338G; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = GalaxyBluetooth/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + PRODUCT_BUNDLE_IDENTIFIER = link.galaxy.bluetooth.natehuby76; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + E2D3A31BEAA1368FC62DA77A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = GalaxyBluetooth/CarPlay.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5P9DLC338G; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = GalaxyBluetooth/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + PRODUCT_BUNDLE_IDENTIFIER = link.galaxy.bluetooth.natehuby76; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 442D61E217DD044EA4245BF2 /* Build configuration list for PBXProject "GalaxyBluetooth" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 488864B3D19480A82F7F1786 /* Debug */, + 35B1014F135DE9B45529B733 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EE8ED050E3386ACB51F5825B /* Build configuration list for PBXNativeTarget "GalaxyBluetooth" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 952548237D7F645F11D1E7B6 /* Debug */, + E2D3A31BEAA1368FC62DA77A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 244210E48437B6556980A702 /* Project object */; +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/xcshareddata/xcschemes/GalaxyBluetooth.xcscheme b/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/xcshareddata/xcschemes/GalaxyBluetooth.xcscheme new file mode 100644 index 0000000000..45c75a7445 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth.xcodeproj/xcshareddata/xcschemes/GalaxyBluetooth.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/AudioPairing.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/AudioPairing.swift new file mode 100644 index 0000000000..5e6f7c9863 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/AudioPairing.swift @@ -0,0 +1,149 @@ +import Foundation +#if os(iOS) +import AVFAudio +#endif + +/// After this iPhone is paired for Galaxy, also pair it with comma for Bluetooth music. +/// iOS apps cannot start a classic Bluetooth pairing, so comma opens a short window and the +/// person taps comma in Settings → Bluetooth. Comma accepts only one phone and needs the code approved. +@MainActor +final class AudioPairing: ObservableObject { + enum Phase: Equatable { + case idle + case opening + case waiting(commaName: String) + case confirm(code: String, promptID: String, commaName: String) + case done + case connected + case message(String) + } + + struct Snapshot: Equatable { + var adapterAddress: String + var adapterName: String + var state: String? + var promptID: String? + var promptKind: String? + var code: String + var displayOnly: Bool + } + + @Published private(set) var phase: Phase = .idle + private let transport: () -> (any GalaxyRequestTransport)? + private let pause: () async -> Void + private let audioOutput: (String) -> Bool + private let attempts: Int + private var task: Task? + + init(transport: @escaping () -> (any GalaxyRequestTransport)?, attempts: Int = 125, + audioOutput: ((String) -> Bool)? = nil, + pause: @escaping () async -> Void = { try? await Task.sleep(nanoseconds: 1_000_000_000) }) { + self.transport = transport; self.attempts = attempts; self.pause = pause; self.audioOutput = audioOutput ?? { AudioPairing.isAudioOutput($0) } + } + + static func isAudioOutput(_ commaName: String) -> Bool { + #if os(iOS) + return AVAudioSession.sharedInstance().currentRoute.outputs.contains { + $0.portType == .bluetoothA2DP && $0.portName == commaName + } + #else + return false + #endif + } + + var active: Bool { phase != .idle } + + nonisolated static func validAddress(_ value: String) -> Bool { + value.range(of: "^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$", options: .regularExpression) != nil + } + + /// Only the window this phone opened counts; any other pairing belongs to someone else. + nonisolated static func parse(_ data: Data) -> Snapshot? { + guard let value = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { return nil } + let pairing = (value["pairing"] as? [String: Any]).flatMap { ($0["incoming"] as? Bool) == true ? $0 : nil } + let prompt = pairing?["prompt"] as? [String: Any] + return Snapshot(adapterAddress: (value["adapterAddress"] as? String) ?? "", adapterName: (value["adapterName"] as? String) ?? "", + state: pairing?["state"] as? String, promptID: prompt?["id"] as? String, promptKind: prompt?["kind"] as? String, + code: (prompt?["value"] as? String) ?? "", displayOnly: (prompt?["displayOnly"] as? Bool) ?? false) + } + + /// `windowOpen`: comma's pairing window is already open because the person just paired the app from comma's Pair phone. + func start(windowOpen: Bool = false) { + guard task == nil else { return } + phase = .opening + task = Task { [weak self] in + await self?.run(windowOpen: windowOpen) + self?.task = nil + } + } + + func respond(accepted: Bool) { + guard case .confirm(_, let promptID, let name) = phase else { return } + phase = .waiting(commaName: name) + Task { [weak self] in + guard let self else { return } + _ = try? await self.post(["operation": "pairing_response", "promptId": promptID, "accepted": accepted]) + } + } + + func cancel() { + task?.cancel() + task = nil + let wasOpen = phase != .idle && phase != .done && phase != .connected + phase = .idle + if wasOpen { Task { [weak self] in _ = try? await self?.post(["operation": "cancel_pair"]) } } + } + + func dismiss() { if case .message = phase { phase = .idle } else if phase == .done || phase == .connected { phase = .idle } else { cancel() } } + + private func post(_ payload: [String: Any]) async throws -> BridgeResponse? { + guard let transport = transport(), transport.connected else { return nil } + let body = try JSONSerialization.data(withJSONObject: payload) + return try await transport.request(path: "/api/bluetooth/action", method: "POST", + headers: ["Content-Type": "application/json"], body: body) + } + + private func status() async -> Snapshot? { + guard let transport = transport(), transport.connected, + let response = try? await transport.request(path: "/api/bluetooth/status", method: "GET", headers: [:], body: Data()), + response.status == 200 else { return nil } + return Self.parse(response.bodyData) + } + + private func run(windowOpen: Bool) async { + guard let first = await status() else { phase = .message("Phone music wasn't set up. Connect to your comma and try again."); return } + // An older comma reports no adapter address and has no pairing window. + guard Self.validAddress(first.adapterAddress) else { phase = .idle; return } + let name = first.adapterName.isEmpty ? "comma" : first.adapterName + if audioOutput(name) { phase = .connected; return } + if !windowOpen { + let opened: BridgeResponse? + do { opened = try await post(["operation": "accept_pair"]) } catch { opened = nil } + switch opened?.status { + case 200?: break + case 400?: phase = .idle; return + case 409?: phase = .message("Phone music wasn't set up because comma's Bluetooth is busy. Park, stop Android Auto pairing, then try Set up phone music again."); return + default: phase = .message("Phone music wasn't set up. Try Set up phone music again."); return + } + } + phase = .waiting(commaName: name) + var answered: String? + for _ in 0.. Void + + var body: some View { + VStack(spacing: 18) { + Image(systemName: "music.note").font(.system(size: 40)) + Text("Bluetooth music").font(.title3.weight(.semibold)) + switch pairing.phase { + case .idle, .opening: + ProgressView("Asking comma to open pairing…") + case .waiting(let name): + Text("On your iPhone, open **Settings → Bluetooth** and select **\(name)** to pair music.") + .multilineTextAlignment(.center) + ProgressView() + Text("Already says Connected? In Control Center, check whether comma is available as an audio output.") + .font(.callout).multilineTextAlignment(.center) + case .confirm(let code, _, _): + Text("Check that comma and this iPhone both show").multilineTextAlignment(.center) + Text(code).font(.system(size: 34, weight: .semibold, design: .monospaced)) + HStack { + Button("Cancel") { pairing.respond(accepted: false) }.buttonStyle(.bordered) + Button("Pair") { pairing.respond(accepted: true) }.buttonStyle(.borderedProminent) + } + case .done: + Text("Bluetooth music paired. In Control Center, choose comma as the audio output.").multilineTextAlignment(.center) + case .connected: + Text("Music connected. This iPhone is already using comma as its Bluetooth audio output.").multilineTextAlignment(.center) + case .message(let text): + Text(text).multilineTextAlignment(.center) + } + Button((pairing.phase == .done || pairing.phase == .connected) ? "Done" : "Close") { close() }.padding(.top, 6) + }.padding(24).presentationDetents([.medium, .large]) + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/BluetoothTransport.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/BluetoothTransport.swift new file mode 100644 index 0000000000..d8cbbf46cb --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/BluetoothTransport.swift @@ -0,0 +1,579 @@ +import Foundation +import Combine +import CoreBluetooth +import CryptoKit +import UIKit + +struct NearbyDevice: Identifiable { + let id: UUID + let name: String + let signal: Int +} + +@MainActor +final class BluetoothTransport: NSObject, ObservableObject, GalaxyRequestTransport, @preconcurrency CBCentralManagerDelegate, @preconcurrency CBPeripheralDelegate { + @Published var devices: [NearbyDevice] = [] + @Published var status = "Turn on Bluetooth, then scan for your comma." + @Published var isScanning = false + var onEvent: ((String) -> Void)? + @Published var connected = false + @Published var connecting = false + @Published private(set) var fastReadFallback = false + @Published var fastReads = UserDefaults.standard.bool(forKey: "galaxy.bluetooth.fastReads") { + didSet { + UserDefaults.standard.set(fastReads, forKey: "galaxy.bluetooth.fastReads") + if fastReads != oldValue { + fastReadFallback = false + onEvent?("Bluetooth read mode: \(fastReads ? "experimental notifications" : "read stream"); applies to the next request") + } + } + } + + private var central: CBCentralManager! + private var peripherals: [UUID: CBPeripheral] = [:] + private var peripheral: CBPeripheral? + private var rx: CBCharacteristic? + private var tx: CBCharacteristic? + private var notify: CBCharacteristic? + private var key: SymmetricKey? + private var keyText = "" + private var session = "" + var sessionIdentifier: String { session } + private(set) var catalogSHA256: String? + private var supportsReadStream = false + private var activeReadStream = false + private var supportsNotifications = false + private var activeNotifications = false + private var pairingVerified = false + private var notificationTag = Data() + private var notificationCount = 0 + private var notificationBuffer: [Data] = [] + private var notificationTimeout: Task? + private var counter: UInt64 = 0 + private var queue: [Pending] = [] + private var priorityStreak = 0 + private var requestStarted = 0.0 + private var receivedPackets = 0 + private var receivedWireBytes = 0 + private var active: Pending? + private var outgoing: [Data] = [] + private var writeIndex = 0 + private var assembler = FrameAssembler() + private var awaitingAck = false + private var completedResponse: BridgeResponse? + private var activeCancelled = false + private var timeoutTask: Task? + private var scanTimeout: Task? + private var connectionTimeout: Task? + + private struct Pending { + let id: String + let path: String + let method: String + let headers: [String: String] + let body: Data + let phone: BridgePhone? + let enqueuedAt = ProcessInfo.processInfo.systemUptime + let completion: CheckedContinuation + } + + override init() { + super.init() + central = CBCentralManager(delegate: self, queue: .main) + } + + func reconnectSaved(pairingKey: String) { + guard !connected, !connecting, central.state == .poweredOn, + let value = UserDefaults.standard.string(forKey: "galaxy.bluetooth.device"), + let id = UUID(uuidString: value), + let found = central.retrievePeripherals(withIdentifiers: [id]).first else { return } + peripherals[id] = found + connect(NearbyDevice(id: id, name: found.name ?? "comma", signal: 0), pairingKey: pairingKey) + } + + func forgetSavedDevice() { + disconnect() + UserDefaults.standard.removeObject(forKey: "galaxy.bluetooth.device") + } + + func scan() { + guard central.state == .poweredOn else { onEvent?("Bluetooth scan blocked: state=\(central.state.rawValue)"); status = "Bluetooth is unavailable or permission is required."; return } + devices = [] + peripherals = [:] + onEvent?("Bluetooth service scan started; timeout=15s") + for found in central.retrieveConnectedPeripherals(withServices: [CBUUID(string: Wire.service)]) { + peripherals[found.identifier] = found + devices.append(NearbyDevice(id: found.identifier, name: found.name ?? "Galaxy", signal: 0)) + } + onEvent?("Bluetooth scan found \(devices.count) already-connected service candidates") + central.scanForPeripherals(withServices: [CBUUID(string: Wire.service)], options: nil) + isScanning = true + status = "Looking for the Galaxy Bluetooth bridge…" + scanTimeout?.cancel() + scanTimeout = Task { @MainActor [weak self] in + try? await Task.sleep(nanoseconds: 15_000_000_000) + guard !Task.isCancelled, let self else { return } + self.onEvent?("Bluetooth service scan finished: candidates=\(self.devices.count)") + self.central.stopScan() + self.isScanning = false + self.status = self.devices.isEmpty ? "No bridge found. Start the bridge on your comma and enable Bluetooth in StarPilot." : "Select your comma to connect." + } + } + + func connect(_ device: NearbyDevice, pairingKey: String) { + guard let bytes = Data(hex: pairingKey), bytes.count == 32 else { + status = "Paste the 64-character pairing key created on your comma." + return + } + guard let found = peripherals[device.id] else { return } + disconnect() + key = SymmetricKey(data: bytes) + keyText = bytes.hex + peripheral = found + found.delegate = self + connecting = true + status = "Connecting to \(device.name)…" + onEvent?("Starting Bluetooth connection") + central.connect(found, options: nil) + connectionTimeout = Task { @MainActor [weak self] in + try? await Task.sleep(nanoseconds: 20_000_000_000) + guard !Task.isCancelled, let self, !self.connected else { return } + self.failConnection("Bluetooth connection timed out. Check the comma bridge and pairing key.") + } + } + + func disconnect(reason: String = "Bluetooth connection closed") { + let wasConnected = connected + central.stopScan() + scanTimeout?.cancel() + connectionTimeout?.cancel() + isScanning = false + connected = false + connecting = false + failAll(BridgeError.message("Bluetooth connection closed.")) + if let peripheral { central.cancelPeripheralConnection(peripheral) } + peripheral = nil + rx = nil + tx = nil + notify = nil + session = "" + counter = 0 + priorityStreak = 0 + catalogSHA256 = nil + supportsReadStream = false + activeReadStream = false + supportsNotifications = false + activeNotifications = false + pairingVerified = false + notificationBuffer = [] + if wasConnected { onEvent?(reason) } + } + + private func failConnection(_ message: String) { + if Self.shouldPauseFastReads(method: active?.method, notifications: activeNotifications, + cancelled: message.lowercased().contains("cancelled")) { + fastReadFallback = true + onEvent?("Fast Bluetooth reads paused after a transfer failure. Reliable reads will be used after reconnecting; toggle fast reads off and on to retry.") + } + let lower = message.lowercased() + let reason: String + if lower.contains("request timed out") { reason = "Bluetooth request timed out" } + else if lower.contains("push stalled") { reason = "Bluetooth notification transfer stalled" } + else if lower.contains("cancelled") { reason = "Bluetooth request cancelled during transfer" } + else if lower.contains("timed out") { reason = "Bluetooth connection timed out" } + else if lower.contains("pairing") { reason = "Bluetooth pairing or authentication failed" } + else if lower.contains("encrypt") || lower.contains("verify bluetooth") { reason = "Bluetooth encrypted response failed" } + else { reason = "Bluetooth connection failed" } + if let active { + onEvent?("\(reason): \(active.method) \(LoopbackServer.reportPath(active.path)), queued=\(queue.count), sent=\(writeIndex)/\(outgoing.count), received packets=\(notificationCount), awaiting ack=\(awaitingAck)") + } + disconnect(reason: reason) + onEvent?(reason) + status = message + } + + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + try await request(path: path, method: method, headers: headers, body: body, phone: nil) + } + + private func request(path: String, method: String, headers: [String: String], body: Data, + phone: BridgePhone?) async throws -> BridgeResponse { + let id = UUID().uuidString + return try await withTaskCancellationHandler(operation: { + try Task.checkCancellation() + return try await withCheckedThrowingContinuation { continuation in + guard rx != nil, tx != nil, !session.isEmpty else { + continuation.resume(throwing: BridgeError.message("Connect to your comma over Bluetooth first.")) + return + } + guard queue.count < 32, body.count <= Wire.maxBody else { + continuation.resume(throwing: BridgeError.message("Bluetooth queue is full or upload exceeds 1 MiB.")) + return + } + queue.append(Pending(id: id, path: path, method: method, headers: headers, body: body, phone: phone, completion: continuation)) + pump() + } + }, onCancel: { [weak self] in + DispatchQueue.main.async { self?.cancel(id) } + }) + } + + private func cancel(_ id: String) { + if let index = queue.firstIndex(where: { $0.id == id }) { + queue.remove(at: index).completion.resume(throwing: CancellationError()) + } else if active?.id == id { + if Self.canDrainCancellation(method: active?.method, requestSent: writeIndex >= outgoing.count) { + // Finish read-only requests even if their outgoing frame is still being sent. + activeCancelled = true + } else { + failConnection("Request cancelled. Reconnect before sending another request.") + } + } + } + + static func canDrainCancellation(method: String?, requestSent: Bool) -> Bool { + method == "GET" || requestSent + } + + static func useNotifications(method: String, path: String, supported: Bool, fastReads: Bool = false) -> Bool { + supported && (method != "GET" || fastReads) && path != "/_bridge/health" + } + + static func shouldPauseFastReads(method: String?, notifications: Bool, cancelled: Bool) -> Bool { + method == "GET" && notifications && !cancelled + } + + static func backgroundRead(_ path: String) -> Bool { + let endpoint = path.split(separator: "?", maxSplits: 1).first.map(String.init) ?? path + return ["/api/device/state", "/api/system/monitor", "/api/local-access", "/api/models/status", "/api/software/status", "/api/drives/stats"].contains(endpoint) + } + + static func nextRequestIndex(methods: [String], paths: [String], priorityStreak: Int) -> Int { + guard methods.count == paths.count, !methods.isEmpty, methods[0] == "GET", priorityStreak < 3 else { return 0 } + // A queued write is a barrier: never move a read from after it to before it. + for index in methods.indices { + if methods[index] != "GET" { break } + if !backgroundRead(paths[index]) { return index } + } + return 0 + } + + private func pump() { + guard active == nil, !queue.isEmpty, let peripheral, let key, !session.isEmpty else { return } + let index = Self.nextRequestIndex(methods: queue.map(\.method), paths: queue.map(\.path), priorityStreak: priorityStreak) + active = queue.remove(at: index) + guard let active else { return } + priorityStreak = active.method == "GET" && !Self.backgroundRead(active.path) ? min(3, priorityStreak + 1) : 0 + requestStarted = ProcessInfo.processInfo.systemUptime + receivedPackets = 0 + receivedWireBytes = 0 + counter += 1 + assembler = FrameAssembler() + completedResponse = nil + activeCancelled = false + awaitingAck = false + writeIndex = 0 + activeNotifications = Self.useNotifications(method: active.method, path: active.path, supported: supportsNotifications, fastReads: fastReads && !fastReadFallback) + notificationCount = 0 + notificationBuffer = [] + activeReadStream = supportsReadStream && active.path != "/_bridge/health" + onEvent?("Bluetooth request started: \(LoopbackServer.reportPath(active.path)), queued=\(queue.count), waited=\(String(format: "%.2f", requestStarted - active.enqueuedAt))s, response=\(activeNotifications ? "notifications" : activeReadStream ? "read stream" : "encrypted reads")") + do { + notificationTag = try Wire.streamTag(session: session, counter: counter) + let request = BridgeRequest(id: active.id, session: session, counter: counter, path: active.path, + method: active.method, headers: active.headers, body: active.body.base64EncodedString(), + phone: active.phone, responseCodec: 2, responseFlow: activeNotifications ? "notify-window8" : activeReadStream ? "read-stream" : nil) + outgoing = Wire.packets(try Wire.seal(request, key: key, direction: "request"), + size: min(supportsNotifications ? 512 : 180, peripheral.maximumWriteValueLength(for: .withoutResponse))) + timeoutTask = Task { @MainActor [weak self] in + let seconds: UInt64 = active.path == "/_bridge/health" ? 10 : 90 + try? await Task.sleep(nanoseconds: seconds * 1_000_000_000) + guard !Task.isCancelled, let self, self.active?.id == active.id else { return } + self.failConnection("Bluetooth request timed out. Its outcome may be unknown; reconnect to check before retrying.") + } + writeNext() + } catch { + finish(.failure(error)) + } + } + + private func writeNext() { + guard let peripheral, let rx, active != nil else { return } + if writeIndex < outgoing.count { + peripheral.writeValue(outgoing[writeIndex], for: rx, type: .withResponse) + } else if activeNotifications { + drainNotifications() + } else if let tx { + peripheral.readValue(for: tx) + } + } + + private func finish(_ result: Result) { + timeoutTask?.cancel() + notificationTimeout?.cancel() + timeoutTask = nil + let previous = active + if let previous { + let outcome: String + switch result { + case .success(let response): outcome = "HTTP \(response.status), \(response.bodyData.count) bytes" + case .failure: outcome = "failed" + } + let elapsed = max(0.001, ProcessInfo.processInfo.systemUptime - requestStarted) + onEvent?("Bluetooth request finished: \(LoopbackServer.reportPath(previous.path)), \(outcome), packets=\(receivedPackets), wire=\(receivedWireBytes) bytes, rate=\(String(format: "%.1f", Double(receivedWireBytes) / elapsed / 1024)) KiB/s, transfer=\(String(format: "%.2f", ProcessInfo.processInfo.systemUptime - requestStarted))s") + } + active = nil + outgoing = [] + notificationBuffer = [] + if activeCancelled { previous?.completion.resume(throwing: CancellationError()) } + else { previous?.completion.resume(with: result) } + activeCancelled = false + pump() + } + + private func failAll(_ error: Error) { + timeoutTask?.cancel() + notificationTimeout?.cancel() + let pending = queue + queue = [] + let previous = active + active = nil + outgoing = [] + notificationBuffer = [] + previous?.completion.resume(throwing: error) + pending.forEach { $0.completion.resume(throwing: error) } + } + + func centralManagerDidUpdateState(_ central: CBCentralManager) { + onEvent?("iOS Bluetooth state changed: \(central.state.rawValue)") + switch central.state { + case .poweredOn: status = "Ready to scan for your comma." + case .unauthorized: failConnection("Allow Bluetooth access in iPhone Settings.") + case .poweredOff: failConnection("Bluetooth is turned off.") + default: failConnection("Bluetooth is unavailable.") + } + } + + func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, + advertisementData: [String: Any], rssi RSSI: NSNumber) { + peripherals[peripheral.identifier] = peripheral + let device = NearbyDevice(id: peripheral.identifier, + name: advertisementData[CBAdvertisementDataLocalNameKey] as? String ?? peripheral.name ?? "Galaxy", + signal: RSSI.intValue) + if let index = devices.firstIndex(where: { $0.id == device.id }) { devices[index] = device } + else { devices.append(device); onEvent?("Bluetooth service candidate discovered: RSSI=\(RSSI.intValue), candidates=\(devices.count)") } + } + + func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { + guard peripheral == self.peripheral else { return } + onEvent?("Bluetooth link established; discovering Galaxy service") + peripheral.discoverServices([CBUUID(string: Wire.service)]) + } + + func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) { + guard peripheral == self.peripheral else { return } + failConnection(error?.localizedDescription ?? "Could not connect to your comma.") + } + + func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { + guard peripheral == self.peripheral else { return } + disconnect(reason: "Bluetooth peer disconnected: \(error.map { LANTransport.failureCode($0) } ?? "no OS error supplied")") + status = error?.localizedDescription ?? "Your comma disconnected. Scan to reconnect." + } + + func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) { + guard peripheral == self.peripheral else { return } + guard error == nil, let service = peripheral.services?.first(where: { $0.uuid == CBUUID(string: Wire.service) }) else { + failConnection("StarPilot BT service was not found."); return + } + onEvent?("Bluetooth Galaxy service found; discovering characteristics") + peripheral.discoverCharacteristics([CBUUID(string: Wire.rx), CBUUID(string: Wire.tx), CBUUID(string: Wire.info), CBUUID(string: Wire.notify)], for: service) + } + + func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) { + guard peripheral == self.peripheral else { return } + guard error == nil else { failConnection(error!.localizedDescription); return } + rx = service.characteristics?.first { $0.uuid == CBUUID(string: Wire.rx) } + tx = service.characteristics?.first { $0.uuid == CBUUID(string: Wire.tx) } + notify = service.characteristics?.first { $0.uuid == CBUUID(string: Wire.notify) } + guard rx != nil, tx != nil, let info = service.characteristics?.first(where: { $0.uuid == CBUUID(string: Wire.info) }) else { + failConnection("The comma bridge has incompatible Bluetooth characteristics."); return + } + onEvent?("Bluetooth characteristics ready; reading handshake challenge") + peripheral.readValue(for: info) + } + + func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) { + guard peripheral == self.peripheral, characteristic.uuid == CBUUID(string: Wire.rx), active != nil else { return } + if let error { failConnection(error.localizedDescription); return } + if awaitingAck { + if activeNotifications { onEvent?("Bluetooth notification window acknowledged: packets=\(notificationCount), complete=\(completedResponse != nil)") } + awaitingAck = false + if let response = completedResponse { + completedResponse = nil + finish(.success(response)) + } else if activeNotifications { + drainNotifications() + } else if let tx { + peripheral.readValue(for: tx) + } + } else { + writeIndex += 1 + writeNext() + } + } + + func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { + guard peripheral == self.peripheral else { return } + if let error { failConnection(error.localizedDescription); return } + guard let data = characteristic.value else { failConnection("Empty Bluetooth response."); return } + if characteristic.uuid == CBUUID(string: Wire.notify) { + receiveNotification(data) + return + } + if characteristic.uuid == CBUUID(string: Wire.info) { + guard data.count == 17, data.first == 1 else { failConnection("Unsupported bridge protocol."); return } + session = Data(data.dropFirst()).hex + let handshakeSession = session + status = "Verifying the pairing key…" + Task { @MainActor [weak self, weak peripheral] in + guard let self, let peripheral else { return } + do { + let response = try await self.request(path: "/_bridge/health", method: "GET", headers: [:], body: Data(), + phone: PairingKeyStore.phone(for: self.keyText, name: UIDevice.current.name)) + guard peripheral == self.peripheral, self.session == handshakeSession else { return } + guard response.status == 200 else { throw BridgeError.message("Bridge verification failed.") } + let health = try JSONDecoder().decode(BridgeHealth.self, from: response.bodyData) + guard health.protocol == 1, health.transport == "bluetooth" else { + throw BridgeError.message("Unsupported bridge protocol.") + } + self.catalogSHA256 = health.catalogSHA256 + self.supportsReadStream = health.readStream == true + self.pairingVerified = true + if health.notificationStream == true, let notify = self.notify, notify.properties.contains(.notify) { + self.status = "Enabling fast Bluetooth transfers…" + peripheral.setNotifyValue(true, for: notify) + } else { + try self.completeConnection() + } + } catch { + guard peripheral == self.peripheral, self.session == handshakeSession else { return } + self.failConnection("Pairing failed: \(error.localizedDescription)") + } + } + return + } + guard characteristic.uuid == CBUUID(string: Wire.tx), active != nil, let rx else { return } + if data == Data([0]) { + let requestID = active?.id + Task { @MainActor [weak self, weak peripheral] in + try? await Task.sleep(nanoseconds: 75_000_000) + guard !Task.isCancelled, let self, self.active?.id == requestID, self.active != nil, let tx = self.tx, + let peripheral, peripheral == self.peripheral else { return } + peripheral.readValue(for: tx) + } + return + } + do { + receivedPackets += 1 + receivedWireBytes += data.count + if let message = try assembler.append(data), let key { + let response = try Wire.open(message, as: BridgeResponse.self, key: key, direction: "response") + guard response.id == active?.id, response.session == session, response.counter == counter, + (100...599).contains(response.status), Data(base64Encoded: response.body) != nil else { + throw BridgeError.message("Bluetooth response identity did not match the request.") + } + completedResponse = response + } + if activeReadStream, completedResponse == nil, let tx { + peripheral.readValue(for: tx) + return + } + awaitingAck = true + peripheral.writeValue(Data([2]) + data.subdata(in: 1..<5), for: rx, type: .withResponse) + } catch { failConnection("Could not verify the encrypted response: \(error.localizedDescription)") } + } + + private func completeConnection() throws { + try PairingKeyStore.save(keyText) + connectionTimeout?.cancel() + if let peripheral { UserDefaults.standard.set(peripheral.identifier.uuidString, forKey: "galaxy.bluetooth.device") } + connected = true + connecting = false + status = supportsNotifications ? "Connected with fast Bluetooth transfers" : "Connected over Bluetooth" + onEvent?("Bluetooth encrypted handshake completed") + } + + func peripheral(_ peripheral: CBPeripheral, didUpdateNotificationStateFor characteristic: CBCharacteristic, error: Error?) { + guard peripheral == self.peripheral, characteristic.uuid == CBUUID(string: Wire.notify), pairingVerified else { return } + guard error == nil, characteristic.isNotifying else { + supportsNotifications = false + if activeNotifications && active != nil { + failConnection("Bluetooth push subscription ended. Reconnect to check any pending setting change.") + } else if !connected { + do { try completeConnection() } catch { failConnection(error.localizedDescription) } + } + onEvent?("Bluetooth notifications unavailable; using encrypted reads.") + return + } + supportsNotifications = true + do { try completeConnection() } + catch { failConnection(error.localizedDescription) } + } + + func peripheral(_ peripheral: CBPeripheral, didModifyServices invalidatedServices: [CBService]) { + guard peripheral == self.peripheral, invalidatedServices.contains(where: { $0.uuid == CBUUID(string: Wire.service) }) else { return } + failConnection("The bridge's Bluetooth services changed. Scan and reconnect.") + } + + private func receiveNotification(_ data: Data) { + guard active != nil, activeNotifications else { return } + do { + // Unrelated client/request frames must not enter this assembler. + guard try Wire.notificationPacket(data, tag: notificationTag) != nil else { return } + notificationTimeout?.cancel() + let requestID = active?.id + notificationTimeout = Task { @MainActor [weak self] in + try? await Task.sleep(nanoseconds: 15_000_000_000) + guard !Task.isCancelled, let self, self.active?.id == requestID else { return } + self.failConnection("Bluetooth push stalled. Reconnect to check any pending setting change.") + } + if awaitingAck || writeIndex < outgoing.count { + guard notificationBuffer.count < Wire.notificationWindow else { + throw BridgeError.message("Bluetooth notification window exceeded.") + } + notificationBuffer.append(data) + } else { + try consumeNotification(data) + } + } catch { failConnection("Could not verify Bluetooth push data: \(error.localizedDescription)") } + } + + private func drainNotifications() { + while active != nil, activeNotifications, !awaitingAck, !notificationBuffer.isEmpty { + let data = notificationBuffer.removeFirst() + do { try consumeNotification(data) } + catch { failConnection("Could not verify Bluetooth push data: \(error.localizedDescription)") } + } + } + + private func consumeNotification(_ data: Data) throws { + guard let packet = try Wire.notificationPacket(data, tag: notificationTag), let peripheral, let rx else { return } + if let message = try assembler.append(packet), let key { + let response = try Wire.open(message, as: BridgeResponse.self, key: key, direction: "response") + guard response.id == active?.id, response.session == session, response.counter == counter, + (100...599).contains(response.status), let body = Data(base64Encoded: response.body), body.count <= Wire.maxBody else { + throw BridgeError.message("Bluetooth response identity did not match the request.") + } + completedResponse = response + } + notificationCount += 1 + receivedPackets += 1 + receivedWireBytes += data.count + if completedResponse != nil || notificationCount % Wire.notificationWindow == 0 { + awaitingAck = true + let sequence = Wire.number(packet.subdata(in: 1..<5)) + peripheral.writeValue(Wire.notificationAck(tag: notificationTag, sequence: sequence), for: rx, type: .withResponse) + } + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlay.entitlements b/openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlay.entitlements new file mode 100644 index 0000000000..5937bb3bbe --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlay.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.developer.carplay-driving-task + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlaySceneDelegate.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlaySceneDelegate.swift new file mode 100644 index 0000000000..a6eddfcd0d --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/CarPlaySceneDelegate.swift @@ -0,0 +1,554 @@ +import CarPlay +import UIKit +import CoreFoundation + +@MainActor +final class CarPlaySceneDelegate: NSObject, CPTemplateApplicationSceneDelegate, CPTabBarTemplateDelegate, CPSessionConfigurationDelegate { + private final class GridAction: NSObject { + var perform: @MainActor () -> Void + var signature: String + init(signature: String, perform: @escaping @MainActor () -> Void) { + self.signature = signature; self.perform = perform + } + } + private let gridActions = NSMapTable.weakToStrongObjects() + private final class WeakGrid { + weak var page: CPGridTemplate? + init(_ page: CPGridTemplate) { self.page = page } + } + private var sessionConfiguration: CPSessionConfiguration? + private var controller: CPInterfaceController? + private var timer: Timer? + private var work: Task? + private var overview: CPGridTemplate? + private var temperatures: CPGridTemplate? + private var rates: CPGridTemplate? + private var toggles: CPGridTemplate? + private var catalog: [[String: Any]] = [] + private var values: [String: Any] = [:] + private var valuesSession = "" + private var valuesAt = Date.distantPast + private var categoryPage = 0 + private var busy = false + private var navigating = false + private final class GridRefresh: NSObject { + let perform: @MainActor () -> Void + init(_ perform: @escaping @MainActor () -> Void) { self.perform = perform } + } + private let settingsRefresh = NSMapTable.weakToStrongObjects() + private let overflowParents = NSMapTable.weakToStrongObjects() + private let gridSizes = NSMapTable.weakToStrongObjects() + private final class MetricPageState { + let title: String + let kind: String + var index = 0 + init(title: String, kind: String) { self.title = title; self.kind = kind } + } + + func templateApplicationScene(_ scene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) { + controller = interfaceController + sessionConfiguration = CPSessionConfiguration(delegate: self) + overview = nil; temperatures = nil; rates = nil; toggles = nil + let model = AppModel.shared + model.setCarPlayActive(true) + refreshTelemetry() + catalog = localCatalogue() + toggles = grid("Toggles", icon: "switch.2", buttons: categoryButtons()) + guard let overview, let temperatures, let rates, let toggles else { return } + let tabs = CPTabBarTemplate(templates: [overview, temperatures, rates, toggles]) + tabs.delegate = self + interfaceController.setRootTemplate(tabs, animated: false, completion: nil) + showCategories() + timer?.invalidate() + timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { [weak self] _ in + Task { @MainActor in self?.refreshTelemetry() } + } + } + + func templateApplicationScene(_ scene: CPTemplateApplicationScene, didDisconnectInterfaceController interfaceController: CPInterfaceController) { + timer?.invalidate(); timer = nil + work?.cancel(); work = nil + controller = nil + sessionConfiguration?.delegate = nil; sessionConfiguration = nil + overview = nil; temperatures = nil; rates = nil; toggles = nil + catalog = []; values = [:]; busy = false; categoryPage = 0; valuesSession = ""; valuesAt = .distantPast + gridActions.removeAllObjects(); gridSizes.removeAllObjects(); overflowParents.removeAllObjects(); settingsRefresh.removeAllObjects(); navigating = false + AppModel.shared.setCarPlayActive(false) + } + + func tabBarTemplate(_ tabBarTemplate: CPTabBarTemplate, didSelect selectedTemplate: CPTemplate) { + if selectedTemplate === toggles { loadGalaxy() } + } + + private var carAppearance: UIUserInterfaceStyle { + if let style = sessionConfiguration?.contentStyle { + if style.contains(.dark) && !style.contains(.light) { return .dark } + if style.contains(.light) && !style.contains(.dark) { return .light } + } + return controller?.carTraitCollection.userInterfaceStyle == .dark ? .dark : .light + } + + func sessionConfiguration(_ sessionConfiguration: CPSessionConfiguration, contentStyleChanged contentStyle: CPContentStyle) { + let appearance: UIUserInterfaceStyle = contentStyle.contains(.dark) && !contentStyle.contains(.light) ? .dark : + contentStyle.contains(.light) && !contentStyle.contains(.dark) ? .light : carAppearance + let traits = UITraitCollection(userInterfaceStyle: appearance) + let templates = controller?.templates ?? [] + var visited = Set() + for template in templates.flatMap({ ($0 as? CPTabBarTemplate)?.templates ?? [$0] }) { + guard let grid = template as? CPGridTemplate, visited.insert(ObjectIdentifier(grid)).inserted else { continue } + for button in grid.gridButtons { + if #available(iOS 26.0, *), let asset = button.image.imageAsset { button.updateImage(asset.image(with: traits)) } + } + } + } + + private func pushTemplate(_ template: CPTemplate, animated: Bool, completion: ((Bool, Error?) -> Void)?) { + guard let controller, !navigating else { completion?(false, nil); return } + navigating = true + let finished: (Bool, Error?) -> Void = { [weak self, weak controller] success, error in + guard let self, let controller, self.controller === controller else { return } + self.navigating = false + completion?(success, error) + if !success { self.notice(error?.localizedDescription ?? "This page could not be opened.") } + } + // A tab container also occupies a hierarchy level. Reserve that level before pushing. + if controller.templates.count >= 4, let parent = controller.topTemplate { + controller.popTemplate(animated: false) { [weak self, weak controller] success, error in + guard let self, let controller, self.controller === controller else { return } + guard success else { finished(false, error); return } + self.overflowParents.setObject(parent, forKey: template) + if let page = template as? CPBarButtonProviding { + page.backButton = CPBarButton(image: UIImage(systemName: "chevron.left")!) { [weak self] _ in + self?.popTemplate(animated: true, completion: nil) + } + } + controller.pushTemplate(template, animated: animated, completion: finished) + } + } else { + controller.pushTemplate(template, animated: animated, completion: finished) + } + } + + private func popTemplate(animated: Bool, completion: ((Bool, Error?) -> Void)?) { + guard let controller, !navigating else { completion?(false, nil); return } + let top = controller.topTemplate + let parent = top.flatMap { overflowParents.object(forKey: $0) } + navigating = true + controller.popTemplate(animated: animated) { [weak self, weak controller] success, error in + guard let self, let controller, self.controller === controller else { return } + guard success else { self.navigating = false; completion?(false, error); return } + if let top { self.overflowParents.removeObject(forKey: top) } + if let parent { + controller.pushTemplate(parent, animated: false) { [weak self] restored, error in + self?.navigating = false; completion?(restored, error) + } + } else { + self.navigating = false; completion?(true, nil) + } + } + } + + private func paddedButtons(_ buttons: [CPGridButton], capacity: Int = 8) -> [CPGridButton] { + var result = Array(buttons.prefix(capacity)) + while result.count < capacity { + let empty = UIGraphicsImageRenderer(size: CGSize(width: 1, height: 1)).image { _ in } + let action = GridAction(signature: "empty", perform: {}) + let spacer = CPGridButton(titleVariants: [" "], image: empty) { _ in action.perform() } + gridActions.setObject(action, forKey: spacer) + spacer.isEnabled = false + result.append(spacer) + } + return result + } + + private func makeGrid(title: String?, gridButtons: [CPGridButton], compact: Bool = false) -> CPGridTemplate { + let capacity = compact ? 4 : 8 + let page = CPGridTemplate(title: title, gridButtons: paddedButtons(gridButtons, capacity: capacity)) + gridSizes.setObject(NSNumber(value: capacity), forKey: page) + return page + } + + private func grid(_ title: String, icon: String, buttons: [CPGridButton]) -> CPGridTemplate { + precondition(!buttons.isEmpty) + let template = makeGrid(title: title, gridButtons: buttons) + template.tabTitle = title + template.tabImage = UIImage(systemName: icon) + return template + } + + private func button(_ title: String, icon: String, value: String? = nil, action: @escaping @MainActor () -> Void = {}) -> CPGridButton { + let configuration = UIImage.SymbolConfiguration(pointSize: 32, weight: .regular) + let symbol = UIImage(systemName: icon, withConfiguration: configuration) ?? UIImage(systemName: "circle")! + let image: UIImage + if let value { + let format = UIGraphicsImageRendererFormat() + format.scale = controller?.carTraitCollection.displayScale ?? 2 + let text = value.replacingOccurrences(of: " °C", with: "°").replacingOccurrences(of: " FPS", with: "") + let asset = UIImageAsset() + for (style, color) in [(UIUserInterfaceStyle.light, UIColor.black), (.dark, UIColor.white)] { + let rendered = UIGraphicsImageRenderer(size: CGSize(width: 72, height: 72), format: format).image { _ in + if value == "On" || value == "Off" { + let on = value == "On" + (on ? UIColor.systemGreen : (style == .dark ? UIColor.darkGray : UIColor.systemGray)).setFill() + UIBezierPath(roundedRect: CGRect(x: 3, y: 7, width: 66, height: 36), cornerRadius: 18).fill() + UIColor.white.setFill() + UIBezierPath(ovalIn: CGRect(x: on ? 36 : 6, y: 10, width: 30, height: 30)).fill() + } else { + symbol.withTintColor(color, renderingMode: .alwaysOriginal).draw(in: CGRect(x: 22, y: 0, width: 28, height: 28)) + } + let paragraph = NSMutableParagraphStyle(); paragraph.alignment = .center + let size: CGFloat = text.count <= 6 ? 24 : text.count <= 10 ? 18 : 14 + (text as NSString).draw(in: CGRect(x: 0, y: value == "On" || value == "Off" ? 47 : 36, width: 72, height: 25), withAttributes: [ + .font: UIFont.monospacedDigitSystemFont(ofSize: size, weight: .semibold), + .foregroundColor: color, .paragraphStyle: paragraph + ]) + }.withRenderingMode(.alwaysOriginal) + asset.register(rendered, with: UITraitCollection(traitsFrom: [ + UITraitCollection(userInterfaceStyle: style), UITraitCollection(displayScale: format.scale) + ])) + } + image = asset.image(with: UITraitCollection(traitsFrom: [ + UITraitCollection(userInterfaceStyle: carAppearance), UITraitCollection(displayScale: format.scale) + ])) + } else { image = symbol.withRenderingMode(.alwaysTemplate) } + let label = title + let state = GridAction(signature: "\(title)|\(icon)|\(value ?? "")", perform: action) + let result = CPGridButton(titleVariants: [label, compactCaption(label)], image: image) { _ in state.perform() } + gridActions.setObject(state, forKey: result) + return result + } + + private func compactCaption(_ label: String) -> String { + label.replacingOccurrences(of: "Advanced ", with: "Adv. ") + .replacingOccurrences(of: "Longitudinal", with: "Speed") + .replacingOccurrences(of: "Lateral", with: "Steering") + .replacingOccurrences(of: "Acceleration", with: "Accel.") + .replacingOccurrences(of: "Deceleration", with: "Braking") + .replacingOccurrences(of: "Conditional ", with: "") + .replacingOccurrences(of: "Controller", with: "Control") + } + + private func updateGrid(_ page: CPGridTemplate, buttons rawButtons: [CPGridButton]) { + precondition(!rawButtons.isEmpty) + let buttons = paddedButtons(rawButtons, capacity: gridSizes.object(forKey: page)?.intValue ?? 8) + if #available(iOS 26.0, *), page.gridButtons.count == buttons.count { + for (existing, replacement) in zip(page.gridButtons, buttons) { + guard let current = gridActions.object(forKey: existing), + let next = gridActions.object(forKey: replacement) else { + page.updateGridButtons(buttons) + return + } + current.perform = next.perform + existing.isEnabled = replacement.isEnabled + if current.signature != next.signature { + existing.updateTitleVariants(replacement.titleVariants) + existing.updateImage(replacement.image) + current.signature = next.signature + } + } + } else { + page.updateGridButtons(buttons) + } + } + + private func telemetryGrid(_ existing: CPGridTemplate?, title: String, icon: String, + buttons: [CPGridButton]) -> CPGridTemplate { + if let existing { updateGrid(existing, buttons: buttons); return existing } + return grid(title, icon: icon, buttons: buttons) + } + + private func external(_ metric: DiagnosticMetric) -> Bool { + let name = metric.name.lowercased() + return name.contains("external gpu") || name.contains("chestnut") || name.hasPrefix("sensor: amdgpu") + } + + private func thermalGroup(_ metric: DiagnosticMetric) -> String { + let name = metric.name.lowercased() + if external(metric) { return "External GPU" } + if name.hasPrefix("sensor:") { return "Other sensors" } + if name.contains("cpu") || name.contains("dsp") || name.contains("soc") { return "Processors" } + if name.contains("gpu") { return "Onboard GPU" } + if name.contains("memory") { return "Memory" } + if name.contains("intake") || name.contains("exhaust") { return "Cooling" } + if name.contains("pmic") { return "Power" } + if name.contains("modem") || name.contains("gnss") { return "Connectivity" } + return "Other sensors" + } + + private func thermalLabel(_ group: String) -> String { + switch group { + case "Processors": return "CPU / DSP" + case "Onboard GPU": return "GPU" + case "Connectivity": return "Radios" + case "Other sensors": return "Sensors" + default: return group + } + } + + private func thermalIcon(_ group: String) -> String { + switch group { + case "Processors", "Onboard GPU", "External GPU": return "cpu" + case "Memory": return "memorychip" + case "Cooling": return "fan" + case "Power": return "bolt" + case "Connectivity": return "antenna.radiowaves.left.and.right" + default: return "thermometer.medium" + } + } + + private func maximum(_ metrics: [DiagnosticMetric]) -> String { + guard let value = metrics.compactMap(\.value).filter(\.isFinite).max() else { return "—" } + return String(format: "%.1f °C", value) + } + + private func refreshTelemetry() { + let model = AppModel.shared + let system = model.diagnostics.fresh ? model.diagnostics.system ?? [:] : [:] + let memory = system["memory"] as? [String: Any] ?? [:] + let storage = system["storage"] as? [String: Any] ?? [:] + func value(_ source: [String: Any], _ key: String, _ unit: String) -> String { + guard let number = source[key] as? NSNumber, number.doubleValue.isFinite else { return "—" } + return String(format: "%.1f %@", number.doubleValue, unit) + } + overview = telemetryGrid(overview, title: "Overview", icon: "sparkles", buttons: [ + button(model.transport.label, icon: "antenna.radiowaves.left.and.right"), + button("CPU", icon: "cpu", value: value(system, "cpuPercent", "%")), + button("Memory", icon: "memorychip", value: value(memory, "percent", "%")), + button("Storage used", icon: "internaldrive", value: value(storage, "usedGiB", "GiB")), + button("Uptime", icon: "clock", value: value(system, "uptimeSeconds", "s")), + button("Processes", icon: "list.bullet", value: value(system, "processCount", "")) + ]) + let cores = system["cores"] as? [[String: Any]] ?? [] + rates = telemetryGrid(rates, title: "CPU", icon: "cpu", buttons: cores.isEmpty ? [button("Waiting for CPU readings", icon: "cpu")] : cores.prefix(8).map { + button($0["name"] as? String ?? "CPU", icon: "cpu", value: value($0, "percent", "%")) + }) + temperatures = telemetryGrid(temperatures, title: "Memory", icon: "memorychip", buttons: [ + button("Used", icon: "memorychip", value: value(memory, "usedMiB", "MiB")), + button("Available", icon: "memorychip", value: value(memory, "availableMiB", "MiB")), + button("Total", icon: "memorychip", value: value(memory, "totalMiB", "MiB")), + button("Storage total", icon: "internaldrive", value: value(storage, "totalGiB", "GiB")) + ]) + } + + private func rateGroup(_ metric: DiagnosticMetric) -> String { + let name = metric.name.lowercased() + if external(metric) { return "external" } + if name.contains("camera") { return "cameras" } + if name.contains("model") || name.contains("plan") { return "models" } + if name.contains("carstate") || name.contains("carcontrol") || name.contains("selfdrive") { return "driving" } + if name == "ui" { return "display" } + return "other" + } + + private func showMetrics(_ title: String, kind: String) { + guard controller != nil else { return } + let page = makeGrid(title: title, gridButtons: [button("Loading readings…", icon: "hourglass")]) + page.userInfo = MetricPageState(title: title, kind: kind) + updateMetrics(page) + pushTemplate(page, animated: true, completion: nil) + } + + private func updateMetrics(_ page: CPGridTemplate) { + guard let state = page.userInfo as? MetricPageState else { return } + let diagnostics = AppModel.shared.diagnostics + guard diagnostics.fresh, let sample = diagnostics.snapshot else { + updateGrid(page, buttons: [button("Telemetry unavailable", icon: "exclamationmark.triangle") { [weak self] in self?.notice(diagnostics.status) }]) + return + } + let readings = sample.temperatures.filter { thermalGroup($0) == state.kind } + sample.rates.filter { rateGroup($0) == state.kind } + let count = max(1, (readings.count + 7) / 8) + state.index = min(state.index, count - 1) + var buttons = readings.dropFirst(state.index * 8).prefix(8).map { button($0.name, icon: "gauge", value: $0.display) } + if buttons.isEmpty { buttons = [button("No readings available", icon: "questionmark.circle")] } + paging(page, index: state.index, count: count) { [weak self, weak page] index in + guard let self, let page else { return }; state.index = index; self.updateMetrics(page) + } + page.updateTitle(count > 1 ? "\(state.title) · \(state.index + 1)/\(count)" : state.title) + updateGrid(page, buttons: buttons) + } + + private final class SettingsPageState { + let name: String + var snapshot: [String: Any] = [:] + var session = "" + var index = 0 + init(_ name: String) { self.name = name } + } + private var session: String { + let model = AppModel.shared + return model.transport.usesLAN ? "lan-" + model.lan.generation : "ble-" + model.bluetooth.sessionIdentifier + } + private func request(_ path: String, payload: [String: Any]? = nil) async throws -> [String: Any] { + let original = session + let response = try await AppModel.shared.transport.request(path: path, method: payload == nil ? "GET" : "POST", + headers: payload == nil ? [:] : ["Content-Type": "application/json"], + body: try payload.map { try JSONSerialization.data(withJSONObject: $0) } ?? Data()) + try Task.checkCancellation() + guard original == session else { throw BridgeError.message("Connection changed. Refresh the page.") } + let data = (try? JSONSerialization.jsonObject(with: response.bodyData)) as? [String: Any] ?? [:] + guard response.status == 200 else { + throw BridgeError.message(data["error"] as? String ?? "Galaxy request failed (HTTP \(response.status)).") + } + return data + } + private func localCatalogue() -> [[String: Any]] { [] } + private func categoryButtons() -> [CPGridButton] { + [button("Open toggles", icon: "switch.2") { [weak self] in self?.loadGalaxy() }] + } + private func showCategories() { loadGalaxy() } + private func loadGalaxy() { + guard let toggles else { return } + if toggles.userInfo == nil { toggles.userInfo = SettingsPageState("hub") } + loadSettings(toggles) + } + private func openSettings(_ name: String, title: String) { + let page = makeGrid(title: title, gridButtons: [button("Loading…", icon: "hourglass")]) + page.userInfo = SettingsPageState(name) + pushTemplate(page, animated: true) { [weak self, weak page] success, _ in + if success, let page { self?.loadSettings(page) } + } + } + private func loadSettings(_ page: CPGridTemplate) { + guard let state = page.userInfo as? SettingsPageState, !busy else { return } + work?.cancel() + work = Task { [weak self, weak page] in + guard let self, let page else { return } + do { + let name = state.name.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed.subtracting(CharacterSet(charactersIn: "/")))! + state.snapshot = try await self.request("/api/settings/pages/" + name) + state.session = self.session + self.drawSettings(page) + } catch { + if !Task.isCancelled { + self.updateGrid(page, buttons: [self.button("Retry", icon: "arrow.clockwise") { [weak self, weak page] in + if let page { self?.loadSettings(page) } + }]) + self.notice(error.localizedDescription) + } + } + } + } + private func drawSettings(_ page: CPGridTemplate) { + guard let state = page.userInfo as? SettingsPageState else { return } + let rows = state.snapshot["rows"] as? [[String: Any]] ?? [] + let count = max(1, (rows.count + 7) / 8) + state.index = min(state.index, count - 1) + var buttons: [CPGridButton] = [] + for index in (state.index * 8).. 0 { + navigation.append(CPBarButton(image: UIImage(systemName: "chevron.left")!) { [weak self, weak page] _ in + guard let page else { return }; state.index -= 1; self?.drawSettings(page) + }) + } + if state.index + 1 < count { + navigation.append(CPBarButton(image: UIImage(systemName: "chevron.right")!) { [weak self, weak page] _ in + guard let page else { return }; state.index += 1; self?.drawSettings(page) + }) + } + page.trailingNavigationBarButtons = navigation + } + private func editSetting(_ parent: CPGridTemplate, index: Int, row: [String: Any]) { + let choices = row["choices"] as? [String] ?? [] + if choices.count == 2, choices.contains("On"), choices.contains("Off") { + preview(parent, index: index, selection: row["value"] as? String == "On" ? "Off" : "On") + return + } + let editor = makeGrid(title: row["label"] as? String, gridButtons: [button("Loading…", icon: "hourglass")]) + var buttons: [CPGridButton] = [] + if !choices.isEmpty { + var choicePage = 0 + func redraw() { + let count = max(1, (choices.count + 7) / 8) + let start = choicePage * 8 + let tiles = choices[start.. 0 { + buttons = [button("Decrease", icon: "minus.circle", value: String(describing: row["value"] ?? "")) { [weak self] in self?.preview(parent, index: index, direction: -1) }, + button("Increase", icon: "plus.circle", value: String(describing: row["value"] ?? "")) { [weak self] in self?.preview(parent, index: index, direction: 1) }] + } else { + buttons = [button("Continue", icon: "checkmark.circle") { [weak self] in self?.preview(parent, index: index, direction: 0) }] + } + updateGrid(editor, buttons: buttons) + pushTemplate(editor, animated: true, completion: nil) + } + private func preview(_ page: CPGridTemplate, index: Int, selection: String? = nil, direction: Int = 0) { + guard !busy, let state = page.userInfo as? SettingsPageState, state.session == session, + let view = state.snapshot["view"] as? String else { loadSettings(page); return } + busy = true + let original = session + Task { [weak self, weak page] in + guard let self, let page else { return } + defer { self.busy = false } + do { + var payload: [String: Any] = ["view": view, "row": index, "direction": direction] + if let selection { payload["value"] = selection } + let pending = try await self.request("/api/settings/preview", payload: payload) + guard let intent = pending["intent"] as? String else { throw BridgeError.message("Refresh settings and try again.") } + let confirm = CPAlertAction(title: "Save", style: .default) { [weak self, weak page] _ in + guard let self, let page else { return } + self.controller?.dismissTemplate(animated: true) { _, _ in + guard original == self.session else { self.notice("Connection changed. Refresh settings."); return } + self.commit(intent, page: page) + } + } + let cancel = CPAlertAction(title: "Cancel", style: .cancel) { [weak self] _ in self?.controller?.dismissTemplate(animated: true, completion: nil) } + self.controller?.presentTemplate(CPAlertTemplate(titleVariants: [pending["question"] as? String ?? "Save this preference?"], actions: [cancel, confirm]), animated: true, completion: nil) + } catch { self.notice(error.localizedDescription); self.busy = false; self.loadSettings(page) } + } + } + private func commit(_ intent: String, page: CPGridTemplate) { + guard !busy else { return } + busy = true + Task { [weak self, weak page] in + guard let self, let page else { return } + do { + let result = try await self.request("/api/settings/confirm", payload: ["intent": intent, "confirmed": true]) + if result["saved"] as? Bool != true { self.notice("Save could not be confirmed. Check the current value.") } + } catch { self.notice(error.localizedDescription) } + self.busy = false + if self.controller?.topTemplate !== page { + self.popTemplate(animated: true) { [weak self, weak page] _, _ in + if let page { self?.loadSettings(page) } + } + } else { self.loadSettings(page) } + } + } + private func paging(_ page: CPGridTemplate, index: Int, count: Int, change: @escaping @MainActor (Int) -> Void) { + var items: [CPBarButton] = [] + if index > 0 { items.append(CPBarButton(image: UIImage(systemName: "chevron.left")!) { _ in change(index - 1) }) } + if index + 1 < count { items.append(CPBarButton(image: UIImage(systemName: "chevron.right")!) { _ in change(index + 1) }) } + page.trailingNavigationBarButtons = items + } + + private func notice(_ message: String) { + guard controller?.presentedTemplate == nil else { return } + let action = CPAlertAction(title: "OK", style: .cancel) { [weak self] _ in self?.controller?.dismissTemplate(animated: true, completion: nil) } + controller?.presentTemplate(CPAlertTemplate(titleVariants: [String(message.prefix(240))], actions: [action]), animated: true, completion: nil) + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/ClaimPairing.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/ClaimPairing.swift new file mode 100644 index 0000000000..191bcbb188 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/ClaimPairing.swift @@ -0,0 +1,234 @@ +import Foundation +import CryptoKit +import CoreBluetooth + +/// What comma hands a phone when its pairing window is open (Settings → Bluetooth → Pair phone on comma). +struct ClaimResult: Equatable { + let key: String + let id: String? + let adapterAddress: String + let adapterName: String +} + +/// Byte layout: galaxy_bluetooth/README.md, "Pairing a phone". The phone sends a P-256 public key and gets its own +/// key back, sealed under an ECDH-derived key, so nothing a nearby listener can read ever contains the key. +enum ClaimCrypto { + static let requestMagic = Data("GCL1".utf8) + static let replyMagic = Data("GCR1".utf8) + static let info = Data("galaxy-claim-v1".utf8) + static let aad = Data("galaxy-claim-v1/reply".utf8) + static let point = 65 + + static func request(publicKey: P256.KeyAgreement.PublicKey, name: String) -> Data { + requestMagic + publicKey.x963Representation + Data(String(name.prefix(40)).utf8) + } + + static func derive(_ privateKey: P256.KeyAgreement.PrivateKey, peer: Data, challenge: Data) throws -> SymmetricKey { + let secret = try privateKey.sharedSecretFromKeyAgreement(with: P256.KeyAgreement.PublicKey(x963Representation: peer)) + return secret.hkdfDerivedSymmetricKey(using: SHA256.self, salt: challenge, sharedInfo: info, outputByteCount: 32) + } + + static func open(_ reply: Data, privateKey: P256.KeyAgreement.PrivateKey, challenge: Data) throws -> ClaimResult { + let reply = Data(reply) + guard reply.count > 4 + point + 12 + 16, reply.prefix(4) == replyMagic else { + throw BridgeError.message("comma sent an unexpected reply.") + } + let key = try derive(privateKey, peer: reply.subdata(in: 4..<(4 + point)), challenge: challenge) + let nonce = try AES.GCM.Nonce(data: reply.subdata(in: (4 + point)..<(4 + point + 12))) + let rest = reply.dropFirst(4 + point + 12) + let box = try AES.GCM.SealedBox(nonce: nonce, ciphertext: rest.dropLast(16), tag: rest.suffix(16)) + return try parse(try AES.GCM.open(box, using: key, authenticating: aad)) + } + + static func parse(_ json: Data) throws -> ClaimResult { + guard let value = try JSONSerialization.jsonObject(with: json) as? [String: Any], + let key = value["key"] as? String, key.utf8.count == 64, + key.utf8.allSatisfy({ (48...57).contains($0) || (65...70).contains($0) || (97...102).contains($0) }) else { + throw BridgeError.message("comma sent an unexpected pairing key.") + } + let address = (value["adapterAddress"] as? String) ?? "" + return ClaimResult(key: key.lowercased(), id: PairingCode.validID(value["id"] as? String), + adapterAddress: address.range(of: "^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$", options: .regularExpression) != nil ? address.uppercased() : "", + adapterName: String(((value["adapterName"] as? String) ?? "").prefix(80))) + } +} + +/// A one-shot Bluetooth connection that asks the comma with its pairing window open for a key. +/// It is separate from `BluetoothTransport` so the normal encrypted connection code is untouched. +@MainActor +final class ClaimTransport: NSObject, @preconcurrency CBCentralManagerDelegate, @preconcurrency CBPeripheralDelegate { + struct Outcome { + let result: ClaimResult + let deviceID: UUID + } + + var onEvent: ((String) -> Void)? + private var central: CBCentralManager? + private var peripheral: CBPeripheral? + private var rx: CBCharacteristic? + private var tx: CBCharacteristic? + private var continuation: CheckedContinuation? + private var privateKey = P256.KeyAgreement.PrivateKey() + private var name = "" + private var challenge = Data() + private var outgoing: [Data] = [] + private var writeIndex = 0 + private var assembler = FrameAssembler() + private var claimed: ClaimResult? + private var handingOff = false + private var timeout: Task? + + func claim(name: String) async throws -> Outcome { + guard continuation == nil else { throw BridgeError.message("Pairing is already in progress.") } + self.name = name + challenge = Data() + outgoing = [] + writeIndex = 0 + assembler = FrameAssembler() + claimed = nil + handingOff = false + onEvent?("Phone pairing started") + privateKey = P256.KeyAgreement.PrivateKey() + return try await withCheckedThrowingContinuation { continuation in + self.continuation = continuation + central = CBCentralManager(delegate: self, queue: .main) + timeout = Task { @MainActor [weak self] in + try? await Task.sleep(nanoseconds: 30_000_000_000) + guard !Task.isCancelled else { return } + self?.fail("comma didn’t answer. On comma open Settings → Bluetooth → Pair phone, then try again.") + } + } + } + + func cancel() { + guard continuation != nil else { return } + onEvent?("Phone pairing cancelled") + finish(.failure(CancellationError())) + } + + private func fail(_ message: String) { + onEvent?("Phone pairing failed: " + message) + finish(.failure(BridgeError.message(message))) + } + + private func finish(_ result: Result) { + guard let continuation else { return } + self.continuation = nil + timeout?.cancel() + central?.stopScan() + if let peripheral, peripheral.state != .disconnected { central?.cancelPeripheralConnection(peripheral) } + peripheral = nil; rx = nil; tx = nil; central = nil + continuation.resume(with: result) + } + + func centralManagerDidUpdateState(_ central: CBCentralManager) { + guard central === self.central, continuation != nil else { return } + switch central.state { + case .poweredOn: central.scanForPeripherals(withServices: [CBUUID(string: Wire.service)], options: nil) + case .unauthorized: fail("Allow Bluetooth access in iPhone Settings.") + case .poweredOff: fail("Turn on Bluetooth to pair with comma.") + case .unknown, .resetting: break + default: fail("Bluetooth is unavailable.") + } + } + + func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, + advertisementData: [String: Any], rssi RSSI: NSNumber) { + guard central === self.central, continuation != nil, self.peripheral == nil else { return } + onEvent?("Phone pairing found comma; connecting") + central.stopScan() + self.peripheral = peripheral + peripheral.delegate = self + central.connect(peripheral, options: nil) + } + + func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { + guard central === self.central, peripheral == self.peripheral else { return } + onEvent?("Phone pairing connected; discovering service") + peripheral.discoverServices([CBUUID(string: Wire.service)]) + } + + func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) { + guard central === self.central, peripheral == self.peripheral else { return } + fail(error?.localizedDescription ?? "Could not connect to comma.") + } + + func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { + guard central === self.central, peripheral == self.peripheral, continuation != nil else { return } + if handingOff, let claimed { + onEvent?("Phone pairing complete; starting encrypted connection") + finish(.success(Outcome(result: claimed, deviceID: peripheral.identifier))) + } else { + fail(error?.localizedDescription ?? "comma disconnected.") + } + } + + func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) { + guard peripheral == self.peripheral else { return } + guard error == nil, let service = peripheral.services?.first(where: { $0.uuid == CBUUID(string: Wire.service) }) else { + fail("Galaxy Bluetooth service was not found."); return + } + peripheral.discoverCharacteristics([CBUUID(string: Wire.rx), CBUUID(string: Wire.tx), CBUUID(string: Wire.info)], for: service) + } + + func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) { + guard peripheral == self.peripheral else { return } + rx = service.characteristics?.first { $0.uuid == CBUUID(string: Wire.rx) } + tx = service.characteristics?.first { $0.uuid == CBUUID(string: Wire.tx) } + guard error == nil, rx != nil, tx != nil, + let info = service.characteristics?.first(where: { $0.uuid == CBUUID(string: Wire.info) }) else { + fail("The comma bridge has incompatible Bluetooth characteristics."); return + } + peripheral.readValue(for: info) + } + + func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) { + guard peripheral == self.peripheral, characteristic.uuid == CBUUID(string: Wire.rx) else { return } + if let error { fail(error.localizedDescription); return } + if claimed != nil { + // Release this connection before the normal transport connects to the same comma. + handingOff = true + onEvent?("Phone pairing key received; closing setup connection") + central?.cancelPeripheralConnection(peripheral) + return + } + writeIndex += 1 + if writeIndex < outgoing.count, let rx { peripheral.writeValue(outgoing[writeIndex], for: rx, type: .withResponse) } + else if let tx { peripheral.readValue(for: tx) } + } + + func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { + guard peripheral == self.peripheral else { return } + if let error { fail(error.localizedDescription); return } + guard let data = characteristic.value else { fail("Empty Bluetooth response."); return } + if characteristic.uuid == CBUUID(string: Wire.info) { + guard data.count == 17, data.first == 1, let rx else { fail("Unsupported bridge protocol."); return } + challenge = Data(data.dropFirst()) + let body = ClaimCrypto.request(publicKey: privateKey.publicKey, name: name) + outgoing = Wire.packets(Wire.uint32(UInt32(body.count)) + body, + size: min(180, peripheral.maximumWriteValueLength(for: .withoutResponse))) + writeIndex = 0 + assembler = FrameAssembler() + peripheral.writeValue(outgoing[0], for: rx, type: .withResponse) + return + } + guard characteristic.uuid == CBUUID(string: Wire.tx), let tx, let rx else { return } + if data == Data([0]) { + // Comma is still working on its answer. + Task { @MainActor [weak self, weak peripheral] in + try? await Task.sleep(nanoseconds: 75_000_000) + guard let self, let peripheral, peripheral == self.peripheral, self.continuation != nil else { return } + peripheral.readValue(for: tx) + } + return + } + do { + if let reply = try assembler.append(data) { + claimed = try ClaimCrypto.open(reply, privateKey: privateKey, challenge: challenge) + peripheral.writeValue(Data([2]) + data.subdata(in: 1..<5), for: rx, type: .withResponse) + } else { + peripheral.readValue(for: tx) + } + } catch { fail("Could not read comma’s pairing reply: \(error.localizedDescription)") } + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/CompanionDiagnostics.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/CompanionDiagnostics.swift new file mode 100644 index 0000000000..d00570cfca --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/CompanionDiagnostics.swift @@ -0,0 +1,348 @@ +import SwiftUI +import CryptoKit +import UIKit +import ImageIO + +struct DiagnosticMetric: Decodable, Identifiable { + let name: String + let value: Double? + let unit: String + var id: String { name } + var display: String { value.map { String(format: "%.1f %@", $0, unit) } ?? "Not reported" } +} +struct DiagnosticSnapshot: Decodable { + let ageSeconds: Double + let engaged: Bool? + let temperatures: [DiagnosticMetric] + let rates: [DiagnosticMetric] + let capture: CaptureStatus? +} + +struct CaptureStatus: Codable { + let hookAgeSeconds: Double? + let frameAgeSeconds: Double? + let queuedImages: Int? + let captureError: String? + let encoderError: String? + let encoderStderr: String? + let encoderExitCode: Int? + let videoSize: [Int]? + let encoderRunning: Bool? +} + +@MainActor +final class CompanionDiagnostics: ObservableObject { + @Published var system: [String: Any]? + @Published var snapshot: DiagnosticSnapshot? + @Published var screen: UIImage? + @Published var status = "Connect and pair with comma to read diagnostics." { didSet { record(status) } } + @Published var screenStatus = "Live View uses local Wi-Fi." { didSet { if !screenStatus.hasPrefix("Full comma display") { record(screenStatus) } } } + @Published var live = true { didSet { if live { waitingSince = Date() } } } + @Published var phoneVisible = false { didSet { if phoneVisible && !oldValue { waitingSince = Date(); copiedLog = false }; updateActivity() } } + @Published var carPlayActive = false { didSet { updateActivity() } } + @Published private(set) var receivedAt: Date? + @Published private(set) var frameAt: Date? + @Published var copiedLog = false + var transport: PreferredTransport? + var lan: LANTransport? + var phoneActive = true { didSet { updateActivity() } } + private var task: Task? + private var telemetryTask: Task? + private var reconnectCount = 0 + private var retryDelay = 1.0 + private var streamHasFrame = false + private var streamHost = "" + private var streamStarted = Date.distantPast + private var streamGeneration = UUID() + private var lastStreamAttempt = Date.distantPast + private var frameCount = 0 + private var fpsStarted = Date() + @Published private(set) var displayFPS = 0.0 + private var lastDiagnostics = Date.distantPast + private var lastDiagnosticsHTTP: Int? + private var waitingSince = Date() + private var events: [String] = [] + private var lastEvent = "" + private var captureSample: CaptureStatus? + private var captureSampleAt: Date? + + var canCopyLog: Bool { + live && phoneVisible && !frameFresh && Date().timeIntervalSince(waitingSince) >= 10 + } + private func record(_ message: String) { + guard message != lastEvent else { return } + lastEvent = message + events.append("\(ISO8601DateFormatter().string(from: Date())) \(message.prefix(500))") + if events.count > 30 { events.removeFirst(events.count - 30) } + } + func diagnosticLog() -> String { + let info = Bundle.main.infoDictionary ?? [:] + var lines = ["StarPilot BT Live diagnostics", ISO8601DateFormatter().string(from: Date()), + "App: \(info["CFBundleShortVersionString"] ?? "unknown") (\(info["CFBundleVersion"] ?? "unknown"))", + "iOS: \(UIDevice.current.systemVersion)", + "Connection: \(transport?.label ?? "Disconnected")", + "LAN connected: \(lan?.connected == true)", + "Live mode: \(live); phone visible: \(phoneVisible); phone active: \(phoneActive); CarPlay active: \(carPlayActive)", + "Stream reconnect attempts: \(reconnectCount)", + "Telemetry: \(status)", "Telemetry HTTP: \(lastDiagnosticsHTTP.map(String.init) ?? "No response yet")", "Stream: \(screenStatus)", + "No frame for: \(Int(Date().timeIntervalSince(waitingSince))) seconds"] + if let captureSample, let captureSampleAt, + let data = try? JSONEncoder().encode(captureSample), let text = String(data: data, encoding: .utf8) { + lines.append("Capture sample age: \(Int(Date().timeIntervalSince(captureSampleAt))) seconds") + lines.append("Comma capture: \(text)") + } else { lines.append("Comma capture details unavailable; update the comma fork if telemetry is connected.") } + lines.append("Recent events:") + lines.append(contentsOf: events) + return lines.joined(separator: "\n") + } + + var fresh: Bool { + guard let snapshot, let receivedAt, transport?.connected == true else { return false } + return snapshot.ageSeconds + Date().timeIntervalSince(receivedAt) < 5 + } + var frameFresh: Bool { + guard let frameAt, lan?.connected == true else { return false } + return Date().timeIntervalSince(frameAt) < 3 + } + private func updateActivity() { + let active = carPlayActive || (phoneVisible && phoneActive) + if !active { + task?.cancel(); task = nil; telemetryTask?.cancel(); telemetryTask = nil + stopStream(); return + } + guard task == nil else { return } + task = Task { [weak self] in + while !Task.isCancelled { + guard let self else { return } + self.maintainStream() + do { try await Task.sleep(nanoseconds: 500_000_000) } catch { return } + } + } + telemetryTask = Task { [weak self] in + while !Task.isCancelled { + guard let self else { return } + await self.pollDiagnostics() + do { try await Task.sleep(nanoseconds: 2_000_000_000) } catch { return } + } + } + } + private func pollDiagnostics() async { + guard Date().timeIntervalSince(lastDiagnostics) >= 3, let transport, transport.connected else { return } + lastDiagnostics = Date() + do { + let response = try await transport.request(path: "/api/system/monitor", method: "GET", headers: [:], body: Data()) + try Task.checkCancellation() + lastDiagnosticsHTTP = response.status + let value = try JSONSerialization.jsonObject(with: response.bodyData) as? [String: Any] ?? [:] + guard response.status == 200, value["schemaVersion"] as? Int == 1 else { + throw BridgeError.message(value["error"] as? String ?? "System monitor unavailable.") + } + let cpu = (value["cpuPercent"] as? NSNumber)?.doubleValue + let memory = value["memory"] as? [String: Any] ?? [:] + let cores = value["cores"] as? [[String: Any]] ?? [] + system = value + snapshot = DiagnosticSnapshot(ageSeconds: 0, engaged: nil, temperatures: [], rates: + [DiagnosticMetric(name: "CPU load", value: cpu, unit: "%"), + DiagnosticMetric(name: "Memory", value: (memory["percent"] as? NSNumber)?.doubleValue, unit: "%")] + + cores.map { DiagnosticMetric(name: $0["name"] as? String ?? "CPU", value: ($0["percent"] as? NSNumber)?.doubleValue, unit: "%") }, capture: nil) + receivedAt = Date(); status = "Connected · read only" + } catch { + if !Task.isCancelled { status = error.localizedDescription; system = nil; snapshot = nil; receivedAt = nil } + } + } + private func maintainStream() { + stopStream() + screenStatus = "Open Cameras & Monitoring in Galaxy for SecretGood’s camera views. Cameras require local Wi-Fi." + } + private func stopStream(preserveFrame: Bool = false) { + if !preserveFrame { screen = nil; frameAt = nil; displayFPS = 0 } + } +} + +struct CompanionView: View { + @ObservedObject var diagnostics: CompanionDiagnostics + private let purple = Color(red: 0.55, green: 0.36, blue: 0.96) + var body: some View { + TimelineView(.periodic(from: .now, by: 1)) { _ in + if diagnostics.live { liveView } else { diagnosticView } + } + .background(Color(uiColor: .systemBackground)) + .onAppear { diagnostics.phoneVisible = true; UIApplication.shared.isIdleTimerDisabled = diagnostics.live } + .onChange(of: diagnostics.live) { _, live in UIApplication.shared.isIdleTimerDisabled = live } + .onDisappear { diagnostics.phoneVisible = false; UIApplication.shared.isIdleTimerDisabled = false } + } + private var liveView: some View { + VStack(spacing: 16) { + GeometryReader { space in + if diagnostics.frameFresh, let image = diagnostics.screen { + Image(uiImage: image).resizable().scaledToFit() + .frame(width: space.size.width, height: space.size.height) + .accessibilityLabel("Live comma display") + } else { + ContentUnavailableView("Galaxy cameras", systemImage: "play.rectangle", description: Text(diagnostics.screenStatus)) + .frame(width: space.size.width, height: space.size.height) + } + }.background(Color(uiColor: .secondarySystemBackground), in: RoundedRectangle(cornerRadius: 20)) + Label(diagnostics.screenStatus, systemImage: diagnostics.frameFresh ? "wifi" : "clock") + .font(.caption).foregroundStyle(.secondary) + if diagnostics.canCopyLog { + Text("No frame received. Copy diagnostics to share what happened.") + .font(.caption).foregroundStyle(.secondary) + copyButton + } + }.padding(16) + } + private var diagnosticView: some View { + ScrollView { + VStack(alignment: .leading, spacing: 24) { + HStack(alignment: .top) { + VStack(alignment: .leading, spacing: 6) { + Text("Live diagnostics").font(.title2.bold()) + Text(diagnostics.fresh ? "Updating every 2 seconds" : diagnostics.status) + .font(.caption).foregroundStyle(.secondary) + } + Spacer() + Text("READ ONLY").font(.system(size: 9, weight: .bold)).tracking(1) + .padding(8).background(purple.opacity(0.18), in: Capsule()).foregroundStyle(purple) + } + HStack(spacing: 12) { + Image(systemName: "car.side.fill").font(.title2).foregroundStyle(purple) + VStack(alignment: .leading, spacing: 4) { + Text(drivingStatus).font(.headline) + Text(diagnostics.fresh ? "Telemetry connected" : "Waiting for fresh telemetry") + .font(.caption).foregroundStyle(.secondary) + } + Spacer() + Circle().fill(diagnostics.fresh ? Color.green : Color.orange).frame(width: 8, height: 8) + }.padding(18).background(Color(uiColor: .secondarySystemBackground), in: RoundedRectangle(cornerRadius: 18)) + metricSection("Temperatures", icon: "thermometer.medium", values: temperatures.filter { !isExternalGPU($0) }, thermal: true) + metricSection("Frame rates", icon: "speedometer", values: rates.filter { $0.unit == "FPS" && !isExternalGPU($0) }, thermal: false) + metricSection("Message rates", icon: "waveform.path", values: rates.filter { $0.unit != "FPS" && !isExternalGPU($0) }, thermal: false) + externalGPUView + Text("Unavailable sensors show no reading. Message rates reflect updates observed by the comma UI.") + .font(.caption).foregroundStyle(.secondary) + copyButton.frame(maxWidth: .infinity) + }.padding(20).frame(maxWidth: 700).frame(maxWidth: .infinity) + } + } + private var temperatures: [DiagnosticMetric] { + diagnostics.fresh ? diagnostics.snapshot?.temperatures ?? [] : [] + } + private var rates: [DiagnosticMetric] { + diagnostics.fresh ? diagnostics.snapshot?.rates ?? [] : [] + } + private func isExternalGPU(_ metric: DiagnosticMetric) -> Bool { + let name = metric.name.lowercased() + return name.contains("external gpu") || name.contains("chestnut") || name.hasPrefix("sensor: amdgpu") + } + private var externalGPUView: some View { + let sensors = temperatures.filter(isExternalGPU) + let updates = rates.filter(isExternalGPU) + return VStack(alignment: .leading, spacing: 16) { + HStack { + Label("External GPU", systemImage: "cpu").font(.title3.bold()) + Spacer() + Text("CHESTNUT").font(.system(size: 9, weight: .bold)).tracking(1).foregroundStyle(purple) + } + if sensors.isEmpty && updates.isEmpty { + Text("No Chestnut telemetry reported.").font(.subheadline).foregroundStyle(.secondary) + } else { + if !sensors.isEmpty { metricCards("Temperatures", icon: "thermometer.medium", values: sensors) } + if !updates.isEmpty { metricCards("Telemetry rates", icon: "waveform.path", values: updates) } + } + }.padding(18).background(purple.opacity(0.08), in: RoundedRectangle(cornerRadius: 20)) + .overlay(RoundedRectangle(cornerRadius: 20).stroke(purple.opacity(0.25), lineWidth: 1)) + } + private func metricName(_ metric: DiagnosticMetric) -> String { + switch metric.name { + case "External GPU": "GPU temperature" + case "External GPU memory": "Memory temperature" + case "chestnutState": "Telemetry updates" + default: metric.name + } + } + private func component(_ metric: DiagnosticMetric, thermal: Bool) -> String { + let name = metric.name.lowercased() + if thermal { + if name.hasPrefix("sensor:") { return "Additional hardware sensors" } + if name.contains("cpu") || name.contains("dsp") || name.contains("soc") { return "Processors" } + if name.contains("gpu") { return "Onboard GPU" } + if name.contains("memory") { return "Memory" } + if name.contains("pmic") { return "Power management" } + if name.contains("modem") || name.contains("gnss") { return "Connectivity & positioning" } + if name.contains("intake") || name.contains("exhaust") { return "Cooling" } + return "Other temperatures" + } + if name.contains("camera") { return "Cameras" } + if name == "ui" { return "Display" } + if name.contains("model") || name.contains("plan") { return "Models & planning" } + if name.contains("carstate") || name.contains("carcontrol") || name.contains("selfdrive") { return "Driving" } + if name.contains("device") || name.contains("peripheral") { return "Device" } + return "Other services" + } + private func metricSection(_ title: String, icon: String, values: [DiagnosticMetric], thermal: Bool) -> some View { + let order = thermal + ? ["Processors", "Onboard GPU", "Memory", "Power management", "Cooling", "Connectivity & positioning", "Other temperatures", "Additional hardware sensors"] + : ["Display", "Cameras", "Models & planning", "Driving", "Device", "Other services"] + return VStack(alignment: .leading, spacing: 16) { + Label(title, systemImage: icon).font(.title3.bold()) + if values.isEmpty { + Text("No readings available").font(.subheadline).foregroundStyle(.secondary) + } + ForEach(order, id: \.self) { group in + let readings = values.filter { component($0, thermal: thermal) == group } + if !readings.isEmpty { + if group == "Additional hardware sensors" || group == "Other services" || group == "Other temperatures" { + DisclosureGroup { + metricCards("", icon: icon, values: readings).padding(.top, 12) + } label: { + HStack { + Text(group).font(.subheadline.weight(.medium)) + Spacer() + Text("\(readings.count)").font(.caption).foregroundStyle(.secondary) + } + }.tint(purple).padding(16) + .background(Color(uiColor: .secondarySystemBackground), in: RoundedRectangle(cornerRadius: 16)) + } else { + metricCards(group, icon: icon, values: readings) + } + } + } + } + } + private var drivingStatus: String { + guard diagnostics.fresh, let engaged = diagnostics.snapshot?.engaged else { return "Driving status unavailable" } + return engaged ? "StarPilot engaged" : "StarPilot not engaged" + } + private var copyButton: some View { + Button(diagnostics.copiedLog ? "Copied diagnostics" : "Copy diagnostics", systemImage: diagnostics.copiedLog ? "checkmark" : "doc.on.doc") { + UIPasteboard.general.string = diagnostics.diagnosticLog() + diagnostics.copiedLog = true + }.buttonStyle(.bordered).tint(purple) + } + private func metricCards(_ title: String, icon: String, values: [DiagnosticMetric]) -> some View { + VStack(alignment: .leading, spacing: 12) { + if !title.isEmpty { Text(title).font(.subheadline.weight(.semibold)).foregroundStyle(.secondary) } + if values.isEmpty { + Text("No readings available").font(.subheadline).foregroundStyle(.secondary) + .frame(maxWidth: .infinity, alignment: .leading).padding(18) + .background(Color(uiColor: .secondarySystemBackground), in: RoundedRectangle(cornerRadius: 16)) + } else { + LazyVGrid(columns: [GridItem(.adaptive(minimum: 145), spacing: 12)], spacing: 12) { + ForEach(Array(values.enumerated()), id: \.offset) { _, metric in + VStack(alignment: .leading, spacing: 12) { + Text(metricName(metric)).font(.caption.weight(.medium)).foregroundStyle(.secondary) + .lineLimit(2).frame(minHeight: 30, alignment: .topLeading) + HStack(alignment: .firstTextBaseline, spacing: 4) { + Text(metric.value.map { String(format: "%.1f", $0) } ?? "—") + .font(.system(size: 29, weight: .semibold, design: .rounded)).monospacedDigit() + Text(metric.unit).font(.caption).foregroundStyle(purple).lineLimit(1).minimumScaleFactor(0.6) + }.minimumScaleFactor(0.7).lineLimit(1) + }.frame(maxWidth: .infinity, alignment: .leading).padding(16) + .background(Color(uiColor: .secondarySystemBackground), in: RoundedRectangle(cornerRadius: 16)) + } + } + } + } + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/ConnectionSettingsView.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/ConnectionSettingsView.swift new file mode 100644 index 0000000000..125392a9e2 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/ConnectionSettingsView.swift @@ -0,0 +1,280 @@ +import SwiftUI + +struct ConnectionSettingsView: View { + @ObservedObject var model: AppModel + @ObservedObject var bluetooth: BluetoothTransport + @ObservedObject var lan: LANTransport + @ObservedObject var assets: GalaxyAssetStore + @ObservedObject var server: LoopbackServer + @ObservedObject var discovery: LANDiscovery + @ObservedObject var location: PhoneLocation + @ObservedObject var audio: AudioPairing + let returningFromGalaxy: Bool + let select: (CompanionTab) -> Void + @Environment(\.openURL) private var openURL + @State private var advanced = false + @State private var confirmForget = false + @State private var checked = false + @State private var openAfterReconnect = false + + private let accent = Color(red: 0.68, green: 0.48, blue: 0.96) + private let background = Color(red: 0.035, green: 0.035, blue: 0.078) + private let panel = Color(red: 0.09, green: 0.065, blue: 0.145) + private let muted = Color(red: 0.70, green: 0.65, blue: 0.77) + private var connected: Bool { model.transport.connected } + private var pairing: Bool { model.pairingInProgress } + private var needsPairing: Bool { model.mode != .lan && model.pairingKey.isEmpty } + private var connecting: Bool { !connected && (bluetooth.connecting || bluetooth.isScanning) } + private var primaryTitle: String { + if pairing { return "Pairing…" } + if connected { return model.opened ? "Open Galaxy" : "Preparing Galaxy…" } + if connecting { return "Connecting…" } + return needsPairing ? "Pair with comma" : "Reconnect" + } + private var checking: Bool { model.matchingGalaxy || assets.checking } + private var status: String { pairing ? "Pairing with comma…" : connected ? "Connected via \(model.transport.label)" : connecting ? "Connecting to comma…" : "Not connected" } + + init(model: AppModel, returningFromGalaxy: Bool, select: @escaping (CompanionTab) -> Void) { + self.model = model; self.returningFromGalaxy = returningFromGalaxy; self.select = select + bluetooth = model.bluetooth; lan = model.lan; assets = model.assets; server = model.server + discovery = model.discovery; location = model.phoneLocation; audio = model.audioPairing + } + + var body: some View { + ScrollView { + VStack(spacing: 8) { + HStack { + if returningFromGalaxy && model.opened { + Button { select(.galaxy) } label: { + Image(systemName: "chevron.left").frame(width: 44, height: 44) + }.accessibilityLabel("Back to Galaxy") + } else { Color.clear.frame(width: 44, height: 44) } + Spacer(minLength: 0) + Text(returningFromGalaxy ? "Settings" : "StarPilot BT") + .font(.custom("Sora-Regular", size: 22).weight(.medium)).lineLimit(1) + Spacer(minLength: 0) + Color.clear.frame(width: 44, height: 44) + } + ConnectionOrbit(route: connected ? model.transport.label : "", pairing: pairing) + .padding(.bottom, 10) + connectionPanel + Text("PREFERENCES").font(.system(size: 11, weight: .medium)).tracking(1.2) + .foregroundStyle(muted).frame(maxWidth: .infinity, alignment: .leading) + preferences + DisclosureGroup(isExpanded: $advanced) { advancedControls.padding(.top, 8) } label: { + Text("Advanced connection options").font(.system(size: 13)).frame(minHeight: 30) + }.padding(.horizontal, 14).padding(.vertical, 7).background(panel, in: RoundedRectangle(cornerRadius: 16)) + .overlay(RoundedRectangle(cornerRadius: 16).stroke(accent.opacity(0.16))) + HStack(spacing: 18) { + Button(model.loadingLegacyURL ? "Getting link…" : "Legacy Galaxy") { + Task { if let url = await model.fetchLegacyURL() { + openURL(url) { accepted in if !accepted { model.legacyMessage = "Couldn’t open your browser. Try again." } } + } } + }.disabled(model.loadingLegacyURL || pairing) + Link("Support", destination: URL(string: "https://wiki.firestar.link/ticketsystem/")!) + Link("Privacy", destination: URL(string: "https://github.com/natehuby76/ios-clone/blob/codex/secretgood-galaxy/docs/privacy.md")!) + }.font(.system(size: 12)).frame(minHeight: 44) + if !model.legacyMessage.isEmpty { message(model.legacyMessage) } + if !server.error.isEmpty { message(server.error) } + Text("StarPilot BT · \(Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "")") + .font(.system(size: 11)).foregroundStyle(muted) + }.padding(.horizontal, 18).padding(.top, 0).padding(.bottom, 12) + .frame(maxWidth: 460).frame(maxWidth: .infinity) + }.scrollBounceBehavior(.basedOnSize).background(background).foregroundStyle(Color.white) + .onChange(of: connected) { _, _ in openReconnectedGalaxy() } + .onChange(of: model.opened) { _, _ in openReconnectedGalaxy() } + .onChange(of: model.wantsConnection) { _, value in if !value { openAfterReconnect = false } } + .tint(accent).preferredColorScheme(.dark) + .confirmationDialog("Forget Bluetooth pairing?", isPresented: $confirmForget, titleVisibility: .visible) { + Button("Forget pairing", role: .destructive) { + model.disconnect(); bluetooth.forgetSavedDevice(); PairingKeyStore.remove(); model.pairingKey = "" + lan.bind(to: nil); UserDefaults.standard.removeObject(forKey: "galaxy.comma.identity") + } + } message: { Text("This removes the saved app pairing. Pair your phone again to reconnect.") } + } + + private func openReconnectedGalaxy() { + guard openAfterReconnect, connected, model.opened else { return } + openAfterReconnect = false + select(.galaxy) + } + + private var connectionPanel: some View { + VStack(alignment: .leading, spacing: 10) { + HStack(spacing: 10) { + Image(model.transport.label == "Wi-Fi" ? "ConnectionWiFi" : "ConnectionBluetooth").renderingMode(.template).resizable().scaledToFit().frame(width: 20, height: 20).foregroundStyle(accent) + .frame(width: 38, height: 38).background(accent.opacity(0.15), in: RoundedRectangle(cornerRadius: 12)) + VStack(alignment: .leading, spacing: 2) { + Text("Your comma").font(.system(size: 17, weight: .medium)) + Text(status).font(.system(size: 11)).foregroundStyle(muted).accessibilityAddTraits(.updatesFrequently) + } + Spacer(minLength: 4) + Text(pairing ? "Pairing…" : connected ? "Connected" : connecting ? "Connecting…" : "Offline") + .font(.system(size: 10, weight: .medium)).foregroundStyle(pairing ? accent : connected ? .mint : muted) + .padding(.horizontal, 9).padding(.vertical, 6) + .background((pairing ? accent : connected ? Color.mint : muted).opacity(0.13), in: Capsule()) + } + Picker("Connection mode", selection: $model.mode) { + Text("Automatic").tag(ConnectionMode.automatic) + Text("Bluetooth").tag(ConnectionMode.bluetooth) + Text("Wi-Fi").tag(ConnectionMode.lan) + }.pickerStyle(.segmented).disabled(pairing) + Text(pairing ? "Keep Pair phone open on comma." : model.mode == .automatic ? "Wi-Fi first, Bluetooth as backup." : model.mode == .bluetooth ? "Local controls over Bluetooth." : "Uses your local Wi-Fi network.") + .font(.system(size: 11)).foregroundStyle(muted) + Button { + if connected && model.opened { select(.galaxy) } + else if needsPairing { model.pairWithComma() } + else { openAfterReconnect = true; model.connect(); openReconnectedGalaxy() } + } label: { + HStack(spacing: 7) { + if pairing { PairingSignal() } + else if connecting || (connected && !model.opened) { ProgressView().controlSize(.small) } + Text(primaryTitle) + }.font(.system(size: 12, weight: .medium)).frame(maxWidth: .infinity, minHeight: 44) + .background(LinearGradient(colors: [Color(red: 0.73, green: 0.55, blue: 1), accent], startPoint: .leading, endPoint: .trailing), in: Capsule()) + .foregroundStyle(Color(red: 0.12, green: 0.06, blue: 0.19)) + }.buttonStyle(.plain).disabled(pairing || connecting || (connected && !model.opened)) + if pairing { + Button("Cancel pairing") { model.cancelPairing() }.font(.system(size: 12)).frame(maxWidth: .infinity, minHeight: 30) + } else if model.connectionMessage != "Connected over \(model.transport.label)." && !connected { + message(model.connectionMessage) + } + }.padding(14).background(LinearGradient(colors: [panel, background], startPoint: .topLeading, endPoint: .bottomTrailing), in: RoundedRectangle(cornerRadius: 22)) + .overlay(RoundedRectangle(cornerRadius: 22).stroke(accent.opacity(0.25))) + } + + private var preferences: some View { + VStack(spacing: 0) { + row("music.note", title: "Phone music", subtitle: audio.phase == .connected ? "Comma is the audio output" : pairing ? "Waiting for app pairing" : "Audio not verified") { + Button("Set up") { model.startAudioPairing() }.disabled(!connected || pairing).font(.system(size: 12)).frame(minHeight: 44) + } + separator + row("location", title: "Share phone location", subtitle: location.status.isEmpty ? "Optional" : location.status) { + Toggle("Share phone location", isOn: Binding(get: { location.sharing }, set: { location.setSharing($0) })).labelsHidden() + } + separator + row("rectangle.on.rectangle", title: "Galaxy screens", subtitle: pairing ? "Waiting for pairing" : checking ? "Checking version…" : checked && assets.readyRoot != nil ? "Up to date · just checked" : assets.readyRoot != nil ? "Saved from your comma" : "Not downloaded · needs Wi-Fi") { + Button { + Task { await model.checkGalaxyUpdates(); checked = true } + } label: { + if checking { ProgressView().controlSize(.small).accessibilityLabel("Checking Galaxy") } + else { Text(checked ? assets.readyRoot != nil ? "✓ Checked" : "Retry" : "Check") } + }.font(.system(size: 12)).frame(minHeight: 44).disabled(checking || !connected || !model.transport.usesLAN || pairing) + } + if checked && !checking { message(assets.status).padding(.horizontal, 14).padding(.bottom, 10) } + separator + row("chevron.left.forwardslash.chevron.right", title: "Developer mode", subtitle: "Diagnostics and logs") { + Toggle("Developer mode", isOn: $model.developerMode).labelsHidden() + } + }.background(panel, in: RoundedRectangle(cornerRadius: 20)) + .overlay(RoundedRectangle(cornerRadius: 20).stroke(accent.opacity(0.23))) + } + + private var advancedControls: some View { + VStack(alignment: .leading, spacing: 12) { + if model.developerMode { + Toggle("Fast Bluetooth reads", isOn: $bluetooth.fastReads) + message(bluetooth.fastReadFallback ? "Fast reads paused after an error. Reliable reads are active." : "Experimental. Turn off to use reliable reads.") + Button("Open Dev / Logs") { select(.logs) } + Divider() + } + if model.mode != .bluetooth { + HStack { + Button(discovery.searching ? "Stop discovery" : "Find comma on Wi-Fi") { + if discovery.searching { discovery.stop() } else { discovery.start() } + }.disabled(model.selectingDiscoveredComma || pairing) + } + message(discovery.status) + ForEach(discovery.devices) { device in + Button { Task { await model.selectDiscoveredComma(device) } } label: { + VStack(alignment: .leading) { Text(device.name); Text(device.address).font(.caption) } + }.disabled(model.selectingDiscoveredComma || pairing) + } + Toggle("Find address over Bluetooth", isOn: $model.findAddressAutomatically) + TextField("Comma IP address", text: $model.address).keyboardType(.numbersAndPunctuation) + .textInputAutocapitalization(.never).autocorrectionDisabled().textFieldStyle(.roundedBorder) + message(lan.status) + } + if model.mode != .lan { + Button("Pair again") { model.pairWithComma() }.disabled(pairing) + SecureField("64-character pairing key", text: $model.pairingKey) + .textInputAutocapitalization(.never).autocorrectionDisabled().textFieldStyle(.roundedBorder) + Button(bluetooth.isScanning ? "Scanning…" : "Scan for comma") { model.wantsConnection = true; bluetooth.scan() } + .disabled(bluetooth.isScanning || bluetooth.connecting || pairing) + message(bluetooth.status) + ForEach(bluetooth.devices) { device in + Button(device.name) { + model.opened = false; model.wantsConnection = true; lan.clearEndpoint(); lan.bind(to: nil); model.address = "" + UserDefaults.standard.removeObject(forKey: "galaxy.comma.identity") + UserDefaults.standard.removeObject(forKey: "galaxy.lan.address") + bluetooth.connect(device, pairingKey: model.pairingKey) + }.disabled(bluetooth.connecting || pairing) + } + if bluetooth.connecting { Button("Cancel Bluetooth connection") { bluetooth.disconnect() } } + Button("Forget Bluetooth pairing", role: .destructive) { confirmForget = true }.disabled(pairing) + } + message(assets.status) + if let url = model.legacyURL { Text(url.absoluteString).font(.caption).textSelection(.enabled) } + Button("Disconnect") { model.disconnect() }.disabled(pairing) + }.font(.system(size: 13)).buttonStyle(.bordered).frame(maxWidth: .infinity, alignment: .leading) + } + + private var separator: some View { Rectangle().fill(accent.opacity(0.12)).frame(height: 1).padding(.leading, 42) } + private func message(_ text: String) -> some View { + Text(text).font(.system(size: 11)).foregroundStyle(muted).fixedSize(horizontal: false, vertical: true) + } + private func row(_ symbol: String, title: String, subtitle: String, @ViewBuilder control: () -> Control) -> some View { + HStack(spacing: 10) { + Image(systemName: symbol).foregroundStyle(accent).frame(width: 20) + VStack(alignment: .leading, spacing: 2) { + Text(title).font(.system(size: 13, weight: .medium)) + Text(subtitle).font(.system(size: 11)).foregroundStyle(muted).fixedSize(horizontal: false, vertical: true) + } + Spacer(minLength: 4) + control().fixedSize(horizontal: true, vertical: false) + }.padding(.horizontal, 13).padding(.vertical, 6).frame(minHeight: 56) + } +} + +private struct PairingSignal: View { + @Environment(\.accessibilityReduceMotion) private var reduceMotion + @State private var pulse = false + var body: some View { + HStack(alignment: .bottom, spacing: 2) { + ForEach(0..<3) { index in + Capsule().frame(width: 3, height: CGFloat(5 + index * 4)) + .opacity(reduceMotion || pulse ? 1 : 0.25) + .animation(reduceMotion ? nil : .easeInOut(duration: 0.7).repeatForever(autoreverses: true).delay(Double(index) * 0.15), value: pulse) + } + }.frame(height: 15).onAppear { pulse = true }.accessibilityHidden(true) + } +} + +private struct ConnectionOrbit: View { + let route: String + let pairing: Bool + private let purple = Color(red: 0.68, green: 0.48, blue: 0.96) + var body: some View { + ZStack { + Ellipse().stroke(purple.opacity(0.5), lineWidth: 1).frame(width: 232, height: 64).rotationEffect(.degrees(12)).position(x: 132, y: 48) + Ellipse().stroke(purple.opacity(0.35), style: StrokeStyle(lineWidth: 1, dash: [2, 4])) + .frame(width: 258, height: 76).rotationEffect(.degrees(-9)).position(x: 132, y: 48) + Circle().fill(LinearGradient(colors: [Color(red: 0.74, green: 0.53, blue: 1), purple], startPoint: .topLeading, endPoint: .bottomTrailing)) + .overlay(Circle().stroke(Color.white.opacity(0.6))) + .overlay(Image("StarPilotMark").resizable().scaledToFit().padding(5)) + .shadow(color: purple.opacity(0.5), radius: 16).frame(width: 60, height: 60).position(x: 132, y: 43) + node("ConnectionWiFi", angle: 155, active: route == "Wi-Fi") + node("ConnectionBluetooth", angle: 110, active: route == "Bluetooth" || pairing) + node("ConnectionNetwork", angle: -25, active: false) + }.frame(width: 264, height: 88).accessibilityHidden(true) + } + private func node(_ symbol: String, angle: Double, active: Bool) -> some View { + let theta = angle * .pi / 180, rotation = 12.0 * .pi / 180 + let x = 132 + 116 * cos(theta) * cos(rotation) - 32 * sin(theta) * sin(rotation) + let y = 48 + 116 * cos(theta) * sin(rotation) + 32 * sin(theta) * cos(rotation) + return Image(symbol).renderingMode(.template).resizable().scaledToFit().frame(width: 15, height: 15).foregroundStyle(active ? Color.white : Color.white.opacity(0.65)) + .frame(width: 30, height: 30).background(Color(red: 0.09, green: 0.075, blue: 0.15), in: Circle()) + .overlay(Circle().stroke(Color.white.opacity(active ? 0.75 : 0.4))) + .shadow(color: purple.opacity(active ? 0.35 : 0), radius: 7).position(x: x, y: y) + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyAssetStore.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyAssetStore.swift new file mode 100644 index 0000000000..db90a6a66c --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyAssetStore.swift @@ -0,0 +1,162 @@ +import Foundation +import CryptoKit +import Combine + +struct GalaxyAssetManifest: Codable { + struct File: Codable { let path: String; let sha256: String; let size: Int } + let schema: Int + let nativeBridge: Int + let files: [File] + func validate() throws { + guard schema == 1, nativeBridge == 1, (1...512).contains(files.count), + Set(files.map(\.path)).count == files.count else { throw BridgeError.message("Galaxy update needs a compatible app version.") } + var total = 0 + for file in files { + let parts = file.path.split(separator: "/", omittingEmptySubsequences: false) + guard !parts.isEmpty, parts.allSatisfy({ !$0.isEmpty && $0 != "." && $0 != ".." }), + file.path.utf8.allSatisfy({ (48...57).contains($0) || (65...90).contains($0) || (97...122).contains($0) || [45, 46, 47, 95].contains($0) }), + ["index.html", "manifest.webmanifest", "sentry-push-worker.js"].contains(file.path) || ["assets/", "css/", "js/", "vendor/", "data/"].contains(where: { file.path.hasPrefix($0) }), + (0...4_194_304).contains(file.size), Self.isHash(file.sha256) else { + throw BridgeError.message("Invalid Galaxy update file.") + } + total += file.size + } + guard total <= 32 * 1_048_576, files.contains(where: { $0.path == "index.html" }), + files.contains(where: { $0.path == "js/boot.js" }), + files.contains(where: { $0.path == "js/app.js" }), + files.contains(where: { $0.path == "data/catalog.json" }), + !files.contains(where: { $0.path == "data/runtime.json" || $0.path.hasSuffix(".sample.json") }) else { throw BridgeError.message("Galaxy update is incomplete or too large.") } + } + static func isHash(_ value: String) -> Bool { value.count == 64 && value.utf8.allSatisfy { (48...57).contains($0) || (97...102).contains($0) } } + static func digest(_ data: Data) -> String { SHA256.hash(data: data).map { String(format: "%02x", $0) }.joined() } +} + +/// Comma's inventory of its Galaxy pages, from `GET /api/companion/web-manifest`. +struct GalaxyListing: Decodable { + let schema: Int + let commit: String? + let files: [GalaxyAssetManifest.File] +} + +/// One GET to comma over Wi-Fi/LAN: the HTTP status and body. +typealias GalaxyPageFetch = @Sendable (_ path: String, _ limit: Int) async throws -> (status: Int, data: Data) + +/// Keeps the Bluetooth copy of Galaxy matched to the pages comma serves, downloaded over Wi-Fi/LAN. +@MainActor +final class GalaxyAssetStore: ObservableObject { + static let notDownloaded = "Galaxy screens aren’t downloaded yet. Connect to comma over Wi-Fi once." + static let tooOld = "Comma’s software is too old to share Galaxy screens; update comma." + @Published private(set) var status = GalaxyAssetStore.notDownloaded + @Published private(set) var checking = false + @Published private(set) var readyRoot: URL? + var inUseRoot: URL? + private let cacheRoot: URL + private let defaults: UserDefaults + init(cacheRoot: URL? = nil, defaults: UserDefaults = .standard) { + self.cacheRoot = cacheRoot ?? FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0].appendingPathComponent("DeviceGalaxyUpdates", isDirectory: true) + self.defaults = defaults + // Validate saved assets before trusting a previous completed update. + if let hash = defaults.string(forKey: "galaxy.device.assets.manifest"), GalaxyAssetManifest.isHash(hash) { + let root = self.cacheRoot.appendingPathComponent(hash, isDirectory: true) + if Self.verify(root) { readyRoot = root; status = "Using Galaxy screens saved from comma." } + } + } + private static func verify(_ root: URL) -> Bool { + guard let data = try? Data(contentsOf: root.appendingPathComponent("manifest.json")), + GalaxyAssetManifest.digest(data) == root.lastPathComponent, + let manifest = try? JSONDecoder().decode(GalaxyAssetManifest.self, from: data), + (try? manifest.validate()) != nil else { return false } + return manifest.files.allSatisfy { file in + guard let data = try? Data(contentsOf: root.appendingPathComponent(file.path)) else { return false } + return data.count == file.size && GalaxyAssetManifest.digest(data) == file.sha256 + } + } + /// True when comma now runs a different build than the one the saved screens came from. + func olderThan(commit: String?) -> Bool { + guard readyRoot != nil, let saved = defaults.string(forKey: "galaxy.device.commit"), !saved.isEmpty, + let commit, !commit.isEmpty else { return false } + return saved != commit + } + /// Over Bluetooth nothing can be downloaded; tell the user when the saved screens are behind comma. + func noteCommaBuild(commit: String?) { + if olderThan(commit: commit) { status = "Galaxy screens are from an older comma build. Connect over Wi-Fi to refresh." } + } + /// Compares comma's inventory with the saved copy and downloads only what changed. Never skips on an unchanged commit. + func check(fetch: @escaping GalaxyPageFetch, stillCurrent: () -> Bool = { true }) async { + guard !checking else { return } + checking = true + status = "Checking comma for Galaxy updates…" + defer { checking = false } + var stage: URL? + do { + let (code, listingData) = try await fetch("/api/companion/web-manifest", 1_048_576) + // Older comma builds answer 401 (no session) or 404 for the inventory path. + if code == 401 || code == 404 { throw BridgeError.message(Self.tooOld) } + guard code == 200 else { throw BridgeError.message("Comma returned HTTP \(code) for the Galaxy inventory.") } + let listing = try JSONDecoder().decode(GalaxyListing.self, from: listingData) + guard listing.schema == 1 else { throw BridgeError.message(Self.tooOld) } + let manifest = GalaxyAssetManifest(schema: 1, nativeBridge: 1, files: listing.files.sorted { $0.path < $1.path }) + try manifest.validate() + let encoder = JSONEncoder(); encoder.outputFormatting = .sortedKeys + let data = try encoder.encode(manifest) + let hash = GalaxyAssetManifest.digest(data) + guard stillCurrent() else { throw CancellationError() } + if readyRoot?.lastPathComponent == hash { defaults.set(listing.commit ?? "", forKey: "galaxy.device.commit"); status = "Galaxy matches comma."; return } + let manager = FileManager.default + try manager.createDirectory(at: cacheRoot, withIntermediateDirectories: true) + let staging = cacheRoot.appendingPathComponent("staging-" + UUID().uuidString, isDirectory: true) + stage = staging + try manager.createDirectory(at: staging, withIntermediateDirectories: true) + let saved = readyRoot + var done = 0 + for offset in stride(from: 0, to: manifest.files.count, by: 4) { + try Task.checkCancellation() + let batch = Array(manifest.files[offset.. Bool { bytes.count == file.size && GalaxyAssetManifest.digest(bytes) == file.sha256 } + if let saved, let bytes = try? Data(contentsOf: saved.appendingPathComponent(file.path)), matches(bytes) { return (file.path, bytes) } + let (code, bytes) = try await fetch("/" + file.path, max(file.size, 1)) + guard code == 200, matches(bytes) else { throw BridgeError.message("Galaxy update verification failed.") } + return (file.path, bytes) + } + } + for try await (path, bytes) in group { + let destination = staging.appendingPathComponent(path) + try manager.createDirectory(at: destination.deletingLastPathComponent(), withIntermediateDirectories: true) + try bytes.write(to: destination, options: .atomic) + } + } + done += batch.count + status = "Preparing Galaxy update (\(done)/\(manifest.files.count))…" + } + guard stillCurrent() else { throw CancellationError() } + try data.write(to: staging.appendingPathComponent("manifest.json"), options: .atomic) + let destination = cacheRoot.appendingPathComponent(hash, isDirectory: true) + if manager.fileExists(atPath: destination.path) { try manager.removeItem(at: destination) } + try manager.moveItem(at: staging, to: destination) + stage = nil + // Keep one previous version while an open WebView is still using it. + readyRoot = destination + defaults.set(hash, forKey: "galaxy.device.assets.manifest") + defaults.set(listing.commit ?? "", forKey: "galaxy.device.commit") + if let contents = try? manager.contentsOfDirectory(at: cacheRoot, includingPropertiesForKeys: nil) { + for root in contents where root.standardizedFileURL.path != destination.standardizedFileURL.path && root.standardizedFileURL.path != saved?.standardizedFileURL.path && root.standardizedFileURL.path != inUseRoot?.standardizedFileURL.path { try? manager.removeItem(at: root) } + } + status = "Galaxy screens updated from comma. Open Galaxy to use them." + } catch { + if let stage { try? FileManager.default.removeItem(at: stage) } + let using = readyRoot == nil ? "No Galaxy screens are saved yet." : "Using your saved Galaxy screens." + if let failure = error as? URLError { + status = "Couldn’t reach comma to check Galaxy updates (network error \(failure.code.rawValue)). \(using)" + } else if let failure = error as? BridgeError { + status = "\(failure.localizedDescription) \(using)" + } else if error is CancellationError { + status = "Galaxy update cancelled. \(using)" + } else { + status = "Galaxy update could not be read or saved. \(using)" + } + } + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyBluetoothApp.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyBluetoothApp.swift new file mode 100644 index 0000000000..591c0425d6 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyBluetoothApp.swift @@ -0,0 +1,722 @@ +import SwiftUI +import Network + +@main +struct GalaxyBluetoothApp: App { + @StateObject private var model = AppModel.shared + var body: some Scene { WindowGroup { GalaxyRootView(model: model) } } +} + +enum CompanionTab: String, CaseIterable, Identifiable { + case galaxy = "Galaxy", live = "Live View", diagnostics = "Diagnostics", logs = "Dev / Logs", connections = "Settings" + var id: String { rawValue } + var isDeveloperPage: Bool { self == .live || self == .diagnostics || self == .logs } + var icon: String { + switch self { + case .galaxy: "sparkles" + case .live: "play.rectangle" + case .diagnostics: "chart.xyaxis.line" + case .logs: "ladybug" + case .connections: "gearshape.fill" + } + } +} + +struct LegacyGalaxyStatus: Decodable { + let paired: Bool + let url: String + var browserURL: URL? { + guard let parsed = URL(string: url), parsed.scheme == "https", + parsed.host == "galaxy.firestar.link", parsed.port == nil, + parsed.user == nil, parsed.password == nil, parsed.query == nil, parsed.fragment == nil, + parsed.path.range(of: "^/[A-Za-z0-9]{16}$", options: .regularExpression) != nil else { return nil } + return parsed + } +} + +@MainActor +final class AppModel: ObservableObject { + static let shared = AppModel() + let diagnostics = CompanionDiagnostics() + let galaxyPage = GalaxyPageDiagnostics() + let connectionLog = ConnectionEventLog() + let discovery = LANDiscovery() + @Published var selectingDiscoveredComma = false + private var lastRoute = "Reconnecting…" + @Published var showDiagnostics = false + @Published var showAudioPairing = false + private var offerAudioPairing = false + private var audioWindowOpen = false + private let claimer = ClaimTransport() + lazy var audioPairing = AudioPairing(transport: { [weak self] in self?.transport }) + lazy var phoneLocation: PhoneLocation = { + let value = PhoneLocation(transport: { [weak self] in self?.transport }) + value.onSharingChanged = { [weak self] _ in self?.updateMonitoring() } + return value + }() + @Published var tab: CompanionTab = .connections + @Published var developerMode = UserDefaults.standard.bool(forKey: "galaxy.app.developerMode") { + didSet { + UserDefaults.standard.set(developerMode, forKey: "galaxy.app.developerMode") + if !developerMode { + if tab.isDeveloperPage { tab = opened ? .galaxy : .connections } + diagnostics.live = false + diagnostics.phoneVisible = false + showDiagnostics = false + } + } + } + private var galaxyRecoveryTask: Task? + private var lastAutomaticGalaxyRecovery: TimeInterval = -.infinity + func recoverGalaxy(automatic: Bool = true, reload: Bool = true) { + guard phoneActive, galaxyRecoveryTask == nil else { return } + let now = ProcessInfo.processInfo.systemUptime + if automatic && reload { + guard now - lastAutomaticGalaxyRecovery >= 30 else { + galaxyPage.record("Automatic page recovery paused; use Retry Galaxy") + return + } + lastAutomaticGalaxyRecovery = now + } + galaxyRecoveryTask = Task { @MainActor in + defer { self.galaxyRecoveryTask = nil } + let previousURL = self.server.url + let healthy = await self.server.ensureAvailable() + guard self.phoneActive else { return } + if healthy { + if self.opened && (reload || self.galaxyPage.stalled || previousURL != self.server.url) { + self.galaxyPage.record("Local server checked; recreating Galaxy web page") + self.galaxyPage.retry() + } + } else { self.galaxyPage.fail("Local server unavailable after recovery attempt") } + } + } + private var phoneActive = false + private var carPlayActive = false + private var monitorTask: Task? + func setPhoneActive(_ active: Bool) { phoneActive = active; if !active { automaticLAN?.cancel() }; diagnostics.phoneActive = active; if !active { discovery.stop() }; updateMonitoring() } + func setCarPlayActive(_ active: Bool) { carPlayActive = active; diagnostics.carPlayActive = active; updateMonitoring() } + private func updateMonitoring() { + // Sharing phone GPS keeps the app running in the background, so keep reconnecting too. + if phoneActive || carPlayActive || phoneLocation.sharing { + if monitorTask == nil { monitorTask = Task { await monitor() } } + } else { monitorTask?.cancel(); monitorTask = nil } + } + @Published var pairingKey = PairingKeyStore.load() + @Published var address = UserDefaults.standard.string(forKey: "galaxy.lan.address") ?? "" + @Published var findAddressAutomatically = UserDefaults.standard.object(forKey: "galaxy.lan.auto") as? Bool ?? true { + didSet { UserDefaults.standard.set(findAddressAutomatically, forKey: "galaxy.lan.auto") } + } + @Published var networkDetails = "Comma can use a hotspot, Wi-Fi or its SIM for internet. Your connection here controls how this iPhone reaches comma." + @Published var mode = ConnectionMode(rawValue: UserDefaults.standard.string(forKey: "galaxy.connection.mode") ?? "") ?? .automatic { + didSet { + automaticLAN?.cancel(); lanProbeTask?.cancel() + transport.mode = mode + UserDefaults.standard.set(mode.rawValue, forKey: "galaxy.connection.mode") + if mode == .lan { bluetooth.disconnect() } + if mode == .bluetooth { discovery.stop(); lan.invalidate(reason: "Bluetooth-only mode selected") } + logConnection("Connection mode selected: \(mode.title)") + } + } + @Published var showConnections = false + @Published var pairingInProgress = false + @Published var opened = false + @Published var connectionMessage = "Choose a connection, or use Automatic for Wi-Fi with Bluetooth fallback." + @Published var wantsConnection = true + @Published var loadingLegacyURL = false + @Published var legacyMessage = "" + @Published var legacyURL: URL? + let bluetooth: BluetoothTransport + let lan: LANTransport + let transport: PreferredTransport + let assets: GalaxyAssetStore + let server: LoopbackServer + private let pathMonitor = NWPathMonitor() + private var lastNetworkPath = "" + private var lastReconnect = Date.distantPast + private var lastAddressCheck = Date.distantPast + private var identitySession = "" + private var addressCheckSession = "" + private var localAddressNetwork = "" + private var automaticLAN: Task? + private var lanProbeTask: Task? + private var lastLANDiscovery = Date.distantPast + private var triedLANAddresses = Set() + /// One step for the app and music: comma's open pairing window gives this iPhone its key, then music is set up in the same window. + func pairWithComma() { + guard !pairingInProgress else { return } + pairingInProgress = true + offerAudioPairing = false + showAudioPairing = false + bluetooth.disconnect(reason: "Starting new phone pairing") + connectionMessage = "Open Settings → Bluetooth → Pair phone on comma (or Pair phone in Galaxy). Looking for comma…" + Task { @MainActor in + defer { pairingInProgress = false } + if await LANPairing.openWindow(over: lan) { + connectionMessage = "Opened comma’s pairing window over Wi-Fi. Looking for comma…" + } + do { importClaim(try await claimer.claim(name: UIDevice.current.name)) } + catch is CancellationError { connectionMessage = "Pairing cancelled." } + catch { connectionMessage = error.localizedDescription } + } + } + func cancelPairing() { claimer.cancel() } + private func importClaim(_ outcome: ClaimTransport.Outcome) { + // The key is saved only after the encrypted handshake, like any imported key. + opened = false + wantsConnection = true + bluetooth.forgetSavedDevice() + PairingKeyStore.stage(PairingCode(key: outcome.result.key, id: outcome.result.id)) + lan.clearEndpoint() + lan.bind(to: nil) + address = "" + identitySession = "" + addressCheckSession = "" + UserDefaults.standard.removeObject(forKey: "galaxy.comma.identity") + UserDefaults.standard.removeObject(forKey: "galaxy.lan.address") + UserDefaults.standard.set(outcome.deviceID.uuidString, forKey: "galaxy.bluetooth.device") + pairingKey = outcome.result.key + if mode == .lan { mode = .automatic } + connectionMessage = "Paired. Connecting to comma…" + offerAudioPairing = true + audioWindowOpen = true + lastReconnect = Date() + bluetooth.reconnectSaved(pairingKey: pairingKey) + if !bluetooth.connecting { bluetooth.scan() } + } + init() { + let bluetooth = BluetoothTransport() + let lan = LANTransport() + let transport = PreferredTransport(lan: lan, bluetooth: bluetooth, invalidateLAN: { lan.invalidate(reason: $0) }) + let assets = GalaxyAssetStore() + self.bluetooth = bluetooth; self.lan = lan; self.transport = transport; self.assets = assets + lan.bind(to: UserDefaults.standard.string(forKey: "galaxy.comma.identity")) + let cache = GalaxyReadCache(transport: transport, sessionID: { + transport.usesLAN ? "lan-" + lan.generation : "ble-" + bluetooth.sessionIdentifier + }) + server = LoopbackServer(transport: cache, webRoot: assets.readyRoot) + transport.mode = mode + diagnostics.transport = transport; diagnostics.lan = lan + galaxyPage.recover = { [weak self] automatic in self?.recoverGalaxy(automatic: automatic) } + server.start() + discovery.onEvent = { [weak self] reason in self?.connectionLog.record(reason) } + discovery.onDevicesChanged = { [weak self] in self?.discoverAutomaticLAN() } + lan.onEvent = { [weak self] reason in self?.logConnection(reason) } + bluetooth.onEvent = { [weak self] reason in self?.logConnection(reason) } + claimer.onEvent = { [weak self] reason in self?.connectionLog.record(reason) } + pathMonitor.pathUpdateHandler = { [weak self] path in + Task { @MainActor in + guard let self else { return } + let route = path.usesInterfaceType(.wifi) ? "Wi-Fi" : path.usesInterfaceType(.cellular) ? "cellular" : "other" + let reason = "iOS network path updated: \(path.status == .satisfied ? "available" : "unavailable"), \(route), expensive=\(path.isExpensive), constrained=\(path.isConstrained)" + let interfaces = path.availableInterfaces + .filter { path.usesInterfaceType($0.type) } + .map { "\($0.name):\($0.index)" }.sorted().joined(separator: ",") + let fingerprint = "\(path.status)|\(route)|\(interfaces)|ipv4=\(path.supportsIPv4)|\(LANDiscovery.networkSignature())" + guard fingerprint != self.lastNetworkPath else { return } + self.lastNetworkPath = fingerprint + self.connectionLog.record(reason) + self.automaticLAN?.cancel(); self.lanProbeTask?.cancel() + self.discovery.networkChanged() + self.triedLANAddresses.removeAll() + self.lastLANDiscovery = .distantPast + self.lan.invalidate(reason: reason) + self.lastAddressCheck = .distantPast + self.discoverAutomaticLAN() + } + } + pathMonitor.start(queue: .main) + updateMonitoring() + } + deinit { pathMonitor.cancel() } + private func logConnection(_ reason: String) { + let route = transport.label + if route != lastRoute { + connectionLog.record("\(lastRoute) → \(route): \(reason)") + lastRoute = route + } else { connectionLog.record("\(route): \(reason)") } + } + func connect() { + legacyURL = nil + do { + if mode != .bluetooth, !address.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + try lan.configure(address: address) + } else if mode == .lan { + throw BridgeError.message("Enter comma’s current local IP address, or use Automatic and pair Bluetooth to find it.") + } + UserDefaults.standard.set(address.trimmingCharacters(in: .whitespacesAndNewlines), forKey: "galaxy.lan.address") + wantsConnection = true + lastReconnect = .distantPast + lastAddressCheck = .distantPast + localAddressNetwork = "" + connectionMessage = "Checking your comma…" + } catch { connectionMessage = error.localizedDescription } + } + func startAudioPairing() { + guard transport.connected else { return } + showAudioPairing = true + let windowOpen = audioWindowOpen + audioWindowOpen = false + audioPairing.start(windowOpen: windowOpen) + } + private var openingGalaxy = false + @Published private(set) var matchingGalaxy = false + private var lastGalaxyMatch = Date.distantPast + + func applyMatchedGalaxy() { + guard opened, let root = assets.readyRoot, root != assets.inUseRoot else { return } + assets.inUseRoot = root + server.useWebRoot(root) + recoverGalaxy(automatic: false) + } + + func checkGalaxyUpdates() async { + guard wantsConnection, transport.connected, !matchingGalaxy else { return } + matchingGalaxy = true + lastGalaxyMatch = Date() + defer { matchingGalaxy = false } + let bleSession = bluetooth.sessionIdentifier + let lanSession = lan.generation + let stillCurrent = { self.wantsConnection && self.transport.connected && self.bluetooth.sessionIdentifier == bleSession && self.lan.generation == lanSession } + if transport.usesLAN { + // Pages come straight from comma, never through the Bluetooth bridge or the read cache. + let lan = self.lan + await assets.check(fetch: { path, _ in + let response = path.hasPrefix("/api/") ? try await lan.request(path: path, method: "GET", headers: [:], body: Data()) : try await lan.page(path: path) + return (response.status, response.bodyData) + }, stillCurrent: stillCurrent) + } else if assets.readyRoot != nil { + // Over Bluetooth nothing can be downloaded; just say when the saved screens are behind comma. + guard let response = try? await transport.request(path: "/api/software/status?history=0", method: "GET", headers: [:], body: Data()), + response.status == 200, stillCurrent(), + let status = try? JSONSerialization.jsonObject(with: response.bodyData) as? [String: Any], + let installed = status["installed"] as? [String: Any] else { return } + assets.noteCommaBuild(commit: installed["commit"] as? String) + } + } + func openIfReady() { + guard wantsConnection, transport.connected, !opened, !openingGalaxy else { return } + openingGalaxy = true + Task { @MainActor in + defer { openingGalaxy = false } + if transport.usesLAN ? Date().timeIntervalSince(lastGalaxyMatch) > 15 : assets.readyRoot != nil && !matchingGalaxy { + await checkGalaxyUpdates() + } + guard wantsConnection, transport.connected, !opened else { return } + // Bluetooth Galaxy runs from screens saved from comma; the first download needs Wi-Fi/LAN. + // Over Wi-Fi/LAN an older comma that cannot share its screens still opens, read live. + guard let root = assets.readyRoot else { + guard transport.usesLAN else { return } + assets.inUseRoot = nil + opened = true + return + } + assets.inUseRoot = root + server.useWebRoot(root) + opened = true + } + } + func disconnect() { + legacyURL = nil + automaticLAN?.cancel(); lanProbeTask?.cancel() + discovery.stop() + wantsConnection = false; opened = false + bluetooth.disconnect(reason: "User selected Disconnect"); lan.invalidate(reason: "User selected Disconnect") + connectionMessage = "Disconnected." + } + func selectDiscoveredComma(_ device: DiscoveredComma) async { + guard !selectingDiscoveredComma, mode != .bluetooth else { return } + discovery.stop() + selectingDiscoveredComma = true + defer { selectingDiscoveredComma = false } + // Advertised names and addresses are discovery hints, not pairing credentials. + let candidate = LANTransport() + candidate.bind(to: lan.expectedDeviceID) + let originalGeneration = lan.generation + let originalMode = mode + do { + try candidate.configure(address: device.address) + guard await candidate.probe() else { + connectionMessage = "Found a device, but Galaxy is unavailable or it doesn’t match your paired comma." + connectionLog.record("Discovered comma rejected by LAN verification") + return + } + guard lan.generation == originalGeneration, mode == originalMode, phoneActive else { + connectionMessage = "Connection changed. Select the comma again." + return + } + lan.bind(to: candidate.verifiedDeviceID) + UserDefaults.standard.set(candidate.verifiedDeviceID, forKey: "galaxy.comma.identity") + address = device.address + connect() + connectionLog.record("User selected a discovered comma; LAN verification passed") + } catch { + connectionMessage = "Couldn’t connect to the discovered comma. Try again or enter its IP." + } + } + func fetchLegacyURL() async -> URL? { + guard !loadingLegacyURL else { return nil } + legacyMessage = "" + legacyURL = nil + guard wantsConnection, transport.connected else { + legacyMessage = "Connect to your comma first to get its Galaxy link." + return nil + } + loadingLegacyURL = true + defer { loadingLegacyURL = false } + let lanSession = lan.generation + let bluetoothSession = bluetooth.sessionIdentifier + do { + let response = try await transport.request(path: "/api/galaxy/status", method: "GET", headers: [:], body: Data()) + guard wantsConnection, transport.connected, lan.generation == lanSession, + bluetooth.sessionIdentifier == bluetoothSession else { + throw BridgeError.message("Connection changed. Try opening legacy Galaxy again.") + } + guard response.status == 200 else { + throw BridgeError.message("Couldn’t get your comma’s Galaxy link (HTTP \(response.status)).") + } + let status = try JSONDecoder().decode(LegacyGalaxyStatus.self, from: response.bodyData) + guard status.paired else { + throw BridgeError.message("Set up legacy Galaxy pairing on your comma first. Bluetooth pairing is separate.") + } + guard let url = status.browserURL else { + throw BridgeError.message("Your comma hasn’t provided a valid Galaxy link. Check its legacy Galaxy pairing.") + } + legacyURL = url + connectionLog.record("Comma-specific legacy Galaxy link validated") + return url + } catch { + connectionLog.record("Comma-specific legacy Galaxy link unavailable") + legacyMessage = (error as? BridgeError)?.localizedDescription ?? "Couldn’t get your comma’s Galaxy link. Check the connection and try again." + return nil + } + } + private func learnAddress() async { + guard bluetooth.connected, Date().timeIntervalSince(lastAddressCheck) >= 20 || addressCheckSession != bluetooth.sessionIdentifier else { return } + lastAddressCheck = Date() + let session = bluetooth.sessionIdentifier + let networkPath = lastNetworkPath + addressCheckSession = session + do { + if identitySession != session { + let identity = try await bluetooth.request(path: "/data/runtime.json", method: "GET", headers: [:], body: Data()) + guard !Task.isCancelled, wantsConnection, mode != .bluetooth, bluetooth.sessionIdentifier == session else { return } + // Only the authenticated BLE peer may establish the automatic LAN identity. + guard identity.status == 200, let value = LANTransport.deviceID(identity.bodyData) else { + networkDetails = "Automatic local discovery needs a registered device identifier. Bluetooth still works; enter comma’s IP manually for Wi-Fi." + return + } + lan.bind(to: value) + UserDefaults.standard.set(value, forKey: "galaxy.comma.identity") + + identitySession = session + } + let network = session + "|" + networkPath + guard findAddressAutomatically, !lan.connected, localAddressNetwork != network else { return } + let generation = lan.generation + let response = try await bluetooth.request(path: "/api/local-access", method: "GET", headers: [:], body: Data()) + guard !Task.isCancelled, wantsConnection, mode != .bluetooth, bluetooth.sessionIdentifier == session, response.status == 200, + lastNetworkPath == networkPath, lan.generation == generation, !lan.connected, + !response.bodyData.isEmpty else { return } + if let ip = LANTransport.reportedAddress(response.bodyData) { + localAddressNetwork = network + try lan.configure(address: ip) + address = ip + UserDefaults.standard.set(ip, forKey: "galaxy.lan.address") + networkDetails = "Trying comma’s current local address. If this hotspot or Wi-Fi network blocks direct access, Bluetooth stays available." + } else { + networkDetails = "Comma has no usable local Wi-Fi address. Bluetooth still controls local settings; comma can use its SIM for online downloads." + } + // Galaxy's online:true means the server responds, not that comma can reach the internet. + } catch { /* Discovery is optional; it must not disrupt working BLE. */ } + } + private func discoverAutomaticLAN() { + guard phoneActive, wantsConnection, mode == .automatic, + !pairingInProgress, !selectingDiscoveredComma, !lan.connected, + let identity = lan.expectedDeviceID else { return } + if !discovery.searching, Date().timeIntervalSince(lastLANDiscovery) >= 20 { + lastLANDiscovery = Date() + triedLANAddresses.removeAll() + discovery.start() + } + guard automaticLAN == nil else { return } + let addresses = discovery.devices.map(\.address).filter { !triedLANAddresses.contains($0) } + guard !addresses.isEmpty else { return } + triedLANAddresses.formUnion(addresses) + let generation = lan.generation + automaticLAN = Task { @MainActor in + defer { self.automaticLAN = nil } + let stillCurrent = { + self.phoneActive && self.wantsConnection && self.mode == .automatic + && !self.pairingInProgress && !self.selectingDiscoveredComma && !self.lan.connected + && self.lan.generation == generation && self.lan.expectedDeviceID == identity + } + let address = await LANDiscoveryMatch.first(addresses: addresses, expectedDeviceID: identity, stillCurrent: stillCurrent) { address, identity in + let candidate = LANTransport() + candidate.bind(to: identity) + guard (try? candidate.configure(address: address)) != nil else { return false } + return await candidate.probe() + } + guard let address, !Task.isCancelled, stillCurrent() else { return } + do { try self.lan.configure(address: address) } catch { return } + self.address = address + UserDefaults.standard.set(address, forKey: "galaxy.lan.address") + if await self.lan.probe() { + self.discovery.stop() + self.connectionLog.record("Automatic Wi-Fi discovery verified the paired comma") + } + } + } + + private func probeLocalConnection() { + guard lanProbeTask == nil else { return } + lanProbeTask = Task { @MainActor in + defer { self.lanProbeTask = nil } + await self.learnAddress() + guard !Task.isCancelled, self.wantsConnection, self.mode != .bluetooth else { return } + if self.lan.endpoint == nil, !self.address.isEmpty { + do { try self.lan.configure(address: self.address) } + catch { self.connectionMessage = error.localizedDescription } + } + _ = await self.lan.probe() + if !Task.isCancelled, self.lan.connected { self.discovery.stop() } + } + } + + func monitor() async { + while !Task.isCancelled { + if wantsConnection && !pairingInProgress { + if mode != .lan, !bluetooth.connected, !bluetooth.connecting, !bluetooth.isScanning, + !pairingKey.isEmpty, Date().timeIntervalSince(lastReconnect) >= 25 { + lastReconnect = Date() + bluetooth.reconnectSaved(pairingKey: pairingKey) + } + if mode != .bluetooth { + discoverAutomaticLAN() + probeLocalConnection() + } + guard !pairingInProgress else { continue } + if transport.label != lastRoute { logConnection("Connection availability changed") } + if transport.connected { + openIfReady() + if Date().timeIntervalSince(lastGalaxyMatch) > 60 && !openingGalaxy { + Task { await self.checkGalaxyUpdates() } + } + connectionMessage = "Connected over \(transport.label)." + (opened || assets.readyRoot != nil ? "" : " " + assets.status) + if offerAudioPairing { offerAudioPairing = false; startAudioPairing() } + } else if mode == .bluetooth { + connectionMessage = "Reconnecting over Bluetooth. If you forgot this phone on comma, open Pair phone on comma and Pair with comma here." + } else { + connectionMessage = "Wi-Fi unavailable. Pair over Bluetooth below, or check your comma’s IP address." + } + } + do { try await Task.sleep(nanoseconds: 3_000_000_000) } catch { return } + } + } +} + + +struct GalaxyRootView: View { + @ObservedObject var model: AppModel + @ObservedObject var bluetooth: BluetoothTransport + @ObservedObject var lan: LANTransport + @ObservedObject var assets: GalaxyAssetStore + @ObservedObject var server: LoopbackServer + @ObservedObject var discovery: LANDiscovery + @ObservedObject var galaxyPage: GalaxyPageDiagnostics + @State private var hasVisitedGalaxy = false + private var galaxyColorScheme: ColorScheme? { + guard model.tab == .galaxy, let dark = galaxyPage.darkAppearance else { return nil } + return dark ? .dark : .light + } + private var editorFocused: Bool { model.tab == .galaxy && galaxyPage.landscapeEditor } + @Environment(\.openURL) private var openURL + @Environment(\.scenePhase) private var scenePhase + init(model: AppModel) { + self.model = model; bluetooth = model.bluetooth; lan = model.lan; assets = model.assets; server = model.server; discovery = model.discovery; galaxyPage = model.galaxyPage + } + var body: some View { + VStack(spacing: 0) { + if !editorFocused && model.tab != .connections { + VStack(spacing: 14) { + HStack { + if !model.developerMode && model.tab == .connections { + if model.opened { + Button { select(.galaxy) } label: { + Image(systemName: "chevron.left").font(.body.weight(.semibold)) + .frame(width: 36, height: 36) + }.buttonStyle(.plain).accessibilityLabel("Back to Galaxy") + } + Text("Settings").font(.title3.bold()) + } else { + Text("StarPilot BT").font(.title3.bold()) + } + Spacer() + HStack(spacing: 5) { + Circle().fill(model.transport.connected ? Color.green : Color.orange).frame(width: 6, height: 6) + Text(model.transport.label).font(.caption.weight(.medium)) + }.padding(.horizontal, 10).padding(.vertical, 6) + .background(Color(uiColor: .secondarySystemBackground), in: Capsule()) + if !model.developerMode && model.tab != .connections { + Button { select(.connections) } label: { + Image(systemName: "gearshape.fill").font(.body.weight(.semibold)) + .frame(width: 36, height: 36) + .background(Color(uiColor: .secondarySystemBackground), in: Circle()) + }.buttonStyle(.plain).accessibilityLabel("Settings") + } + } + if model.developerMode { + HStack(spacing: 4) { + ForEach(CompanionTab.allCases.filter { $0 != .connections }) { tab in + Button { select(tab) } label: { + VStack(spacing: 5) { + Image(systemName: tab.icon).font(.system(size: 17, weight: .semibold)) + Text(tab.rawValue).font(.system(size: 10, weight: .semibold)).lineLimit(1).minimumScaleFactor(0.8) + }.frame(maxWidth: .infinity).padding(.vertical, 10) + .foregroundStyle(model.tab == tab ? Color.white : Color.secondary) + .background(model.tab == tab ? brandPurple : Color.clear, in: RoundedRectangle(cornerRadius: 12)) + }.buttonStyle(.plain).accessibilityAddTraits(model.tab == tab ? .isSelected : []) + } + Button { select(.connections) } label: { + VStack(spacing: 4) { + Image(systemName: "gearshape.fill").font(.system(size: 17, weight: .semibold)) + .frame(width: 36, height: 36) + .background(model.tab == .connections ? brandPurple : Color(uiColor: .tertiarySystemBackground), in: Circle()) + .foregroundStyle(model.tab == .connections ? Color.white : Color.secondary) + Text("Settings").font(.system(size: 10, weight: .semibold)) + }.frame(width: 60).padding(.vertical, 4) + .foregroundStyle(model.tab == .connections ? Color.primary : Color.secondary) + }.buttonStyle(.plain).accessibilityAddTraits(model.tab == .connections ? .isSelected : []) + }.padding(4).background(Color(uiColor: .secondarySystemBackground), in: RoundedRectangle(cornerRadius: 16)) + } + }.padding(.horizontal, 16).padding(.top, 10).padding(.bottom, 12) + } + ZStack { + if model.opened, let url = server.url { + GalaxyWebView(url: url, requestKey: server.localSecret, diagnostics: model.galaxyPage, + isActive: model.tab == .galaxy && scenePhase == .active) { + model.galaxyPage.report(server: server, connection: model.transport.label) + } + .opacity(model.tab == .galaxy ? 1 : 0) + .allowsHitTesting(model.tab == .galaxy) + .accessibilityHidden(model.tab != .galaxy) + } else if model.opened && model.tab == .galaxy { + VStack(spacing: 16) { + if server.error.isEmpty { ProgressView("Reconnecting Galaxy…") } + else { Text(server.error).multilineTextAlignment(.center) } + Button("Retry Galaxy") { model.recoverGalaxy(automatic: false) }.buttonStyle(.bordered) + }.padding(24) + } + if model.developerMode && model.tab == .logs { + DeveloperLogsView(model: model, log: model.connectionLog) + } else if model.developerMode && (model.tab == .live || model.tab == .diagnostics) { + CompanionView(diagnostics: model.diagnostics) + } else if model.tab == .connections || !model.opened { + ConnectionSettingsView(model: model, returningFromGalaxy: hasVisitedGalaxy, select: select) + } + }.frame(maxWidth: .infinity, maxHeight: .infinity) + } + .background(model.tab == .galaxy && galaxyPage.darkAppearance == true + ? Color(red: 0.06, green: 0.05, blue: 0.09) : Color(uiColor: .systemBackground)) + .preferredColorScheme(galaxyColorScheme) + .ignoresSafeArea(.container, edges: editorFocused ? .all : []) + .statusBarHidden(editorFocused) + .onChange(of: model.showConnections) { _, show in + if show { select(.connections); model.showConnections = false } + } + .onChange(of: model.showDiagnostics) { _, show in + if show { if model.developerMode { select(.live) }; model.showDiagnostics = false } + } + .onChange(of: bluetooth.connected) { _, connected in if connected { model.openIfReady() } } + .sheet(isPresented: $model.showAudioPairing, onDismiss: { model.audioPairing.dismiss() }) { + AudioPairingSheet(pairing: model.audioPairing) { model.showAudioPairing = false } + } + .task(id: scenePhase) { + model.setPhoneActive(scenePhase == .active) + if scenePhase == .active { model.recoverGalaxy(reload: false); await model.checkGalaxyUpdates() } + } + } + private func select(_ requestedTab: CompanionTab) { + let tab = requestedTab.isDeveloperPage && !model.developerMode ? (model.opened ? CompanionTab.galaxy : .connections) : requestedTab + if tab != .connections { discovery.stop() } + model.tab = tab + if tab == .galaxy { hasVisitedGalaxy = true; model.applyMatchedGalaxy() } + model.diagnostics.live = tab == .live + } + private let brandPurple = Color(red: 139.0 / 255, green: 92.0 / 255, blue: 246.0 / 255) + + +} + +@MainActor +final class ConnectionEventLog: ObservableObject { + @Published private(set) var events: [String] = [] + @Published var section = "Connections" + @Published var detail = "" + @Published var copied = false + private var lastEvent = "" + func record(_ event: String) { + guard event != lastEvent else { return } + lastEvent = event + events.append("\(ISO8601DateFormatter().string(from: Date())) \(event.prefix(300))") + if events.count > 100 { events.removeFirst(events.count - 100) } + } + func clear() { events.removeAll(); lastEvent = ""; detail = ""; copied = false } + func report(model: AppModel) -> String { + let info = Bundle.main.infoDictionary ?? [:] + return """ + StarPilot BT connection diagnostics + \(ISO8601DateFormatter().string(from: Date())) + App: \(info["CFBundleShortVersionString"] ?? "?") (\(info["CFBundleVersion"] ?? "?")) + iOS: \(UIDevice.current.systemVersion) + Mode: \(model.mode.title) + Selected route: \(model.transport.label) + LAN verified: \(model.lan.connected) + Bluetooth verified: \(model.bluetooth.connected) + Recent connection events: + \(events.joined(separator: "\n")) + """ + } +} + +private struct DeveloperLogsView: View { + @ObservedObject var model: AppModel + @ObservedObject var log: ConnectionEventLog + private func selectedReport() -> String { + switch log.section { + case "Galaxy": return model.galaxyPage.report(server: model.server, connection: model.transport.label) + case "Live View": return model.diagnostics.diagnosticLog() + default: return log.report(model: model) + } + } + var body: some View { + ScrollView { + VStack(alignment: .leading, spacing: 18) { + Text("Dev / Logs").font(.title2.bold()) + Text("Recent events stay in memory. Reports are shared only when you copy them.") + .font(.subheadline).foregroundStyle(.secondary) + Picker("Report", selection: $log.section) { + ForEach(["Connections", "Galaxy", "Live View"], id: \.self) { Text($0).tag($0) } + }.pickerStyle(.segmented) + HStack { + Button(log.copied ? "Copied" : "Copy report", systemImage: "doc.on.doc") { + UIPasteboard.general.string = selectedReport(); log.copied = true + }.buttonStyle(.borderedProminent).tint(.purple) + Button("Refresh") { log.detail = selectedReport(); log.copied = false }.buttonStyle(.bordered) + } + Button("Copy all reports") { + UIPasteboard.general.string = [log.report(model: model), model.galaxyPage.report(server: model.server, connection: model.transport.label), model.diagnostics.diagnosticLog(), "Galaxy screen updates\n" + model.assets.status].joined(separator: "\n\n") + log.copied = true + } + Text(log.section == "Connections" ? log.report(model: model) : log.detail) + .font(.system(.caption, design: .monospaced)).textSelection(.enabled) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(14).background(Color(uiColor: .secondarySystemBackground), in: RoundedRectangle(cornerRadius: 12)) + Button("Clear connection history") { log.clear(); log.detail = selectedReport() } + .font(.caption).foregroundStyle(.secondary) + }.padding(20) + }.background(Color(uiColor: .systemBackground)) + .onAppear { log.detail = selectedReport() } + .onChange(of: log.section) { _, _ in log.detail = selectedReport(); log.copied = false } + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyRequestTransport.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyRequestTransport.swift new file mode 100644 index 0000000000..ba74679dff --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyRequestTransport.swift @@ -0,0 +1,124 @@ +import Foundation + +@MainActor +protocol GalaxyRequestTransport: AnyObject { + var connected: Bool { get } + var catalogSHA256: String? { get } + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse + /// GET one Galaxy page file (not an API call). Only the Wi-Fi/LAN transport can do this. + func page(path: String) async throws -> BridgeResponse +} + +extension GalaxyRequestTransport { + var catalogSHA256: String? { nil } + func page(path: String) async throws -> BridgeResponse { + throw BridgeError.message("Galaxy screens can only be downloaded from comma over Wi-Fi.") + } +} + +/// When the phone already reaches comma over Wi-Fi/LAN it opens comma's two-minute pairing window itself, the same call +/// as Pair phone on Galaxy's Bluetooth page, so nobody has to touch comma before the Bluetooth key claim. +enum LANPairing { + static let windowPath = "/api/bluetooth/action" + static let windowBody = Data("{\"operation\":\"accept_pair\"}".utf8) + @MainActor static func openWindow(over lan: any GalaxyRequestTransport) async -> Bool { + guard lan.connected, + let response = try? await lan.request(path: windowPath, method: "POST", headers: [:], body: windowBody) else { return false } + return response.status == 200 + } +} + +enum SecretGoodGalaxy { + static func validTarget(_ path: String) -> Bool { + guard path.hasPrefix("/"), !path.hasPrefix("//"), + let parts = URLComponents(string: path), parts.scheme == nil, parts.host == nil, parts.fragment == nil, + let decoded = parts.percentEncodedPath.removingPercentEncoding, + !decoded.contains("%"), !decoded.contains("\\"), !decoded.contains("//"), + !decoded.unicodeScalars.contains(where: { $0.value < 32 }), + !decoded.split(separator: "/").contains(where: { $0 == "." || $0 == ".." }) else { return false } + return decoded.hasPrefix("/api/") || decoded == "/data/runtime.json" + } + /// A Galaxy page file under the same roots the app accepts when it saves comma's screens. + static func validPage(_ path: String) -> Bool { + guard path.hasPrefix("/"), path.utf8.allSatisfy({ (48...57).contains($0) || (65...90).contains($0) || (97...122).contains($0) || [45, 46, 47, 95].contains($0) }) else { return false } + let file = String(path.dropFirst()) + let parts = file.split(separator: "/", omittingEmptySubsequences: false) + guard !parts.isEmpty, parts.allSatisfy({ !$0.isEmpty && $0 != "." && $0 != ".." }), file != "data/runtime.json" else { return false } + return ["index.html", "manifest.webmanifest", "sentry-push-worker.js"].contains(file) + || ["assets/", "css/", "js/", "vendor/", "data/"].contains(where: { file.hasPrefix($0) }) + } + static func needsWiFi(_ path: String) -> Bool { + let path = URLComponents(string: path)?.path ?? path + return ["/api/recordings/", "/api/replay/", "/api/cameras/", "/api/maps/tiles/", + "/api/android-auto/upload", "/api/android-auto/apk", "/api/phone-internet/", "/api/spotify/upload"].contains(where: { path.hasPrefix($0) }) + || ["/api/auth/login", "/api/auth/logout"].contains(path) + } +} + +/// Coalesce simultaneous identical reads. View/intent tokens are never cached for later use. +@MainActor +final class GalaxyReadCache: GalaxyRequestTransport { + private let transport: any GalaxyRequestTransport + private let sessionID: () -> String + private var session = "" + private var generation: UInt64 = 0 + private var pending: [String: (UUID, Task)] = [:] + var connected: Bool { transport.connected } + var catalogSHA256: String? { transport.catalogSHA256 } + + init(transport: any GalaxyRequestTransport, sessionID: @escaping () -> String, + now: @escaping () -> TimeInterval = { ProcessInfo.processInfo.systemUptime }) { + self.transport = transport + self.sessionID = sessionID + } + + private func invalidate() { + generation += 1 + // Already-sent reads still drain, but new reads cannot join an old one. + pending.removeAll() + } + + func page(path: String) async throws -> BridgeResponse { try await transport.page(path: path) } + + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + try Task.checkCancellation() + if session != sessionID() { + session = sessionID() + invalidate() + } + guard connected else { throw BridgeError.message("Connect to your comma over Bluetooth first.") } + if method != "GET" { + invalidate() + defer { invalidate() } + return try await transport.request(path: path, method: method, headers: headers, body: body) + } + guard body.isEmpty, path.hasPrefix("/api/"), headers.keys.allSatisfy({ !["authorization", "range"].contains($0.lowercased()) }) else { + return try await transport.request(path: path, method: method, headers: headers, body: body) + } + let relevantHeaders = headers + .map { "\($0.key.lowercased()):\($0.value)" }.sorted().joined(separator: "\n") + let cacheKey = path + "\n" + relevantHeaders + let token: UUID + let task: Task + if let existing = pending[cacheKey] { + (token, task) = existing + } else { + // Bound cache variants even when a local client changes headers. + guard pending.count < 16 else { + return try await transport.request(path: path, method: method, headers: headers, body: body) + } + token = UUID() + task = Task { try await transport.request(path: path, method: method, headers: headers, body: body) } + pending[cacheKey] = (token, task) + } + let readGeneration = generation + let readSession = session + defer { if pending[cacheKey]?.0 == token { pending.removeValue(forKey: cacheKey) } } + let response = try await task.value + guard readGeneration == generation, readSession == sessionID(), connected else { + throw BridgeError.message("Connection or saved settings changed during this read. Load the page again.") + } + try Task.checkCancellation() + return response + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyWebView.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyWebView.swift new file mode 100644 index 0000000000..6bd15a2a5b --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/GalaxyWebView.swift @@ -0,0 +1,463 @@ +import SwiftUI +import WebKit + +private struct GalaxyDownloadedFile: Identifiable { + let id = UUID() + let url: URL +} + +@MainActor +final class GalaxyPageDiagnostics: ObservableObject { + @Published fileprivate var downloadedFile: GalaxyDownloadedFile? + @Published var downloadError: String? + private var exportDirectory: URL? + + fileprivate func offerDownload(_ url: URL) { + exportDirectory = url.deletingLastPathComponent() + downloadedFile = GalaxyDownloadedFile(url: url) + record("Download ready to save or share") + } + func cleanUpDownload() { + if let directory = exportDirectory { try? FileManager.default.removeItem(at: directory) } + exportDirectory = nil + } + func downloadFailed(_ error: Error) { + let value = error as NSError + record("Download failed: \(value.domain) \(value.code)") + downloadError = "The file couldn’t be downloaded. Please try again." + } + + var recover: ((Bool) -> Void)? + @Published var darkAppearance: Bool? + @Published var landscapeEditor = false + @Published var copied = false + @Published var stalled = false + @Published var mounted = false + @Published var reloadID = UUID() + private(set) var started = Date() + private(set) var events: [String] = [] + private var deadline: Task? + + func record(_ event: String) { + events.append("\(ISO8601DateFormatter().string(from: Date())) \(event.prefix(300))") + if events.count > 40 { events.removeFirst(events.count - 40) } + } + func begin() { + deadline?.cancel() + started = Date(); mounted = false; stalled = false; landscapeEditor = false + record("Page loading") + deadline = Task { [weak self] in + do { try await Task.sleep(nanoseconds: 12_000_000_000) } catch { return } + guard let self, !self.mounted else { return } + self.record("No rendered Galaxy content after 12 seconds") + self.stalled = true + } + } + func rendered() { + mounted = true; stalled = false; deadline?.cancel() + record("Galaxy content rendered") + } + func fail(_ event: String) { record(event); mounted = false; stalled = true; deadline?.cancel() } + func retry() { reloadID = UUID() } + func report(server: LoopbackServer, connection: String) -> String { + let info = Bundle.main.infoDictionary ?? [:] + return """ + StarPilot BT Galaxy diagnostics + \(ISO8601DateFormatter().string(from: Date())) + App: \(info["CFBundleShortVersionString"] ?? "?") (\(info["CFBundleVersion"] ?? "?")) + iOS: \(UIDevice.current.systemVersion) + Connection: \(connection) + Galaxy content rendered: \(mounted) + Page age: \(Int(Date().timeIntervalSince(started))) seconds + \(server.diagnosticSummary) + Recent page events: + \(events.joined(separator: "\n")) + Recent local requests (no headers, query values or bodies): + \(server.recentRequests.joined(separator: "\n")) + """ + } +} + +struct GalaxyWebView: View { + let url: URL + let requestKey: String + @ObservedObject var diagnostics: GalaxyPageDiagnostics + var isActive = true + let report: () -> String + var body: some View { + ZStack { + GalaxyPage(url: url, requestKey: requestKey, diagnostics: diagnostics, isActive: isActive) + .id(url.absoluteString + diagnostics.reloadID.uuidString) + if diagnostics.stalled { + VStack(spacing: 16) { + Image(systemName: "exclamationmark.bubble").font(.largeTitle).foregroundStyle(.purple) + Text("Galaxy hasn’t loaded").font(.title2.bold()) + Text("Copy the report so we can find what failed, or try loading the page again.") + .foregroundStyle(.secondary).multilineTextAlignment(.center) + Button(diagnostics.copied ? "Report copied" : "Copy error report") { + UIPasteboard.general.string = report(); diagnostics.copied = true + }.buttonStyle(.borderedProminent).tint(.purple) + Button("Retry Galaxy") { diagnostics.copied = false; diagnostics.recover?(false) }.buttonStyle(.bordered) + }.padding(28).frame(maxWidth: 420) + .background(.regularMaterial, in: RoundedRectangle(cornerRadius: 20)).padding(20) + } + } + .sheet(item: $diagnostics.downloadedFile, onDismiss: diagnostics.cleanUpDownload) { file in + GalaxyFileShareSheet(url: file.url) { diagnostics.downloadedFile = nil } + } + .alert("Couldn’t download file", isPresented: Binding( + get: { diagnostics.downloadError != nil }, + set: { if !$0 { diagnostics.downloadError = nil } } + )) { + Button("OK", role: .cancel) { diagnostics.downloadError = nil } + } message: { Text(diagnostics.downloadError ?? "") } + } +} + +private struct GalaxyFileShareSheet: UIViewControllerRepresentable { + let url: URL + let finished: () -> Void + func makeUIViewController(context: Context) -> UIActivityViewController { + let controller = UIActivityViewController(activityItems: [url], applicationActivities: nil) + controller.completionWithItemsHandler = { _, _, _, _ in + Task { @MainActor in finished() } + } + return controller + } + func updateUIViewController(_ controller: UIActivityViewController, context: Context) {} +} + +private struct GalaxyPage: UIViewRepresentable { + let url: URL + let requestKey: String + + let diagnostics: GalaxyPageDiagnostics + let isActive: Bool + func makeCoordinator() -> Coordinator { + let coordinator = Coordinator(origin: url, diagnostics: diagnostics) + coordinator.isVisible = isActive + return coordinator + } + + func makeUIView(context: Context) -> WKWebView { + let config = WKWebViewConfiguration() + config.allowsInlineMediaPlayback = true + config.defaultWebpagePreferences.allowsContentJavaScript = true + diagnostics.begin() + config.userContentController.add(context.coordinator, name: "galaxyDiagnostics") + let script = """ + (() => { + if (location.origin !== '\(url.scheme!)://\(url.host!):\(url.port!)') return; + window.__galaxyNative = true; + const phoneAppearance = window.matchMedia('(prefers-color-scheme: dark)'); + const syncTheme = () => { + const theme = phoneAppearance.matches ? 'dark' : 'light'; + localStorage.setItem('galaxy-preview-theme', theme); + document.documentElement.dataset.theme = theme; + }; + syncTheme(); + phoneAppearance.addEventListener('change', () => { + const dark = phoneAppearance.matches; + if ((document.documentElement.dataset.theme === 'dark') !== dark) { + document.querySelector('.gx-theme-toggle')?.click(); + } + syncTheme(); + }); + const reportTheme = () => { + const theme = document.documentElement?.dataset.theme; + if (theme !== 'dark' && theme !== 'light') return; + try { window.webkit.messageHandlers.galaxyDiagnostics.postMessage({kind: 'theme', dark: theme === 'dark'}); } catch (_) {} + }; + const watchTheme = () => { + if (!document.documentElement) return; + new MutationObserver(reportTheme).observe(document.documentElement, {attributes: true, attributeFilter: ['data-theme']}); + reportTheme(); + }; + if (document.documentElement) watchTheme(); + else document.addEventListener('DOMContentLoaded', watchTheme, {once: true}); + let nativeVisible = \(isActive ? "true" : "false"); + Object.defineProperty(document, 'visibilityState', {configurable: true, get: () => nativeVisible ? 'visible' : 'hidden'}); + Object.defineProperty(document, 'hidden', {configurable: true, get: () => !nativeVisible}); + window.__galaxySetVisible = visible => { + if (nativeVisible === !!visible) return; + nativeVisible = !!visible; + document.dispatchEvent(new Event('visibilitychange')); + }; + const emit = (kind, path = '', code = 0) => { + try { window.webkit.messageHandlers.galaxyDiagnostics.postMessage({kind, path, code}); } catch (_) {} + }; + // Keep this native presentation independent of downloaded Galaxy assets. + const editorScreen = matchMedia('(orientation: landscape) and (max-height: 600px)'); + let editorFocused = false; + const editorCSS = document.createElement('style'); + editorCSS.textContent = ` + html.native-layout-editor .blur-nav, + html.native-layout-editor .gx-appbar__pill, + html.native-layout-editor .gx-appbar__menu, + html.native-layout-editor .gx-layout > .gx-page-header { display: none !important; } + html.native-layout-editor .gx-app { animation: none; } + html.native-layout-editor .gx-appbar { + position: fixed; inset: max(4px, env(safe-area-inset-top)) auto auto max(8px, env(safe-area-inset-left)); + width: 44px; padding: 0; margin: 0; z-index: 20; + } + html.native-layout-editor .gx-appbar__back { width: 44px; height: 44px; min-width: 44px; min-height: 44px; } + html.native-layout-editor .gx-content { + max-width: none; padding: max(4px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); + } + html.native-layout-editor .gx-layout { --layout-sticky-top: max(4px, env(safe-area-inset-top)); display: grid; gap: 6px; } + html.native-layout-editor .gx-layout__savebar { + grid-row: 1; margin-left: 52px; padding: 0 4px 0 10px; min-height: 44px; gap: 4px; + } + html.native-layout-editor .gx-layout__savebar .gx-btn { min-height: 44px; padding-inline: 12px; } + html.native-layout-editor .gx-layout__targets { grid-row: 2; margin: 0; gap: 8px; } + html.native-layout-editor .gx-layout__targets .gx-btn { min-height: 44px; padding: 4px 12px; } + html.native-layout-editor .gx-layout__workspace { gap: 8px; grid-template-columns: minmax(0, 1.35fr) minmax(260px, 1fr); } + html.native-layout-editor .gx-layout__preview-card { padding: 4px; gap: 4px; } + html.native-layout-editor .gx-layout__preview-card > p.gx-note:not([role]) { display: none; } + html.native-layout-editor .gx-layout__preview-card .gx-layout__preview { + width: auto; max-width: 100%; max-height: calc(100svh - 200px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); margin-inline: auto; + } + html.native-layout-editor .gx-layout__inspector { + padding: 8px; gap: 8px; max-height: calc(100svh - 124px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow: auto; + } + html.native-layout-editor .gx-layout__sections { margin: -8px -8px 0; padding: 4px; gap: 2px; top: -8px; } + html.native-layout-editor .gx-layout__sections .gx-btn { min-height: 44px; padding: 4px 8px; white-space: nowrap; } + `; + const syncEditor = () => { + const focused = editorScreen.matches && !!document.querySelector('.gx-layout'); + if (focused === editorFocused) return; + editorFocused = focused; + document.documentElement.classList.toggle('native-layout-editor', focused); + try { window.webkit.messageHandlers.galaxyDiagnostics.postMessage({kind: 'editorFocus', active: focused}); } catch (_) {} + }; + const startEditorPresentation = () => { + document.head.appendChild(editorCSS); + new MutationObserver(syncEditor).observe(document.body, {childList: true, subtree: true}); + editorScreen.addEventListener('change', syncEditor); + syncEditor(); + }; + document.addEventListener('DOMContentLoaded', startEditorPresentation, {once: true}); + const pathOnly = value => { + try { return new URL(value, location.href).pathname; } catch (_) { return ''; } + }; + window.addEventListener('error', event => { + if (event.target && event.target !== window) { + emit('resource', pathOnly(event.target.src || event.target.href || '')); + } else { emit('script', pathOnly(event.filename || ''), event.lineno || 0); } + }, true); + window.addEventListener('unhandledrejection', () => emit('promise')); + let rendered = false; + const checkContent = () => { + const root = document.querySelector('#galaxy-app'); + if (root && !root.hasAttribute('v-cloak') && root.children.length && root.innerText.trim().length) { + if (!rendered) { rendered = true; emit('rendered'); } + } else if (rendered) { rendered = false; emit('blank'); } + }; + window.addEventListener('DOMContentLoaded', () => { + checkContent(); setInterval(checkContent, 1000); + }, {once: true}); + const key = '\(requestKey)'; + const local = (u) => new URL(u, location.href).origin === location.origin; + const originalFetch = window.fetch.bind(window); + window.fetch = (input, init = {}) => { + const req = new Request(input, init); + if (!local(req.url)) return originalFetch(req); + const headers = new Headers(req.headers); + headers.set('X-Galaxy-Local', key); + return originalFetch(new Request(req, { headers })).then(async response => { + if (response.status === 501) { + const message = await response.clone().json().catch(() => null); + let notice = document.getElementById('native-wifi-notice'); + if (!notice) { + notice = document.createElement('button'); notice.id = 'native-wifi-notice'; + notice.setAttribute('role', 'status'); + notice.style.cssText = 'position:fixed;top:12px;left:12px;right:12px;z-index:10000;padding:16px;border-radius:16px;background:Canvas;color:CanvasText;border:1px solid currentColor;font:inherit;'; + notice.onclick = () => notice.remove(); document.body.appendChild(notice); + } + notice.textContent = typeof message?.error === 'string' ? message.error : 'Connect to comma over Wi-Fi for this feature.'; + } + return response; + }); + }; + const originalOpen = XMLHttpRequest.prototype.open; + const originalSend = XMLHttpRequest.prototype.send; + XMLHttpRequest.prototype.open = function(method, url, ...rest) { + this.__galaxyLocal = local(url); + return originalOpen.call(this, method, url, ...rest); + }; + XMLHttpRequest.prototype.send = function(body) { + if (this.__galaxyLocal) this.setRequestHeader('X-Galaxy-Local', key); + return originalSend.call(this, body); + }; + })(); + """ + config.userContentController.addUserScript(WKUserScript(source: script, injectionTime: .atDocumentStart, forMainFrameOnly: false)) + let webView = WKWebView(frame: .zero, configuration: config) + webView.navigationDelegate = context.coordinator + webView.uiDelegate = context.coordinator + webView.isOpaque = false + webView.backgroundColor = UIColor(red: 0.06, green: 0.05, blue: 0.09, alpha: 1) + webView.scrollView.contentInsetAdjustmentBehavior = .never + webView.load(URLRequest(url: url)) + return webView + } + + func updateUIView(_ uiView: WKWebView, context: Context) { + context.coordinator.isVisible = isActive + context.coordinator.syncVisibility(uiView) + } + static func dismantleUIView(_ uiView: WKWebView, coordinator: Coordinator) { + uiView.configuration.userContentController.removeScriptMessageHandler(forName: "galaxyDiagnostics") + uiView.navigationDelegate = nil; uiView.uiDelegate = nil + coordinator.cancelDownloads() + uiView.stopLoading() + } + + final class Coordinator: NSObject, WKNavigationDelegate, WKUIDelegate, WKScriptMessageHandler, WKDownloadDelegate { + private var downloads: [ObjectIdentifier: (WKDownload, URL?)] = [:] + var isVisible = true + func syncVisibility(_ webView: WKWebView) { + webView.evaluateJavaScript("window.__galaxySetVisible?.(\(isVisible ? "true" : "false"))", completionHandler: nil) + } + let origin: URL + let diagnostics: GalaxyPageDiagnostics + init(origin: URL, diagnostics: GalaxyPageDiagnostics) { self.origin = origin; self.diagnostics = diagnostics } + + func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { + let frame = message.frameInfo.securityOrigin + guard frame.protocol == origin.scheme, frame.host == origin.host, frame.port == origin.port, + let body = message.body as? [String: Any], let kind = body["kind"] as? String else { return } + let path = LoopbackServer.reportPath(body["path"] as? String ?? "") + switch kind { + case "theme": + if message.frameInfo.isMainFrame, let dark = body["dark"] as? Bool { + diagnostics.darkAppearance = dark + let background = dark ? UIColor(red: 0.06, green: 0.05, blue: 0.09, alpha: 1) : .systemBackground + message.webView?.backgroundColor = background + message.webView?.scrollView.backgroundColor = background + } + case "editorFocus": + if message.frameInfo.isMainFrame, let active = body["active"] as? Bool { + diagnostics.landscapeEditor = active + } + case "rendered": if message.frameInfo.isMainFrame { diagnostics.rendered() } + case "blank": if message.frameInfo.isMainFrame { diagnostics.begin() } + case "resource": diagnostics.record("Resource failed: \(path)") + case "script": diagnostics.record("JavaScript error: \(path), line \(body["code"] as? Int ?? 0)") + case "promise": diagnostics.record("Unhandled JavaScript promise rejection") + case "search": + if let phase = body["phase"] as? String, ["started", "results", "partial", "ready"].contains(phase), + let count = body["count"] as? Int, (0...50_000).contains(count) { + diagnostics.record("Toggle search \(phase): \(count) settings indexed") + } + default: break + } + } + func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { + syncVisibility(webView) + diagnostics.record("HTML navigation finished; waiting for Galaxy content") + } + func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) { + navigationFailed(error) + } + func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { navigationFailed(error) } + private func navigationFailed(_ error: Error) { + let value = error as NSError + if !downloads.isEmpty, value.code == NSURLErrorCancelled || (value.domain == "WKErrorDomain" && value.code == 102) { return } + if value.domain == NSURLErrorDomain && value.code == NSURLErrorCancelled { return } + diagnostics.fail("Navigation failed: \(value.domain) \(value.code)") + if isVisible, value.domain == NSURLErrorDomain, + [NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost].contains(value.code) { + diagnostics.recover?(true) + } + } + func webViewWebContentProcessDidTerminate(_ webView: WKWebView) { + diagnostics.fail("Galaxy web content process terminated") + if isVisible { diagnostics.recover?(true) } + } + + + func webView(_ webView: WKWebView, decidePolicyFor action: WKNavigationAction, + decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { + guard let url = action.request.url else { decisionHandler(.cancel); return } + if url.scheme == origin.scheme, url.host == origin.host, url.port == origin.port { + decisionHandler(action.shouldPerformDownload ? .download : .allow) + } else if url.scheme == "blob" { + let frame = action.sourceFrame.securityOrigin + guard frame.protocol == origin.scheme, frame.host == origin.host, + frame.port == origin.port else { decisionHandler(.cancel); return } + decisionHandler(action.shouldPerformDownload ? .download : .allow) + } else if url.scheme == "about" { + decisionHandler(.allow) + } else { + if action.navigationType == .linkActivated, ["https", "http"].contains(url.scheme ?? "") { + UIApplication.shared.open(url) + } + decisionHandler(.cancel) + } + } + + func webView(_ webView: WKWebView, navigationAction: WKNavigationAction, didBecome download: WKDownload) { + track(download) + } + func webView(_ webView: WKWebView, navigationResponse: WKNavigationResponse, didBecome download: WKDownload) { + track(download) + } + private func track(_ download: WKDownload) { + guard downloads.isEmpty, diagnostics.downloadedFile == nil else { + download.cancel { _ in } + return + } + downloads[ObjectIdentifier(download)] = (download, nil) + download.delegate = self + diagnostics.record("File download started") + } + func download(_ download: WKDownload, decideDestinationUsing response: URLResponse, + suggestedFilename: String, completionHandler: @escaping (URL?) -> Void) { + let id = ObjectIdentifier(download) + guard downloads[id] != nil else { completionHandler(nil); return } + let directory = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString, isDirectory: true) + do { + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + let name = (suggestedFilename as NSString).lastPathComponent + let safeName = name.isEmpty || name == "." || name == ".." ? "toggle-backup.json" : name + let destination = directory.appendingPathComponent(safeName) + downloads[id] = (download, destination) + completionHandler(destination) + } catch { + try? FileManager.default.removeItem(at: directory) + completionHandler(nil) + diagnostics.downloadFailed(error) + } + } + func downloadDidFinish(_ download: WKDownload) { + guard let (_, destination) = downloads.removeValue(forKey: ObjectIdentifier(download)), + let destination else { return } + diagnostics.offerDownload(destination) + } + func download(_ download: WKDownload, didFailWithError error: Error, resumeData: Data?) { + if let (_, destination) = downloads.removeValue(forKey: ObjectIdentifier(download)), + let destination { + try? FileManager.default.removeItem(at: destination.deletingLastPathComponent()) + } + diagnostics.downloadFailed(error) + } + func cancelDownloads() { + let active = downloads.values + downloads.removeAll() + for (download, destination) in active { + download.delegate = nil + download.cancel { _ in } + if let destination { try? FileManager.default.removeItem(at: destination.deletingLastPathComponent()) } + } + } + + func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, + for action: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? { + if action.targetFrame == nil, let url = action.request.url, ["https", "http"].contains(url.scheme ?? "") { + UIApplication.shared.open(url) + } + return nil + } + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/HTTP.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/HTTP.swift new file mode 100644 index 0000000000..0c95189e29 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/HTTP.swift @@ -0,0 +1,76 @@ +import Foundation + +struct LocalRequest { + let method: String + let target: String + let headers: [String: String] + let body: Data + + // Package uploads stay on LAN; ordinary requests retain the Bluetooth-sized limit. + static let maxPackageBody = 256 * 1024 * 1024 + + static func isPackageUpload(method: String, target: String) -> Bool { + method == "POST" && ["/api/android-auto/upload", "/api/spotify/upload"].contains(target) + } + + static func bodyLimit(method: String, target: String) -> Int { + isPackageUpload(method: method, target: target) ? maxPackageBody : Wire.maxBody + } + + static func parse(_ data: Data) throws -> LocalRequest? { + guard let separator = data.range(of: Data("\r\n\r\n".utf8)) else { + if data.count > 16_384 { throw BridgeError.message("HTTP headers are too large.") } + return nil + } + guard separator.lowerBound <= 16_384, + let head = String(data: data[..= 0, parsed <= bodyLimit(method: String(first[0]), target: String(first[1])) else { throw BridgeError.message("Invalid upload size.") } + length = parsed + } else { length = 0 } + let available = data.count - separator.upperBound + guard available >= length else { return nil } + guard available == length else { throw BridgeError.message("HTTP pipelining is not supported.") } + return LocalRequest(method: String(first[0]), target: String(first[1]), headers: headers, + body: data.subdata(in: separator.upperBound.. LocalResponse { + LocalResponse(status: status, headers: ["content-type": "application/json"], + body: (try? JSONSerialization.data(withJSONObject: ["error": message])) ?? Data()) + } + + func encoded(headOnly: Bool = false) -> Data { + var text = "HTTP/1.1 \(status) \(HTTPURLResponse.localizedString(forStatusCode: status))\r\n" + for (key, value) in headers where !["content-length", "connection", "cache-control"].contains(key.lowercased()) { + guard !key.contains("\r"), !key.contains("\n"), !value.contains("\r"), !value.contains("\n") else { continue } + text += "\(key): \(value)\r\n" + } + text += "Content-Length: \(body.count)\r\nConnection: close\r\nCache-Control: no-store\r\nX-Content-Type-Options: nosniff\r\n\r\n" + return Data(text.utf8) + (headOnly ? Data() : body) + } +} + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Info.plist b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Info.plist new file mode 100644 index 0000000000..ce623822d0 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Info.plist @@ -0,0 +1,83 @@ + + + + + UIAppFonts + Sora.ttf + CFBundleDisplayName + StarPilot BT + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleName + StarPilot BT + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0.1 + CFBundleVersion + 1 + ITSAppUsesNonExemptEncryption + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsLocalNetworking + + NSExceptionDomains + + 127.0.0.1 + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSBluetoothAlwaysUsageDescription + Connect directly to your comma's Galaxy Bluetooth bridge. + NSBonjourServices + + _sp-galaxy._tcp + + NSLocationWhenInUseUsageDescription + Share this iPhone's GPS with your comma for navigation when its own GPS has no fix. + NSLocationAlwaysAndWhenInUseUsageDescription + Share this iPhone's GPS with your comma for navigation when its own GPS has no fix. + NSLocalNetworkUsageDescription + Connect to Galaxy on your comma over your local Wi-Fi network. + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + CPTemplateApplicationSceneSessionRoleApplication + + + UISceneClassName + CPTemplateApplicationScene + UISceneConfigurationName + StarPilot BT CarPlay + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).CarPlaySceneDelegate + + + + + UIBackgroundModes + + bluetooth-central + location + + UILaunchScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/LANDiscovery.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/LANDiscovery.swift new file mode 100644 index 0000000000..8355c2f4b1 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/LANDiscovery.swift @@ -0,0 +1,126 @@ +import Foundation +import Darwin + +struct DiscoveredComma: Identifiable { + let id: String + let name: String + let address: String +} + +@MainActor +final class LANDiscovery: NSObject, ObservableObject, @preconcurrency NetServiceBrowserDelegate, @preconcurrency NetServiceDelegate { + static let serviceType = "_sp-galaxy._tcp." + @Published private(set) var devices: [DiscoveredComma] = [] + @Published private(set) var searching = false + @Published private(set) var status = "Find comma on the same Wi-Fi or hotspot, without Bluetooth." + var onEvent: ((String) -> Void)? + var onDevicesChanged: (() -> Void)? + private var browser: NetServiceBrowser? + private var services: [String: NetService] = [:] + private var deadline: Task? + + func start() { + stop() + devices = [] + searching = true + status = "Looking for comma on your local network…" + onEvent?("Wi-Fi discovery started") + let browser = NetServiceBrowser() + self.browser = browser + browser.delegate = self + browser.searchForServices(ofType: Self.serviceType, inDomain: "local.") + deadline = Task { [weak self] in + try? await Task.sleep(nanoseconds: 12_000_000_000) + guard !Task.isCancelled, let self else { return } + self.stop() + self.status = self.devices.isEmpty + ? "No comma found. Use the same Wi-Fi, allow Local Network access, and update comma for discovery. You can still enter its IP." + : "Select your comma below." + self.onEvent?("Wi-Fi discovery finished: \(self.devices.count) result(s)") + } + } + + func stop() { + deadline?.cancel(); deadline = nil + browser?.delegate = nil; browser?.stop(); browser = nil + for service in services.values { service.delegate = nil; service.stop() } + services.removeAll() + if searching { status = devices.isEmpty ? "Search stopped." : "Select your comma below." } + searching = false + } + + func networkChanged() { + stop() + devices = [] + status = "Network changed. Looking for comma on the current network." + } + + private func key(_ service: NetService) -> String { service.name + "/" + service.type + "/" + service.domain } + func netServiceBrowser(_ browser: NetServiceBrowser, didFind service: NetService, moreComing: Bool) { + guard searching, browser === self.browser, services.count < 16, services[key(service)] == nil else { return } + services[key(service)] = service + service.delegate = self + service.resolve(withTimeout: 5) + } + func netServiceBrowser(_ browser: NetServiceBrowser, didRemove service: NetService, moreComing: Bool) { + guard browser === self.browser else { return } + let id = key(service) + services.removeValue(forKey: id)?.stop() + devices.removeAll { $0.id == id } + onDevicesChanged?() + } + func netServiceBrowser(_ browser: NetServiceBrowser, didNotSearch errorDict: [String: NSNumber]) { + guard browser === self.browser else { return } + let denied = errorDict[NetService.errorCode]?.intValue == -72008 + stop() + status = denied ? "Allow Local Network access for this app in iPhone Settings, then search again." + : "Wi-Fi discovery couldn’t start. Check Local Network permission or enter comma’s IP." + onEvent?("Wi-Fi discovery failed: code \(errorDict[NetService.errorCode]?.intValue ?? 0)") + } + func netServiceDidResolveAddress(_ sender: NetService) { + guard searching, services[key(sender)] === sender, sender.port == 8082 else { return } + let txt = sender.txtRecordData().map(NetService.dictionary(fromTXTRecord:)) ?? [:] + guard txt["protocol"] == Data("galaxy-lan-1".utf8) else { return } + guard let address = (sender.addresses ?? []).compactMap(Self.privateIPv4).first else { return } + let suffix = "-" + address.replacingOccurrences(of: ".", with: "-") + let name = sender.name.hasSuffix(suffix) ? String(sender.name.dropLast(suffix.count)) : sender.name + let device = DiscoveredComma(id: key(sender), name: String(name.prefix(80)), address: address) + devices.removeAll { $0.id == device.id } + devices.append(device) + devices.sort { $0.name.localizedStandardCompare($1.name) == .orderedAscending } + status = "Found \(devices.count) comma device(s). Select one below." + onEvent?("Wi-Fi discovery found a Galaxy service") + onDevicesChanged?() + } + static func networkSignature() -> String { + var interfaces: UnsafeMutablePointer? + guard getifaddrs(&interfaces) == 0 else { return "" } + defer { freeifaddrs(interfaces) } + var values: [String] = [] + var current = interfaces + while let pointer = current { + let interface = pointer.pointee + current = interface.ifa_next + guard let address = interface.ifa_addr, address.pointee.sa_family == sa_family_t(AF_INET), + interface.ifa_flags & UInt32(IFF_UP) != 0 else { continue } + var ip = UnsafeRawPointer(address).assumingMemoryBound(to: sockaddr_in.self).pointee.sin_addr + var buffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN)) + if inet_ntop(AF_INET, &ip, &buffer, socklen_t(buffer.count)) != nil { + values.append(String(cString: interface.ifa_name) + ":" + String(cString: buffer)) + } + } + return values.sorted().joined(separator: ",") + } + + static func privateIPv4(_ data: Data) -> String? { + guard data.count >= MemoryLayout.size else { return nil } + var socketAddress = sockaddr_in() + _ = withUnsafeMutableBytes(of: &socketAddress) { data.copyBytes(to: $0, count: MemoryLayout.size) } + guard socketAddress.sin_family == sa_family_t(AF_INET), UInt16(bigEndian: socketAddress.sin_port) == 8082 else { return nil } + var ip = socketAddress.sin_addr + var buffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN)) + guard inet_ntop(AF_INET, &ip, &buffer, socklen_t(buffer.count)) != nil else { return nil } + let address = String(cString: buffer) + return (try? LANTransport.endpoint(address)) != nil ? address : nil + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/LoopbackServer.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/LoopbackServer.swift new file mode 100644 index 0000000000..a06f4d227e --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/LoopbackServer.swift @@ -0,0 +1,398 @@ +import Foundation +import CryptoKit +import Network +import Combine +import UniformTypeIdentifiers + +@MainActor +final class LoopbackServer: ObservableObject { + @Published var url: URL? + @Published var error = "" + private(set) var lifecycleEvents: [String] = [] + private(set) var listenerState = "stopped" + private var availabilityTask: Task? + private(set) var recentRequests: [String] = [] + var diagnosticSummary: String { + let mobile = webRoot.map { FileManager.default.fileExists(atPath: $0.appendingPathComponent("index.html").path) } ?? false + let script = webRoot.map { FileManager.default.fileExists(atPath: $0.appendingPathComponent("js/app.js").path) } ?? false + return "Local server ready: \(url != nil)\nLocal listener state: \(listenerState)\nRecent local server events:\n\(lifecycleEvents.joined(separator: "\n"))\nAsset source: \(webRoot == nil ? "not downloaded" : "saved from comma")\nMobile HTML exists: \(mobile)\nGalaxy script exists: \(script)\nLocal server error present: \(!error.isEmpty)" + } + static func reportPath(_ target: String) -> String { + let path = String(target.prefix(512)).split(separator: "?", maxSplits: 1).first.map(String.init) ?? "" + if ["/assets/", "/js/", "/css/", "/vendor/"].contains(where: { path.hasPrefix($0) }) { return String(path.prefix(200)) } + if path.hasPrefix("/api/") { return "/api/" + (path.split(separator: "/").dropFirst().first.map(String.init) ?? "") + "/…" } + return path == "/" ? "/" : "[other path]" + } + let localSecret = UUID().uuidString + UUID().uuidString + private var listener: NWListener? + private var connections: [UUID: LocalConnection] = [:] + private var webRoot: URL? + private let transport: any GalaxyRequestTransport + private let probe: (URL) async -> Bool + private var catalog: Data? + private var catalogSHA256: String? + + init(transport: any GalaxyRequestTransport, webRoot: URL? = nil, + probe: @escaping (URL) async -> Bool = { url in + var request = URLRequest(url: url.appendingPathComponent("_native/health")) + request.timeoutInterval = 2 + guard let (data, response) = try? await BoundedHTTP.load(request, limit: 256) else { return false } + return response.statusCode == 200 && data == Data("galaxy-loopback-ready".utf8) + }) { + self.transport = transport + self.probe = probe + self.webRoot = webRoot + + } + + func useWebRoot(_ root: URL) { + webRoot = root + + } + + private func record(_ event: String) { + lifecycleEvents.append("\(ISO8601DateFormatter().string(from: Date())) \(event)") + if lifecycleEvents.count > 20 { lifecycleEvents.removeFirst(lifecycleEvents.count - 20) } + } + + // Probe real HTTP service after suspension; an old URL is not proof of readiness. + func ensureAvailable() async -> Bool { + if let availabilityTask { return await availabilityTask.value } + let task = Task { @MainActor in + self.start() + await self.waitUntilReady() + if let url = self.url, await self.probe(url) { + self.record("Local HTTP health check passed") + return true + } + self.record("Local HTTP health check failed; restarting listener") + self.stop() + self.start() + await self.waitUntilReady() + guard let url = self.url, await self.probe(url) else { + self.stop() + self.error = "Galaxy couldn’t reconnect. Try again." + self.record("Local HTTP recovery failed") + return false + } + self.record("Local HTTP recovery succeeded") + return true + } + availabilityTask = task + defer { availabilityTask = nil } + return await task.value + } + + private func waitUntilReady() async { + for _ in 0..<40 { + if url != nil || listener == nil { return } + try? await Task.sleep(nanoseconds: 50_000_000) + } + } + + func start() { + guard listener == nil else { return } + error = "" + listenerState = "starting" + record("Starting local listener") + do { + let parameters = NWParameters.tcp + parameters.requiredLocalEndpoint = .hostPort(host: "127.0.0.1", port: .any) + let listener = try NWListener(using: parameters) + self.listener = listener + listener.stateUpdateHandler = { [weak self, weak listener] state in + Task { @MainActor in + guard let self, let listener, self.listener === listener else { return } + switch state { + case .ready: + self.listenerState = "ready" + self.error = "" + if let port = listener.port { self.url = URL(string: "http://127.0.0.1:\(port.rawValue)/") } + self.record("Local listener ready") + case .failed(let failure): + self.stop() + self.listenerState = "failed" + self.error = failure.localizedDescription + self.record("Local listener failed: \(failure)") + case .waiting: + self.url = nil + self.listenerState = "waiting" + self.record("Local listener waiting") + case .cancelled: + self.stop() + default: break + } + } + } + listener.newConnectionHandler = { [weak self, weak listener] connection in + Task { @MainActor in + guard let self, let listener, self.listener === listener else { connection.cancel(); return } + self.accept(connection) + } + } + listener.start(queue: .main) + } catch { listenerState = "failed"; self.error = error.localizedDescription; record("Could not create local listener") } + } + + func stop() { + let oldListener = listener + listener = nil + oldListener?.cancel() + listenerState = "stopped" + record("Local listener stopped") + url = nil + for client in Array(connections.values) { client.close() } + } + + private func accept(_ connection: NWConnection) { + guard connections.count < 64 else { connection.cancel(); return } + let id = UUID() + let client = LocalConnection(connection: connection, handle: { [weak self] request in + guard let self else { return .error(503, "App is shutting down.") } + return await self.handle(request) + }, onClose: { [weak self] in self?.connections.removeValue(forKey: id) }) + connections[id] = client + client.start() + } + + private func handle(_ request: LocalRequest) async -> LocalResponse { + let start = Date() + let response = await respond(request) + recentRequests.append("\(ISO8601DateFormatter().string(from: Date())) \(request.method) \(Self.reportPath(request.target)) → \(response.status), \(response.body.count) bytes, \(String(format: "%.2f", Date().timeIntervalSince(start)))s") + if recentRequests.count > 60 { recentRequests.removeFirst(recentRequests.count - 60) } + return response + } + + static let nativeSearchScript = #""" + // Native Bluetooth search adapter v1. The verified upstream assets stay unchanged on disk. + if (window.__galaxyNative) { + const reportSearch = (phase, count) => { + try { window.webkit?.messageHandlers?.galaxyDiagnostics?.postMessage({ kind: 'search', phase, count }) } catch (_) {} + } + SettingsSearchIndex.prototype.collect = async function(generation, controller) { + const seen = new Set(INITIAL_PAGES) + const queue = [...INITIAL_PAGES] + let failed = 0, reportedResults = false + reportSearch('started', 0) + const current = () => this.generation === generation && !controller.signal.aborted + for (let cursor = 0; cursor < queue.length && current(); cursor++) { + const page = queue[cursor] + const timed = new AbortController() + let timer, abort + try { + const expired = new Promise((_, reject) => { + abort = () => { timed.abort(); reject(new DOMException('Search stopped', 'AbortError')) } + controller.signal.addEventListener('abort', abort, { once: true }) + timer = setTimeout(abort, 20000) + }) + const read = (async () => { + const response = await this.fetcher(`./api/settings/pages/${encodeURIComponent(page)}`, + { credentials: 'same-origin', cache: 'no-store', signal: timed.signal }) + if (response.status === 401) { this.stop(); this.unauthorized(); return null } + if (!response.ok) throw new Error('Settings unavailable') + const data = await response.json() + if (data?.page !== page || !Array.isArray(data.rows) || typeof data.title !== 'string') throw new Error('Invalid settings page') + return data + })() + const data = await Promise.race([read, expired]) + if (!current() || !data) return + const section = PAGE_SECTIONS.get(page.split('/')[0]) || 'Toggles' + for (const row of data.rows) { + if (typeof row?.label !== 'string' || !row.label) continue + if (typeof row.page === 'string' && row.page && !seen.has(row.page) && seen.size < 64) { + seen.add(row.page); queue.push(row.page) + } + if (row.page || isPipCropRow(row)) continue + this.entries.push({ page, label: row.label, title: data.title, section, + search: searchable(row, data.title, section) }) + } + } catch { + if (!current()) return + failed++ + } finally { + clearTimeout(timer) + if (abort) controller.signal.removeEventListener('abort', abort) + } + // Publish each page immediately; one slow page must not hide earlier matches. + if (current() && this.entries.length && !reportedResults) { + reportedResults = true; reportSearch('results', this.entries.length) + } + if (current()) this.publish({ status: 'loading', entries: [...this.entries], failed }) + } + if (!current()) return + this.status = failed ? 'partial' : 'ready' + reportSearch(this.status, this.entries.length) + this.publish({ status: this.status, entries: [...this.entries], failed }) + } + const closeSearch = ToggleSearch.methods.close + ToggleSearch.methods.close = function() { this.index.stop(); closeSearch.call(this) } + const searchKey = ToggleSearch.methods.onKey + ToggleSearch.methods.onKey = function(event) { + if (event.key === 'Escape') this.index.stop() + searchKey.call(this, event) + } + const chooseSearchHit = ToggleSearch.methods.choose + ToggleSearch.methods.choose = function(hit) { this.index.stop(); chooseSearchHit.call(this, hit) } + ToggleSearch.template = ToggleSearch.template.replace("state.status === 'partial' && !state.entries.length", "state.status === 'partial' && !results.length") + } + """# + + private func respond(_ request: LocalRequest) async -> LocalResponse { + guard let base = url, let port = base.port, request.headers["host"] == "127.0.0.1:\(port)" else { + return .error(403, "Invalid local host.") + } + if let origin = request.headers["origin"], origin != "http://127.0.0.1:\(port)" { + return .error(403, "Cross-origin requests are blocked.") + } + guard request.target.hasPrefix("/"), !request.target.hasPrefix("//"), + let components = URLComponents(string: request.target), components.scheme == nil, components.host == nil, + let path = components.percentEncodedPath.removingPercentEncoding, + !path.contains("\\"), !path.contains("%"), !path.contains("//"), + !path.split(separator: "/").contains(where: { $0 == ".." || $0 == "." }) else { + return .error(400, "Invalid local path.") + } + if path == "/_native/health", request.method == "GET" { + return LocalResponse(status: 200, headers: ["content-type": "text/plain"], body: Data("galaxy-loopback-ready".utf8)) + } + if path.hasPrefix("/_gateway/") { return .error(404, "Choose your connection in the native app.") } + let dynamic = path.hasPrefix("/api/") || path == "/data/runtime.json" + if dynamic { + guard request.headers["x-galaxy-local"] == localSecret else { return .error(403, "Missing app request key.") } + guard transport.connected else { return .error(503, "Your comma is disconnected. Open Connections to reconnect.") } + do { + let response = try await transport.request(path: request.target, method: request.method, + headers: request.headers, body: request.body) + return LocalResponse(status: response.status, headers: response.headers, body: response.bodyData) + } catch { return .error(502, error.localizedDescription) } + } + guard ["GET", "HEAD"].contains(request.method) else { return .error(405, "Method is not supported for Galaxy files.") } + let assetPath = path == "/" ? "index.html" : String(path.dropFirst()) + var data: Data + if let webRoot { + let file = webRoot.appendingPathComponent(assetPath).standardizedFileURL + guard file.path.hasPrefix(webRoot.standardizedFileURL.path + "/"), let saved = try? Data(contentsOf: file) else { + return .error(404, "Galaxy asset was not found.") + } + data = saved + } else { + // No saved copy yet (an older comma that cannot share its screens): over Wi-Fi/LAN read the pages live from comma. + let notYet = "Galaxy screens aren’t downloaded yet. Connect to comma over Wi-Fi once." + guard transport.connected, SecretGoodGalaxy.validPage("/" + assetPath) else { return .error(503, notYet) } + guard let live = try? await transport.page(path: "/" + assetPath) else { return .error(503, notYet) } + guard live.status == 200 else { return .error(live.status, "Comma could not serve this Galaxy asset.") } + data = live.bodyData + } + let pathExtension = (assetPath as NSString).pathExtension + if assetPath == "js/toggle-search.js", let source = String(data: data, encoding: .utf8), + source.contains("export class SettingsSearchIndex"), source.contains("export const ToggleSearch") { + data.append(Data(("\n" + Self.nativeSearchScript).utf8)) + record("Native incremental toggle search enabled") + } + let mime: String + switch pathExtension { + case "js", "mjs": mime = "text/javascript" + case "css": mime = "text/css" + case "html": mime = "text/html; charset=utf-8" + case "json", "webmanifest": mime = "application/json" + case "svg": mime = "image/svg+xml" + default: mime = UTType(filenameExtension: pathExtension)?.preferredMIMEType ?? "application/octet-stream" + } + return LocalResponse(status: 200, headers: ["content-type": mime], body: data) + } +} + +@MainActor +private final class LocalConnection { + let connection: NWConnection + let handle: @MainActor (LocalRequest) async -> LocalResponse + let onClose: @MainActor () -> Void + private var data = Data() + private var requestTask: Task? + private var headerTimeout: Task? + private var closed = false + + init(connection: NWConnection, handle: @escaping @MainActor (LocalRequest) async -> LocalResponse, + onClose: @escaping @MainActor () -> Void) { + self.connection = connection + self.handle = handle + self.onClose = onClose + } + + func start() { + connection.stateUpdateHandler = { [weak self] state in + Task { @MainActor in + if case .failed = state { self?.close() } + if case .cancelled = state { self?.close() } + } + } + connection.start(queue: .main) + headerTimeout = Task { @MainActor [weak self] in + try? await Task.sleep(nanoseconds: 10_000_000_000) + if !Task.isCancelled { self?.close() } + } + receive() + } + + fileprivate func close() { + guard !closed else { return } + closed = true + headerTimeout?.cancel() + requestTask?.cancel() + connection.stateUpdateHandler = nil + connection.cancel() + onClose() + } + + private func receive() { + connection.receive(minimumIncompleteLength: 1, maximumLength: 65_536) { [weak self] chunk, _, ended, failure in + Task { @MainActor in self?.consume(chunk, ended: ended, failure: failure) } + } + } + + private var packageTimeout = false + + private func consume(_ chunk: Data?, ended: Bool, failure: NWError?) { + guard !closed else { return } + data.append(chunk ?? Data()) + guard failure == nil, data.count <= LocalRequest.maxPackageBody + 16_388 else { close(); return } + if !packageTimeout, let end = data.range(of: Data("\r\n\r\n".utf8)), + let header = String(data: data[..? + private var buffer = Data() + private var response: HTTPURLResponse? + private var task: URLSessionDataTask? + private var session: URLSession? + private var cancelled = false + private let limit: Int + init(limit: Int) { self.limit = limit } + + static func load(_ request: URLRequest, limit: Int) async throws -> (Data, HTTPURLResponse) { + let client = BoundedHTTP(limit: limit) + return try await withTaskCancellationHandler(operation: { + try Task.checkCancellation() + return try await withCheckedThrowingContinuation { client.start(request, continuation: $0) } + }, onCancel: { client.cancel() }) + } + private func start(_ request: URLRequest, continuation: CheckedContinuation<(Data, HTTPURLResponse), Error>) { + lock.lock(); defer { lock.unlock() } + guard !cancelled else { continuation.resume(throwing: CancellationError()); return } + self.continuation = continuation + let config = URLSessionConfiguration.ephemeral + config.urlCache = nil + config.httpCookieStorage = nil + config.requestCachePolicy = .reloadIgnoringLocalCacheData + config.connectionProxyDictionary = [:] + let session = URLSession(configuration: config, delegate: self, delegateQueue: nil) + self.session = session + task = session.dataTask(with: request) + task?.resume() + } + private func cancel() { + lock.lock(); cancelled = true; let task = task; lock.unlock() + task?.cancel() + } + func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, + newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) { + completionHandler(nil) + } + func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, + completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { + guard let http = response as? HTTPURLResponse, response.expectedContentLength <= limit else { + completionHandler(.cancel); return + } + self.response = http + completionHandler(.allow) + } + func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { + guard buffer.count + data.count <= limit else { dataTask.cancel(); return } + buffer.append(data) + } + func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { + lock.lock(); let callback = continuation; continuation = nil; let cancelled = cancelled; lock.unlock() + if cancelled { callback?.resume(throwing: CancellationError()) } + else if let error { callback?.resume(throwing: error) } + else if let response { callback?.resume(returning: (buffer, response)) } + else { callback?.resume(throwing: BridgeError.message("Invalid HTTP response.")) } + session.finishTasksAndInvalidate() + self.session = nil + } +} + +@MainActor +final class LANTransport: ObservableObject, GalaxyRequestTransport { + @Published private(set) var connected = false + @Published private(set) var status = "Local connection not checked yet." + var onEvent: ((String) -> Void)? + private(set) var endpoint: URL? + private(set) var generation = UUID().uuidString + private(set) var expectedDeviceID: String? + private(set) var verifiedDeviceID: String? + + private var cookie: String? + private var sessionTask: (UUID, Task)? + private let load: (URLRequest, Int) async throws -> (Data, HTTPURLResponse) + init(load: @escaping (URLRequest, Int) async throws -> (Data, HTTPURLResponse) = { try await PrivateLANHTTP.load($0, limit: $1) }) { + self.load = load + } + + // An explicit private IPv4 address prevents cloud/loopback endpoints from being treated as the local comma. + static func endpoint(_ address: String) throws -> URL { + let parts = address.trimmingCharacters(in: .whitespacesAndNewlines).split(separator: ".", omittingEmptySubsequences: false) + guard parts.count == 4, parts.allSatisfy({ !$0.isEmpty && $0.allSatisfy(\.isNumber) }), + parts.allSatisfy({ String(Int($0) ?? -1) == $0 }), + let a = Int(parts[0]), let b = Int(parts[1]), parts.allSatisfy({ (0...255).contains(Int($0) ?? -1) }), + a == 10 || (a == 172 && (16...31).contains(b)) || (a == 192 && b == 168), + let url = URL(string: "http://\(parts.joined(separator: ".")):8082") else { + throw BridgeError.message("Enter your comma’s local IP address, such as 192.168.10.85.") + } + return url + } + func configure(address: String) throws { + let new = try Self.endpoint(address) + if endpoint != new { endpoint = new; invalidate(reason: "Comma LAN address changed") } + } + static func reportedAddress(_ data: Data) -> String? { + guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let addresses = json["addresses"] as? [[String: Any]] else { return nil } + return addresses.compactMap { row -> String? in + guard let text = row["url"] as? String, let url = URL(string: text), + let host = url.host, let expected = try? endpoint(host), + url.scheme == "http", url.port == 8082, url.user == nil, url.password == nil, + url.host == expected.host else { return nil } + return host + }.first + } + static func deviceID(_ data: Data) -> String? { + guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + json["schemaVersion"] as? Int == 1, json["monitor"] as? String == "local", + let value = json["instance"] as? String, + value.count == 16, value.utf8.allSatisfy({ (48...57).contains($0) || (97...102).contains($0) }) else { return nil } + return value + } + func bind(to identity: String?) { + if expectedDeviceID != identity { expectedDeviceID = identity; invalidate(reason: "Paired comma identity changed") } + } + func clearEndpoint() { endpoint = nil; invalidate(reason: "Saved LAN endpoint cleared") } + func invalidate(reason: String = "LAN verification reset") { + cookie = nil; sessionTask?.1.cancel(); sessionTask = nil + connected = false; verifiedDeviceID = nil; generation = UUID().uuidString + onEvent?(reason) + } + func probe() async -> Bool { + guard endpoint != nil else { return false } + let expectedGeneration = generation + do { + let (data, response) = try await authenticated(path: "/data/runtime.json", method: "GET", headers: [:], body: Data(), limit: 4096) + guard !Task.isCancelled, expectedGeneration == generation else { return false } + let identity = Self.deviceID(data) + let available = response.statusCode == 200 && identity != nil + && (expectedDeviceID == nil || identity == expectedDeviceID) + guard !Task.isCancelled, expectedGeneration == generation else { return false } + let changed = connected != available + connected = available + verifiedDeviceID = available ? identity : nil + status = available ? "Local comma verified." : "Local endpoint unavailable or does not match the paired comma." + if changed { onEvent?(available ? "LAN probe succeeded; comma identity verified" : "LAN probe rejected: HTTP \(response.statusCode), unavailable status or identity mismatch") } + } catch { + if !Task.isCancelled, expectedGeneration == generation { + status = error.localizedDescription + invalidate(reason: "LAN probe failed: \(Self.failureCode(error))") + } + } + return connected + } + static func failureCode(_ error: Error) -> String { + let value = error as NSError + if let url = error as? URLError { + let name: String + switch url.code { + case .timedOut: name = "timeout" + case .networkConnectionLost: name = "connection lost" + case .notConnectedToInternet: name = "no network route" + case .cannotConnectToHost: name = "cannot reach comma" + case .cancelled: name = "cancelled" + default: name = "network error" + } + return "\(name) (\(value.domain) \(value.code))" + } + return "\(value.domain) \(value.code)" + } + private func sessionCookie(endpoint: URL, generation original: String) async throws -> String { + if let cookie { return cookie } + let token: UUID + let pending: Task + if let existing = sessionTask { (token, pending) = existing } + else { + token = UUID() + pending = Task { + var request = URLRequest(url: endpoint.appendingPathComponent("api/auth/session")) + request.timeoutInterval = 8 + let (data, response) = try await load(request, 65_536) + let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] + let cookies = HTTPCookie.cookies(withResponseHeaderFields: response.allHeaderFields.reduce(into: [String: String]()) { + if let key = $1.key as? String { $0[key] = String(describing: $1.value) } + }, for: endpoint) + guard response.statusCode == 200, json?["authenticated"] as? Bool == true, + json?["localAccess"] as? Bool == true, + let value = cookies.first(where: { $0.name == "galaxy_session" && !$0.value.isEmpty }) else { + throw BridgeError.message("Couldn’t open a local Galaxy session. Connect directly to comma’s Wi-Fi.") + } + return "galaxy_session=\(value.value)" + } + sessionTask = (token, pending) + } + defer { if sessionTask?.0 == token { sessionTask = nil } } + let value = try await pending.value + try Task.checkCancellation() + guard original == generation, self.endpoint == endpoint else { throw CancellationError() } + cookie = value + return value + } + + private func authenticated(path: String, method: String, headers: [String: String], body: Data, + limit: Int) async throws -> (Data, HTTPURLResponse) { + guard let endpoint else { throw URLError(.notConnectedToInternet) } + let original = generation + for attempt in 0...1 { + let usedCookie = try await sessionCookie(endpoint: endpoint, generation: original) + guard original == generation else { throw CancellationError() } + var request = URLRequest(url: URL(string: endpoint.absoluteString + path)!) + request.httpMethod = method + request.httpBody = body.isEmpty ? nil : body + request.timeoutInterval = LocalRequest.isPackageUpload(method: method, target: path) ? 120 : 8 + for (name, value) in headers where ["accept", "range", "content-type"].contains(name.lowercased()) { + request.setValue(value, forHTTPHeaderField: name) + } + request.setValue(usedCookie, forHTTPHeaderField: "Cookie") + if !["GET", "HEAD"].contains(method) { + request.setValue(endpoint.absoluteString, forHTTPHeaderField: "Origin") + request.setValue(LocalRequest.isPackageUpload(method: method, target: path) ? "application/octet-stream" : "application/json", forHTTPHeaderField: "Content-Type") + } + let result = try await load(request, limit) + try Task.checkCancellation() + guard original == generation, self.endpoint == endpoint else { throw CancellationError() } + let message = (try? JSONSerialization.jsonObject(with: result.0)) as? [String: Any] + if attempt == 0, result.1.statusCode == 401, + message?["error"] as? String == "Refresh the local Galaxy session" { + // The server rejected this operation before execution. Retry only this explicit response. + if cookie == usedCookie { cookie = nil } + continue + } + return result + } + throw BridgeError.message("Galaxy session expired. Reconnect to comma.") + } + + func page(path: String) async throws -> BridgeResponse { + guard connected else { throw URLError(.notConnectedToInternet) } + guard SecretGoodGalaxy.validPage(path) else { throw BridgeError.message("Invalid Galaxy page request.") } + let (data, response) = try await authenticated(path: path, method: "GET", headers: [:], body: Data(), limit: 8 * Wire.maxBody) + return bridgeResponse(data, response) + } + + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + guard connected else { throw URLError(.notConnectedToInternet) } + guard SecretGoodGalaxy.validTarget(path), + ["GET", "HEAD", "POST", "PUT", "PATCH", "DELETE"].contains(method), body.count <= LocalRequest.bodyLimit(method: method, target: path) else { + throw BridgeError.message("Invalid Galaxy request.") + } + let (data, response) = try await authenticated(path: path, method: method, headers: headers, body: body, limit: 8 * Wire.maxBody) + return bridgeResponse(data, response) + } + + private func bridgeResponse(_ data: Data, _ response: HTTPURLResponse) -> BridgeResponse { + var responseHeaders: [String: String] = [:] + for (key, value) in response.allHeaderFields { + if let name = key as? String, ["content-type", "content-range", "accept-ranges", "content-disposition"].contains(name.lowercased()) { + responseHeaders[name.lowercased()] = String(describing: value) + } + } + return BridgeResponse(id: UUID().uuidString, session: generation, counter: 0, status: response.statusCode, + headers: responseHeaders, body: data.base64EncodedString()) + } +} + +enum ConnectionMode: String, CaseIterable, Identifiable { + case automatic, lan, bluetooth + var id: String { rawValue } + var title: String { switch self { case .automatic: "Automatic"; case .lan: "Wi-Fi only"; case .bluetooth: "Bluetooth only" } } +} + +@MainActor +final class PreferredTransport: ObservableObject, GalaxyRequestTransport { + let lan: any GalaxyRequestTransport + let bluetooth: any GalaxyRequestTransport + var invalidateLAN: (String) -> Void + @Published var mode: ConnectionMode = .automatic + var connected: Bool { (mode != .bluetooth && lan.connected) || (mode != .lan && bluetooth.connected) } + var usesLAN: Bool { mode != .bluetooth && lan.connected } + var label: String { usesLAN ? "Wi-Fi" : bluetooth.connected && mode != .lan ? "Bluetooth" : "Reconnecting…" } + var catalogSHA256: String? { usesLAN ? lan.catalogSHA256 : bluetooth.catalogSHA256 } + init(lan: any GalaxyRequestTransport, bluetooth: any GalaxyRequestTransport, invalidateLAN: @escaping (String) -> Void) { + self.lan = lan; self.bluetooth = bluetooth; self.invalidateLAN = invalidateLAN + } + func page(path: String) async throws -> BridgeResponse { + guard usesLAN else { throw BridgeError.message("Galaxy screens can only be downloaded from comma over Wi-Fi.") } + return try await lan.page(path: path) + } + + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + try Task.checkCancellation() + if usesLAN { + do { return try await lan.request(path: path, method: method, headers: headers, body: body) } + catch { + try Task.checkCancellation() + guard error is URLError else { throw error } + invalidateLAN("LAN request failed: \(LANTransport.failureCode(error))") + // Retry reads only; never replay a setting change. + if !["GET", "HEAD"].contains(method) { + throw BridgeError.message("Wi-Fi disconnected. This change may have saved; reload the setting to confirm before trying again.") + } + guard mode == .automatic, bluetooth.connected else { throw error } + } + } + if SecretGoodGalaxy.needsWiFi(path) { + return BridgeResponse(id: UUID().uuidString, session: "wifi-required", counter: 0, status: 501, + headers: ["content-type": "application/json"], + body: Data("{\"error\":\"Connect to comma over local Wi-Fi to use this feature.\"}".utf8).base64EncodedString()) + } + guard mode != .lan, bluetooth.connected else { throw BridgeError.message("Your comma is disconnected. Open Connections to reconnect.") } + return try await bluetooth.request(path: path, method: method, headers: headers, body: body) + } +} + +@MainActor +enum LANDiscoveryMatch { + static func first(addresses: [String], expectedDeviceID: String?, stillCurrent: () -> Bool, + probe: (String, String) async -> Bool) async -> String? { + guard let identity = expectedDeviceID, !identity.isEmpty else { return nil } + var seen = Set() + for address in addresses.prefix(16) { + guard !Task.isCancelled, stillCurrent() else { return nil } + guard seen.insert(address).inserted, (try? LANTransport.endpoint(address)) != nil else { continue } + let verified = await probe(address, identity) + guard !Task.isCancelled, stillCurrent() else { return nil } + if verified { return address } + } + return nil + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingCode.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingCode.swift new file mode 100644 index 0000000000..4d27b4c69a --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingCode.swift @@ -0,0 +1,13 @@ +import Foundation + +/// A phone's key from comma and comma's id for it (kept so a re-pair can replace the old entry). +struct PairingCode { + let key: String + let id: String? + + static func validID(_ value: String?) -> String? { + guard let value, value.utf8.count == 8, + value.utf8.allSatisfy({ (48...57).contains($0) || (65...70).contains($0) || (97...102).contains($0) }) else { return nil } + return value.lowercased() + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingKeyStore.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingKeyStore.swift new file mode 100644 index 0000000000..7ed3a8558b --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PairingKeyStore.swift @@ -0,0 +1,73 @@ +import Foundation +import Security + +struct PairingCredential: Codable, Equatable { + let key: String + let id: String? + var previousId: String? + + static func decode(_ data: Data) -> PairingCredential? { + if let stored = try? JSONDecoder().decode(Self.self, from: data) { + return Self(key: stored.key, id: PairingCode.validID(stored.id), + previousId: PairingCode.validID(stored.previousId)) + } + guard let key = String(data: data, encoding: .utf8), key.utf8.count == 64, + key.utf8.allSatisfy({ (48...57).contains($0) || (65...70).contains($0) || (97...102).contains($0) }) else { return nil } + return Self(key: key.lowercased(), id: nil, previousId: nil) + } + + static func replacing(_ saved: Self?, with code: PairingCode) -> Self { + let previous = saved?.id == code.id ? saved?.previousId : saved?.id + return Self(key: code.key, id: code.id, previousId: previous) + } +} + +enum PairingKeyStore { + // Scanned credentials are committed only after the encrypted handshake succeeds. + private static var pending: PairingCredential? + private static let service = "link.galaxy.bluetooth.pairing" + private static let query: [String: Any] = [kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: service, + kSecAttrAccount as String: "comma"] + + static func load() -> String { stored()?.key ?? "" } + + private static func stored() -> PairingCredential? { + var request = query + request[kSecReturnData as String] = true + request[kSecMatchLimit as String] = kSecMatchLimitOne + var result: CFTypeRef? + guard SecItemCopyMatching(request as CFDictionary, &result) == errSecSuccess, let data = result as? Data else { return nil } + return PairingCredential.decode(data) + } + + static func stage(_ code: PairingCode) { + pending = PairingCredential.replacing(stored(), with: code) + } + + static func credential(for key: String) -> PairingCredential? { + if let pending, pending.key == key { return pending } + guard let saved = stored(), saved.key == key else { return nil } + return saved + } + + static func phone(for key: String, name: String) -> BridgePhone { + BridgePhone(name: name, replaces: credential(for: key)?.previousId) + } + + static func save(_ value: String) throws { + var credential = credential(for: value) ?? PairingCredential(key: value, id: nil, previousId: nil) + credential.previousId = nil + let data = try JSONEncoder().encode(credential) + let status = SecItemUpdate(query as CFDictionary, [kSecValueData as String: data, kSecAttrAccessible as String: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly] as CFDictionary) + if status == errSecItemNotFound { + var item = query + item[kSecValueData as String] = data + item[kSecAttrAccessible as String] = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly + guard SecItemAdd(item as CFDictionary, nil) == errSecSuccess else { throw BridgeError.message("Could not save pairing key in Keychain.") } + } else if status != errSecSuccess { throw BridgeError.message("Could not update pairing key in Keychain.") } + pending = nil + } + + static func remove() { pending = nil; SecItemDelete(query as CFDictionary) } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/PhoneLocation.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PhoneLocation.swift new file mode 100644 index 0000000000..8871d5a181 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PhoneLocation.swift @@ -0,0 +1,94 @@ +import CoreLocation +import Foundation + +/// Sends this iPhone's GPS to comma about once a second over the current Galaxy connection. +/// Comma uses it for navigation only when its own GPS and the car's GPS have no fix. +@MainActor +final class PhoneLocation: NSObject, ObservableObject, @preconcurrency CLLocationManagerDelegate { + static let path = "/api/companion/location" + nonisolated static let maxAgeMs = 2000.0 + + @Published private(set) var sharing = UserDefaults.standard.bool(forKey: "galaxy.phoneGps") + @Published private(set) var status = "" + var onSharingChanged: ((Bool) -> Void)? + private let transport: () -> (any GalaxyRequestTransport)? + private let manager: CLLocationManager? + private var sending = false + private var lastSent = Date.distantPast + + init(transport: @escaping () -> (any GalaxyRequestTransport)?, manager: CLLocationManager? = CLLocationManager()) { + self.transport = transport + self.manager = manager + super.init() + guard let manager else { return } + manager.delegate = self + manager.desiredAccuracy = kCLLocationAccuracyBestForNavigation + manager.distanceFilter = kCLDistanceFilterNone + #if os(iOS) + manager.activityType = .automotiveNavigation + manager.pausesLocationUpdatesAutomatically = false + manager.showsBackgroundLocationIndicator = true + #endif + if sharing { begin() } + } + + func setSharing(_ value: Bool) { + guard value != sharing else { return } + sharing = value + UserDefaults.standard.set(value, forKey: "galaxy.phoneGps") + if value { begin() } else { manager?.stopUpdatingLocation(); status = "" } + onSharingChanged?(value) + } + + private func begin() { + guard let manager else { return } + switch manager.authorizationStatus { + case .notDetermined: status = "Allow location to share GPS."; manager.requestWhenInUseAuthorization() + case .denied, .restricted: status = "Location is off for this app. Turn it on in iPhone Settings." + default: + #if os(iOS) + manager.allowsBackgroundLocationUpdates = true + #endif + status = "Waiting for GPS" + manager.startUpdatingLocation() + } + } + + func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) { + if sharing { begin() } + } + + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + guard let location = locations.last else { return } + Task { await deliver(location) } + } + + /// Sends one fix unless another is in flight or one went out under a second ago. + func deliver(_ location: CLLocation, now: Date = Date()) async { + guard sharing, !sending, now.timeIntervalSince(lastSent) >= 0.9 else { return } + guard let body = Self.payload(location, now: now) else { status = "Waiting for GPS"; return } + guard let transport = transport(), transport.connected else { status = "Waiting for comma"; return } + sending = true + defer { sending = false } + do { + let response = try await transport.request(path: Self.path, method: "POST", headers: ["Content-Type": "application/json"], body: body) + lastSent = now + status = response.status == 200 ? "Sharing GPS with comma" + : response.status == 405 ? "This comma doesn't take phone GPS yet." : "Comma didn't accept the location." + } catch { status = "Waiting for comma" } + } + + /// iOS marks an unknown value with a negative number; those are left out. + nonisolated static func payload(_ location: CLLocation, now: Date) -> Data? { + let age = now.timeIntervalSince(location.timestamp) * 1000 + guard age >= 0, age <= maxAgeMs, location.horizontalAccuracy > 0, CLLocationCoordinate2DIsValid(location.coordinate) else { return nil } + var value: [String: Any] = ["latitude": location.coordinate.latitude, "longitude": location.coordinate.longitude, + "horizontalAccuracy": location.horizontalAccuracy, "ageMs": Int(age.rounded()), + "timestamp": Int64(location.timestamp.timeIntervalSince1970 * 1000)] + if location.verticalAccuracy > 0 { value["altitude"] = location.altitude; value["verticalAccuracy"] = location.verticalAccuracy } + if location.speed >= 0 { value["speed"] = location.speed } + if location.speedAccuracy >= 0 { value["speedAccuracy"] = location.speedAccuracy } + if location.course >= 0, location.courseAccuracy >= 0 { value["bearing"] = location.course; value["bearingAccuracy"] = location.courseAccuracy } + return try? JSONSerialization.data(withJSONObject: value) + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivacyInfo.xcprivacy b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..cfb8ba47d3 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivacyInfo.xcprivacy @@ -0,0 +1,25 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivateLANHTTP.swift b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivateLANHTTP.swift new file mode 100644 index 0000000000..7f7efdcc70 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/PrivateLANHTTP.swift @@ -0,0 +1,185 @@ +import Foundation +import Network + +/// A local-only HTTP client for the one configured comma endpoint. +@MainActor +final class PrivateLANHTTP { + private let connection: NWConnection + private let limit: Int + private let head: Bool + private var continuation: CheckedContinuation<(Data, HTTPURLResponse), Error>? + private var parser: LANHTTPParser + private var timeout: Task? + private var finished = false + private var sent = false + private let request: URLRequest + private init(_ request: URLRequest, limit: Int, host: String) { + self.request = request; self.limit = limit; head = request.httpMethod == "HEAD" + parser = LANHTTPParser(limit: limit, headOnly: request.httpMethod == "HEAD") + connection = NWConnection(host: NWEndpoint.Host(host), port: 8082, using: .tcp) + } + static func load(_ request: URLRequest, limit: Int) async throws -> (Data, HTTPURLResponse) { + guard let url = request.url, url.scheme == "http", url.port == 8082, let host = url.host, + url.user == nil, url.password == nil, url.fragment == nil, + (try? LANTransport.endpoint(host)) != nil else { throw BridgeError.message("Invalid local comma endpoint.") } + let client = PrivateLANHTTP(request, limit: limit, host: host) + return try await withTaskCancellationHandler(operation: { + try Task.checkCancellation() + return try await withCheckedThrowingContinuation { client.start($0) } + }, onCancel: { Task { @MainActor in client.finish(.failure(CancellationError())) } }) + } + private func start(_ callback: CheckedContinuation<(Data, HTTPURLResponse), Error>) { + guard !finished else { callback.resume(throwing: CancellationError()); return } + continuation = callback + let timeoutInterval = request.timeoutInterval + timeout = Task { @MainActor [weak self] in + try? await Task.sleep(nanoseconds: UInt64(max(0.1, timeoutInterval) * 1_000_000_000)) + guard !Task.isCancelled else { return } + self?.finish(.failure(URLError(.timedOut))) + } + connection.stateUpdateHandler = { [weak self] state in + Task { @MainActor in + guard let self, !self.finished else { return } + switch state { + case .ready: self.send() + case .failed: self.finish(.failure(URLError(.cannotConnectToHost))) + case .cancelled: self.finish(.failure(URLError(.networkConnectionLost))) + default: break + } + } + } + connection.start(queue: .main) + } + private func send() { + guard !sent else { return } + sent = true + guard let url = request.url, let components = URLComponents(url: url, resolvingAgainstBaseURL: false) else { + finish(.failure(BridgeError.message("Invalid local URL."))); return + } + let target = components.percentEncodedPath + (components.percentEncodedQuery.map { "?" + $0 } ?? "") + let body = request.httpBody ?? Data() + var text = "\(request.httpMethod ?? "GET") \(target) HTTP/1.1\r\nHost: \(url.host!):8082\r\nConnection: close\r\nAccept-Encoding: identity\r\nContent-Length: \(body.count)\r\n" + for (name, value) in request.allHTTPHeaderFields ?? [:] where ["content-type", "accept", "cookie", "origin", "range", "x-companion-nonce", "x-companion-mac"].contains(name.lowercased()) { + guard !value.contains("\r"), !value.contains("\n") else { finish(.failure(BridgeError.message("Invalid request header."))); return } + text += "\(name): \(value)\r\n" + } + guard text.utf8.count <= 16_384 else { finish(.failure(BridgeError.message("HTTP headers are too large."))); return } + text += "\r\n" + connection.send(content: Data(text.utf8), isComplete: false, completion: .idempotent) + connection.send(content: body, completion: .contentProcessed { [weak self] error in + Task { @MainActor in + guard let self, !self.finished else { return } + if error != nil { self.finish(.failure(URLError(.networkConnectionLost))) } + else { self.receive() } + } + }) + } + private func receive() { + connection.receive(minimumIncompleteLength: 1, maximumLength: 65_536) { [weak self] data, _, ended, error in + Task { @MainActor in + guard let self, !self.finished else { return } + guard error == nil else { self.finish(.failure(URLError(.networkConnectionLost))); return } + do { + if let result = try self.parser.consume(data ?? Data(), ended: ended), + let response = HTTPURLResponse(url: self.request.url!, statusCode: result.status, httpVersion: "HTTP/1.1", headerFields: result.headers) { + self.finish(.success((result.body, response))) + } else { self.receive() } + } catch { self.finish(.failure(URLError(.cannotParseResponse))) } + } + } + } + private func finish(_ result: Result<(Data, HTTPURLResponse), Error>) { + guard !finished else { return } + finished = true; timeout?.cancel(); connection.stateUpdateHandler = nil; connection.cancel() + let callback = continuation; continuation = nil + callback?.resume(with: result) + } +} + +/// Incremental HTTP framing with strict bounds, including chunked responses. +struct LANHTTPParser { + let limit: Int + let headOnly: Bool + private var buffer = Data() + private var body = Data() + private var status: Int? + private var headers: [String: String] = [:] + private var length: Int? + private var chunked = false + private var chunkLength: Int? + private var lastChunk = false + private var overhead = 0 + init(limit: Int, headOnly: Bool) { self.limit = limit; self.headOnly = headOnly } + mutating func consume(_ data: Data, ended: Bool) throws -> LocalResponse? { + buffer.append(data) + guard buffer.count + body.count <= limit + 16_388 else { throw URLError(.dataLengthExceedsMaximum) } + if status == nil { + guard let range = buffer.range(of: Data("\r\n\r\n".utf8)) else { + guard buffer.count <= 16_384, !ended else { throw URLError(.cannotParseResponse) }; return nil + } + guard range.lowerBound <= 16_384, let text = String(data: buffer[..= 2, ["HTTP/1.0", "HTTP/1.1"].contains(String(first[0])), let code = Int(first[1]), (200...599).contains(code) else { throw URLError(.cannotParseResponse) } + status = code + for line in lines.dropFirst() { + guard let colon = line.firstIndex(of: ":"), colon != line.startIndex else { throw URLError(.cannotParseResponse) } + let name = line[..= count + 2 else { break } + guard buffer.subdata(in: count.. LocalResponse { LocalResponse(status: status!, headers: headers, body: body) } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/AppIcon.appiconset/Contents.json b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..cecfc47bff --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images": [ + { + "filename": "StarPilotIcon.png", + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + } + ], + "info": { + "author": "Nate", + "version": 1 + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/AppIcon.appiconset/StarPilotIcon.png b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/AppIcon.appiconset/StarPilotIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..434b5142cedbb375a099bee1a2fb778e20b5616a GIT binary patch literal 542271 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

p5lbTiWyPY_4wx%uZ2=@&T{x)!VAu83I{jB4BWW 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
    {6g4?s` z&|s9D6^=xU{uP}weZ6GK8IHS-cWw5x?~j%&r|kZnm@Jxb7Hw*e4XktWts_@z@poAaZZ)o8|PD@X9isGk(?bI`{UypEv(~iFwTpgNH*rKRBgiS@shWFmq9N8W4Gv9}$J+<

    }P#&M;EV#YC6?%h=v?}RZx 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 OFDlBb$yLdI3jRN&@c`8T literal 0 HcmV?d00001 diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/Contents.json b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/Contents.json new file mode 100644 index 0000000000..8edf52fb7b --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images": [ + { + "filename": "bluetooth.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true, + "template-rendering-intent": "template" + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/bluetooth.svg b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/bluetooth.svg new file mode 100644 index 0000000000..e759115a8d --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionBluetooth.imageset/bluetooth.svg @@ -0,0 +1,13 @@ + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/Contents.json b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/Contents.json new file mode 100644 index 0000000000..2073c824b5 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images": [ + { + "filename": "network.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true, + "template-rendering-intent": "template" + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/network.svg b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/network.svg new file mode 100644 index 0000000000..e166b3535c --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionNetwork.imageset/network.svg @@ -0,0 +1,17 @@ + + + + + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/Contents.json b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/Contents.json new file mode 100644 index 0000000000..c98bdecc3f --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images": [ + { + "filename": "wifi.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true, + "template-rendering-intent": "template" + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/wifi.svg b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/wifi.svg new file mode 100644 index 0000000000..e46d6d32cc --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/ConnectionWiFi.imageset/wifi.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/Contents.json b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/Contents.json new file mode 100644 index 0000000000..c4c04b1491 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info": { + "author": "Nate", + "version": 1 + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotHero.imageset/Contents.json b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotHero.imageset/Contents.json new file mode 100644 index 0000000000..258c9aff92 --- /dev/null +++ b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotHero.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images": [ + { + "filename": "StarPilot.png", + "idiom": "universal" + } + ], + "info": { + "author": "Nate", + "version": 1 + } +} diff --git a/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotHero.imageset/StarPilot.png b/openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Branding.xcassets/StarPilotHero.imageset/StarPilot.png new file mode 100644 index 0000000000000000000000000000000000000000..96eaad8680ec5418c7e36c45e667a9e786cddc20 GIT binary patch literal 472016 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

    ;1&4n#x<6M1ke4B#!}3Cej#(`rh6c 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%0D}MJ^8vD+_a- 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%0D%I$oe;G0E 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

    ;g|Ep58M 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 Data { + var value = number.bigEndian + return withUnsafeBytes(of: &value) { Data($0) } + } + + static func number(_ bytes: Data) -> UInt32 { + bytes.reduce(UInt32(0)) { ($0 << 8) | UInt32($1) } + } + + static func seal(_ value: T, key: SymmetricKey, direction: String) throws -> Data { + let plaintext = try JSONEncoder().encode(value) + guard plaintext.count <= maxFrame else { throw BridgeError.message("Decoded request exceeds the Bluetooth limit.") } + var compressed = [UInt8](repeating: 0, count: maxFrame) + let written = plaintext.withUnsafeBytes { bytes in + compression_encode_buffer(&compressed, compressed.count, bytes.bindMemory(to: UInt8.self).baseAddress!, plaintext.count, nil, COMPRESSION_ZLIB) + } + let useCompression = written > 0 && written < plaintext.count + let encoded = Data([useCompression ? 1 : 0]) + uint32(UInt32(plaintext.count)) + + (useCompression ? Data(compressed.prefix(written)) : plaintext) + let box = try AES.GCM.seal(encoded, using: key, + authenticating: Data("galaxy-ble-v1/\(direction)".utf8)) + guard let combined = box.combined, combined.count <= maxFrame else { + throw BridgeError.message("Request exceeds the Bluetooth frame limit.") + } + return uint32(UInt32(combined.count)) + combined + } + + static func open(_ data: Data, as: T.Type, key: SymmetricKey, direction: String) throws -> T { + guard (28...maxFrame).contains(data.count) else { throw BridgeError.message("Invalid encrypted message.") } + let encoded = try AES.GCM.open(AES.GCM.SealedBox(combined: data), using: key, + authenticating: Data("galaxy-ble-v1/\(direction)".utf8)) + guard encoded.count >= 5 else { throw BridgeError.message("Invalid compressed envelope.") } + let length = Int(number(encoded.subdata(in: 1..<5))) + guard (1...maxFrame).contains(length) else { throw BridgeError.message("Invalid decoded message size.") } + let plaintext: Data + switch encoded.first { + case 0: plaintext = Data(encoded.dropFirst(5)) + case 1, 2: + let compressed = Data(encoded.dropFirst(5)) + guard !compressed.isEmpty else { throw BridgeError.message("Empty compressed message.") } + var decoded = [UInt8](repeating: 0, count: length + 1) + let written = compressed.withUnsafeBytes { bytes in + compression_decode_buffer(&decoded, decoded.count, bytes.bindMemory(to: UInt8.self).baseAddress!, compressed.count, nil, COMPRESSION_ZLIB) + } + guard written == length else { throw BridgeError.message("Invalid compressed Bluetooth message.") } + plaintext = Data(decoded.prefix(written)) + default: throw BridgeError.message("Unknown Bluetooth compression codec.") + } + guard plaintext.count == length else { throw BridgeError.message("Incorrect decoded message size.") } + if encoded.first == 2 { + guard plaintext.count >= 4 else { throw BridgeError.message("Invalid response envelope.") } + let metadataLength = Int(number(plaintext.prefix(4))) + guard metadataLength > 0, metadataLength <= plaintext.count - 4, + plaintext.count - 4 - metadataLength <= maxBody, + var metadata = try JSONSerialization.jsonObject(with: plaintext.subdata(in: 4..<(4 + metadataLength))) as? [String: Any], + metadata["body"] == nil else { throw BridgeError.message("Invalid response metadata.") } + metadata["body"] = plaintext.dropFirst(4 + metadataLength).base64EncodedString() + return try JSONDecoder().decode(T.self, from: JSONSerialization.data(withJSONObject: metadata)) + } + return try JSONDecoder().decode(T.self, from: plaintext) + } + + static func packets(_ frame: Data, size: Int) -> [Data] { + let payloadSize = max(15, min(512, size) - 5) + return stride(from: 0, to: frame.count, by: payloadSize).enumerated().map { sequence, start in + Data([1]) + uint32(UInt32(sequence)) + frame.subdata(in: start.. Data { + guard let challenge = Data(hex: session), challenge.count == 16 else { + throw BridgeError.message("Invalid Bluetooth session.") + } + var value = counter.bigEndian + let number = withUnsafeBytes(of: &value) { Data($0) } + return Data(SHA256.hash(data: challenge + number).prefix(8)) + } + + static func notificationPacket(_ packet: Data, tag: Data) throws -> Data? { + guard packet.count >= 9, packet.first == 3 else { throw BridgeError.message("Invalid Bluetooth notification.") } + guard packet.subdata(in: 1..<9) == tag else { return nil } + guard packet.count >= 14 else { throw BridgeError.message("Truncated Bluetooth notification.") } + // Reuse the bounded, ordered assembler used by the read transport. + return Data([1]) + packet.dropFirst(9) + } + + static func notificationAck(tag: Data, sequence: UInt32) -> Data { + Data([4]) + tag + uint32(sequence) + } +} + +struct FrameAssembler { + private var data = Data() + private var sequence: UInt32 = 0 + private var expectedLength: Int? + + mutating func append(_ packet: Data) throws -> Data? { + guard packet.count >= 6, packet.first == 1, Wire.number(packet.subdata(in: 1..<5)) == sequence else { + throw BridgeError.message("Bluetooth fragments arrived out of order.") + } + sequence += 1 + data.append(packet.dropFirst(5)) + if expectedLength == nil, data.count >= 4 { + let length = Int(Wire.number(data.prefix(4))) + guard (28...Wire.maxFrame).contains(length) else { throw BridgeError.message("Invalid Bluetooth frame size.") } + expectedLength = length + } + guard data.count <= Wire.maxFrame + 4 else { throw BridgeError.message("Bluetooth response is too large.") } + if let length = expectedLength, data.count >= length + 4 { + guard data.count == length + 4 else { throw BridgeError.message("Unexpected trailing response bytes.") } + let result = Data(data.dropFirst(4)) + self = FrameAssembler() + return result + } + return nil + } +} + +extension Data { + init?(hex: String) { + let text = hex.trimmingCharacters(in: .whitespacesAndNewlines) + guard text.count % 2 == 0 else { return nil } + var bytes = [UInt8]() + var index = text.startIndex + while index < text.endIndex { + let end = text.index(index, offsetBy: 2) + guard let byte = UInt8(text[index../dev/null 2>&1; then + node tests/ToggleSearchRegression.mjs +else + echo "Node unavailable: run tests/ToggleSearchRegression.mjs locally for JavaScript search checks." +fi diff --git a/openpilot/starpilot/companion/ios/docs/privacy.md b/openpilot/starpilot/companion/ios/docs/privacy.md new file mode 100644 index 0000000000..89f7223120 --- /dev/null +++ b/openpilot/starpilot/companion/ios/docs/privacy.md @@ -0,0 +1,39 @@ +# StarPilot BT privacy policy + +Updated October 18, 2026. Changes for version 1.0.1. + +This policy covers the StarPilot BT iPhone companion. The publisher responsible for this release is the seller identified on its App Store listing. Public support and privacy requests use the [StarPilot support ticket process](https://wiki.firestar.link/ticketsystem/). Ask for your request to be directed to the StarPilot BT app publisher. Do not post private information in a public channel. + +## Connecting your devices + +StarPilot BT displays Galaxy from a compatible StarPilot installation and sends your requests to the comma you connect. Local Bluetooth access does not require an internet account or a shared network. Some functions require local Wi-Fi or internet access on comma. + +Connection preferences, a remembered Bluetooth identifier and local address are stored on your iPhone. Pairing credentials and the pairing ID supplied by comma are stored in the iOS Keychain. On an encrypted Bluetooth connection, the app sends the iOS-provided phone name to comma so it can label that phone in its pairing list. When replacing a pairing, it also sends the previous pairing ID so comma can remove the old entry. It does not add another device identifier. Galaxy interface files are cached on your iPhone. Bluetooth messages use authenticated encryption. Local Wi-Fi communication currently uses HTTP; use a trusted network. + +## Permissions + +Bluetooth permission is used to find and connect to comma. Local Network permission is used for local Wi-Fi discovery and requests. Pairing uses the pairing window on comma; version 1.0.1 does not request camera permission or scan QR codes. + +The native app does not request access to the iPhone's contacts, microphone or photo library. Optional phone GPS sharing requests location permission only when you enable it. While enabled and connected, it sends recent location fixes, accuracy, timestamps and available altitude, speed and bearing to your comma, about once a second. Sharing may continue in the background with the iOS location indicator. You can turn sharing off in the app or revoke permission in iPhone Settings. This native feature does not upload GPS fixes to the app publisher; comma's navigation features and any providers configured there handle received location under their own settings and policies. + +## Network services + +The app downloads Galaxy's interface files from your own comma over your local network (or its Wi-Fi hotspot) and saves them on the iPhone so Bluetooth can show them. It does not contact GitHub or any other server for these files. + +The native companion does not include advertising or an advertising-tracking SDK. Its diagnostics screen does not automatically upload reports to the publisher. + +Opening the legacy Galaxy link opens your device-specific remote website in your browser. That website handles its own login and service requests. Optional services configured through Galaxy, such as maps or a cloud provider, may send information from comma to the selected provider. Their policies apply to their services. This policy does not promise that those separately operated services keep no logs or collect no information. + +## Diagnostics and support + +The app keeps connection and page events for troubleshooting. Reports can contain app and operating-system versions, connection state, request-path categories, timings and errors. You choose whether to copy and share a report. Review it before sharing, and keep pairing keys, passwords, private device links and location information out of public reports. + +If you submit a StarPilot support ticket, the support team and the ticket-service provider can access the information you provide. Ticket history may remain with that service until removed by its operator. To request access to or deletion of a submitted report, use the same support ticket process and identify the ticket without posting additional private information publicly. A fixed deletion deadline is not promised by this policy. + +## Removing stored information + +Use Forget Bluetooth pairing in the app to remove its saved pairing credential. Revoke app links on comma separately if you want to invalidate the device's pairing key. Deleting the app removes its local app container; iOS Keychain entries may persist until removed through the app. Changes and information stored on comma, in remote Galaxy or with another provider must be managed with that device or service. + +## Changes and questions + +This policy will be updated when the app's data handling changes. Contact the app publisher through [StarPilot support](https://wiki.firestar.link/ticketsystem/) with questions or privacy requests. Support is not an emergency service. diff --git a/openpilot/starpilot/companion/ios/tests/AudioPairingRegression.swift b/openpilot/starpilot/companion/ios/tests/AudioPairingRegression.swift new file mode 100644 index 0000000000..fb7cd7651a --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/AudioPairingRegression.swift @@ -0,0 +1,108 @@ +import Foundation + +struct BridgeResponse { let status: Int; let bodyData: Data } +enum Wire { static let maxBody = 1_048_576 } +enum BridgeError: LocalizedError { + case message(String) + var errorDescription: String? { if case .message(let text) = self { return text }; return nil } +} + +@MainActor final class ScriptedComma: GalaxyRequestTransport { + var connected = true + var statuses: [[String: Any]] + var actionStatus = 200 + var posts: [[String: Any]] = [] + init(_ statuses: [[String: Any]]) { self.statuses = statuses } + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + if method == "POST" { + precondition(path == "/api/bluetooth/action" && headers["Content-Type"] == "application/json") + let payload = try JSONSerialization.jsonObject(with: body) as! [String: Any] + posts.append(payload) + return BridgeResponse(status: payload["operation"] as? String == "accept_pair" ? actionStatus : 200, bodyData: Data("{}".utf8)) + } + precondition(path == "/api/bluetooth/status") + let next = statuses.count > 1 ? statuses.removeFirst() : statuses[0] + return BridgeResponse(status: 200, bodyData: try JSONSerialization.data(withJSONObject: next)) + } +} + +func snapshot(address: String = "AA:BB:CC:DD:EE:FF", pairing: [String: Any]? = nil) -> [String: Any] { + var value: [String: Any] = ["adapterAddress": address, "adapterName": "comma", "pairing": NSNull()] + if let pairing { value["pairing"] = pairing } + return value +} + +func prompt(kind: String = "confirmation", displayOnly: Bool = false) -> [String: Any] { + ["id": String(repeating: "a", count: 32), "kind": kind, "value": "123456", "displayOnly": displayOnly] +} + +@main struct AudioPairingRegression { + @MainActor static func settle(_ model: AudioPairing, until done: (AudioPairing.Phase) -> Bool) async { + for _ in 0..<2000 { + if done(model.phase) { return } + await Task.yield() + } + preconditionFailure("Audio pairing never reached the expected phase: \(model.phase)") + } + + @MainActor static func main() async { + // Parsing ignores any pairing that is not the phone window, and rejects bad addresses. + precondition(AudioPairing.parse(Data("{\"adapterAddress\":\"AA:BB:CC:DD:EE:FF\",\"pairing\":{\"state\":\"pairing\",\"prompt\":null}}".utf8))?.state == nil) + precondition(AudioPairing.validAddress("AA:BB:CC:DD:EE:FF") && !AudioPairing.validAddress("AA:BB") && !AudioPairing.validAddress("")) + + // Happy path: window opens, code appears, approval is sent, comma reports paired. + let waiting: [String: Any] = ["incoming": true, "state": "pairing", "address": "", "name": "", "prompt": NSNull()] + let asking: [String: Any] = ["incoming": true, "state": "pairing", "address": "11:22:33:44:55:66", "name": "iPhone", "prompt": prompt()] + let paired: [String: Any] = ["incoming": true, "state": "paired", "address": "11:22:33:44:55:66", "name": "iPhone", "prompt": NSNull()] + let comma = ScriptedComma([snapshot(), snapshot(pairing: waiting), snapshot(pairing: asking), snapshot(pairing: asking), snapshot(pairing: paired)]) + let model = AudioPairing(transport: { comma }, pause: { await Task.yield() }) + model.start() + await settle(model) { if case .confirm = $0 { return true }; return false } + guard case .confirm(let code, _, let name) = model.phase else { preconditionFailure() } + precondition(code == "123456" && name == "comma") + model.respond(accepted: true) + await settle(model) { $0 == .done } + precondition(comma.posts.first?["operation"] as? String == "accept_pair") + precondition(comma.posts.contains { $0["operation"] as? String == "pairing_response" && $0["accepted"] as? Bool == true }) + + // Older comma: no adapter address means no window and no message. + let old = ScriptedComma([["pairing": NSNull()]]) + let oldModel = AudioPairing(transport: { old }, pause: { await Task.yield() }) + oldModel.start() + await settle(oldModel) { $0 == .idle } + precondition(old.posts.isEmpty) + let unsupported = ScriptedComma([snapshot()]); unsupported.actionStatus = 400 + let unsupportedModel = AudioPairing(transport: { unsupported }, pause: { await Task.yield() }) + unsupportedModel.start() + await settle(unsupportedModel) { $0 == .idle && !unsupported.posts.isEmpty } + + // Busy comma explains itself; display-only and non-confirmation prompts are never approved. + let busy = ScriptedComma([snapshot()]); busy.actionStatus = 409 + let busyModel = AudioPairing(transport: { busy }, pause: { await Task.yield() }) + busyModel.start() + await settle(busyModel) { if case .message(let text) = $0 { return text.contains("busy") }; return false } + let quiet: [String: Any] = ["incoming": true, "state": "pairing", "address": "", "name": "", "prompt": prompt(kind: "authorization")] + let failed: [String: Any] = ["incoming": true, "state": "failed", "address": "", "name": "", "prompt": NSNull()] + let careful = ScriptedComma([snapshot(), snapshot(pairing: quiet), snapshot(pairing: failed)]) + let carefulModel = AudioPairing(transport: { careful }, pause: { await Task.yield() }) + carefulModel.start() + await settle(carefulModel) { if case .message = $0 { return true }; return false } + precondition(!careful.posts.contains { $0["operation"] as? String == "pairing_response" }) + + // Closing the sheet mid-window cancels it on comma. + let hanging = ScriptedComma([snapshot(), snapshot(pairing: waiting)]) + let hangingModel = AudioPairing(transport: { hanging }, attempts: 100000, pause: { await Task.yield() }) + hangingModel.start() + await settle(hangingModel) { if case .waiting = $0 { return true }; return false } + hangingModel.dismiss() + await settle(hangingModel) { $0 == .idle && hanging.posts.contains { $0["operation"] as? String == "cancel_pair" } } + let connectedComma = ScriptedComma([snapshot()]) + let connectedModel = AudioPairing(transport: { connectedComma }, audioOutput: { $0 == "comma" }, pause: { await Task.yield() }) + connectedModel.start() + await settle(connectedModel) { $0 == .connected } + precondition(connectedComma.posts.isEmpty, "An existing audio route must not reopen pairing") + connectedModel.dismiss() + precondition(connectedModel.phase == .idle) + print("audio pairing ok") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/CarPlayNavigationRegression.swift b/openpilot/starpilot/companion/ios/tests/CarPlayNavigationRegression.swift new file mode 100644 index 0000000000..55cec52f20 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/CarPlayNavigationRegression.swift @@ -0,0 +1,67 @@ +import Foundation + +@MainActor final class UIImage { + init?(systemName: String) {} +} +@MainActor final class CPBarButton { + let action: (CPBarButton) -> Void + init(image: UIImage, handler: @escaping (CPBarButton) -> Void) { action = handler } +} +@MainActor protocol CPBarButtonProviding: AnyObject { + var backButton: CPBarButton? { get set } +} +@MainActor class CPTemplate: NSObject {} +@MainActor final class Page: CPTemplate, CPBarButtonProviding { + var backButton: CPBarButton? +} +@MainActor final class CPInterfaceController { + var templates: [CPTemplate] = [Page()] + var topTemplate: CPTemplate? { templates.last } + var pending: (() -> Void)? + var deferNextPush = false + func pushTemplate(_ page: CPTemplate, animated: Bool, completion: ((Bool, Error?) -> Void)?) { + precondition(templates.count < 4, "Exceeded physical depth") + templates.append(page) + if deferNextPush { deferNextPush = false; pending = { completion?(true, nil) } } + else { completion?(true, nil) } + } + func popTemplate(animated: Bool, completion: ((Bool, Error?) -> Void)?) { + guard templates.count > 1 else { completion?(false, nil); return } + templates.removeLast(); completion?(true, nil) + } +} +@MainActor final class NavigationProbe { + var controller: CPInterfaceController? + var navigating = false + let overflowParents = NSMapTable.weakToStrongObjects() + var notices: [String] = [] + func notice(_ message: String) { notices.append(message) } + init(_ controller: CPInterfaceController) { self.controller = controller } +__PRODUCTION_METHODS__ +} +@main struct NavigationRegression { + @MainActor static func main() { + let controller = CPInterfaceController(), probe = NavigationProbe(controller) + let pages = (0..<12).map { _ in Page() } + for page in pages { + probe.pushTemplate(page, animated: true, completion: nil) + precondition(controller.topTemplate === page) + precondition(controller.templates.count <= 4) + } + for previous in pages.dropLast().reversed() { + probe.popTemplate(animated: true, completion: nil) + precondition(controller.topTemplate === previous, "Lost parent while returning") + } + probe.popTemplate(animated: true, completion: nil) + precondition(controller.templates.count == 1) + controller.deferNextPush = true + probe.pushTemplate(Page(), animated: true, completion: nil) + let count = controller.templates.count + var accepted = true + probe.pushTemplate(Page(), animated: true) { success, _ in accepted = success } + precondition(!accepted && count == controller.templates.count, "Rapid tap pushed twice") + controller.pending?(); controller.pending = nil + precondition(!probe.navigating) + print("CarPlay navigation: deep menus, Back restoration and rapid taps passed") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/ClaimPairingRegression.swift b/openpilot/starpilot/companion/ios/tests/ClaimPairingRegression.swift new file mode 100644 index 0000000000..9669243e20 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/ClaimPairingRegression.swift @@ -0,0 +1,45 @@ +import Foundation +import CryptoKit + +/// The vector comes from comma's own claim.py (galaxy_bluetooth/tests), so both sides agree byte for byte. +@main struct ClaimPairingRegression { + static func hex(_ text: String) -> Data { Data(hex: text)! } + + static func main() throws { + let phone = try P256.KeyAgreement.PrivateKey(rawRepresentation: Data(repeating: 0x11, count: 32)) + let challenge = Data((0..<16).map(UInt8.init)) + let reply = hex("4743523104d65a93977caa3d1b081852ff57a79e465f1660577304baead505dd3a48589cf350185e895372df6221ea3a137557e473fddb6755f05bd507c3c533fce9c912856465666768696a6b6c6d6e6f56e085dc7bc3807c9c7cb045c4c1f175f83b778465883907450039ebf7bae2c056f9ce9975cfb418ec470cffe65a07209b6b0194c4f7858fdac068c0fb2f699f06cc4bfb9a8c6734d68a910c8d5329eadf05462b6c59013892e0522f5056974e80082afbb204b6cde770c4d5ed383ffe6f08909da1a7b716088c91d507bd197a3c8f48e8a53deaa7008f209ac1c78f733f078cd862345f0e2fab00241494bc7bc4be2a4769") + + // Comma's reply opens to this phone's key. + let claim = try ClaimCrypto.open(reply, privateKey: phone, challenge: challenge) + precondition(claim.key == String(repeating: "ab", count: 32) && claim.id == "0a1b2c3d") + precondition(claim.adapterAddress == "AA:BB:CC:DD:EE:FF" && claim.adapterName == "comma") + + // Both sides derive the same key. + let derived = try ClaimCrypto.derive(phone, peer: reply.subdata(in: 4..<69), challenge: challenge) + precondition(derived.withUnsafeBytes { Data($0) } == hex("3b5c0f6357da2c229949fb3695c3656c009af9b8fa4a7588ce991292c6eb73e0")) + + // A wrong session, another phone, a tampered or truncated reply, or a different magic are all refused. + func refused(_ body: () throws -> Void) -> Bool { (try? body()) == nil } + precondition(refused { _ = try ClaimCrypto.open(reply, privateKey: phone, challenge: Data(count: 16)) }) + precondition(refused { _ = try ClaimCrypto.open(reply, privateKey: P256.KeyAgreement.PrivateKey(), challenge: challenge) }) + var tampered = reply; tampered[tampered.count - 1] ^= 1 + precondition(refused { _ = try ClaimCrypto.open(tampered, privateKey: phone, challenge: challenge) }) + precondition(refused { _ = try ClaimCrypto.open(reply.prefix(60), privateKey: phone, challenge: challenge) }) + var other = reply; other[0] = 0x58 + precondition(refused { _ = try ClaimCrypto.open(other, privateKey: phone, challenge: challenge) }) + + // The request is magic, 65-byte point, then the name (at most 40 characters). + let request = ClaimCrypto.request(publicKey: phone.publicKey, name: "Danny’s iPhone") + precondition(request.prefix(4) == Data("GCL1".utf8) && request.subdata(in: 4..<69) == phone.publicKey.x963Representation) + precondition(String(decoding: request.dropFirst(69), as: UTF8.self) == "Danny’s iPhone") + precondition(ClaimCrypto.request(publicKey: phone.publicKey, name: String(repeating: "x", count: 100)).count == 69 + 40) + + // Unexpected contents are refused rather than half used. + precondition(refused { _ = try ClaimCrypto.parse(Data(#"{"id":"0a1b2c3d"}"#.utf8)) }) + precondition(refused { _ = try ClaimCrypto.parse(Data(#"{"key":"short"}"#.utf8)) }) + let sparse = try ClaimCrypto.parse(Data(#"{"key":"\#(String(repeating: "CD", count: 32))","id":"BAD","adapterAddress":"nope"}"#.utf8)) + precondition(sparse.key == String(repeating: "cd", count: 32) && sparse.id == nil && sparse.adapterAddress == "" && sparse.adapterName == "") + print("Claim pairing: comma vector, derive, tamper and malformed cases passed") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/GalaxyReadCacheRegression.swift b/openpilot/starpilot/companion/ios/tests/GalaxyReadCacheRegression.swift new file mode 100644 index 0000000000..8df0e7c054 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/GalaxyReadCacheRegression.swift @@ -0,0 +1,79 @@ +import Foundation + +struct BridgeResponse { let status: Int; let bodyData: Data } +enum Wire { static let maxBody = 1_048_576 } +enum BridgeError: LocalizedError { + case message(String) + var errorDescription: String? { if case .message(let text) = self { return text }; return nil } +} +@MainActor final class FakeTransport: GalaxyRequestTransport { + var connected = true + var session = "first" + var clock = 0.0 + var calls = 0 + var waiting: [Int: CheckedContinuation] = [:] + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + calls += 1 + let index = calls + return try await withCheckedThrowingContinuation { waiting[index] = $0 } + } + func reply(_ index: Int) { + waiting.removeValue(forKey: index)!.resume(returning: BridgeResponse(status: 200, bodyData: Data("reply\(index)".utf8))) + } + func until(_ count: Int) async { + for _ in 0..<1000 { + if calls >= count { return } + await Task.yield() + } + preconditionFailure("Request never reached transport") + } +} +@main struct CacheRegression { + @MainActor static func main() async throws { + let transport = FakeTransport() + let cache = GalaxyReadCache(transport: transport, sessionID: { transport.session }, now: { transport.clock }) + func read(_ path: String, method: String = "GET") -> Task { + Task { try await cache.request(path: path, method: method, headers: [:], body: Data()) } + } + let page = "/api/settings/pages/hub" + let first = read(page) + await transport.until(1) + let joined = read(page) + for _ in 0..<10 { await Task.yield() } + precondition(transport.calls == 1, "Concurrent page reads were duplicated") + transport.reply(1) + let a = try await first.value, b = try await joined.value + precondition(a.bodyData == b.bodyData) + let fresh = read(page) + await transport.until(2); transport.reply(2); _ = try await fresh.value + let stale = read(page) + await transport.until(3) + let mutation = read("/api/settings/confirm", method: "POST") + await transport.until(4) + transport.reply(3) + do { _ = try await stale.value; preconditionFailure("Read from before mutation accepted") } catch {} + transport.reply(4); _ = try await mutation.value + let oldSession = read(page) + await transport.until(5) + transport.session = "second"; transport.reply(5) + do { _ = try await oldSession.value; preconditionFailure("Old session read accepted") } catch {} + let cancelled = read(page) + await transport.until(6) + let survivor = read(page) + for _ in 0..<10 { await Task.yield() } + cancelled.cancel(); transport.reply(6) + do { _ = try await cancelled.value; preconditionFailure("Cancelled caller received result") } catch {} + _ = try await survivor.value + precondition(transport.calls == 6) + let background = read("/api/system/monitor") + await transport.until(7) + let duplicate = read("/api/system/monitor") + for _ in 0..<10 { await Task.yield() } + precondition(transport.calls == 7, "Concurrent monitor reads must share one transfer") + transport.reply(7) + _ = try await background.value; _ = try await duplicate.value + let nextSample = read("/api/system/monitor") + await transport.until(8); transport.reply(8); _ = try await nextSample.value + print("SecretGood page reads: coalescing, fresh tokens, writes, reconnects and cancellation passed") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/LANPairingRegression.swift b/openpilot/starpilot/companion/ios/tests/LANPairingRegression.swift new file mode 100644 index 0000000000..e1b6c67b9e --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/LANPairingRegression.swift @@ -0,0 +1,33 @@ +import Foundation + +@MainActor final class FakeLAN: GalaxyRequestTransport { + var connected = true + var status = 200 + var requests: [(path: String, method: String, body: Data)] = [] + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + requests.append((path, method, body)) + if status == -1 { throw URLError(.notConnectedToInternet) } + return BridgeResponse(id: "", session: "", counter: 0, status: status, headers: [:], body: "") + } +} + +@main struct LANPairingRegression { + @MainActor static func main() async throws { + let lan = FakeLAN() + let opened = await LANPairing.openWindow(over: lan) + precondition(opened && lan.requests.count == 1) + precondition(lan.requests[0].path == "/api/bluetooth/action" && lan.requests[0].method == "POST") + precondition(lan.requests[0].body == Data("{\"operation\":\"accept_pair\"}".utf8)) + precondition(SecretGoodGalaxy.validTarget(LANPairing.windowPath), "The LAN transport must accept the window request") + lan.status = 409 + let busy = await LANPairing.openWindow(over: lan) + precondition(!busy, "A refused window falls back to the manual steps") + lan.status = -1 + let offline = await LANPairing.openWindow(over: lan) + precondition(!offline) + lan.connected = false; lan.requests = [] + let disconnected = await LANPairing.openWindow(over: lan) + precondition(!disconnected && lan.requests.isEmpty, "No Wi-Fi session means no request") + print("LAN pairing: window opens over an existing Wi-Fi session and falls back to manual pairing otherwise") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/LoopbackRecoveryRegression.swift b/openpilot/starpilot/companion/ios/tests/LoopbackRecoveryRegression.swift new file mode 100644 index 0000000000..4b990ee7ef --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/LoopbackRecoveryRegression.swift @@ -0,0 +1,102 @@ +import Foundation + +@MainActor final class OfflineTransport: GalaxyRequestTransport { + var connected = false + var calls = 0 + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + calls += 1 + throw URLError(.notConnectedToInternet) + } +} + +@MainActor final class LiveTransport: GalaxyRequestTransport { + var connected = true + var pages: [String: Data] = ["/js/app.js": Data("live app".utf8), "/index.html": Data("live index".utf8)] + var requested: [String] = [] + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + throw URLError(.notConnectedToInternet) + } + func page(path: String) async throws -> BridgeResponse { + requested.append(path) + guard let data = pages[path] else { return BridgeResponse(id: "", session: "", counter: 0, status: 404, headers: [:], body: "") } + return BridgeResponse(id: "", session: "", counter: 0, status: 200, headers: [:], body: data.base64EncodedString()) + } +} + +@main struct LoopbackRecoveryRegression { + @MainActor static func main() async throws { + let transport = OfflineTransport() + let root = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString) + try FileManager.default.createDirectory(at: root, withIntermediateDirectories: true) + defer { try? FileManager.default.removeItem(at: root) } + try Data("Galaxy test page".utf8).write(to: root.appendingPathComponent("index.html")) + let source = try Data(contentsOf: URL(fileURLWithPath: "../../galaxy/web/js/toggle-search.js")) + try FileManager.default.createDirectory(at: root.appendingPathComponent("js"), withIntermediateDirectories: true) + let searchFile = root.appendingPathComponent("js/toggle-search.js") + try source.write(to: searchFile) + let server = LoopbackServer(transport: transport, webRoot: root) + defer { server.stop() } + let started = await server.ensureAvailable() + precondition(started && server.url != nil) + let first = server.url + let (adaptedSearch, searchResponse) = try await BoundedHTTP.load(URLRequest(url: first!.appendingPathComponent("js/toggle-search.js")), limit: 1_048_576) + precondition(searchResponse.statusCode == 200) + precondition(String(data: adaptedSearch, encoding: .utf8)!.contains("Native Bluetooth search adapter v1")) + let unchangedSearch = try Data(contentsOf: searchFile) + precondition(unchangedSearch == source, "Saved assets must remain verified and unchanged") + let healthy = await server.ensureAvailable() + precondition(healthy && server.url == first, "Healthy foreground checks must retain the page origin") + server.stop() + precondition(server.url == nil && server.listenerState == "stopped") + let restored = await server.ensureAvailable() + precondition(restored && server.url != nil, "Stopped listeners must restart before page reload") + // Let stale cancellation callbacks run; they must not clear the replacement. + try await Task.sleep(nanoseconds: 100_000_000) + precondition(server.url != nil && server.listenerState == "ready") + precondition(transport.calls == 0, "Local recovery must not reconnect, write or probe comma") + + var probes = 0 + let stale = LoopbackServer(transport: transport, webRoot: root, probe: { _ in + probes += 1 + return probes > 1 + }) + defer { stale.stop() } + let repaired = await stale.ensureAvailable() + precondition(repaired && probes == 2) + precondition(stale.lifecycleEvents.contains(where: { $0.contains("restarting listener") })) + precondition(stale.lifecycleEvents.contains(where: { $0.contains("recovery succeeded") })) + + let broken = LoopbackServer(transport: transport, webRoot: root, probe: { _ in false }) + defer { broken.stop() } + async let a = broken.ensureAvailable() + async let b = broken.ensureAvailable() + let outcomes = await [a, b] + precondition(outcomes.allSatisfy { !$0 } && broken.url == nil && !broken.error.isEmpty) + precondition(broken.lifecycleEvents.filter { $0.contains("restarting listener") }.count == 1, + "Simultaneous retries must share one bounded recovery") + // No saved copy: over Wi-Fi/LAN pages are read live from comma; otherwise the "not downloaded" message shows. + let live = LiveTransport() + let liveServer = LoopbackServer(transport: live, webRoot: nil) + defer { liveServer.stop() } + let liveStarted = await liveServer.ensureAvailable() + precondition(liveStarted) + let (app, appResponse) = try await BoundedHTTP.load(URLRequest(url: liveServer.url!.appendingPathComponent("js/app.js")), limit: 1_048_576) + precondition(appResponse.statusCode == 200 && app == Data("live app".utf8)) + let (_, rootResponse) = try await BoundedHTTP.load(URLRequest(url: liveServer.url!), limit: 1_048_576) + precondition(rootResponse.statusCode == 200 && live.requested.contains("/index.html")) + let (_, missing) = try await BoundedHTTP.load(URLRequest(url: liveServer.url!.appendingPathComponent("js/missing.js")), limit: 1_048_576) + precondition(missing.statusCode == 404) + let (_, escaped) = try await BoundedHTTP.load(URLRequest(url: liveServer.url!.appendingPathComponent("other/secret.js")), limit: 1_048_576) + precondition(escaped.statusCode == 503 && !live.requested.contains("/other/secret.js"), "Only Galaxy page files are read live") + live.connected = false + let (_, offline) = try await BoundedHTTP.load(URLRequest(url: liveServer.url!.appendingPathComponent("js/app.js")), limit: 1_048_576) + precondition(offline.statusCode == 503) + let bluetoothOnly = LoopbackServer(transport: transport, webRoot: nil) + defer { bluetoothOnly.stop() } + _ = await bluetoothOnly.ensureAvailable() + transport.connected = true + let (_, notYet) = try await BoundedHTTP.load(URLRequest(url: bluetoothOnly.url!.appendingPathComponent("js/app.js")), limit: 1_048_576) + precondition(notYet.statusCode == 503, "Over Bluetooth with no saved copy there is nothing to serve") + print("Loopback recovery: real HTTP health, origin preservation, restart, stale callbacks, bounded retries and transport isolation passed") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/PairingPhoneRegression.swift b/openpilot/starpilot/companion/ios/tests/PairingPhoneRegression.swift new file mode 100644 index 0000000000..62aa7d2bc0 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/PairingPhoneRegression.swift @@ -0,0 +1,50 @@ +import Foundation +import CryptoKit + +@main struct PairingPhoneRegression { + static func main() throws { + let key = String(repeating: "A1", count: 32) + func code(_ id: String? = nil) -> PairingCode { PairingCode(key: key.lowercased(), id: PairingCode.validID(id)) } + let legacy = code() + precondition(legacy.id == nil && legacy.key == key.lowercased()) + let first = code("ABCDEF12") + precondition(first.id == "abcdef12") + for bad in ["123", "123456789", "zzzzzzzz", "é1234567"] { + let parsed = code(bad) + precondition(parsed.id == nil && parsed.key == legacy.key) + } + let old = PairingCredential.decode(Data(key.utf8))! + precondition(old.key == legacy.key && old.id == nil && old.previousId == nil) + let saved = PairingCredential.replacing(nil, with: first) + let same = PairingCredential.replacing(saved, with: first) + precondition(same.id == saved.id && same.previousId == nil) + let second = code("12345678") + let replacement = PairingCredential.replacing(saved, with: second) + precondition(replacement.id == "12345678" && replacement.previousId == "abcdef12") + precondition(PairingCredential.replacing(replacement, with: second).previousId == "abcdef12") + let roundTrip = PairingCredential.decode(try JSONEncoder().encode(replacement)) + precondition(roundTrip == replacement) + precondition(PairingCredential.decode(Data("broken".utf8)) == nil) + + var request = BridgeRequest(id: "test", session: "session", counter: 1, + path: "/_bridge/health", method: "GET", headers: [:], body: "") + func json(_ request: BridgeRequest) throws -> [String: Any] { + try JSONSerialization.jsonObject(with: JSONEncoder().encode(request)) as! [String: Any] + } + let initial = try json(request) + precondition(initial["phone"] == nil) + request.phone = BridgePhone(name: "iPhone", replaces: nil) + let noReplacement = try json(request)["phone"] as! [String: Any] + precondition(noReplacement["name"] as? String == "iPhone" && noReplacement["replaces"] == nil) + precondition(Set(noReplacement.keys) == ["name"]) + request.phone = BridgePhone(name: "iPhone", replaces: replacement.previousId) + let secret = SymmetricKey(size: .bits256) + let framed = try Wire.seal(request, key: secret, direction: "request") + let opened = try Wire.open(Data(framed.dropFirst(4)), + as: BridgeRequest.self, key: secret, direction: "request") + precondition(opened.phone?.name == "iPhone" && opened.phone?.replaces == "abcdef12") + let final = try json(request)["phone"] as! [String: Any] + precondition(Set(final.keys) == ["name", "replaces"]) + print("Phone pairing: old key migration, ID validation, re-scan/replacement and encrypted optional metadata passed") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/PhoneLocationRegression.swift b/openpilot/starpilot/companion/ios/tests/PhoneLocationRegression.swift new file mode 100644 index 0000000000..2579efd594 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/PhoneLocationRegression.swift @@ -0,0 +1,57 @@ +import CoreLocation +import Foundation + +struct BridgeResponse { let status: Int; let bodyData: Data } +enum Wire { static let maxBody = 1_048_576 } +enum BridgeError: LocalizedError { + case message(String) + var errorDescription: String? { if case .message(let text) = self { return text }; return nil } +} + +@MainActor final class RecordingComma: GalaxyRequestTransport { + var connected = true + var bodies: [[String: Any]] = [] + func request(path: String, method: String, headers: [String: String], body: Data) async throws -> BridgeResponse { + precondition(path == PhoneLocation.path && method == "POST" && headers["Content-Type"] == "application/json") + bodies.append(try JSONSerialization.jsonObject(with: body) as! [String: Any]) + return BridgeResponse(status: 200, bodyData: Data("{\"ok\":true}".utf8)) + } +} + +func fix(at time: Date, course: Double = 90, courseAccuracy: Double = 10, speed: Double = 20, vertical: Double = 4) -> CLLocation { + CLLocation(coordinate: CLLocationCoordinate2D(latitude: 40, longitude: -110), altitude: 1200, horizontalAccuracy: 5, + verticalAccuracy: vertical, course: course, courseAccuracy: courseAccuracy, speed: speed, speedAccuracy: -1, timestamp: time) +} + +@main +struct PhoneLocationRegression { + @MainActor static func main() async { + let now = Date() + let known = try! JSONSerialization.jsonObject(with: PhoneLocation.payload(fix(at: now.addingTimeInterval(-0.3)), now: now)!) as! [String: Any] + precondition(known["ageMs"] as? Int == 300 && known["bearing"] as? Double == 90 && known["speedAccuracy"] == nil) + + // iOS reports unknown values as negative numbers; they are left out. + let unknown = try! JSONSerialization.jsonObject(with: PhoneLocation.payload(fix(at: now, courseAccuracy: -1, speed: -1, vertical: -1), now: now)!) as! [String: Any] + precondition(unknown["bearing"] == nil && unknown["speed"] == nil && unknown["altitude"] == nil) + precondition(PhoneLocation.payload(fix(at: now.addingTimeInterval(-3)), now: now) == nil) + + UserDefaults.standard.set(true, forKey: "galaxy.phoneGps") + let comma = RecordingComma() + let sharing = PhoneLocation(transport: { comma }, manager: nil) + await sharing.deliver(fix(at: now), now: now) + await sharing.deliver(fix(at: now.addingTimeInterval(0.5)), now: now.addingTimeInterval(0.5)) + precondition(comma.bodies.count == 1 && sharing.status == "Sharing GPS with comma") + await sharing.deliver(fix(at: now.addingTimeInterval(1)), now: now.addingTimeInterval(1)) + precondition(comma.bodies.count == 2) + + comma.connected = false + await sharing.deliver(fix(at: now.addingTimeInterval(2)), now: now.addingTimeInterval(2)) + precondition(comma.bodies.count == 2 && sharing.status == "Waiting for comma") + sharing.setSharing(false) + comma.connected = true + await sharing.deliver(fix(at: now.addingTimeInterval(3)), now: now.addingTimeInterval(3)) + precondition(comma.bodies.count == 2) + UserDefaults.standard.removeObject(forKey: "galaxy.phoneGps") + print("phone location ok") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/SecretGoodAssetsRegression.swift b/openpilot/starpilot/companion/ios/tests/SecretGoodAssetsRegression.swift new file mode 100644 index 0000000000..431450d0e0 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/SecretGoodAssetsRegression.swift @@ -0,0 +1,91 @@ +import Foundation +import CryptoKit + +@main struct AssetRegression { + @MainActor static func main() async throws { + let manager = FileManager.default + let root = manager.temporaryDirectory.appendingPathComponent(UUID().uuidString) + try manager.createDirectory(at: root, withIntermediateDirectories: true) + defer { try? manager.removeItem(at: root) } + let suite = "secretgood-assets-" + UUID().uuidString + let defaults = UserDefaults(suiteName: suite)! + defer { defaults.removePersistentDomain(forName: suite) } + final class Comma: @unchecked Sendable { + var files = ["index.html": Data("Galaxy".utf8), "js/boot.js": Data("import './app.js'".utf8), "js/app.js": Data("const galaxy = true".utf8), "data/catalog.json": Data("{}".utf8), "sentry-push-worker.js": Data("self.addEventListener('push', () => {})".utf8)] + var commit: String? = String(repeating: "a", count: 40) + private let lock = NSLock() + private var calls = 0 + var fileCalls: Int { lock.withLock { calls } } + var corrupt = false + var manifestStatus = 200 + var networkFailure = false + func listing() throws -> Data { + let entries = files.map { ["path": $0.key, "size": $0.value.count, "sha256": GalaxyAssetManifest.digest($0.value)] as [String: Any] } + return try JSONSerialization.data(withJSONObject: ["schema": 1, "commit": commit as Any, "files": entries]) + } + func fetch(_ path: String, _ limit: Int) async throws -> (status: Int, data: Data) { + if networkFailure { throw URLError(.notConnectedToInternet) } + if path == "/api/companion/web-manifest" { return (manifestStatus, manifestStatus == 200 ? try listing() : Data()) } + lock.withLock { calls += 1 } + return (200, corrupt ? Data("wrong".utf8) : files[String(path.dropFirst())]!) + } + } + let comma = Comma() + let fetch: GalaxyPageFetch = { try await comma.fetch($0, $1) } + let cache = root.appendingPathComponent("cache") + let store = GalaxyAssetStore(cacheRoot: cache, defaults: defaults) + precondition(store.readyRoot == nil && store.status == GalaxyAssetStore.notDownloaded, "No pages are bundled; nothing to open before the first Wi-Fi download") + await store.check(fetch: fetch) + precondition(store.readyRoot != nil && comma.fileCalls == 5) + let savedApp = try Data(contentsOf: store.readyRoot!.appendingPathComponent("js/app.js")) + precondition(savedApp == Data("const galaxy = true".utf8)) + let first = store.readyRoot + await store.check(fetch: fetch) + precondition(comma.fileCalls == 5 && store.status == "Galaxy matches comma.", "Unchanged files must not download twice") + comma.files["js/app.js"] = Data("hand patched, same commit".utf8) + await store.check(fetch: fetch) + precondition(comma.fileCalls == 6 && store.readyRoot != first, "A changed file refreshes even when the commit is the same") + let current = store.readyRoot + let restored = GalaxyAssetStore(cacheRoot: cache, defaults: defaults) + precondition(restored.readyRoot == current, "Saved pages must validate after restart so Bluetooth opens offline") + precondition(!restored.olderThan(commit: comma.commit) && restored.olderThan(commit: String(repeating: "b", count: 40)), "Notice when comma moved on") + precondition(!restored.olderThan(commit: nil)) + restored.noteCommaBuild(commit: String(repeating: "b", count: 40)) + precondition(restored.status.contains("older comma build")) + + comma.files["js/app.js"] = Data("changed app".utf8); comma.corrupt = true + await store.check(fetch: fetch) + precondition(store.readyRoot == current, "A failed update keeps the saved pages") + precondition(store.status.contains("verification failed"), "Do not hide verification failures as network failures") + comma.commit = String(repeating: "c", count: 40) + await store.check(fetch: fetch) + precondition(store.olderThan(commit: String(repeating: "c", count: 40)), "A failed download must not hide that comma moved on") + comma.corrupt = false; comma.networkFailure = true + await store.check(fetch: fetch) + precondition(store.status.contains("network error -1009") && store.readyRoot == current) + comma.networkFailure = false; comma.manifestStatus = 404 + await store.check(fetch: fetch) + precondition(store.status.contains("too old") && store.readyRoot == current, "Older comma without the inventory route") + comma.manifestStatus = 401 + let fresh = GalaxyAssetStore(cacheRoot: root.appendingPathComponent("empty"), defaults: UserDefaults(suiteName: UUID().uuidString)!) + await fresh.check(fetch: fetch) + precondition(fresh.readyRoot == nil && fresh.status.contains("too old") && fresh.status.contains("No Galaxy screens are saved yet.")) + comma.manifestStatus = 200; comma.corrupt = true + await fresh.check(fetch: fetch) + precondition(fresh.readyRoot == nil, "Pages that fail their hash are never activated") + + try Data("tampered".utf8).write(to: current!.appendingPathComponent("js/app.js")) + let tampered = GalaxyAssetStore(cacheRoot: cache, defaults: defaults) + precondition(tampered.readyRoot == nil, "Reject altered saved UI") + + comma.corrupt = false; comma.commit = nil + let custom = GalaxyAssetStore(cacheRoot: root.appendingPathComponent("custom"), defaults: UserDefaults(suiteName: UUID().uuidString)!) + comma.files["js/custom-branch-only.js"] = Data("export default 1".utf8) + await custom.check(fetch: fetch) + precondition(custom.readyRoot != nil, "Custom and unpushed builds work because nothing comes from GitHub") + let switched = GalaxyAssetStore(cacheRoot: root.appendingPathComponent("switched"), defaults: UserDefaults(suiteName: UUID().uuidString)!) + await switched.check(fetch: fetch, stillCurrent: { false }) + precondition(switched.readyRoot == nil, "A switched comma must not activate its download") + print("SecretGood assets: comma LAN download, hash verification, atomic update and saved UI validation passed") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/SecretGoodLANRegression.swift b/openpilot/starpilot/companion/ios/tests/SecretGoodLANRegression.swift new file mode 100644 index 0000000000..9755ca51f5 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/SecretGoodLANRegression.swift @@ -0,0 +1,137 @@ +import Foundation + +@MainActor final class Server { + var calls: [URLRequest] = [] + var sessions = 0 + var expired = false + var failWrite = false + var corruptIdentity = false + func load(_ request: URLRequest, _ limit: Int) async throws -> (Data, HTTPURLResponse) { + calls.append(request) + let path = request.url!.path + var headers: [String: String] = [:] + var status = 200 + var json: [String: Any] = [:] + if path == "/api/auth/session" { + sessions += 1 + let current = sessions + try await Task.sleep(nanoseconds: 5_000_000) + json = ["authenticated": true, "localAccess": true] + headers["Set-Cookie"] = "galaxy_session=token\(current); HttpOnly; SameSite=Strict; Path=/; Max-Age=1800" + } else { + precondition(request.value(forHTTPHeaderField: "Cookie")?.hasPrefix("galaxy_session=token") == true) + if path == "/data/runtime.json" { + json = ["schemaVersion": 1, "monitor": "local", "instance": corruptIdentity ? "fedcba9876543210" : "0123456789abcdef"] + } else if expired { + expired = false; status = 401; json = ["error": "Refresh the local Galaxy session"] + } else if failWrite { throw URLError(.networkConnectionLost) } + else { json = ["saved": true] } + } + return (try JSONSerialization.data(withJSONObject: json), HTTPURLResponse(url: request.url!, statusCode: status, httpVersion: "HTTP/1.1", headerFields: headers)!) + } +} + +@main struct LANRegression { + @MainActor static func main() async throws { + let server = Server() + let lan = LANTransport(load: server.load) + try lan.configure(address: "192.168.1.86") + lan.bind(to: "0123456789abcdef") + let verified = await lan.probe() + precondition(verified && server.sessions == 1) + server.expired = true + let result = try await lan.request(path: "/api/settings/confirm", method: "POST", headers: ["Cookie": "forged", "Origin": "http://evil.invalid"], body: Data("{}".utf8)) + precondition(result.status == 200 && server.sessions == 2) + let writes = server.calls.filter { $0.httpMethod == "POST" } + precondition(writes.count == 2, "Explicit session rejection must retry exactly once") + precondition(writes.allSatisfy { $0.value(forHTTPHeaderField: "Origin") == "http://192.168.1.86:8082" && $0.value(forHTTPHeaderField: "Content-Type") == "application/json" }) + precondition(writes[0].value(forHTTPHeaderField: "Cookie") != writes[1].value(forHTTPHeaderField: "Cookie")) + server.failWrite = true + let before = server.calls.count + do { _ = try await lan.request(path: "/api/settings/confirm", method: "POST", headers: [:], body: Data("{}".utf8)); preconditionFailure("Expected network error") } catch is URLError {} + precondition(server.calls.count == before + 1, "Never retry an uncertain mutation") + server.failWrite = false + try lan.configure(address: "192.168.1.87") + precondition(!lan.connected) + _ = await lan.probe() + precondition(server.sessions == 3, "A different comma must get a separate session") + server.corruptIdentity = true + let mismatched = await lan.probe() + precondition(!mismatched, "Reject LAN endpoint that differs from authenticated BLE identity") + for invalid in ["http://evil.invalid/api/x", "//evil.invalid/api/x", "/api/../x", "/api/%2e%2e/x", "/api/%252e/x", "/api/x#fragment", "/data/system-monitor.sample.json"] { + precondition(!SecretGoodGalaxy.validTarget(invalid), invalid) + } + precondition(SecretGoodGalaxy.validTarget("/api/settings/pages/hub")) + precondition(SecretGoodGalaxy.validTarget("/data/runtime.json")) + for invalid in ["/api/params", "/js/../x.js", "/js/a b.js", "/js/app.js?x=1", "/data/runtime.json", "/other/x.js", "//evil/js/a.js", "/js//a.js", "js/app.js", "/js/%2e%2e/a.js"] { + precondition(!SecretGoodGalaxy.validPage(invalid), invalid) + } + for valid in ["/index.html", "/js/app.js", "/vendor/vue/vue.esm-browser.js", "/data/catalog.json", "/manifest.webmanifest"] { + precondition(SecretGoodGalaxy.validPage(valid), valid) + } + server.corruptIdentity = false + _ = await lan.probe() + let pageCalls = server.calls.count + let page = try await lan.page(path: "/js/app.js") + precondition(page.status == 200 && server.calls.count == pageCalls + 1) + precondition(server.calls.last!.httpMethod == "GET" && server.calls.last!.url!.path == "/js/app.js") + do { _ = try await lan.page(path: "/api/params"); preconditionFailure("Pages are not API calls") } catch is BridgeError {} + precondition(SecretGoodGalaxy.needsWiFi("/api/cameras/snapshot")) + precondition(!SecretGoodGalaxy.needsWiFi("/api/settings/pages/hub")) + let concurrent = Server() + let shared = LANTransport(load: concurrent.load) + try shared.configure(address: "192.168.1.88") + async let first = shared.probe() + async let second = shared.probe() + _ = await (first, second) + precondition(concurrent.sessions == 1, "Share concurrent session handshakes") + let uploadServer = Server() + let uploader = LANTransport(load: uploadServer.load) + try uploader.configure(address: "192.168.1.89") + _ = await uploader.probe() + let package = Data(repeating: 0x5a, count: 48 * 1024 * 1024) + let header = Data("POST /api/android-auto/upload HTTP/1.1\r\nContent-Length: \(package.count)\r\nContent-Type: application/octet-stream\r\n\r\n".utf8) + let partial = try LocalRequest.parse(header) + precondition(partial == nil) + let parsed = try LocalRequest.parse(header + package) + precondition(parsed?.body == package) + _ = try await uploader.request(path: "/api/android-auto/upload", method: "POST", headers: ["content-type": "application/octet-stream"], body: package) + let uploaded = uploadServer.calls.last! + precondition(uploaded.httpBody == package) + precondition(uploaded.value(forHTTPHeaderField: "Content-Type") == "application/octet-stream") + precondition(uploaded.value(forHTTPHeaderField: "Origin") == "http://192.168.1.89:8082") + precondition(uploaded.timeoutInterval == 120) + for target in ["/api/settings/confirm", "/api/android-auto/upload/extra", "/api/android-auto/upload?x=1"] { + let oversized = Data("POST \(target) HTTP/1.1\r\nContent-Length: 50331648\r\n\r\n".utf8) + do { _ = try LocalRequest.parse(oversized); preconditionFailure("Ordinary requests must remain bounded") } catch {} + } + let tooLarge = Data("POST /api/android-auto/upload HTTP/1.1\r\nContent-Length: 268435457\r\n\r\n".utf8) + do { _ = try LocalRequest.parse(tooLarge); preconditionFailure("Package limit must hold") } catch {} + let discoveryServer = Server() + var probed: [String] = [] + let discovered = await LANDiscoveryMatch.first(addresses: ["192.168.1.90", "192.168.1.90", "192.168.1.91"], + expectedDeviceID: "0123456789abcdef", stillCurrent: { true }) { address, identity in + probed.append(address) + discoveryServer.corruptIdentity = address.hasSuffix("90") + let candidate = LANTransport(load: discoveryServer.load) + candidate.bind(to: identity) + try! candidate.configure(address: address) + let verified = await candidate.probe() + precondition(candidate.verifiedDeviceID == (verified ? identity : nil)) + return verified + } + precondition(discovered == "192.168.1.91" && probed == ["192.168.1.90", "192.168.1.91"], "Try alternate interfaces, never select a different comma") + let unknown = await LANDiscoveryMatch.first(addresses: ["192.168.1.91"], expectedDeviceID: nil, stillCurrent: { true }) { _, _ in + preconditionFailure("First-time discovery requires an explicit choice") + } + precondition(unknown == nil) + var sameNetwork = true + let stale = await LANDiscoveryMatch.first(addresses: ["192.168.1.91"], expectedDeviceID: "0123456789abcdef", stillCurrent: { sameNetwork }) { _, _ in + await Task.yield() + sameNetwork = false + return true + } + precondition(stale == nil, "Reject verification completed after the network or selected comma changes") + print("SecretGood LAN: cookies, refresh, mutation safety, identity and isolation passed") + } +} diff --git a/openpilot/starpilot/companion/ios/tests/ToggleSearchRegression.mjs b/openpilot/starpilot/companion/ios/tests/ToggleSearchRegression.mjs new file mode 100644 index 0000000000..497cae2717 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/ToggleSearchRegression.mjs @@ -0,0 +1,71 @@ +import fs from 'node:fs' +import vm from 'node:vm' +import assert from 'node:assert/strict' +const source = fs.readFileSync('../../galaxy/web/js/toggle-search.js', 'utf8').replace(/^import .*\n/gm, '').replaceAll('export ', '') +const settings = fs.readFileSync('../../galaxy/web/js/settings.js', 'utf8') +const sections = settings.slice(settings.indexOf('export const SETTINGS_SECTIONS'), settings.indexOf('\n\n// Crop')).replace('export ', '') +const adapter = fs.readFileSync('GalaxyBluetooth/LoopbackServer.swift', 'utf8').match(/static let nativeSearchScript = #"""\n([\s\S]*?) """#/)[1] +function probe(timeout = 20000) { + const context = vm.createContext({ window: { __galaxyNative: true }, AbortController, DOMException, + setTimeout: (fn, ms) => setTimeout(fn, ms === 20000 ? timeout : ms), clearTimeout }) + vm.runInContext(sections + '\nconst isPipCropRow = () => false;\n' + source + '\n' + adapter + '\nglobalThis.api = {SettingsSearchIndex, ToggleSearch, searchSettings};', context) + return context.api +} +const tick = () => new Promise(resolve => setImmediate(resolve)) +async function until(condition) { for (let i = 0; i < 100; i++) { if (condition()) return; await tick() }; assert.fail('Expected search progress') } +const response = (page, rows = []) => ({ ok: true, status: 200, json: async () => ({ page, title: page, rows }) }) +{ + const api = probe(), updates = [] + let active = 0, maximum = 0, release + const index = new api.SettingsSearchIndex({ publish: value => updates.push(value), fetcher: async (url, options) => { + assert.equal(options.method, undefined, 'Search must only read settings') + active++; maximum = Math.max(maximum, active) + const page = decodeURIComponent(url.split('/').at(-1)) + if (page === 'lane_change') await new Promise(resolve => { release = resolve }) + active-- + return response(page, page === 'aol' ? [{ label: 'Always On Lateral', value: 'On' }] + : page === 'lane_change' ? [{label: 'Nested', page: 'lane_change/nested'}] + : page === 'lane_change/nested' ? [{label: 'Lane change delay', value: '2 seconds'}] : []) + }}) + const loading = index.load() + await until(() => typeof release === 'function') + assert(updates.some(update => update.status === 'loading' && update.entries.some(row => row.label === 'Always On Lateral')), 'Show matches before the whole scan finishes') + release(); await loading + assert.equal(maximum, 1, 'Bluetooth search must not enqueue four parallel page reads') + assert.equal(index.status, 'ready') + assert.equal(api.searchSettings(index.entries, 'always lateral').length, 1) + assert(index.entries.some(row => row.label === 'Lane change delay'), 'Include nested settings') +} +{ + const api = probe(); let calls = 0 + const index = new api.SettingsSearchIndex({ fetcher: (url, options) => { + calls++ + return new Promise((resolve, reject) => options.signal.addEventListener('abort', () => reject(new DOMException('Closed', 'AbortError')))) + }}) + const loading = index.load() + await until(() => calls === 1) + api.ToggleSearch.methods.close.call({ index, state: {} }) + await loading + assert.equal(calls, 1, 'Closing must cancel the rest of the index scan') + assert.equal(index.status, 'idle') + assert.equal(index.entries.length, 0) +} +{ + const api = probe(5); let calls = 0 + const index = new api.SettingsSearchIndex({ fetcher: async url => { + calls++ + const page = decodeURIComponent(url.split('/').at(-1)) + if (calls === 1) return new Promise(() => {}) // Simulate a response that ignores cancellation. + return response(page, [{label: 'Working later setting'}]) + }}) + await index.load() + assert.equal(index.status, 'partial') + assert(index.entries.length > 0, 'One timed-out page must not prevent later results') +} +{ + const api = probe(); let unauthorized = 0, calls = 0 + const index = new api.SettingsSearchIndex({ unauthorized: () => unauthorized++, fetcher: async () => { calls++; return {status: 401} } }) + await index.load() + assert.equal(unauthorized, 1); assert.equal(calls, 1); assert.equal(index.status, 'idle') +} +console.log('Toggle search: incremental matches, serial reads, nested pages, close cancellation, bounded timeout and expired sessions passed') diff --git a/openpilot/starpilot/companion/ios/tests/check_lan_contract.py b/openpilot/starpilot/companion/ios/tests/check_lan_contract.py new file mode 100644 index 0000000000..31af6c161a --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/check_lan_contract.py @@ -0,0 +1,13 @@ +from pathlib import Path +for name in ['LANDiscovery.swift', 'Info.plist']: + value = (Path('GalaxyBluetooth') / name).read_text() + assert '_sp-galaxy._tcp' in value and '_starpilot-galaxy._tcp' not in value +for name in ['CarPlaySceneDelegate.swift', 'GalaxyBluetoothApp.swift', 'NetworkTransport.swift']: + value = (Path('GalaxyBluetooth') / name).read_text() + for old in ['/api/params', '/api/stats', '/api/device/status', '/api/personality_profiles', '/api/longitudinal_mode']: + assert old not in value, (name, old) +for name in ['GalaxyAssetStore.swift', 'LoopbackServer.swift', 'GalaxyBluetoothApp.swift']: + value = (Path('GalaxyBluetooth') / name).read_text() + assert 'bundledRoot' not in value and 'Resources/Web' not in value and 'raw.githubusercontent.com' not in value, name +assert not Path('GalaxyBluetooth/Resources/Web').exists(), 'Galaxy pages come from comma, never from the app bundle' +print('LAN contract: discovery service type, endpoint migration and no bundled Galaxy pages passed') diff --git a/openpilot/starpilot/companion/ios/tests/extract_bluetooth_reads.py b/openpilot/starpilot/companion/ios/tests/extract_bluetooth_reads.py new file mode 100644 index 0000000000..8f5808cfd0 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/extract_bluetooth_reads.py @@ -0,0 +1,56 @@ +from pathlib import Path +import sys + +def method(path, name): + source = Path(path).read_text() + start = source.index(" static func " + name + "(") + end = source.index("{", start) + 1 + depth = 1 + while depth: + if source[end] == "{": + depth += 1 + if source[end] == "}": + depth -= 1 + end += 1 + return source[start:end] + +methods = method("GalaxyBluetooth/BluetoothTransport.swift", "useNotifications") +methods += "\n" + method("GalaxyBluetooth/BluetoothTransport.swift", "backgroundRead") +methods += "\n" + method("GalaxyBluetooth/BluetoothTransport.swift", "nextRequestIndex") +methods += "\n" + method("GalaxyBluetooth/BluetoothTransport.swift", "shouldPauseFastReads") +methods += "\n" + method("GalaxyBluetooth/BluetoothTransport.swift", "canDrainCancellation") +tests = r''' +@main struct BluetoothReadRegression { + static func main() { + for path in ["/api/settings/pages/hub", "/api/device/state", "/api/settings/pages/appearance"] { + precondition(!Probe.useNotifications(method: "GET", path: path, supported: true), "Read used stalled notification window") + } + precondition(Probe.useNotifications(method: "PUT", path: "/api/settings/confirm", supported: true)) + precondition(!Probe.useNotifications(method: "PUT", path: "/api/settings/confirm", supported: false)) + precondition(!Probe.useNotifications(method: "GET", path: "/_bridge/health", supported: true)) + precondition(Probe.nextRequestIndex(methods: ["GET", "GET"], paths: ["/api/system/monitor", "/api/settings/pages/hub"], priorityStreak: 0) == 1) + precondition(Probe.nextRequestIndex(methods: ["GET", "PUT", "GET"], paths: ["/api/system/monitor", "/api/settings/confirm", "/api/settings/pages/hub"], priorityStreak: 0) == 0) + precondition(Probe.nextRequestIndex(methods: ["GET", "GET"], paths: ["/api/system/monitor", "/api/settings/pages/hub"], priorityStreak: 3) == 0) + precondition(Probe.nextRequestIndex(methods: ["PUT", "GET"], paths: ["/api/settings/confirm", "/api/settings/pages/hub"], priorityStreak: 0) == 0) + precondition(Probe.backgroundRead("/api/device/state?refresh=1")) + precondition(Probe.nextRequestIndex(methods: ["GET", "GET", "GET"], paths: ["/api/models/status", "/api/drives/stats?timezone=UTC", "/api/settings/pages/hub"], priorityStreak: 0) == 2) + precondition(Probe.backgroundRead("/api/software/status?history=0")) + precondition(Probe.useNotifications(method: "GET", path: "/api/settings/pages/hub", supported: true, fastReads: true)) + precondition(!Probe.useNotifications(method: "GET", path: "/api/settings/pages/hub", supported: false, fastReads: true)) + precondition(!Probe.useNotifications(method: "GET", path: "/_bridge/health", supported: true, fastReads: true)) + precondition(!Probe.useNotifications(method: "GET", path: "/api/settings/pages/hub", supported: true, fastReads: false)) + precondition(Probe.shouldPauseFastReads(method: "GET", notifications: true, cancelled: false)) + precondition(!Probe.shouldPauseFastReads(method: "GET", notifications: false, cancelled: false)) + precondition(!Probe.shouldPauseFastReads(method: "GET", notifications: true, cancelled: true)) + precondition(!Probe.shouldPauseFastReads(method: "PUT", notifications: true, cancelled: false)) + precondition(!Probe.shouldPauseFastReads(method: nil, notifications: true, cancelled: false)) + precondition(Probe.canDrainCancellation(method: "GET", requestSent: false)) + precondition(Probe.canDrainCancellation(method: "GET", requestSent: true)) + precondition(!Probe.canDrainCancellation(method: "PUT", requestSent: false)) + precondition(!Probe.canDrainCancellation(method: "POST", requestSent: false)) + precondition(Probe.canDrainCancellation(method: "PUT", requestSent: true)) + print("Bluetooth read policy, cancellation and priority passed") + } +} +''' +Path(sys.argv[1]).write_text("import Foundation\nstruct Probe {\n" + methods + "\n}\n" + tests) diff --git a/openpilot/starpilot/companion/ios/tests/extract_carplay_navigation.py b/openpilot/starpilot/companion/ios/tests/extract_carplay_navigation.py new file mode 100644 index 0000000000..8008379eb2 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/extract_carplay_navigation.py @@ -0,0 +1,19 @@ +from pathlib import Path +import sys + +source = Path("GalaxyBluetooth/CarPlaySceneDelegate.swift").read_text() +def method(name): + start = source.index(" private func " + name + "(") + opening = source.index("{", start) + depth = 1 + end = opening + 1 + while depth: + if source[end] == "{": + depth += 1 + if source[end] == "}": + depth -= 1 + end += 1 + return source[start:end].replace("private func", "func", 1) + +stub = Path("tests/CarPlayNavigationRegression.swift").read_text() +Path(sys.argv[1]).write_text(stub.replace("__PRODUCTION_METHODS__", method("pushTemplate") + "\n" + method("popTemplate"))) diff --git a/openpilot/starpilot/companion/ios/tests/extract_claim_transport.py b/openpilot/starpilot/companion/ios/tests/extract_claim_transport.py new file mode 100644 index 0000000000..29c2aa7291 --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/extract_claim_transport.py @@ -0,0 +1,121 @@ +from pathlib import Path +import sys + +source = Path('GalaxyBluetooth/ClaimPairing.swift').read_text().replace('import CoreBluetooth\n', '').replace('@preconcurrency ', '') +bluetooth = r''' +protocol CBCentralManagerDelegate: AnyObject {} +protocol CBPeripheralDelegate: AnyObject {} +enum CBManagerState { case poweredOn, unauthorized, poweredOff, unknown, resetting, unsupported } +enum CBPeripheralState { case connected, disconnected } +enum CBCharacteristicWriteType { case withResponse, withoutResponse } +final class CBUUID: NSObject { + let value: String + init(string: String) { value = string } + override func isEqual(_ other: Any?) -> Bool { (other as? CBUUID)?.value == value } +} +@MainActor final class CBCharacteristic { + let uuid: CBUUID + var value: Data? + init(_ uuid: String) { self.uuid = CBUUID(string: uuid) } +} +@MainActor final class CBService { + let uuid = CBUUID(string: Wire.service) + var characteristics: [CBCharacteristic]? +} +@MainActor final class CBPeripheral: NSObject { + let identifier = UUID() + var delegate: CBPeripheralDelegate? + var services: [CBService]? + var state: CBPeripheralState = .connected + var writes: [Data] = [] + func discoverServices(_ uuids: [CBUUID]) {} + func discoverCharacteristics(_ uuids: [CBUUID], for service: CBService) {} + func readValue(for characteristic: CBCharacteristic) {} + func maximumWriteValueLength(for type: CBCharacteristicWriteType) -> Int { 180 } + func writeValue(_ data: Data, for characteristic: CBCharacteristic, type: CBCharacteristicWriteType) { writes.append(data) } +} +@MainActor final class CBCentralManager { + static var instances: [CBCentralManager] = [] + var state = CBManagerState.poweredOn + var cancellations = 0 + init(delegate: CBCentralManagerDelegate, queue: DispatchQueue) { Self.instances.append(self) } + func scanForPeripherals(withServices services: [CBUUID], options: [String: Any]?) {} + func stopScan() {} + func connect(_ peripheral: CBPeripheral, options: [String: Any]?) {} + func cancelPeripheralConnection(_ peripheral: CBPeripheral) { cancellations += 1 } +} +''' +tests = r''' +@main struct ClaimTransportRegression { + @MainActor static func main() async throws { + let transport = ClaimTransport() + var events: [String] = [] + transport.onEvent = { events.append($0) } + var previous: CBCentralManager? + for attempt in 0..<2 { + let count = CBCentralManager.instances.count + let task = Task { try await transport.claim(name: "iPhone") } + for _ in 0..<100 where CBCentralManager.instances.count == count { await Task.yield() } + precondition(CBCentralManager.instances.count == count + 1) + let central = CBCentralManager.instances.last! + if let previous { + previous.state = .poweredOff + transport.centralManagerDidUpdateState(previous) + } + let peripheral = CBPeripheral() + transport.centralManagerDidUpdateState(central) + transport.centralManager(central, didDiscover: peripheral, advertisementData: [:], rssi: 0) + transport.centralManager(central, didConnect: peripheral) + let rx = CBCharacteristic(Wire.rx), tx = CBCharacteristic(Wire.tx), info = CBCharacteristic(Wire.info) + let service = CBService() + service.characteristics = [rx, tx, info] + peripheral.services = [service] + transport.peripheral(peripheral, didDiscoverServices: nil) + transport.peripheral(peripheral, didDiscoverCharacteristicsFor: service, error: nil) + let challenge = Data(repeating: UInt8(attempt + 1), count: 16) + info.value = Data([1]) + challenge + transport.peripheral(peripheral, didUpdateValueFor: info, error: nil) + precondition(peripheral.writes.count == 1) + var request = FrameAssembler() + let body = try request.append(peripheral.writes[0])! + transport.peripheral(peripheral, didWriteValueFor: rx, error: nil) + precondition(central.cancellations == 0, "A retry must not complete using the previous phone key") + let server = P256.KeyAgreement.PrivateKey() + let key = try ClaimCrypto.derive(server, peer: body.subdata(in: 4..<69), challenge: challenge) + let id = attempt == 0 ? "11223344" : "55667788" + let credential = String(repeating: attempt == 0 ? "ab" : "cd", count: 32) + let json = try JSONSerialization.data(withJSONObject: ["key": credential, "id": id]) + let box = try AES.GCM.seal(json, using: key, authenticating: ClaimCrypto.aad) + let reply = ClaimCrypto.replyMagic + server.publicKey.x963Representation + box.combined! + for packet in Wire.packets(Wire.uint32(UInt32(reply.count)) + reply, size: 180) { + tx.value = packet + transport.peripheral(peripheral, didUpdateValueFor: tx, error: nil) + } + let completions = events.filter { $0.contains("pairing complete") }.count + transport.peripheral(peripheral, didWriteValueFor: rx, error: nil) + precondition(central.cancellations == 1) + precondition(events.filter { $0.contains("pairing complete") }.count == completions, + "Setup must disconnect before the encrypted transport starts") + peripheral.state = .disconnected + transport.centralManager(central, didDisconnectPeripheral: peripheral, error: nil) + let result = try await task.value + precondition(result.result.key == credential && result.result.id == id) + previous = central + if attempt == 0 { + let count = CBCentralManager.instances.count + let cancelled = Task { try await transport.claim(name: "iPhone") } + for _ in 0..<100 where CBCentralManager.instances.count == count { await Task.yield() } + let abandoned = CBCentralManager.instances.last! + transport.cancel() + abandoned.state = .poweredOff + transport.centralManagerDidUpdateState(abandoned) + do { _ = try await cancelled.value; preconditionFailure("Cancelled pairing returned a credential") } + catch is CancellationError { } + } + } + precondition(events.filter { $0.contains("pairing complete") }.count == 2) + print("Repeated pairing, stale callbacks and setup handoff passed") + } +} +''' +Path(sys.argv[1]).write_text(source + '\n' + bluetooth + '\n' + tests) diff --git a/openpilot/starpilot/companion/ios/tests/extract_connection_monitor.py b/openpilot/starpilot/companion/ios/tests/extract_connection_monitor.py new file mode 100644 index 0000000000..b400847e7b --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/extract_connection_monitor.py @@ -0,0 +1,79 @@ +from pathlib import Path +import sys + +source = Path('GalaxyBluetooth/GalaxyBluetoothApp.swift').read_text() + +def method(signature): + start = source.index(signature) + opening = source.index('{', start) + depth = 1 + end = opening + 1 + while depth: + depth += (source[end] == '{') - (source[end] == '}') + end += 1 + return source[start:end] + +stubs = r''' +import Foundation + +enum ConnectionMode { case automatic, bluetooth, lan } +@MainActor final class Bluetooth { + var connected = false, connecting = false, isScanning = false + var attempts = 0 + func reconnectSaved(pairingKey: String) { attempts += 1 } +} +@MainActor final class LAN { + var endpoint: URL? + var connected = false + var probes = 0 + func configure(address: String) throws {} + func probe() async -> Bool { + probes += 1 + try? await Task.sleep(nanoseconds: 60_000_000_000) + return false + } +} +@MainActor final class Transport { + let label = "Reconnecting…" + let connected = false +} +@MainActor final class Discovery { func stop() {} } +@MainActor final class Assets { var readyRoot: URL?; var status = "" } +@MainActor final class MonitorProbe { + let bluetooth = Bluetooth(), lan = LAN(), transport = Transport(), discovery = Discovery() + let assets = Assets() + var opened = false + var wantsConnection = true, pairingInProgress = false, openingGalaxy = false, offerAudioPairing = false + var mode = ConnectionMode.automatic + var pairingKey = "saved", address = "", connectionMessage = "", lastRoute = "" + var lastReconnect = Date.distantPast, lastGalaxyMatch = Date.distantPast + var lanProbeTask: Task? + func learnAddress() async {} + func discoverAutomaticLAN() {} + func logConnection(_ reason: String) {} + func openIfReady() {} + func checkGalaxyUpdates() async {} + func startAudioPairing() {} +''' +tests = r''' +} +@main struct MonitorRegression { + @MainActor static func main() async throws { + let model = MonitorProbe() + let monitor = Task { await model.monitor() } + for _ in 0..<100 where model.lan.probes == 0 { + try await Task.sleep(nanoseconds: 20_000_000) + } + precondition(model.lan.probes == 1 && model.bluetooth.attempts == 1) + model.lastReconnect = .distantPast + try await Task.sleep(nanoseconds: 3_200_000_000) + precondition(model.bluetooth.attempts >= 2, "A stalled Wi-Fi request must not block Bluetooth reconnects") + precondition(model.lan.probes == 1, "Do not pile up Wi-Fi probes while one is still running") + monitor.cancel() + model.lanProbeTask?.cancel() + await monitor.value + print("Slow Wi-Fi leaves Bluetooth reconnects running; only one LAN probe in flight") + } +} +''' +Path(sys.argv[1]).write_text(stubs + '\n' + method(' private func probeLocalConnection()') + '\n' + method(' func monitor() async') + tests) diff --git a/openpilot/starpilot/companion/ios/tests/extract_legacy_link.py b/openpilot/starpilot/companion/ios/tests/extract_legacy_link.py new file mode 100644 index 0000000000..aa39831ccf --- /dev/null +++ b/openpilot/starpilot/companion/ios/tests/extract_legacy_link.py @@ -0,0 +1,21 @@ +from pathlib import Path +import sys +source = Path("GalaxyBluetooth/GalaxyBluetoothApp.swift").read_text() +start = source.index("struct LegacyGalaxyStatus:") +end = source.index("\n@MainActor", start) +probe = source[start:end] +tests = r''' +@main struct LegacyLinkRegression { + static func main() { + let first = "https://galaxy.firestar.link/AbCdEf0123456789" + let second = "https://galaxy.firestar.link/ZyXwVu9876543210" + precondition(LegacyGalaxyStatus(paired: true, url: first).browserURL?.absoluteString == first) + precondition(LegacyGalaxyStatus(paired: true, url: second).browserURL?.absoluteString == second) + for bad in ["https://galaxy.firestar.link", first + "?key=private", first + "#fragment", "http://galaxy.firestar.link/AbCdEf0123456789", "https://evil.example/AbCdEf0123456789", "https://galaxy.firestar.link:444/AbCdEf0123456789"] { + precondition(LegacyGalaxyStatus(paired: true, url: bad).browserURL == nil) + } + print("Legacy Galaxy links: device-specific address preserved; general and unsafe links rejected") + } +} +''' +Path(sys.argv[1]).write_text("import Foundation\n" + probe + tests) diff --git a/openpilot/starpilot/companion/run_host_tests.py b/openpilot/starpilot/companion/run_host_tests.py new file mode 100644 index 0000000000..56a0ace6de --- /dev/null +++ b/openpilot/starpilot/companion/run_host_tests.py @@ -0,0 +1,75 @@ +"""Host-only companion tests: stub native Params/IPC/solver imports, never devices. + +Run from the repository root with uv --extra testing --noconftest via this script. +The Params stub is in-memory and does not establish native storage/ABI coverage. +""" + +import sys +import types +from unittest.mock import MagicMock +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parents[3])) +msgq = types.ModuleType('msgq') +for name in ( + 'fake_event_handle', + 'drain_sock_raw', + 'MultiplePublishersError', + 'IpcError', + 'Context', + 'Poller', + 'SubSocket', + 'PubSocket', + 'SocketEventHandle', + 'toggle_fake_events', + 'set_fake_prefix', + 'get_fake_prefix', + 'delete_fake_prefix', + 'wait_for_one_event', +): + setattr(msgq, name, MagicMock()) +sys.modules['msgq'] = msgq +params = types.ModuleType('openpilot.common.params') + + +class Params: + values = {} + + def __init__(self, path='default'): + self.data = self.values.setdefault(str(path), {}) + + def get(self, key, *args, **kwargs): + return self.data.get(key) + + def get_bool(self, key): + return bool(self.get(key)) + + def put(self, key, value, **kwargs): + self.data[key] = value + + def put_bool(self, key, value, **kwargs): + self.put(key, value) + + def remove(self, key): + self.data.pop(key, None) + + +params.Params = Params +params.ParamKeyType = MagicMock() +params.ParamKeyFlag = MagicMock() +params.UnknownKeyName = KeyError +sys.modules['openpilot.common.params'] = params +native = types.ModuleType('openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.c_generated_code.acados_ocp_solver_pyx') +native.AcadosOcpSolverCython = MagicMock() +sys.modules[native.__name__] = native +import pytest + +defaults = [ + 'openpilot/starpilot/companion/android/tests/test_android_manifest.py', + 'openpilot/starpilot/companion/android/tests/test_ble_wire_vectors.py', + 'openpilot/starpilot/companion/android/tests/test_lan_discovery.py', + 'openpilot/starpilot/galaxy/tests/test_companion.py', + 'openpilot/starpilot/galaxy/tests/test_companion_http.py', + 'openpilot/starpilot/galaxy/tests/test_companion_data_guards.py', +] +sys.exit(pytest.main(['--noconftest', '-n0', '-q', *(sys.argv[1:] or defaults)])) diff --git a/pyproject.toml b/pyproject.toml index 1feeda4868..59c5327da3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -124,7 +124,7 @@ quiet-level = 3 # if you've got a short variable name that's getting flagged, add it here ignore-words-list = "bu,ro,te,ue,alo,hda,ois,nam,nams,ned,som,parm,setts,inout,warmup,bumb,nd,sie,preints,whit,indexIn,ws,uint,grey,deque,stdio,amin,BA,LITE,atEnd,UIs,errorString,arange,FocusIn,od,tim,relA,hist,copyable,jupyter,thead,TGE,abl,lite,ser,assertIn,HomeState,cancelled,CAS,acknowledgement,writeable,noice,FoF,waitFor,centre,centres,KeyPair,aPoint" builtin = "clear,rare,informal,code,names,en-GB_to_en-US" -skip = "openpilot/cereal/gen/cpp/*.capnp.c++, openpilot/cereal/gen/cpp/*.capnp.h, *.po, uv.lock, *.onnx, *.pem, */c_generated_code/*, docs/assets/*, openpilot/tools/plotjuggler/layouts/*, openpilot/selfdrive/assets/offroad/mici_fcc.html, openpilot/starpilot/galaxy/web/vendor/vue/vue.esm-browser.js, openpilot/starpilot/ui/assets/fonts/notices/Unifont-COPYING.txt, openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Web/vendor/vue/vue.esm-browser.js, openpilot/starpilot/galaxy_bluetooth/vendor/*, openpilot/starpilot/soloist/pulseaudio/licenses/*, openpilot/starpilot/companion/android/LICENSE.gradle" +skip = "openpilot/cereal/gen/cpp/*.capnp.c++, openpilot/cereal/gen/cpp/*.capnp.h, *.po, uv.lock, *.onnx, *.pem, */c_generated_code/*, docs/assets/*, openpilot/tools/plotjuggler/layouts/*, openpilot/selfdrive/assets/offroad/mici_fcc.html, openpilot/starpilot/galaxy/web/vendor/vue/vue.esm-browser.js, openpilot/starpilot/ui/assets/fonts/notices/Unifont-COPYING.txt, openpilot/starpilot/galaxy_bluetooth/vendor/*, openpilot/starpilot/soloist/pulseaudio/licenses/*, openpilot/starpilot/companion/android/LICENSE.gradle" ignore-regex = "scale\\.numer" # codespell:ignore numer # https://docs.astral.sh/ruff/configuration/#using-pyprojecttoml diff --git a/scripts/lint/check_added_large_files.py b/scripts/lint/check_added_large_files.py index 0173cb6569..a15e7a65d5 100755 --- a/scripts/lint/check_added_large_files.py +++ b/scripts/lint/check_added_large_files.py @@ -10,7 +10,6 @@ LARGE_TEXT_FILES = frozenset(( 'openpilot/selfdrive/selfdrived/selfdrived.py', 'openpilot/starpilot/galaxy/server.py', 'openpilot/starpilot/galaxy/web/js/onroad-layout.js', - 'openpilot/starpilot/companion/ios/GalaxyBluetooth/Resources/Web/js/onroad-layout.js', 'openpilot/cereal/gen/cpp/car.capnp.c++', 'openpilot/cereal/gen/cpp/car.capnp.h', 'openpilot/cereal/gen/cpp/custom.capnp.c++',