如何通过adb shell运行MIUI11系统上的克隆应用(以TelegramX为例)
如何通过ADB Shell启动MIUI双开的应用(以TelegramX为例)
我之前也碰到过MIUI双开应用用ADB启动的困扰,刚好可以给你梳理下解决思路和具体操作:
先搞懂MIUI双开的底层逻辑
MIUI的应用双开是基于Android的多用户隔离机制实现的——克隆的应用其实是运行在一个独立的辅助用户(比如你看到的user/999)空间里,而默认的ADB命令都是在主用户(user/0)环境下执行的,所以直接用monkey -p org.thunderdog.challegram 1只会启动主用户下的原应用,也看不到克隆应用的包信息。
具体操作步骤
1. 确认克隆应用所在的用户ID
你已经通过目录发现是999,也可以用命令确认所有系统用户:
adb shell pm list users
输出会类似:
Users:
0:Primary(active)
999:Work profile(active)
这里的999就是双开应用所在的用户ID(不同设备可能是10、998等,以实际输出为准)。
2. 指定用户启动克隆应用
有两种常用方法:
方法一:用Monkey命令指定用户
先确保目标用户处于活跃状态,再执行带用户参数的Monkey命令:
# 激活目标用户(如果未激活的话) adb shell am start-user 999 # 指定用户999启动克隆应用 adb shell --user 999 monkey -p org.thunderdog.challegram 1
方法二:用am start直接启动主Activity(更精准)
Monkey有时候可能会启动非主页面,用am start指定主Activity更可靠:
adb shell am start --user 999 -n org.thunderdog.challegram/.LauncherActivity
如果不知道TelegramX的主Activity名称,可以用以下命令查找:
# 在主用户下启动原应用后,执行此命令查看当前顶部Activity adb shell dumpsys activity top | grep "ACTIVITY"
或者直接查询包的主Activity信息:
adb shell dumpsys package org.thunderdog.challegram | grep -A 5 "main"
3. 查看克隆应用的包信息
默认的pm list packages只显示主用户的包,要查看指定用户的包,需要加--user参数:
adb shell pm list packages --user 999
这样就能看到克隆的org.thunderdog.challegram了。
注意事项
- 部分MIUI版本可能需要先解锁双开空间/工作资料,确保目标用户处于活跃状态,否则启动命令可能失效;
- 如果用户ID不是999,替换成你实际查到的编号即可。
内容的提问来源于stack exchange,提问作者idkwhattodo




