diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index ea0389f49a458..67e2bda84b74b 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -532,6 +532,7 @@ public class SystemConfig { Slog.w(TAG, "Couldn't find or open permissions file " + permFile); return; } + Slog.i(TAG, "Reading permissions from " + permFile); final boolean lowRam = ActivityManager.isLowRamDeviceStatic(); diff --git a/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java b/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java index 323c957acdd06..b73edaf6ecf14 100644 --- a/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java +++ b/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java @@ -109,13 +109,13 @@ class UserSystemPackageInstaller { *

Packages that are whitelisted, but then blacklisted so that they aren't to be installed on * any user, are purposefully still present in this list. */ - private final ArrayMap mWhitelitsedPackagesForUserTypes; + private final ArrayMap mWhitelistedPackagesForUserTypes; private final UserManagerService mUm; UserSystemPackageInstaller(UserManagerService ums) { mUm = ums; - mWhitelitsedPackagesForUserTypes = + mWhitelistedPackagesForUserTypes = determineWhitelistedPackagesForUserTypes(SystemConfig.getInstance()); } @@ -123,7 +123,7 @@ class UserSystemPackageInstaller { @VisibleForTesting UserSystemPackageInstaller(UserManagerService ums, ArrayMap whitelist) { mUm = ums; - mWhitelitsedPackagesForUserTypes = whitelist; + mWhitelistedPackagesForUserTypes = whitelist; } /** @@ -242,7 +242,7 @@ class UserSystemPackageInstaller { return (whitelistMode & USER_TYPE_PACKAGE_WHITELIST_MODE_IMPLICIT_WHITELIST) != 0; } - /** Gets the PackageWhitelistMode for use of {@link #mWhitelitsedPackagesForUserTypes}. */ + /** Gets the PackageWhitelistMode for use of {@link #mWhitelistedPackagesForUserTypes}. */ private @PackageWhitelistMode int getWhitelistMode() { final int runtimeMode = SystemProperties.getInt( PACKAGE_WHITELIST_MODE_PROP, USER_TYPE_PACKAGE_WHITELIST_MODE_DEVICE_DEFAULT); @@ -283,7 +283,7 @@ class UserSystemPackageInstaller { if (!pkg.isSystem()) { return; } - if (shouldInstallPackage(pkg, mWhitelitsedPackagesForUserTypes, + if (shouldInstallPackage(pkg, mWhitelistedPackagesForUserTypes, whitelistedPackages, isImplicitWhitelistMode, isSystemUser)) { // Although the whitelist uses manifest names, this function returns packageNames. installPackages.add(pkg.packageName); @@ -333,10 +333,10 @@ class UserSystemPackageInstaller { */ @VisibleForTesting @NonNull Set getWhitelistedPackagesForUserType(int flags) { - Set installablePkgs = new ArraySet<>(mWhitelitsedPackagesForUserTypes.size()); - for (int i = 0; i < mWhitelitsedPackagesForUserTypes.size(); i++) { - String pkgName = mWhitelitsedPackagesForUserTypes.keyAt(i); - int whitelistedUserTypes = mWhitelitsedPackagesForUserTypes.valueAt(i); + Set installablePkgs = new ArraySet<>(mWhitelistedPackagesForUserTypes.size()); + for (int i = 0; i < mWhitelistedPackagesForUserTypes.size(); i++) { + String pkgName = mWhitelistedPackagesForUserTypes.keyAt(i); + int whitelistedUserTypes = mWhitelistedPackagesForUserTypes.valueAt(i); if ((flags & whitelistedUserTypes) != 0) { installablePkgs.add(pkgName); } @@ -353,7 +353,7 @@ class UserSystemPackageInstaller { * completely blacklists an AOSP app). */ private Set getWhitelistedSystemPackages() { - return mWhitelitsedPackagesForUserTypes.keySet(); + return mWhitelistedPackagesForUserTypes.keySet(); } /** @@ -449,18 +449,28 @@ class UserSystemPackageInstaller { } void dump(PrintWriter pw) { - pw.print("Whitelisted packages per user type"); - final int size = mWhitelitsedPackagesForUserTypes.size(); + final String prefix = " "; + final int mode = getWhitelistMode(); + pw.println("Whitelisted packages per user type"); + pw.print(prefix); pw.print("Mode: "); + pw.print(mode); + pw.print(isEnforceMode(mode) ? " (enforced)" : ""); + pw.print(isLogMode(mode) ? " (logged)" : ""); + pw.print(isImplicitWhitelistMode(mode) ? " (implicit)" : ""); + pw.println(); + + final int size = mWhitelistedPackagesForUserTypes.size(); if (size == 0) { - pw.println(": N/A"); + pw.print(prefix); pw.println("No packages"); return; } - pw.println(" (" + size + " packages)"); + final String prefix2 = prefix + prefix; + pw.print(prefix); pw.print(size); pw.println(" packages:"); for (int i = 0; i < size; i++) { - final String pkgName = mWhitelitsedPackagesForUserTypes.keyAt(i); + final String pkgName = mWhitelistedPackagesForUserTypes.keyAt(i); final String whitelistedUserTypes = - UserInfo.flagsToString(mWhitelitsedPackagesForUserTypes.valueAt(i)); - pw.println(" " + pkgName + ": " + whitelistedUserTypes); + UserInfo.flagsToString(mWhitelistedPackagesForUserTypes.valueAt(i)); + pw.print(prefix2); pw.print(pkgName); pw.print(": "); pw.println(whitelistedUserTypes); } } }