Skip to content

Instantly share code, notes, and snippets.

@std-microblock
Last active November 6, 2026 07:55
Show Gist options
  • Select an option

  • Save std-microblock/c38cacab22bf0fffb94b247e09a4d948 to your computer and use it in GitHub Desktop.

Select an option

Save std-microblock/c38cacab22bf0fffb94b247e09a4d948 to your computer and use it in GitHub Desktop.
关于"小米反诈监控"传闻的技术核验

结论

传闻中"系统内置反诈数据库、记录截屏时间与通话、屏幕共享行为"这部分属实;"域名用途"部分与实际不符;"GuardProvider 静默录屏"在部分机型上属实;"关掉开关仍在运行""卸载 GuardProvider 无效"属实;"669 次连续读写""每台手机都在录"不成立。


一、功能名称与开关位置

传闻描述的行为属于手机管家中的"电诈防护",不是独立的后台程序。

开启路径:

手机管家 > 隐私与安全 > 安全 > 电诈防护 > 通话防护 > AI 通话预警

该页面由 com.miui.securitycenter 内的 com.miui.electricrisk 模块实现,各项开关对应的系统设置键如下:

页面项 设置键 控制的行为
AI 通话预警 ai_guard_function_switch、com.miui.guardprovider.AI_GUARD_PRIVACY_AGREEMENT 通话期间录音、录屏与 AI 判定
屏幕防护 screen_share_protection 屏幕共享时的提醒与拦截
短信防护 settings_sms_risk_warn_enable、settings_sms_code_clipboard_warn_enable 诈骗短信与验证码剪贴板提醒
电话防护 cloud_antispam、key_yellowpage_main_switch 来电标记与黄页识别

关闭 AI 通话预警需要等待 10 秒倒计时结束,确认后立即停止 AiGuardSceneService 与 com.miui.guardprovider/.aiguard.AiGuardService 两个服务,并清零隐私授权标记。


二、五个域名的实际用途

传闻列出的域名真实存在,用途与描述不符。

域名 传闻说法 实际用途
flash.sec.miui.com 安全中心多媒体/视频回传通道 安全中心通用接口:/user/ra 上传已安装应用的包名与版本做隐私风险检测;/gc/dir 拉取垃圾清理路径库
fraud-detection.engine.miui.com 反诈行为特征与哈希上报 NFC 门禁功能的配置下发接口,见下文
eps.caict.ac.cn/eps/collect 中国信通院统一反诈接口 紧急报警辅助:拨打 110、120 时上传本机号码、紧急号码、区号、通话时间与定位,具备独立开关与隐私政策
gateway-papa.cloud.weizhi.com/papa/upload 第三方风控网关 与上一条同属报警辅助通道,AES 加密上报
dm.wo.com.cn:18080 中国联通终端管理遥测 属实,仅存在于预置 com.mobiletools.systemhelper 的机型

fraud-detection.engine.miui.com 的真实用途

该域名在整个固件中只有一处调用,位于小米安全中心的 NFC 门禁模块 com.miui.nfcaccess:

GET https://fraud-detection.engine.miui.com/nfc/antifraud/config
    ?deviceModel=<Build.DEVICE>&appDataVersion=<本地配置版本号>

接口返回 ConfigData{ enable, blackList[], whiteList[], dataVersion },名单项的字段为 AppInfo{ packageName, sha256 },即应用包名与 APK 签名摘要。设备侧据此生成 AccessValue{ version, isEnable, allowedPkgs }。

该接口的作用是声明哪些应用可以使用 NFC 门禁卡模拟能力,路径中的 antifraud 指防止应用冒用,与通话反诈无关。上行字段只有机型代号与一个整数版本号,不包含 IMEI、账号、位置或号码。报文方向是下发配置。


三、录屏与录音的技术实现

录屏能力位于 GuardProvider 2.x,不在安全中心内。com.miui.guardprovider.aiguard.AiGuardService 运行在独立进程 :ai,声明 foregroundServiceType="microphone|mediaProjection",持有 CAPTURE_VIDEO_OUTPUT、MANAGE_MEDIA_PROJECTION、FOREGROUND_SERVICE_MEDIA_PROJECTION、CAPTURE_AUDIO_OUTPUT、CAPTURE_VOICE_COMMUNICATION_OUTPUT 等系统签名权限。

授权的取得方式

