ben-z/findphone
Swift0 / 0
RSSI를 이용해 macOS 터미널에서 가까운 Bluetooth 기기를 찾아주는 Swift 기반 CLI 도구
TL;DR
findphone은 macOS용 단독 커맨드라인 도구로 주변 Bluetooth 기기를 RSSI 기반으로 찾아주는 유틸리티입니다. 릴리스에 universal binary가 제공되며 Swift로 빌드할 수 있고 의존성이 없어 설치가 간단합니다. 세 가지 신호원(GATT, BLE 광고, system_profiler의 Classic RSSI)을 우선순위로 결합해 읽기를 산출하고, --sound로 청각 피드백을 받을 수 있어 방을 걸으며 탐색하기에 적합합니다. macOS 13 이상과 터미널의 Bluetooth 권한이 필요하며 기기 벨 울림이나 방향 추정은 불가능하다는 제한이 분명히 문서화되어 있습니다.
핵심 포인트
- 이 레포는 macOS 명령행에서 주변 Bluetooth 기기를 RSSI 신호 세기로 찾아내는 독립 실행형 CLI 도구입니다. 릴리스에서 제공하는 universal binary를 바로 실행하거나 Swift로 빌드해 ~/bin에 설치할 수 있으며 의존성이 없어 간단히 배포 가능합니다. 스타 827, 포크 134로 어느 정도 사용자 관심이 있는 오픈소스 프로젝트입니다.
- 거리 판정은 세 가지 소스(GATT link, BLE advertisements, Classic link RSSI)를 합쳐 하나의 읽기를 만듭니다. GATT 연결에서 readRSSI()가 초당 약 3회로 가장 신뢰할 수 있고, BLE 광고는 주소 회전과 간헐적 이름 포함 때문에 드문편이며, Classic 값은 system_profiler에서 가져오되 macOS가 3~12초 주기로 캐시된 값을 반환하므로 도구는 값이 실제로 바뀔 때만 카운트하도록 설계되어 있습니다. 문서에 따르면 0.4s 폴링으로 112회 측정 실험에서 동일 값이 8~31회 연속 반복되는 현상이 관찰되어 이 카운팅 방식이 실측 기반의 정직한 집계라는 근거를 제공합니다.
- 사용자 편의 기능으로 survey 모드와 특정 기기 추적(hunt) 모드, --list, --sound, --redact 같은 옵션을 제공합니다. --sound는 거리 가까워짐에 따라 클릭 빈도가 빨라지고 약 -50 dBm 부근에서는 연속적인 버즈로 전환되어 귀로 방을 훑는 탐색이 가능하고, --redact는 화면 녹화 시 주소와 일부 이름을 마스킹해 개인정보 노출을 줄입니다. 이러한 기능들은 시각 대신 청각 피드백이나 녹화 안전성 등 실제 현장 탐색 워크플로우에서 유용하도록 설계되어 있습니다.
- 권한과 제약이 분명히 문서화되어 있으며 macOS 13 이상이 요구됩니다. 터미널의 Bluetooth 권한이 필요하고 Find My를 대신해 벨을 울리거나 방향(베어링)을 제공하지 못하며, 실내 기준 대략 10~20m 범위 내에서만 동작합니다. 바이너리는 서명되지 않아 macOS에서 quarantine이 걸리므로 xattr로 격리를 해제해야 한다는 설치 주의가 있습니다.
827
Stars
134
Forks
+209
Trending
0
조회수
827 watchers10 open issues
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.