Repository navigation
第一个版本。
HyperOS / MIUI 上,小爱 / AI 助理自动接听的电话被对方挂断时,Telecom 会在通话流上放一声「嘟」并震一下 —— 静音和勿扰都拦不住。这个模块把这两下干掉,且只对 AI 接听的通话生效,自己接的电话行为不变。
原理
- 声音:
CallAudioManager.playToneForDisconnectedCall()→InCallTonePlayer(toneId=2)→ToneGenerator(TONE_PROP_PROMPT),走 VOICE_CALL 流(所以静音/勿扰无效) - 震动:
MiuiRinger.onCallStateChanged()→vibrateWhenConnectOrDisconnect()→HapticCompat.performExtHapticFeedback(206) - 两者都只在「对方挂断」(
DisconnectCause.Code == REMOTE)时触发,自己挂断本来就没有 - 用
TelecomServiceImpl.acceptRingingCallInternal()的调用方包名(com.miui.voiceassist)判断是不是 AI 接听
细节和排查记录见 README。
安装
adb install --no-incremental telecom-ai-call-mute-v1.0.0.apk
--no-incremental不能省:adb install走 Incremental Install 时 APK 是 incfs 按需喂页的,LSPosed 守护进程打不开它(Failure to parse package archive),模块等于不存在,而且不会报错。
然后在 LSPosed 里启用「AI 通话静音」→ 重启。作用域已静态声明为「系统框架」,不需要手动勾选。
要求
- KernelSU / Magisk + Zygisk + LSPosed 2.x(libxposed API 101/102)
- 测试环境:Xiaomi 17(2509FPN0BC)/ HyperOS 4.0.4.0 / Android 17