Merge "Dump package settings for shared users" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
30bdc20734
@@ -45,6 +45,7 @@ public final class DumpState {
|
||||
|
||||
public static final int OPTION_SHOW_FILTERS = 1 << 0;
|
||||
public static final int OPTION_DUMP_ALL_COMPONENTS = 1 << 1;
|
||||
public static final int OPTION_SKIP_PERMISSIONS = 1 << 2;
|
||||
|
||||
private int mTypes;
|
||||
|
||||
|
||||
@@ -21782,6 +21782,9 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
dumpState.setDump(DumpState.DUMP_PACKAGES);
|
||||
} else if ("s".equals(cmd) || "shared-users".equals(cmd)) {
|
||||
dumpState.setDump(DumpState.DUMP_SHARED_USERS);
|
||||
if (opti < args.length && "noperm".equals(args[opti])) {
|
||||
dumpState.setOptionEnabled(DumpState.OPTION_SKIP_PERMISSIONS);
|
||||
}
|
||||
} else if ("prov".equals(cmd) || "providers".equals(cmd)) {
|
||||
dumpState.setDump(DumpState.DUMP_PROVIDERS);
|
||||
} else if ("m".equals(cmd) || "messages".equals(cmd)) {
|
||||
|
||||
@@ -4922,27 +4922,43 @@ public final class Settings {
|
||||
pw.println("Shared users:");
|
||||
printedSomething = true;
|
||||
}
|
||||
|
||||
pw.print(" SharedUser [");
|
||||
pw.print(su.name);
|
||||
pw.print("] (");
|
||||
pw.print(Integer.toHexString(System.identityHashCode(su)));
|
||||
pw.println("):");
|
||||
pw.println("):");
|
||||
|
||||
String prefix = " ";
|
||||
pw.print(prefix); pw.print("userId="); pw.println(su.userId);
|
||||
|
||||
PermissionsState permissionsState = su.getPermissionsState();
|
||||
pw.print(prefix); pw.println("Packages");
|
||||
final int numPackages = su.packages.size();
|
||||
for (int i = 0; i < numPackages; i++) {
|
||||
final PackageSetting ps = su.packages.valueAt(i);
|
||||
if (ps != null) {
|
||||
pw.print(prefix + " "); pw.println(ps.toString());
|
||||
} else {
|
||||
pw.print(prefix + " "); pw.println("NULL?!");
|
||||
}
|
||||
}
|
||||
|
||||
if (dumpState.isOptionEnabled(DumpState.OPTION_SKIP_PERMISSIONS)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
final PermissionsState permissionsState = su.getPermissionsState();
|
||||
dumpInstallPermissionsLPr(pw, prefix, permissionNames, permissionsState);
|
||||
|
||||
for (int userId : UserManagerService.getInstance().getUserIds()) {
|
||||
final int[] gids = permissionsState.computeGids(userId);
|
||||
List<PermissionState> permissions = permissionsState
|
||||
.getRuntimePermissionStates(userId);
|
||||
final List<PermissionState> permissions =
|
||||
permissionsState.getRuntimePermissionStates(userId);
|
||||
if (!ArrayUtils.isEmpty(gids) || !permissions.isEmpty()) {
|
||||
pw.print(prefix); pw.print("User "); pw.print(userId); pw.println(": ");
|
||||
dumpGidsLPr(pw, prefix + " ", gids);
|
||||
dumpRuntimePermissionsLPr(pw, prefix + " ", permissionNames, permissions,
|
||||
packageName != null);
|
||||
dumpRuntimePermissionsLPr(pw, prefix + " ", permissionNames,
|
||||
permissions, packageName != null);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user