Merge "OMS: 'cmd overlay lookup': support --user" am: 5267d0e0d6 am: d64094cf30

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1601513

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie2961b4276f4f6cc4095a15b9159912ee5c571f4
This commit is contained in:
Ryan Mitchell
2021-03-09 20:19:20 +00:00
committed by Automerger Merge Worker

View File

@@ -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();