Часы стабильно сопрягаются и устанавливают зашифрованное соединение.Редактор Hi-Tech Mail

Разработчик под ником LordixDemon создал приложение, которое позволяет подключить Apple Watch к устройствам на Android, Windows и Linux. По словам автора, часы успешно проходят сопряжение и устанавливают зашифрованное соединение.
Проект воспроизводит часть протоколов, по которым iPhone обменивается данными с Apple Watch. Клиентская часть написана на Dart с использованием Flutter, а основной движок работает на Java. В десктопной версии за доступ к Bluetooth-контроллеру и запуск Java-движка отвечает код на Rust. Для работы на Android понадобятся root-доступ и Magisk-модуль.
Часы можно сопрягать двумя способами: по коду или сканированием камерой специальной анимации на экране Apple Watch. Затем устройство проходит активацию и первоначальную настройку, а данные созданной пары сохраняются для последующих подключений.

Внутри Bluetooth-канала выстроен защищенный сетевой обмен: трафик шифруется с помощью IPsec, сообщения переносят IPv6 и TCP, а слой IDS направляет их к нужным службам watchOS. Для каждой функции требуется отдельный обработчик, например чтобы преобразовать уведомление с Android в формат, понятный часам, или запросить уровень заряда батареи. Пока реализованы чтение заряда, управление штатными циферблатами, обмен уведомлениями и поиск часов по звуковому сигналу.
Десктопная версия нацелена прежде всего на стабильность соединения. Автор проверил ее в Linux Mint 22.3 и Windows 10. При этом программа получает монопольный доступ к Bluetooth-адаптеру, поэтому в Linux на время сеанса другие устройства не могут пользоваться Bluetooth. В версии для macOS компьютер находит часы и устанавливает соединение, но полный цикл сопряжения и активации пока не реализован.
Исходный код проекта и подробное описание протокола опубликованы в репозитории на GitHub.
Получайте свежие новости в сфере гаджетов в нашем телеграм-канале >>