通过Android中的ADB在工作资料中安装APK

时间:2019-07-09 11:34:47

标签: android adb android-for-work

假设我们在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

有什么办法可以解决这个问题?我的用例是替换启用了调试选项的应用程序,以便我可以解决工作档案中安装的特定应用程序发生的任何问题。

3 个答案:

答案 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