零联网、零采集、纯被动扫描:Nearby Glasses隐私政策背后的硬核设计揭秘
【免费下载链接】yj_nearbyglassesattempting to detect smart glasses nearby and warn you项目地址: https://gitcode.com/gh_mirrors/yj/yj_nearbyglasses
Nearby Glasses 是一款开源的智能眼镜探测 App:它通过被动扫描蓝牙低功耗(BLE)广播信号,在你身边出现 Meta Ray-Ban 等带摄像头眼镜时发出警告。本文基于官方隐私政策与源码,带你逐一验证它的"零联网、零采集、纯被动扫描"承诺是如何在工程层面落地的。
一、先看承诺:隐私政策里的"六个不"
App 的隐私政策(见 PRIVACY.md)开宗明义,列出了一组非常罕见的"六不原则":
- 不采集任何个人数据(No personal data collected)
- 不自动向服务器传输数据
- 不使用互联网连接
- 不含广告
- 不使用追踪或分析服务
- 不向第三方传递数据
没有注册、没有登录、没有用户画像——这一整条数据链路被从设计源头直接砍掉了。🔒
二、硬核设计一:蓝牙权限"最小化 + 声明式免责"
普通用户常看到蓝牙扫描就紧张。其实 Nearby Glasses 在 Android 清单文件里做了两层"自证清白"的设计,见 AndroidManifest.xml:
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />这个neverForLocation标志是关键:它在系统层面声明蓝牙扫描结果不会被用于定位。此外,清单中还申请了位置权限,那只是为了兼容 Android 10–11 对 BLE 扫描的系统要求(AndroidManifest.xml),App 本身并不使用位置信息。
再配合 PRIVACY.md 第 7 节的明文承诺:不建立主动蓝牙连接、不配对、不向任何设备发送数据。扫描器代码里也确实只调用了系统广播监听的被动接口(见 BluetoothScanner.kt),从不发起connect类调用。
三、硬核设计二:日志里只有 4 类"去标识化"信号
很多 App 的日志藏着用户数据,而 Nearby Glasses 的检测事件模型(DetectionEvent.kt)中记录的信息被严格限制为:
| 记录字段 | 含义 | 是否敏感 |
|---|---|---|
| 时间戳 | 扫描发生的时间 | 否 |
| RSSI 信号强度 | 信号强度(dBm) | 否 |
| 设备名 | 眼镜自己广播的名称(如有) | 否 |
| 厂商编号 | BLE 广播帧中的 Company ID | 否 |
这些信息来自蓝牙公开广播帧(BLE ADV),与你的手机和你是谁完全无关。政策第 4.2 节特别列出了"绝不记录"清单:姓名、邮箱、电话、位置、设备标识、IP 地址、广告 ID、通讯录、媒体文件,一项都没有。
四、硬核设计三:数据不出设备,删除只需一按
"零联网"不是一句口号,而是架构约束:
- 无网络功能:整个 APK 不依赖任何 Google Services 或 Firebase 组件(见 README.md 的构建说明),也没有任何网络权限请求;
- 本地生命周期绑定:所有数据仅存在于手机本地,卸载 App 即自动清除;
- 一键清空:App 内置删除功能,可立即清掉当前存储的扫描数据;
- 唯一的"出口"是你手动点的分享:导出日志生成 txt 文本文件,由你选择通过邮件或即时通讯发送,App 不替你转发。
换句话说,就算把手机交给陌生人检查流量记录,你也看不到任何数据外传——因为根本没有网络调用。
五、纯被动扫描原理:30 秒看懂它如何"只看不碰"
BLE 设备(如智能眼镜)会周期性向外"喊"自己的广播帧,就像戴着扩音器报门牌。Nearby Glasses 做的事就是竖着耳朵听,而不是走上前去敲门:
- 手机开启 BLE 被动监听,接收周围设备的广播帧;
- 从广播帧中提取厂商 Company ID(如 Meta 的
0x01AB/0x058E、Snap 的0x03C2,清单见 smart_glasses_identifiers.csv); - 同时匹配设备名(如
ray-ban、HeyCyan)和固定服务 UUID,多路佐证; - 只有信号强度(RSSI)超过阈值(默认 -75 dBm,约 10 米内)才触发警告。
全程无连接、无握手、无任何上行报文——这就是"纯被动"的技术含义。📡
六、自己动手验证:源码审计路线图
开源项目最大的诚意是"可验证"。如果你是新手,可按这条路线快速自检(约 20 分钟):
- 读 PRIVACY.md:通读政策全文,对照本文各节承诺;
- 查权限:打开 Android/app/src/main/AndroidManifest.xml,确认没有
INTERNET、ACCESS_NETWORK_STATE等网络权限; - 查数据模型:看 DetectionEvent.kt 里只有信号相关字段;
- 查扫描逻辑:浏览 BluetoothScanner.kt 的回调实现,确认只读广播结果;
- iOS 端可对照 iOS/ 目录中的
BLEScanner.swift与ScannerStore.swift,逻辑一致。
七、写在最后
Nearby Glasses 展示了隐私设计的另一种思路:不是"尽量少收集",而是"技术上根本不具备收集能力"。零联网、零采集、纯被动扫描,这三者叠加后,隐私政策不再是法务话术,而是一份可以逐行对照源码验收的工程清单。
当然也要提醒:App 检测的是蓝牙广播特征,存在误报可能(例如 VR 头显同厂商设备)。作者也反复强调——切勿因一次警告就冲动行事(详见 MAINTENANCE.md 与 README.md 的免责声明)。先核实,再行动。
【免费下载链接】yj_nearbyglassesattempting to detect smart glasses nearby and warn you项目地址: https://gitcode.com/gh_mirrors/yj/yj_nearbyglasses
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考