zeppos 2.1(小米手环7)关于调用麦克风的可行性分析
Zepp OS 固件逆向分析报告 (DA1470x 平台)
1. 样本概况
- 分析版本:2012 (旧版) 与 2101 (新版)
- 构建日期:
- 2012: 2023-01-16
- 2101: 2023-06-05
- 芯片平台:Dialog Semiconductor DA1470x (ARMv8-M, Cortex-M33)
- 系统架构:Zepp OS / HuamiOS
2. 核心证据:麦克风与音频功能
通过对固件二进制文件及资源的分析,确认该系统具备完整的麦克风录音与语音助手能力。
2.1 硬件与驱动证据
- 底层接口:在固件中发现了
PM_OFFLINEASR_MIC(离线语音识别麦克风) 和DMIC(数字麦克风) 的驱动标识。 - C++ 适配器:定位到核心类
RecorderAPPAdaptor,其负责管理音频采样率 (sample_rate) 和录音流程。 - 音频编码:系统支持 Opus 编码格式,支持 8000Hz 和 16000Hz 采样率。
2.2 资源与应用证据
- 内置应用:
zh-CN.btxt中明确定义了语音备忘录、Amazon Alexa和小爱同学。 - UI 资源:
resources/images/record目录下存在录音音轨、同步和删除图标;OnlineVAD/Alexa目录下存在完整的语音助手交互动画。 - 神经网络:
extfw/algo_it_network.bin被确认为语音识别相关的 AI 算法模型。
3. JSBridge API 接口
在 JS 运行时 (framework.bin 及 index.bin) 中,发现了以下关键 API 映射:
| 命名空间 | 功能 | 关键属性/方法 |
|---|---|---|
hmSensor |
传感器控制 | id.MIC (映射到底层 RecorderAPPAdaptor) |
hmApp |
应用管理 | startVoiceAssistant, setLayerScene |
hmFS |
文件系统 | 支持录音文件存取 (/data/ 目录) |
4. 权限与安全机制分析
4.1 权限拦截逻辑
系统使用 AppID 作为权限校验的核心。
- 校验函数:
bx_authorize_controller(位于0x40633e附近)。 - 白名单机制:系统内置应用(如 ID 15, 102)拥有特权。普通第三方应用(如 1000001)调用
hmSensor.id.MIC时,会触发authorizing for app id: %d逻辑。 - 拦截现象:若未通过授权,JSBridge 将返回
undefined或提示“授权失败”。
4.2 DIY 绕过思路
- AppID 伪装:尝试使用内置特权应用的 AppID,但需绕过安装时的签名校验。
- 固件 Patch:在 IDA 中定位
0x3a0cc8引用点,修改bx_authorize_controller的跳转指令,强制让check_permission返回True。 - 脚本注入:利用
update-script的 Root 权限,在刷机时修改系统权限数据库。
5. 关键地址索引 (IDA Reference)
- 语音字符串池:
0x413700 - 0x413B00 - Recorder 类名:
0x39D720 - 权限校验提示:
0x3A0CC8("authorizing for app id: %d") - 芯片寄存器基址:
0x50000000
报告生成日期:2026年4月24日
目前已有人实现通过本地反代小爱同学绕过实现
本文来自博客园,作者:meny,转载请注明原文链接:https://www.cnblogs.com/mmme/p/19925805

浙公网安备 33010602011771号