如何通过ADB在Android工作配置文件中安装APK
解决ADB安装APK到Android Work Profile的权限异常问题
遇到Security exception: Shell does not have permission to access user <ID>这类错误,核心原因是默认ADB shell没有访问工作配置文件(Work Profile)用户上下文的权限。结合你的需求(替换调试版应用排查问题),以下是几种可行的解决方法:
1. 先激活工作用户再执行安装
首先确认工作用户的ID:
adb shell pm list users
输出里会显示类似UserInfo{12:Work profile:10}的条目,其中12就是目标工作用户的ID。
先让工作用户处于活跃状态:
adb shell am start-user 12
之后再执行安装命令:
adb install -r --user 12 app_name.apk
这个方法不需要root权限,是最优先尝试的方案。
2. 推送APK到设备后,在工作用户上下文执行本地安装
如果方法1无效,可以先把APK推送到设备的公共可访问目录:
adb push app_name.apk /sdcard/
接着进入ADB shell,切换到工作用户的上下文执行安装(需要设备已root):
adb shell # 切换到工作用户 su 12 # 执行覆盖安装 pm install -r /sdcard/app_name.apk # 退出用户上下文和shell exit exit
3. 单独开启工作Profile的USB调试权限
部分设备的Work Profile需要单独开启USB调试,而不是仅在主用户开启:
- 进入工作Profile的设置界面
- 找到「关于手机」,连续点击版本号激活开发者选项
- 进入开发者选项,开启「USB调试」权限
开启后再重新尝试安装命令,大概率能解决权限问题。
4. 先卸载工作Profile中的旧应用再重装
如果只是替换已安装的调试版应用,可以先卸载工作Profile里的旧版本:
adb uninstall --user 12 com.your.app.package
之后再执行安装命令,这种方式有时能绕过系统的权限校验逻辑。
内容的提问来源于stack exchange,提问作者Sumit Sahoo




