summaryrefslogtreecommitdiff
path: root/cmds/dpm
diff options
context:
space:
mode:
authorMakoto Onuki <omakoto@google.com>2015-10-01 16:12:31 -0700
committerMakoto Onuki <omakoto@google.com>2015-10-05 16:05:15 -0700
commita52562ca9a4144cf30e6d5c6ffe856cc8e284464 (patch)
treed398614fa6a8ca4c441c62f63b99b4377ceccdc8 /cmds/dpm
parentdba232b97f0e145871da0a9668bb305ab7a37623 (diff)
setDeviceOwner() now requires a full component name.
Bug 20149907 Change-Id: I24e66159d1d966925aa3a494b1e2839b07cdafa2
Diffstat (limited to 'cmds/dpm')
-rw-r--r--cmds/dpm/src/com/android/commands/dpm/Dpm.java37
1 files changed, 21 insertions, 16 deletions
diff --git a/cmds/dpm/src/com/android/commands/dpm/Dpm.java b/cmds/dpm/src/com/android/commands/dpm/Dpm.java
index 214dc5d35a24..ea530094e691 100644
--- a/cmds/dpm/src/com/android/commands/dpm/Dpm.java
+++ b/cmds/dpm/src/com/android/commands/dpm/Dpm.java
@@ -44,6 +44,7 @@ public final class Dpm extends BaseCommand {
private IDevicePolicyManager mDevicePolicyManager;
private int mUserId = UserHandle.USER_SYSTEM;
+ private String mName = "";
private ComponentName mComponent = null;
@Override
@@ -52,8 +53,8 @@ public final class Dpm extends BaseCommand {
"usage: dpm [subcommand] [options]\n" +
"usage: dpm set-active-admin [ --user <USER_ID> ] <COMPONENT>\n" +
// STOPSHIP Finalize it
- "usage: dpm set-device-owner [ --user <USER_ID> *EXPERIMENTAL* ] <COMPONENT>\n" +
- "usage: dpm set-profile-owner [ --user <USER_ID> ] <COMPONENT>\n" +
+ "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" +
"\n" +
"dpm set-active-admin: Sets the given component as active admin" +
" for an existing user.\n" +
@@ -90,47 +91,51 @@ public final class Dpm extends BaseCommand {
}
}
- private void parseArgs(boolean canHaveUser) {
- String nextArg = nextArgRequired();
- if (canHaveUser && "--user".equals(nextArg)) {
- mUserId = parseInt(nextArgRequired());
- nextArg = nextArgRequired();
+ private void parseArgs(boolean canHaveUser, boolean canHaveName) {
+ String opt;
+ while ((opt = nextOption()) != null) {
+ if (canHaveUser && "--user".equals(opt)) {
+ mUserId = parseInt(nextArgRequired());
+ } else if (canHaveName && "--name".equals(opt)) {
+ mName = nextArgRequired();
+ } else {
+ throw new IllegalArgumentException("Unknown option: " + opt);
+ }
}
- mComponent = parseComponentName(nextArg);
+ mComponent = parseComponentName(nextArgRequired());
}
private void runSetActiveAdmin() throws RemoteException {
- parseArgs(true);
+ parseArgs(/*canHaveUser=*/ true, /*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(true);
+ parseArgs(/*canHaveUser=*/ true, /*canHaveName=*/ true);
mDevicePolicyManager.setActiveAdmin(mComponent, true /*refreshing*/, mUserId);
- String packageName = mComponent.getPackageName();
try {
- if (!mDevicePolicyManager.setDeviceOwner(packageName, null /*ownerName*/, mUserId)) {
+ if (!mDevicePolicyManager.setDeviceOwner(mComponent, mName, mUserId)) {
throw new RuntimeException(
- "Can't set package " + packageName + " as device owner.");
+ "Can't set package " + mComponent + " as device owner.");
}
} catch (Exception e) {
// Need to remove the admin that we just added.
mDevicePolicyManager.removeActiveAdmin(mComponent, UserHandle.USER_SYSTEM);
throw e;
}
- System.out.println("Success: Device owner set to package " + packageName);
+ System.out.println("Success: Device owner set to package " + mComponent);
System.out.println("Active admin set to component " + mComponent.toShortString());
}
private void runSetProfileOwner() throws RemoteException {
- parseArgs(true);
+ parseArgs(/*canHaveUser=*/ true, /*canHaveName=*/ true);
mDevicePolicyManager.setActiveAdmin(mComponent, true /*refreshing*/, mUserId);
try {
- if (!mDevicePolicyManager.setProfileOwner(mComponent, "" /*ownerName*/, mUserId)) {
+ if (!mDevicePolicyManager.setProfileOwner(mComponent, mName, mUserId)) {
throw new RuntimeException("Can't set component " + mComponent.toShortString() +
" as profile owner for user " + mUserId);
}