Loading services/core/java/android/content/pm/PackageManagerInternal.java +46 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ public abstract class PackageManagerInternal { public static final int PACKAGE_COMPANION = 14; public static final int PACKAGE_RETAIL_DEMO = 15; public static final int PACKAGE_OVERLAY_CONFIG_SIGNATURE = 16; public static final int LAST_KNOWN_PACKAGE = PACKAGE_OVERLAY_CONFIG_SIGNATURE; @IntDef(flag = true, prefix = "RESOLVE_", value = { RESOLVE_NON_BROWSER_ONLY, Loading Loading @@ -1015,6 +1016,51 @@ public abstract class PackageManagerInternal { public abstract boolean unregisterInstalledLoadingProgressCallback(@NonNull String packageName, @NonNull InstalledLoadingProgressCallback callback); /** * Returns the string representation of a known package. For example, * {@link #PACKAGE_SETUP_WIZARD} is represented by the string Setup Wizard. * * @param knownPackage The known package. * @return The string representation. */ public static @NonNull String knownPackageToString(@KnownPackage int knownPackage) { switch (knownPackage) { case PACKAGE_SYSTEM: return "System"; case PACKAGE_SETUP_WIZARD: return "Setup Wizard"; case PACKAGE_INSTALLER: return "Installer"; case PACKAGE_VERIFIER: return "Verifier"; case PACKAGE_BROWSER: return "Browser"; case PACKAGE_SYSTEM_TEXT_CLASSIFIER: return "System Text Classifier"; case PACKAGE_PERMISSION_CONTROLLER: return "Permission Controller"; case PACKAGE_WELLBEING: return "Wellbeing"; case PACKAGE_DOCUMENTER: return "Documenter"; case PACKAGE_CONFIGURATOR: return "Configurator"; case PACKAGE_INCIDENT_REPORT_APPROVER: return "Incident Report Approver"; case PACKAGE_APP_PREDICTOR: return "App Predictor"; case PACKAGE_WIFI: return "Wi-Fi"; case PACKAGE_COMPANION: return "Companion"; case PACKAGE_RETAIL_DEMO: return "Retail Demo"; case PACKAGE_OVERLAY_CONFIG_SIGNATURE: return "Overlay Config Signature"; } return "Unknown"; } /** * Callback to listen for loading progress of a package installed on Incremental File System. */ Loading services/core/java/com/android/server/pm/DumpState.java +1 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ public final class DumpState { public static final int DUMP_SERVICE_PERMISSIONS = 1 << 24; public static final int DUMP_APEX = 1 << 25; public static final int DUMP_QUERIES = 1 << 26; public static final int DUMP_KNOWN_PACKAGES = 1 << 27; public static final int OPTION_SHOW_FILTERS = 1 << 0; public static final int OPTION_DUMP_ALL_COMPONENTS = 1 << 1; Loading services/core/java/com/android/server/pm/PackageManagerService.java +38 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ import static android.content.pm.PackageManager.MOVE_FAILED_SYSTEM_PACKAGE; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.content.pm.PackageManager.RESTRICTION_NONE; import static android.content.pm.PackageManager.UNINSTALL_REASON_UNKNOWN; import static android.content.pm.PackageManagerInternal.LAST_KNOWN_PACKAGE; import static android.content.pm.PackageParser.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V4; import static android.content.pm.PackageParser.isApkFile; import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER; Loading Loading @@ -686,6 +687,8 @@ public class PackageManagerService extends IPackageManager.Stub private static final String PACKAGE_SCHEME = "package"; private static final String COMPANION_PACKAGE_NAME = "com.android.companiondevicemanager"; /** Canonical intent used to identify what counts as a "web browser" app */ private static final Intent sBrowserIntent; static { Loading Loading @@ -22062,6 +22065,7 @@ public class PackageManagerService extends IPackageManager.Stub pw.println(" dexopt: dump dexopt state"); pw.println(" compiler-stats: dump compiler statistics"); pw.println(" service-permissions: dump permissions required by services"); pw.println(" known-packages: dump known packages"); pw.println(" <package.name>: info about given package"); return; } else if ("--checkin".equals(opt)) { Loading Loading @@ -22206,6 +22210,8 @@ public class PackageManagerService extends IPackageManager.Stub dumpState.setDump(DumpState.DUMP_CHANGES); } else if ("service-permissions".equals(cmd)) { dumpState.setDump(DumpState.DUMP_SERVICE_PERMISSIONS); } else if ("known-packages".equals(cmd)) { dumpState.setDump(DumpState.DUMP_KNOWN_PACKAGES); } else if ("write".equals(cmd)) { synchronized (mLock) { writeSettingsLPrTEMP(); Loading @@ -22230,6 +22236,37 @@ public class PackageManagerService extends IPackageManager.Stub } } if (!checkin && dumpState.isDumping(DumpState.DUMP_KNOWN_PACKAGES) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); ipw.println("Known Packages:"); ipw.increaseIndent(); for (int i = 0; i < LAST_KNOWN_PACKAGE; i++) { final String knownPackage = mPmInternal.knownPackageToString(i); if ("Unknown".equals(knownPackage)) { continue; } ipw.print(knownPackage); ipw.println(":"); final String[] pkgNames = mPmInternal.getKnownPackageNames(i, UserHandle.USER_SYSTEM); ipw.increaseIndent(); if (ArrayUtils.isEmpty(pkgNames)) { ipw.println("none"); } else { for (String name : pkgNames) { ipw.println(name); } } ipw.decreaseIndent(); } ipw.decreaseIndent(); } if (dumpState.isDumping(DumpState.DUMP_VERIFIERS) && packageName == null) { if (!checkin) { if (dumpState.onTitlePrinted()) Loading Loading @@ -24719,7 +24756,7 @@ public class PackageManagerService extends IPackageManager.Stub case PackageManagerInternal.PACKAGE_APP_PREDICTOR: return filterOnlySystemPackages(mAppPredictionServicePackage); case PackageManagerInternal.PACKAGE_COMPANION: return filterOnlySystemPackages("com.android.companiondevicemanager"); return filterOnlySystemPackages(COMPANION_PACKAGE_NAME); case PackageManagerInternal.PACKAGE_RETAIL_DEMO: return TextUtils.isEmpty(mRetailDemoPackage) ? ArrayUtils.emptyArray(String.class) Loading
services/core/java/android/content/pm/PackageManagerInternal.java +46 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ public abstract class PackageManagerInternal { public static final int PACKAGE_COMPANION = 14; public static final int PACKAGE_RETAIL_DEMO = 15; public static final int PACKAGE_OVERLAY_CONFIG_SIGNATURE = 16; public static final int LAST_KNOWN_PACKAGE = PACKAGE_OVERLAY_CONFIG_SIGNATURE; @IntDef(flag = true, prefix = "RESOLVE_", value = { RESOLVE_NON_BROWSER_ONLY, Loading Loading @@ -1015,6 +1016,51 @@ public abstract class PackageManagerInternal { public abstract boolean unregisterInstalledLoadingProgressCallback(@NonNull String packageName, @NonNull InstalledLoadingProgressCallback callback); /** * Returns the string representation of a known package. For example, * {@link #PACKAGE_SETUP_WIZARD} is represented by the string Setup Wizard. * * @param knownPackage The known package. * @return The string representation. */ public static @NonNull String knownPackageToString(@KnownPackage int knownPackage) { switch (knownPackage) { case PACKAGE_SYSTEM: return "System"; case PACKAGE_SETUP_WIZARD: return "Setup Wizard"; case PACKAGE_INSTALLER: return "Installer"; case PACKAGE_VERIFIER: return "Verifier"; case PACKAGE_BROWSER: return "Browser"; case PACKAGE_SYSTEM_TEXT_CLASSIFIER: return "System Text Classifier"; case PACKAGE_PERMISSION_CONTROLLER: return "Permission Controller"; case PACKAGE_WELLBEING: return "Wellbeing"; case PACKAGE_DOCUMENTER: return "Documenter"; case PACKAGE_CONFIGURATOR: return "Configurator"; case PACKAGE_INCIDENT_REPORT_APPROVER: return "Incident Report Approver"; case PACKAGE_APP_PREDICTOR: return "App Predictor"; case PACKAGE_WIFI: return "Wi-Fi"; case PACKAGE_COMPANION: return "Companion"; case PACKAGE_RETAIL_DEMO: return "Retail Demo"; case PACKAGE_OVERLAY_CONFIG_SIGNATURE: return "Overlay Config Signature"; } return "Unknown"; } /** * Callback to listen for loading progress of a package installed on Incremental File System. */ Loading
services/core/java/com/android/server/pm/DumpState.java +1 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ public final class DumpState { public static final int DUMP_SERVICE_PERMISSIONS = 1 << 24; public static final int DUMP_APEX = 1 << 25; public static final int DUMP_QUERIES = 1 << 26; public static final int DUMP_KNOWN_PACKAGES = 1 << 27; public static final int OPTION_SHOW_FILTERS = 1 << 0; public static final int OPTION_DUMP_ALL_COMPONENTS = 1 << 1; Loading
services/core/java/com/android/server/pm/PackageManagerService.java +38 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ import static android.content.pm.PackageManager.MOVE_FAILED_SYSTEM_PACKAGE; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.content.pm.PackageManager.RESTRICTION_NONE; import static android.content.pm.PackageManager.UNINSTALL_REASON_UNKNOWN; import static android.content.pm.PackageManagerInternal.LAST_KNOWN_PACKAGE; import static android.content.pm.PackageParser.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V4; import static android.content.pm.PackageParser.isApkFile; import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER; Loading Loading @@ -686,6 +687,8 @@ public class PackageManagerService extends IPackageManager.Stub private static final String PACKAGE_SCHEME = "package"; private static final String COMPANION_PACKAGE_NAME = "com.android.companiondevicemanager"; /** Canonical intent used to identify what counts as a "web browser" app */ private static final Intent sBrowserIntent; static { Loading Loading @@ -22062,6 +22065,7 @@ public class PackageManagerService extends IPackageManager.Stub pw.println(" dexopt: dump dexopt state"); pw.println(" compiler-stats: dump compiler statistics"); pw.println(" service-permissions: dump permissions required by services"); pw.println(" known-packages: dump known packages"); pw.println(" <package.name>: info about given package"); return; } else if ("--checkin".equals(opt)) { Loading Loading @@ -22206,6 +22210,8 @@ public class PackageManagerService extends IPackageManager.Stub dumpState.setDump(DumpState.DUMP_CHANGES); } else if ("service-permissions".equals(cmd)) { dumpState.setDump(DumpState.DUMP_SERVICE_PERMISSIONS); } else if ("known-packages".equals(cmd)) { dumpState.setDump(DumpState.DUMP_KNOWN_PACKAGES); } else if ("write".equals(cmd)) { synchronized (mLock) { writeSettingsLPrTEMP(); Loading @@ -22230,6 +22236,37 @@ public class PackageManagerService extends IPackageManager.Stub } } if (!checkin && dumpState.isDumping(DumpState.DUMP_KNOWN_PACKAGES) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); ipw.println("Known Packages:"); ipw.increaseIndent(); for (int i = 0; i < LAST_KNOWN_PACKAGE; i++) { final String knownPackage = mPmInternal.knownPackageToString(i); if ("Unknown".equals(knownPackage)) { continue; } ipw.print(knownPackage); ipw.println(":"); final String[] pkgNames = mPmInternal.getKnownPackageNames(i, UserHandle.USER_SYSTEM); ipw.increaseIndent(); if (ArrayUtils.isEmpty(pkgNames)) { ipw.println("none"); } else { for (String name : pkgNames) { ipw.println(name); } } ipw.decreaseIndent(); } ipw.decreaseIndent(); } if (dumpState.isDumping(DumpState.DUMP_VERIFIERS) && packageName == null) { if (!checkin) { if (dumpState.onTitlePrinted()) Loading Loading @@ -24719,7 +24756,7 @@ public class PackageManagerService extends IPackageManager.Stub case PackageManagerInternal.PACKAGE_APP_PREDICTOR: return filterOnlySystemPackages(mAppPredictionServicePackage); case PackageManagerInternal.PACKAGE_COMPANION: return filterOnlySystemPackages("com.android.companiondevicemanager"); return filterOnlySystemPackages(COMPANION_PACKAGE_NAME); case PackageManagerInternal.PACKAGE_RETAIL_DEMO: return TextUtils.isEmpty(mRetailDemoPackage) ? ArrayUtils.emptyArray(String.class)