adblock check

Findphone позволяет найти смартфон или наушники в комнате через терминал Mac

Утилита с открытым исходным кодом использует три источника RSSI и умеет подавать звуковые сигналы, частота которых растёт по мере приближения к устройству.
Обложка: Shawn Rain / Unsplash

Разработчик Бен Зи опубликовал на GitHub консольную утилиту Findphone для macOS. Инструмент ищет находящиеся поблизости Bluetooth-устройства, анализирует уровень сигнала и помогает понять, в какой части комнаты лежит наушник, телефон или другой гаджет.

Findphone задуман как запасной вариант на случай, когда стандартное приложение «Локатор» (Find My) недоступно, например, заблокировано политиками MDM на корпоративном Mac. Утилита работает полностью из командной строки и не имеет графического интерфейса.

Для оценки расстояния до устройства Findphone собирает данные RSSI из трёх источников в порядке убывания качества: прямое подключение по GATT с опросом readRSSI() примерно три раза в секунду, пассивное наблюдение за BLE-объявлениями и чтение RSSI классического Bluetooth-соединения через system_profiler SPBluetoothDataType. Последний источник обновляется с большой задержкой, и утилита честно считает измерением только момент реального изменения значения, а не каждый опрос системы.

В режиме hunt можно добавить ключ --sound. Тогда Findphone начнёт издавать щелчки через динамик Mac. Частота щелчков растёт по мере приближения к цели: на расстоянии комнаты — примерно раз в секунду, а при уровне сигнала около –50 dBm звук переходит в непрерывное жужжание. Если сигнал пропадает, щелчки прекращаются, и тишина означает отсутствие контакта с устройством, а не поломку утилиты.

Ключ --redact предназначен для тех, кто записывает экран. Он маскирует Bluetooth-адреса устройств, а в режиме опроса заменяет имена гаджетов на обозначение типа устройства. Публичный адрес Findphone не скрывает намеренно только для имени, которое пользователь ввёл в hunt, и для вывода команды --list, потому что без этого невозможно выбрать цель поиска.

Важные ограничения инструмента:

  • Требуется macOS 13 или новее и Swift toolchain из Xcode Command Line Tools. Зависимостей нет, скачать можно универсальный бинарник arm64 + x86_64 из раздела Releases.
  • Сигнал грубо коррелирует с расстоянием, но металл, стены и даже тело человека сильно ослабляют его. Устройство в железном шкафу в двух метрах может показывать тот же уровень, что и гаджет в 15 метрах на открытом пространстве. Разработчик советует ориентироваться на тренд изменения сигнала при движении, а не на одно статичное число.
  • Приложению нужен доступ к Bluetooth для терминала, из которого оно запущено. macOS запросит разрешение в разделе «Системные настройки» → «Конфиденциальность и безопасность» → «Bluetooth».
  • Findphone не умеет заставлять устройство издавать звук и не определяет направление — только расстояние. Дальность работы ограничена 10–20 метрами в помещении, сквозь стены сигнал проходит значительно хуже.

Готовый бинарный файл не подписан разработчиком, поэтому macOS при загрузке помещает его в карантин. Снять блокировку предлагается штатной командой xattr.

Источник

Maslennikov
@Maslennikov
Пользователь
Apple Apple
15,9K участников
Вступить
Комментариев пока нет
Оставьте комментарий...
Оставьте комментарий...