v0.2.0 — ANCS per-app notifications
🚀 Phase 2a is live — every iPhone app's notifications mirror to Linux desktop
Live-verified: a WhatsApp notification from a contact arrived on the Linux desktop within ~2s of the iPhone receiving it. iphonebridge now has full Phone-Link feature parity:
| Feature | Mechanism |
|---|---|
| SMS + iMessage incoming | MAP MNS |
| SMS + iMessage outgoing | MAP PushMessage |
| Contacts | PBAP |
| Per-app notifications | ANCS BLE GATT ⬅ new |
| Bidirectional read sync | MAP read-state writes |
What was new in this release
src/iphonebridge/ancs/— full ANCS protocol implementation: constants, wire-format parsers/builders, GATT client subscribing to the three ANCS characteristics,AncsEventtypesystemd/set-le-bearer.sh— strictly-validated privileged helper that writesLastUsedBearer=lein BlueZ's pairing record soDevice1.Connect()chooses BLE rather than BR/EDRsystemd/install-ancs-sudoers.sh— NOPASSWD sudoers rule for the above, locked to two MAC argumentsiphonebridge ancs-enableCLI command — applies the bearer change and cycles the iPhone connection
The unlock
ANCS only works with a proper BLE bond, which requires the iPhone re-pair to happen while:
- Adapter Class-of-Device = A/V Hands-Free (
btmgmt class 4 8) - BLE peripheral advert with
SolicitUUIDs=ANCSis active - An Intel BT adapter (Realtek and most USB BT adapters don't work, per bmh129's hardware notes)
iOS does CTKD during that fresh SSP and produces both BR/EDR LinkKey AND BLE LongTermKey in the bonding record. Then LastUsedBearer=le ensures BlueZ uses the BLE side on reconnect.
Credits
This release would not exist without bmh129/ancs4linux (active 2026 fork of pzmarzly/ancs4linux). The ANCS wire-format parsers in src/iphonebridge/ancs/ are derived from their observer/ancs/ modules, and their empirical documentation of which BT adapters can actually do BLE-with-iOS saved weeks of trial-and-error.
Setup
Existing v0.1.0 users:
git pull
pip install -e .
sudo bash systemd/install-ancs-sudoers.sh
iphonebridge ancs-enable
# follow the prompts to re-pair your iPhone freshSee the README for new install.