录屏不经过 Android 的屏幕捕获同意弹窗。l1/AbstractC1380d 通过反射取得 MediaProjectionManager 的私有字段 mService,直接调用隐藏方法 IMediaProjectionManager.createProjection(uid, packageName, 0, false),再将返回的 IMediaProjection 用隐藏构造器包装为 MediaProjection。该路径依赖 CAPTURE_VIDEO_OUTPUT 权限,普通应用无法持有。

录制参数

l1/C1377a 的配置为 setVideoSize(720, 1280)、setVideoFrameRate(24)、setVideoEncodingBitRate(1048576),输出到 cacheDir 下以 clip_ 为前缀的临时文件,虚拟显示使用整屏尺寸(getDisplayMetrics() 的宽高与 densityDpi)。录制的是整屏镜像,范围不限于通话窗口。

停止条件

  • 温度:注册 PowerManager.OnThermalStatusChangedListener,状态值大于等于 3(THERMAL_STATUS_SEVERE)时停止服务,日志为 Stop service caused by thermal。
  • 音频冲突:通过 AudioManager.AudioRecordingCallback 统计 getActiveRecordingConfigurations() 中 getClientAudioSource() == 4 的会话数,超过一个时停止录音,日志为 Audio recording stopped because of collision。

数据去向

检测请求经小米机密计算通道上传:

用途 接口
会话与证明 POST https://detection-aigc.engine.miui.com/pcc/attestation/token
视频判定 POST /aiVideo/pcc/detection
语音文本判定 POST /ai/audio/text/pcc/detection

客户端在 AndroidKeyStore 中生成 secp256r1 密钥对,与证明响应中的 secure_channel_session_public_key 完成密钥协商,业务数据使用 AES/GCM 加密。客户端校验证明响应的 JWT 签名、证书链、nonce 回显与 cluster_uuid,任一项失败则终止上传。

传闻提到的 clip.mp4 与 Base64 逻辑位于 aiguard/AlertActivity,触发条件是用户在诈骗提醒弹窗中点击"标记为误报"。该操作将 files/clip01.tmp 或 files/feedback01.tmp 以 fileBase64、audioPCM 字段提交,同样经过上述加密通道。日常检测不经过该路径。文件在使用后由 Files.delete() 删除。


四、行为画像库

数据库位于 /data/misc/user/0/securitycenter/fraud_detection_data.db,属主为 system,写入进程为 com.miui.securitycenter.remote(uid 1000)。表结构如下:

screenshot(_id, screenshort_time)
screen_share(_id, screen_share_package_name, start, end, is_active, duration)
voip_record(_id, voip_record_package_name, start, end, is_active, is_fraud_call, duration)
fraud_phone(_id, call_start_time, call_end_time, is_fraud_call, tel_location,
            tel_number_md5, operator, is_chinese_number, is_virtual_operator,
            is_active, duration)
install_app / fraud_url / call_forwarding / airplane_mode / shutdown / traffic

screenshot 表的列名拼写为 screenshort_time,与传闻一致。该表只有时间戳一列,不存储图像;screen_share 表只存储包名与起止时间;fraud_phone 表存储号码的 MD5、归属地、运营商与通话时长,不存储号码原文。

写入后统一执行清理:删除时间戳早于当前时间 72 小时的记录,代码常量为 259200000。设备 A 上实测到新增记录时旧记录同时被删除。

数据的用途

记录聚合为三类结构:当前状态(是否正在共享屏幕、通话、呼叫转移)、过去事件计数、时长分布。三者按云端下发的 score_config.json 加权计算风险分,出厂默认权重为:

事件 权重
风险应用 15
屏幕共享 10
诈骗号码通话 8
VoIP 诈骗通话、诈骗网址 7
呼叫转移、会议类应用、贷款类应用 6
金融类应用 3
飞行模式、可疑应用 1

风险分通过 MiSafetyDetectService 暴露给持有 com.xiaomi.security.permission.ACCESS_XSOF 的应用。设备 A 上持有该权限的应用包括小米钱包、支付宝、淘宝、京东、美团、小红书、抖音、高德、滴滴等,采集时 com.xingin.xhs 正绑定该服务。系统内的 PayActivityMonitorService 通过隐藏接口监听微信、支付宝、QQ 钱包的转账页面,页面打开时读取风险分并提示。


五、启用条件及运营商上报

