Merge "OMS: 'cmd overlay lookup': support --user" am: 5267d0e0d6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1601513 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I906257c415070a165bd91e6f51ab84aa51ce46b5
This commit is contained in:
@@ -114,7 +114,7 @@ final class OverlayManagerShellCommand extends ShellCommand {
|
||||
out.println(" 'lowest', change priority of PACKAGE to the lowest priority.");
|
||||
out.println(" If PARENT is the special keyword 'highest', change priority of");
|
||||
out.println(" PACKAGE to the highest priority.");
|
||||
out.println(" lookup [--verbose] PACKAGE-TO-LOAD PACKAGE:TYPE/NAME");
|
||||
out.println(" lookup [--user USER_ID] [--verbose] PACKAGE-TO-LOAD PACKAGE:TYPE/NAME");
|
||||
out.println(" Load a package and print the value of a given resource");
|
||||
out.println(" applying the current configuration and enabled overlays.");
|
||||
out.println(" For a more fine-grained alernative, use 'idmap2 lookup'.");
|
||||
@@ -274,7 +274,22 @@ final class OverlayManagerShellCommand extends ShellCommand {
|
||||
final PrintWriter out = getOutPrintWriter();
|
||||
final PrintWriter err = getErrPrintWriter();
|
||||
|
||||
final boolean verbose = "--verbose".equals(getNextOption());
|
||||
int userId = UserHandle.USER_SYSTEM;
|
||||
boolean verbose = false;
|
||||
String opt;
|
||||
while ((opt = getNextOption()) != null) {
|
||||
switch (opt) {
|
||||
case "--user":
|
||||
userId = UserHandle.parseUserArg(getNextArgRequired());
|
||||
break;
|
||||
case "--verbose":
|
||||
verbose = true;
|
||||
break;
|
||||
default:
|
||||
err.println("Error: Unknown option: " + opt);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
final String packageToLoad = getNextArgRequired();
|
||||
|
||||
@@ -286,17 +301,15 @@ final class OverlayManagerShellCommand extends ShellCommand {
|
||||
return 1;
|
||||
}
|
||||
|
||||
final PackageManager pm = mContext.getPackageManager();
|
||||
if (pm == null) {
|
||||
err.println("Error: failed to get package manager");
|
||||
return 1;
|
||||
}
|
||||
|
||||
final Resources res;
|
||||
try {
|
||||
res = pm.getResourcesForApplication(packageToLoad);
|
||||
res = mContext
|
||||
.createContextAsUser(UserHandle.of(userId), /* flags */ 0)
|
||||
.getPackageManager()
|
||||
.getResourcesForApplication(packageToLoad);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
err.println("Error: failed to get resources for package " + packageToLoad);
|
||||
err.println(String.format("Error: failed to get resources for package %s for user %d",
|
||||
packageToLoad, userId));
|
||||
return 1;
|
||||
}
|
||||
final AssetManager assets = res.getAssets();
|
||||
|
||||
Reference in New Issue
Block a user