假设我们在Android设备中启用了工作资料(Android For Work)。有谁知道如何通过Work个人资料而非个人资料通过ADB安装APK。
我看过ADB文档,有一种获取用户ID的方法,但是使用相同的ID我无法安装APK。
要获取ID:adb shell pm list users
安装命令:adb install -r --user 12 app_name.apk
错误消息:
Performing Streamed Install
adb: failed to install app-prodDebug.apk: Security exception: Shell does not have permission to access user 12
com.android.server.am.ActivityManagerService.handleIncomingUser:22541 android.app.ActivityManager.handleIncomingUser:3989 com.android.server.pm.PackageManagerShellCommand.translateUserId:2434
java.lang.SecurityException: Shell does not have permission to access user 12
com.android.server.am.ActivityManagerService.handleIncomingUser:22541 android.app.ActivityManager.handleIncomingUser:3989 com.android.server.pm.PackageManagerShellComma
有什么办法可以解决这个问题?我的用例是替换启用了调试选项的应用程序,以便我可以解决工作档案中安装的特定应用程序发生的任何问题。
答案 0 :(得分:0)
adb push android.apk /data/local/tmp
adb shell pm install --user 12 /data/local/tmp/android.apk
答案 1 :(得分:0)
@jtmcodle的解决方案正常工作。
但是要查找用户ID,请使用以下命令
adb shell dumpsys user
在我的情况下,上述命令给出了以下输出
UserInfo{11:10100030} serialNo=11
所以我在命令下运行以使其工作
adb shell pm install --user 12 /data/local/tmp/android.apk
答案 2 :(得分:0)
如果接受的答案 (https://stackoverflow.com/a/59148545/1667216) 不起作用,请在运行这两个步骤之前尝试此操作:
dpm.clearUserRestriction(adminName,UserManager.DISALLOW_DEBUGGING_FEATURES