用 adb 直达手机「藏起来」的界面 —— 以重置 GAID 为例
适用场景:国产 ROM(MIUI 等)把 Google 相关入口藏掉了,设置里点不到,
但功能代码还在系统里。用 adb 按「组件名」直接开门。实战案例:小米 6(序列号 <序列号>,Magisk root)重置 GAID(Google 广告 ID)。
一、背景:为什么点不到,却能用 adb 打开
排查结论(本案例):
| 常规入口 | 状态 | 原因 |
|---|---|---|
| 设置 → 账号与同步 → 谷歌基础服务 | 无 | GMS 不是国行 ROM 预装方式装的 |
| 设置 → Google → 广告 | 无 | 同上,设置里没有 Google 条目 |
| 桌面「Google 设置」图标 | 无 | 系统里注册了 LAUNCHER,但 MIUI 桌面隐藏了 |
但 GMS 的界面代码全在,只是「入口」被藏。adb 不依赖入口,直接按组件名启动。
二、原理速览
- Android 里每个界面都是一个 Activity,注册在包的清单(AndroidManifest)里。
- 两条核心命令:
| 命令 | 作用 | 类比 |
|---|---|---|
adb shell dumpsys package <包名> | 打印包注册的所有组件清单 | 查大楼房间名册 |
adb shell am start -n 包名/Activity名 | 直接启动某个界面 | 叫前台直接开那间房 |
- 组件名 =
包名 + Activity 类全名,如com.google.android.gms/.adid.settings.AdsSettingsActivity
(.是包名的缩写,展开 =com.google.android.gms.adid.settings.AdsSettingsActivity)。
三、操作步骤(小米 6 重置 GAID 全流程)
0. 确认设备在线
adb devices
# 输出应包含目标序列号且状态为 device,例:<序列号> device
1. 查组件名(名册里搜关键词)
adb -s <序列号> shell "dumpsys package com.google.android.gms | grep -i ads"
关键结果行:
com.google.android.gms.settings.ADS_PRIVACY:
com.google.android.gms/.adid.settings.AdsSettingsActivity
ADS_PRIVACY 是系统定义的隐式意图(intent),处理它的就是广告设置页。
2. 拉起界面
adb -s <序列号> shell am start -n com.google.android.gms/.adid.settings.AdsSettingsActivity
手机屏幕弹出「广告」设置页。
3. 手机上点「重置广告 ID」
点按钮 → 弹窗确认。旧 GAID 作废,GMS 生成新随机值。
4. 验证新 GAID(需 root)
adb -s <序列号> shell "su -c 'cat /data/data/com.google.android.gms/shared_prefs/adid_settings.xml'"
关键字段:
| 字段 | 含义 |
|---|---|
adid_key | 当前 GAID(UUID 格式) |
enable_limit_ad_tracking | false=允许追踪;true=App 拿不到真实 ID |
adid_reset_count | 历史重置次数,每重置一次 +1 |
四、通用套路(适用于任何 App 的隐藏界面)
1. adb shell dumpsys package <包名> | grep -i <关键词>
2. 从结果里找到 Activity 完整组件名
3. adb shell am start -n <包名>/<Activity名>
找入口图标判断是否有桌面图标:
adb shell "dumpsys package <包名> | grep -B4 'category.LAUNCHER'"
五、常见坑
| 现象 | 原因 | 处理 |
|---|---|---|
Error type 3 ... does not exist | 组件名不对(版本差异) | 重新 dumpsys package 查名册 |
| 同样功能不同机器组件名不同 | App 版本不同,内部包结构变过(如 ads.settings → adid.settings) | 别背死名字,现场查 |
| 系统里注册了 LAUNCHER 但桌面没图标 | ROM 桌面隐藏 | 用 adb 拉,或装快捷方式工具固化 |
| GAID 文件读不到 | 无 root 权限 | su -c 或走 UI 重置 |
六、一劳永逸:QuickShortcutMaker 桌面图标
不想每次用电脑,就把界面固化成桌面图标:
- 手机装 QuickShortcutMaker(Play 商店搜 QuickShortcutMaker,或
adb install本地 APK) - 打开 App → 搜索
AdsSettings - 找到
com.google.android.gms.adid.settings.AdsSettingsActivity→ 点「创建」(Create) - 桌面出现直达图标,以后手机上点一下就是广告设置页

附录:GAID 重置三种方式对比
| 方式 | 前提 | 效果 | 备注 |
|---|---|---|---|
| UI 重置(本方案) | 无 | 随机换新值 | 官方行为,最干净 |
| root 改 adid_settings.xml | root | 可设指定值 | 先 am force-stop com.google.android.gms 再改,改完重启 GMS |
| 清除 Google Play 服务数据 | 无 | 随机换新 | 谷歌账号全部退出,代价大,不推荐 |
风控提示:GAID 应与整机环境(机型/指纹/代理 IP)配套一致才有意义,单改 ID 反而可能更显眼。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/students33/article/details/169747386




