diff options
| author | 2015-12-07 18:38:04 +0000 | |
|---|---|---|
| committer | 2015-12-07 18:38:04 +0000 | |
| commit | a9d492d7ff28535b4e44da43aed850a4d306cbcd (patch) | |
| tree | 3672c8d45f1cb210a3c7375ef4f4cbc8f7879ce6 | |
| parent | 21d4b20f23c7fc7d88671375aea3c63d62780a10 (diff) | |
| parent | 6bccb76a64ba74c2e0267db1d2ec14a4ffa96771 (diff) | |
Merge "Allow --user current in dpm command"
| -rw-r--r-- | cmds/dpm/src/com/android/commands/dpm/Dpm.java | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/cmds/dpm/src/com/android/commands/dpm/Dpm.java b/cmds/dpm/src/com/android/commands/dpm/Dpm.java index ea530094e691..6dc3cd1d48e0 100644 --- a/cmds/dpm/src/com/android/commands/dpm/Dpm.java +++ b/cmds/dpm/src/com/android/commands/dpm/Dpm.java @@ -16,6 +16,8 @@ package com.android.commands.dpm; +import android.app.ActivityManagerNative; +import android.app.IActivityManager; import android.app.admin.IDevicePolicyManager; import android.content.ComponentName; import android.content.Context; @@ -51,19 +53,21 @@ public final class Dpm extends BaseCommand { public void onShowUsage(PrintStream out) { out.println( "usage: dpm [subcommand] [options]\n" + - "usage: dpm set-active-admin [ --user <USER_ID> ] <COMPONENT>\n" + + "usage: dpm set-active-admin [ --user <USER_ID> | current ] <COMPONENT>\n" + // STOPSHIP Finalize it - "usage: dpm set-device-owner [ --user <USER_ID> *EXPERIMENTAL* ] [ --name <NAME> ] <COMPONENT>\n" + - "usage: dpm set-profile-owner [ --user <USER_ID> ] [ --name <NAME> ] <COMPONENT>\n" + + "usage: dpm set-device-owner [ --user <USER_ID> | current *EXPERIMENTAL* ] " + + "[ --name <NAME> ] <COMPONENT>\n" + + "usage: dpm set-profile-owner [ --user <USER_ID> | current ] [ --name <NAME> ] " + + "<COMPONENT>\n" + "\n" + "dpm set-active-admin: Sets the given component as active admin" + " for an existing user.\n" + "\n" + - "dpm set-device-owner: Sets the given component as active admin, and its\n" + - " package as device owner.\n" + + "dpm set-device-owner: Sets the given component as active admin, and its" + + " package as device owner.\n" + "\n" + "dpm set-profile-owner: Sets the given component as active admin and profile" + - " owner for an existing user.\n"); + " owner for an existing user.\n"); } @Override @@ -91,11 +95,24 @@ public final class Dpm extends BaseCommand { } } - private void parseArgs(boolean canHaveUser, boolean canHaveName) { + private void parseArgs(boolean canHaveName) { String opt; while ((opt = nextOption()) != null) { - if (canHaveUser && "--user".equals(opt)) { - mUserId = parseInt(nextArgRequired()); + if ("--user".equals(opt)) { + String arg = nextArgRequired(); + if ("current".equals(arg) || "cur".equals(arg)) { + mUserId = UserHandle.USER_CURRENT; + } else { + mUserId = parseInt(arg); + } + if (mUserId == UserHandle.USER_CURRENT) { + IActivityManager activityManager = ActivityManagerNative.getDefault(); + try { + mUserId = activityManager.getCurrentUser().id; + } catch (RemoteException e) { + e.rethrowAsRuntimeException(); + } + } } else if (canHaveName && "--name".equals(opt)) { mName = nextArgRequired(); } else { @@ -106,14 +123,14 @@ public final class Dpm extends BaseCommand { } private void runSetActiveAdmin() throws RemoteException { - parseArgs(/*canHaveUser=*/ true, /*canHaveName=*/ false); + parseArgs(/*canHaveName=*/ false); mDevicePolicyManager.setActiveAdmin(mComponent, true /*refreshing*/, mUserId); System.out.println("Success: Active admin set to component " + mComponent.toShortString()); } private void runSetDeviceOwner() throws RemoteException { - parseArgs(/*canHaveUser=*/ true, /*canHaveName=*/ true); + parseArgs(/*canHaveName=*/ true); mDevicePolicyManager.setActiveAdmin(mComponent, true /*refreshing*/, mUserId); try { @@ -131,7 +148,7 @@ public final class Dpm extends BaseCommand { } private void runSetProfileOwner() throws RemoteException { - parseArgs(/*canHaveUser=*/ true, /*canHaveName=*/ true); + parseArgs(/*canHaveName=*/ true); mDevicePolicyManager.setActiveAdmin(mComponent, true /*refreshing*/, mUserId); try { |