AI 通话预警的入口受四道条件约束:设备支持通话、机型不在云控黑名单、云控开关 ai_guard_function_available 为 true、具备语音或视频能力。机型名单的默认值包含 marble,因此 Note 12 Turbo 的入口被隐藏,/data/data/com.miui.securitycenter/shared_prefs/ai_guard_function_cloud_data.xml 的值为 false;小米 17 的该值为 true。

com.mobiletools.systemhelper 是预置的运营商终端管理模块,上报地址为 http://dm.wo.com.cn:18080/register,字段包括 IMEI、ICCID、IMSI、MNC、网络制式、TAC、CID、PCI 与机型信息,另通过 UsageStatsManager.queryAndAggregateUsageStats() 采集应用前台时长,并使用 AlarmManager.setExactAndAllowWhileIdle() 按 24 小时、12 小时、1 小时周期唤醒上报。该模块申请并默认获得后台定位权限。


六、传闻中正确的部分

  1. 行为画像库没有用户开关。 上文"电诈防护"的各项开关控制提醒与 AI 判定,画像库的采集与开关状态无关。设备 A 在全部开关为关闭状态时,截屏时间仍照常写入。
  2. 录制范围是整屏。 虚拟显示的尺寸取自屏幕显示参数,通话期间屏幕上的其他内容同样进入画面。
  3. 音视频会离开设备。 视频片段与语音文本经加密通道上传至 detection-aigc.engine.miui.com 完成判定。加密保证传输链路与普通服务端无法读取内容,但判定环境内部仍需明文处理。

七、官方文档

《AI 通话预警隐私政策》v20260611 载明:

我们支持您在语音通话场景下使用本功能进行通话内容防诈检测,为检测通话内容,我们需要收集您的通话语音用于识别语音内容是否包含欺诈性语言,从而进行预警提示。

此外,我们还支持视频通话画面真实性检测,在您进行视频通话时,除上述通话语音内容外,我们还需要收集您视频通话的视频帧/视频片段用于识别视频内容是否疑似换脸仿冒身份,从而进行预警提示。

在您开启本功能后,我们会在您进行音视频通话时自动收集上述信息并进行检测。如您不希望我们收集以上信息,您可以通过手机管家 > 隐私与安全 > 安全 > 电诈防护 > 通话防护 > AI 通话预警关闭本功能。

《AI 通话预警第三方数据共享说明》v20240911 载明:内嵌小爱语音 SDK,共享信息为音频文件,用途为音频转文字,场景为用户进行通话时。

上述文档同时给出权限管理与撤回同意的路径。


八、自行核对的命令

# 行为画像库
adb shell su -c 'ls -l /data/misc/user/0/securitycenter/fraud_detection_data.db'
adb shell su -c 'cp /data/misc/user/0/securitycenter/fraud_detection_data.db /data/local/tmp/x.db; chmod 644 /data/local/tmp/x.db'
adb pull /data/local/tmp/x.db .

# AI 通话预警的机型与能力
adb shell getprop ro.product.device
adb shell su -c 'cat /data/data/com.miui.securitycenter/shared_prefs/ai_guard_function_cloud_data.xml'
adb shell dumpsys package com.miui.guardprovider | grep -E "versionName|CAPTURE_VIDEO_OUTPUT|MANAGE_MEDIA_PROJECTION"

# NFC 门禁配置接口的上行字段
adb shell settings get secure screen_share_protection
@keaidang

keaidang commented Nov 5, 2026

Copy link
Copy Markdown
  1. 「72 小时统一清理」不成立。 实测是按表、在插入时裁剪:

screenshot / fraud_phone / airplane_mode 这三张有持续写入的表,最老记录都刚好卡在 72 小时线附近(71.6h / 74h / 71.9h),确实在被裁。
但 screen_share 里 8 月 30 日的记录还在,call_forwarding 里 8 月 19 日的记录也还在——因为这两张表之后再没插入过新行,清理根本没跑过。
结论:不活跃的表里的数据是永久留存的,不是 72 小时自动消失。

  1. 风险分接口的权限发放,实测比报告写的范围更大。 本机服务名是 MiFraudDetectionService(报告写的 MiSafetyDetectService 是旧名),权限 com.xiaomi.security.permission.ACCESS_XSOF,实测持有者:

代码块

com.eg.android.AlipayGphone granted=true
com.taobao.taobao granted=true
com.jingdong.app.mall granted=true
com.sankuai.meituan granted=true
com.ss.android.ugc.aweme granted=true
com.autonavi.minimap granted=true
当前没有进程绑定这个服务(Client: nothing to dump),但权限是常驻的,随时可以连。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment