From 719a6320a789e76566d6416d5ec35491d21f5c44 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 30 Apr 2012 13:46:54 -0700 Subject: [PATCH] Change permission enforcement through pm command. Add "set-permission-enforced", which can currently only mutate enforcement of READ_EXTERNAL_STORAGE. Bug: 6363043 Change-Id: I3f7929738c8c36b0a54fbf171c03fe16c09b5d99 --- cmds/pm/src/com/android/commands/pm/Pm.java | 33 +++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java index 4d638d00f0257..e19ad6606b2bb 100644 --- a/cmds/pm/src/com/android/commands/pm/Pm.java +++ b/cmds/pm/src/com/android/commands/pm/Pm.java @@ -136,6 +136,11 @@ public final class Pm { return; } + if ("set-permission-enforced".equals(op)) { + runSetPermissionEnforced(); + return; + } + if ("set-install-location".equals(op)) { runSetInstallLocation(); return; @@ -1114,6 +1119,33 @@ public final class Pm { } } + private void runSetPermissionEnforced() { + final String permission = nextArg(); + if (permission == null) { + System.err.println("Error: no permission specified"); + showUsage(); + return; + } + final String enforcedRaw = nextArg(); + if (enforcedRaw == null) { + System.err.println("Error: no enforcement specified"); + showUsage(); + return; + } + final boolean enforced = Boolean.parseBoolean(enforcedRaw); + try { + mPm.setPermissionEnforced(permission, enforced); + } catch (RemoteException e) { + System.err.println(e.toString()); + System.err.println(PM_NOT_RUNNING_ERR); + } catch (IllegalArgumentException e) { + System.err.println("Bad argument: " + e.toString()); + showUsage(); + } catch (SecurityException e) { + System.err.println("Operation not allowed: " + e.toString()); + } + } + /** * Displays the package file for a package. * @param pckg @@ -1214,6 +1246,7 @@ public final class Pm { System.err.println(" pm revoke PACKAGE PERMISSION"); System.err.println(" pm set-install-location [0/auto] [1/internal] [2/external]"); System.err.println(" pm get-install-location"); + System.err.println(" pm set-permission-enforced PERMISSION [true|false]"); System.err.println(" pm create-user USER_NAME"); System.err.println(" pm remove-user USER_ID"); System.err.println("");