AI 通话静音

去掉小爱 / AI 助理自动接听的电话在挂断时的那一声「嘟」和那一下震动。

HyperOS / MIUI 上,「对方挂断」时 Telecom 会在通话流上放一声提示音并震一下,静音模式和勿扰都拦不住。 小爱帮你接的电话里对方总是先挂,所以这个声音几乎必然出现。本模块只对「AI 接听」的通话生效,自己接的电话行为不变。

  • 源码 / 详细说明:clansty/com.clansty.telecomaimute
  • 要求:KernelSU / Magisk + Zygisk + LSPosed 2.x(libxposed API 101/102)
  • 作用域:系统框架(已静态声明,装完只需启用)

安装

  1. 下载 release 里的 apk 安装(命令行安装请用 adb install --no-incremental,否则 LSPosed 读不到模块 APK)
  2. 在 LSPosed 里启用「AI 通话静音」
  3. 重启

原理

  • 声音:CallAudioManager.playToneForDisconnectedCall() → InCallTonePlayer(toneId=2) → ToneGenerator(TONE_PROP_PROMPT),走 VOICE_CALL 流
  • 震动:MiuiRinger.onCallStateChanged() → vibrateWhenConnectOrDisconnect() → HapticCompat.performExtHapticFeedback(206)
  • 两者都只在「对方挂断」(DisconnectCause.Code == REMOTE)时触发;用 acceptRingingCallInternal 的调用方包名(com.miui.voiceassist)判断是否为 AI 接听

License

MIT

Releases

1.0

Stable

10/29/2026, 3:29:27 PM

第一个版本。

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

Assets

1