Утилита позволяет подключать Apple Watch к Android, Windows и Linux

Разработчик под никнеймом LordixDemon выпустил утилиту для подключения Apple Watch к устройствам на Android, Windows и Linux. Программа позволяет пройти сопряжение и установить зашифрованное соединение без использования iPhone.
Проект воспроизводит часть протоколов, которые применяются при обмене данными между iPhone и Apple Watch. Клиентская часть написана на Dart с использованием Flutter, а основной движок работает на Java. В десктопной версии дополнительно используется Rust — он отвечает за доступ к Bluetooth-контроллеру и взаимодействие с Java-компонентом.
Для работы Android-версии требуются root-права и установленный Magisk-модуль. Сопряжение можно выполнить с помощью кода или сканирования камерой специальной анимации, отображаемой на экране часов. После этого устройство проходит активацию и первоначальную настройку, а сведения о созданной паре сохраняются для последующих подключений.
Какие функции уже доступны
После установки Bluetooth-соединения утилита создаёт защищённый канал сетевого обмена. За шифрование трафика отвечает IPsec, передача сообщений осуществляется через IPv6 и TCP, а слой IDS направляет данные соответствующим службам watchOS.
Для отдельных возможностей нужны специальные обработчики. Они, например, преобразуют уведомления Android в формат, который понимают часы, или запрашивают текущий уровень заряда аккумулятора. На данный момент реализованы чтение заряда, управление штатными циферблатами, передача уведомлений и поиск часов с помощью звукового сигнала.
Ограничения десктопной версии
Варианты для Windows и Linux пока в первую очередь ориентированы на стабильность подключения. Автор тестировал программу в Linux Mint 22.3 и Windows 10. При работе приложение получает исключительный доступ к Bluetooth-адаптеру, поэтому в Linux другие устройства не могут использовать Bluetooth до завершения сеанса.
Поддержка macOS пока находится на раннем этапе: компьютер обнаруживает Apple Watch и устанавливает соединение, однако полный цикл сопряжения и активации ещё не реализован. Исходный код проекта и описание используемого протокола опубликованы разработчиком в открытом репозитории.


