Added get-privapp-permissions command

Usage: cmd package get-privapp-permissions PACKAGE
Returns whitelisted signature|privileged permissions that specified
privileged app can use.

Test: Manual
Bug: 31008485
Change-Id: I3d9944390b011d4b56f110d1e57400241d36f371
This commit is contained in:
Fyodor Kupolov
2016-12-01 11:34:10 -08:00
parent 325fa50d8d
commit 51245c74f4

View File

@@ -51,9 +51,11 @@ import android.os.ShellCommand;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.PrintWriterPrinter;
import com.android.internal.content.PackageHelper;
import com.android.internal.util.SizedInputStream;
import com.android.server.SystemConfig;
import dalvik.system.DexFile;
@@ -135,6 +137,8 @@ class PackageManagerShellCommand extends ShellCommand {
return runSuspend(false);
case "set-home-activity":
return runSetHomeActivity();
case "get-privapp-permissions":
return runGetPrivappPermissions();
default:
return handleDefaultCommands(cmd);
}
@@ -1164,6 +1168,18 @@ class PackageManagerShellCommand extends ShellCommand {
}
}
private int runGetPrivappPermissions() {
final String pkg = getNextArg();
if (pkg == null) {
System.err.println("Error: no package specified.");
return 1;
}
ArraySet<String> privAppPermissions = SystemConfig.getInstance().getPrivAppPermissions(pkg);
getOutPrintWriter().println(privAppPermissions == null
? "{}" : privAppPermissions.toString());
return 0;
}
private static String checkAbiArgument(String abi) {
if (TextUtils.isEmpty(abi)) {
throw new IllegalArgumentException("Missing ABI argument");