
统一日志是iOS设备的核心组件,能够持续捕获日志信息而无需用户知晓。通常这些日志用于协助诊断问题和错误,因此日志内容极其详细但保存时间较短。
最近在日志中发现了一个标记为"Doppler"的有趣项目。虽然多普勒效应很可能与此相关,但下文将统一称之为"口袋状态传感器"。
iPhone多年来一直配备接近传感器 - 在通话时将手机靠近或远离脸部即可观察到这一功能。但在配备FaceID的设备上,这个传感器似乎有了不同的用途。
你是否注意到,当你拿起iPhone并指向脸部时,它会自动解锁?这就是口袋状态/多普勒功能在发挥作用。
统一日志中记录了"FrontIR: Doppler"条目,并引用了"口袋状态"或"口袋状态清除"的状态。这与iPhone X及以上型号前置的红外摄像头相关,该摄像头用于面部扫描。
红外摄像头位于"刘海"左侧,通过某些相机可以看到其在操作时闪烁。值得注意的是,该摄像头不会持续扫描,只在特定情况下进行扫描。
通过能够显示红外光的设备观察IR摄像头在不同刺激下的反应。(本质上,使用Google Pixel相机观察iPhone)
为说明目的,以下图像展示了IR摄像头的反应情况:
动作 | 设备图像 | 描述 |
|---|---|---|
休眠 | 无图像 | 无刺激,屏幕关闭,无IR活动 |
触摸屏幕 | 无图像 | 触摸侧边按钮,抬起唤醒,屏幕亮起,IR闪烁 |
来电 | 无图像 | 屏幕亮起,IR闪烁 |
通知 | 无图像 | 屏幕亮起,IR闪烁 |
休眠覆盖IR | 无图像 | 屏幕关闭,未知IR活动 |
触摸屏幕覆盖IR | 无图像 | 屏幕微亮,未知IR活动 |
测试事件的时间安排如下:
统一日志在Mac上使用默认日志存档查看器生成和查看。测试期间共创建了1058条记录,可按时间分组:
抬起唤醒是iOS功能之一,可以导致背光亮起并触发Doppler功能,该功能检测用户何时拿起设备。
此功能记录在com.apple.springboard.plist中,位于private\var\mobile\Library\Preferences路径。特定节点称为SBSupportLiftToWake,值为True或False。
通过旋转、掉落和拿起处于锁定状态的设备,同时观察背光激活情况,对抬起唤醒和一般移动进行了测试。测试过程参考了下图描述的X、Y和Z轴:
测试结果如下:
如上表所示,唯一可靠导致背光亮起和Doppler功能触发的是设备在Y轴上向前旋转的动作。
当iOS认为用户可能尝试解锁设备时,就会调用FrontIR Doppler功能。这由设备屏幕被触摸、侧边按钮被按下、抬起唤醒或接到来电触发。虽然来自短信的通知触发了IR光闪烁,但没有记录被写入日志。
从测试来看,这似乎是一个可靠的记录。即当记录存在时,它似乎是显示设备IR摄像头是否被遮挡的可靠方法。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。