You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android如何伪造来电?终端广播命令无响应问题求助

Android伪造原生来电的解决方法

Root设备方案(可触发系统原生来电界面)

方法1:调用Telephony Service命令

系统的phone服务提供了直接触发来电的底层接口,通过service call命令调用即可。不同Android版本的方法编号有差异,以下是常见版本的可用命令:

  • Android 8.0-10.0:
    service call phone 5 s16 "1111111111"
    
  • Android 11+:
    service call phone 7 s16 "1111111111"
    

注:如果命令无效,可查找对应Android版本的ITelephony.aidl文件,找到showCallScreenWithDialer方法的序号,替换命令中的数字即可。

方法2:发送系统级定向广播

普通广播无法被系统电话应用接收,必须指定系统用户(--user 0)和目标电话应用包名,命令格式如下:

am broadcast -a android.intent.action.PHONE_STATE --es state "RINGING" --es incoming_number "1111111111" --user 0 -n *你的设备电话应用包名*/*广播接收器类名*
  • 常见设备电话应用包名参考:
    • 原生Android:com.android.phone
    • 小米/Redmi:com.android.incallui
    • 华为:com.huawei.phone
  • 若不确定包名,可通过以下命令查看默认电话应用:
    dumpsys telecom | grep "Default dialer"
    

非Root设备方案(无法触发系统原生来电)

Android系统的权限机制限制了普通应用调用系统电话服务,只能通过自定义应用实现模拟来电:

  1. 开发一个Android应用,注册自定义广播接收器
  2. 编写全屏Activity模拟来电界面(显示号码、接听/挂断按钮)
  3. 通过终端发送自定义广播触发模拟界面:
    am broadcast -a com.your.package.CUSTOM_INCOMING_CALL --es number "1111111111"
    

原命令无效的原因

android.intent.action.PHONE_STATE是系统专属广播,普通用户发送的该广播会被系统电话应用因安全策略忽略;同时原命令未指定系统用户和目标应用,导致广播无法被有效接收。

内容的提问来源于stack exchange,提问作者Rachit Dhakal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:13:25