如何获取安卓设备所有可用secret codes(秘密代码)的完整列表
安卓设备可用暗码(Secret Codes)获取方案
首先明确:你提到的解析Manifest、识别广播接收器、ADB命令三种方式都可以实现暗码提取,核心逻辑是安卓标准暗码的底层实现依赖系统广播触发机制:当用户在拨号盘输入*#*#<暗码数字>#*#*时,系统会自动发送action为android.provider.Telephony.SECRET_CODE的广播,所有注册了对应广播接收器的应用会收到请求并启动对应页面。
方法1:ADB命令直接查询(无需Root,操作最简)
直接通过系统包管理服务的dump信息过滤所有注册了暗码广播的接收器,步骤如下:
- 确保设备已开启USB调试,连接电脑后执行命令:
adb shell dumpsys package receivers | grep -E "(SECRET_CODE|android:host)" - 返回结果中,
android:host=后面的数字就是对应暗码,同一条目附近的包名、接收器名就是该暗码对应的应用组件。 - 如果需要导出完整的接收器信息方便筛选,可以执行:
直接在导出的txt文件中搜索adb shell dumpsys package receivers > all_receivers.txtSECRET_CODE关键词即可。
方法2:解析APK的Manifest文件(无需Root,信息最准确)
如果ADB dump的信息不全,可直接提取目标应用的APK文件解析Manifest获取暗码:
- 第一步:获取目标应用的APK存储路径,以系统设置应用为例,命令为:
adb shell pm path com.android.settings - 第二步:导出APK文件到本地:
adb pull <上一步返回的APK路径> - 第三步:用AAPT或Apktool工具解析Manifest中的广播接收器配置,以AAPT为例:
aapt dump xmltree 导出的APK文件名 AndroidManifest.xml | grep -A 10 "SECRET_CODE" - 返回结果中
android:host对应的数值就是该应用注册的暗码。
方法3:Root设备后全量扫描
如果你的设备已经Root,可以直接读取所有已安装应用的Manifest文件批量扫描,也可以直接使用第三方暗码查看应用直接获取全量列表,效率更高。
注意事项
- 以上方法仅能获取遵循安卓标准
SECRET_CODE广播协议实现的暗码,部分厂商自定义的、直接内置在拨号盘应用逻辑中的暗码无法通过上述方法获取,需要反编译厂商的拨号盘APK才能提取。 - 部分暗码仅在特定条件下可触发,比如插入特定运营商SIM卡、开启开发者模式、拥有系统权限等,扫描到的暗码不一定全部可用。
内容的提问来源于stack exchange,提问作者Diego Contaldi
相关产品推荐
相关产品推荐

