MAC OS X - findphone - поиск телефона по уровню сигнала Bluetooth из командной строки macOS - 2026
Published: 2026-08-05
findphone - поиск телефона по уровню сигнала Bluetooth из командной строки macOS - 2026
findphone - небольшая утилита командной строки для macOS, которая помогает найти находящийся поблизости телефон или другое Apple-устройство по уровню Bluetooth-сигнала. Проект опубликован на GitHub как open-source-репозиторий ben-z/findphone и написан на Swift с использованием системных возможностей macOS и CoreBluetooth.
Главная идея проста: если Find My недоступен, но устройство всё ещё включено, рядом и передаёт Bluetooth-сигнал, можно перемещаться по комнате и смотреть, становится ли RSSI сильнее. Это не полноценный локатор с направлением на цель, а практический «горячо-холодно» инструмент для терминала.
Для чего нужен findphone
findphone рассчитан на ситуации, когда обычный поиск через Find My невозможен. В README проекта прямо приведён пример с устройством, подключённым к MDM, где Find My может быть отключён политиками управления. В таком случае телефон нельзя заставить звонить, но его Bluetooth-модуль может оставаться видимым.
Типичные сценарии:
- телефон лежит где-то в комнате, офисе или квартире;
- Find My отключён или недоступен;
- нужно понять, в какой стороне помещения сигнал усиливается;
- рядом есть несколько Apple-устройств, и требуется быстро оценить уровень сигнала каждого;
- нужен инструмент без графического интерфейса, прямо из терминала macOS.
Установка
Разработчик предлагает брать готовый универсальный бинарник из раздела Releases. На момент изучения репозитория актуальный опубликованный релиз - v0.1.0 от 31 июля 2026 года. Архив содержит сборку для arm64 и x86_64.
tar -xzf findphone-macos-universal.tar.gz xattr -dr com.apple.quarantine findphone ./findphone --help
Команда с xattr нужна потому, что бинарник не подписан, и macOS помещает загруженный файл в карантин. Для работы требуется macOS 13 или новее.
Также утилиту можно собрать из исходников:
swift build -c release cp .build/release/findphone ~/bin/findphone
Для сборки нужен Swift toolchain из Xcode Command Line Tools. В Package.swift указана минимальная платформа macOS 13; внешних зависимостей у пакета нет.
Основные режимы работы
findphone поддерживает три базовых сценария запуска:
findphone findphone iphone findphone --list
| Команда | Назначение |
|---|---|
| findphone | Режим обзора: показывает ближайшие Apple handheld-устройства по силе сигнала |
| findphone iphone | Режим поиска: отслеживает одно устройство по имени, без учёта регистра |
| findphone --list | Показывает спаренные Bluetooth-устройства, адреса, RSSI и состояние подключения |
В режиме поиска интерфейс обновляется часто, выводит крупное значение dBm, шкалу сигнала, пик за последнюю минуту, источник измерения и подсказку тренда: сигнал становится сильнее, слабее или остаётся стабильным.
Как читать RSSI
RSSI измеряется в dBm. Значения отрицательные: чем ближе число к нулю, тем сильнее сигнал и обычно тем ближе устройство.
| RSSI | Примерное значение |
|---|---|
| -45 dBm и выше | Очень близко, примерно на расстоянии вытянутой руки |
| -60 dBm | На том же столе |
| -72 dBm | В той же комнате |
| -85 dBm | Далеко или за преградой |
| Ниже | Очень далеко, экранировано или сигнал сильно ослаблен |
Важно: Bluetooth-сигнал плохо подходит для точного измерения расстояния. Металл, стены, мебель и тело человека заметно искажают результат. Поэтому автор рекомендует доверять не одному числу, а тенденции при движении.
Звуковой режим
Флаг --sound работает только при поиске конкретного устройства:
findphone iphone --sound
В этом режиме утилита издаёт щелчки, которые учащаются при приближении к цели. Логика напоминает парковочный датчик: примерно один щелчок в секунду на расстоянии комнаты и почти «жужжание» при уровне около -50 dBm. Если контакт устарел, щелчки прекращаются, то есть тишина означает отсутствие свежего сигнала.
Приватность и --redact
Флаг --redact предназначен для записи экрана или демонстрации работы утилиты. Он скрывает Bluetooth-адреса, а в режиме обзора заменяет имена найденных устройств на типы Continuity-сообщений. Это важно, потому что публичный Bluetooth-адрес paired-устройства является стабильным аппаратным идентификатором.
findphone iphone --redact findphone --list --redact
Однако есть исключения: введённое имя цели в hunt mode остаётся видимым, а список --list всё равно показывает имена устройств. Поэтому сам разработчик предупреждает, что --list небезопасен для видеозаписи даже с включённым редактированием.
Как это работает внутри
findphone объединяет несколько источников сигнала:
- GATT link - после подключения по BLE команда readRSSI() даёт свежие измерения примерно три раза в секунду;
- BLE advertisements - пассивно замеченные рекламные пакеты Bluetooth, но имена устройств встречаются не в каждом пакете;
- Classic Bluetooth RSSI - данные из system_profiler SPBluetoothDataType для уже спаренных устройств.
В коде также используется сглаживание: отображаемый live RSSI берётся как медиана короткого окна измерений. Это защищает интерфейс от одиночных всплесков и отражений сигнала. Для ускорения повторного поиска findphone кэширует UUID найденного BLE-периферийного устройства в ~/.config/findphone/devices.json.
Ограничения
findphone полезен, но его нельзя воспринимать как замену Find My:
- он не может заставить телефон звонить;
- он не показывает направление, только косвенную силу сигнала;
- устройство должно быть включено, иметь активный Bluetooth и находиться в пределах досягаемости;
- в помещении радиус может быть около 10-20 метров, но стены и металл резко уменьшают дистанцию;
- для терминала, из которого запускается утилита, нужно разрешение Bluetooth в System Settings > Privacy & Security > Bluetooth;
- в репозитории на момент обзора не указана отдельная лицензия.
Резюме
findphone - узкий, но очень практичный инструмент для macOS: он превращает терминал в Bluetooth-индикатор близости. Сильная сторона проекта - честное отношение к ограничениям RSSI: утилита не обещает невозможного, но даёт достаточно данных, чтобы методично обойти комнату и найти устройство по усилению сигнала. Особенно полезны режим обзора, поиск по имени, звуковые щелчки и приватный вывод для демонстраций.
