Loading services/core/java/com/android/server/pm/PackageManagerService.java +146 −85 Original line number Original line Diff line number Diff line Loading @@ -4617,8 +4617,14 @@ public class PackageManagerService extends IPackageManager.Stub public void dump(int type, FileDescriptor fd, PrintWriter pw, DumpState dumpState) { public void dump(int type, FileDescriptor fd, PrintWriter pw, DumpState dumpState) { final String packageName = dumpState.getTargetPackageName(); final String packageName = dumpState.getTargetPackageName(); final PackageSetting setting = mSettings.getPackageLPr(packageName); final boolean checkin = dumpState.isCheckIn(); final boolean checkin = dumpState.isCheckIn(); // Return if the package doesn't exist. if (packageName != null && setting == null) { return; } switch (type) { switch (type) { case DumpState.DUMP_VERSION: case DumpState.DUMP_VERSION: { { Loading Loading @@ -4711,8 +4717,7 @@ public class PackageManagerService extends IPackageManager.Stub case DumpState.DUMP_QUERIES: case DumpState.DUMP_QUERIES: { { final PackageSetting setting = mSettings.getPackageLPr(packageName); final Integer filteringAppId = setting == null ? null : setting.appId; Integer filteringAppId = setting == null ? null : setting.appId; mAppsFilter.dumpQueries( mAppsFilter.dumpQueries( pw, filteringAppId, dumpState, mUserManager.getUserIds(), pw, filteringAppId, dumpState, mUserManager.getUserIds(), this::getPackagesForUidInternalBody); this::getPackagesForUidInternalBody); Loading @@ -4723,8 +4728,9 @@ public class PackageManagerService extends IPackageManager.Stub { { final android.util.IndentingPrintWriter writer = final android.util.IndentingPrintWriter writer = new android.util.IndentingPrintWriter(pw); new android.util.IndentingPrintWriter(pw); if (dumpState.onTitlePrinted()) pw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } writer.println("Domain verification status:"); writer.println("Domain verification status:"); writer.increaseIndent(); writer.increaseIndent(); try { try { Loading @@ -4741,18 +4747,14 @@ public class PackageManagerService extends IPackageManager.Stub case DumpState.DUMP_DEXOPT: case DumpState.DUMP_DEXOPT: { { final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); ipw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } ipw.println("Dexopt state:"); ipw.println("Dexopt state:"); ipw.increaseIndent(); ipw.increaseIndent(); Collection<PackageSetting> pkgSettings; Collection<PackageSetting> pkgSettings; if (packageName != null) { if (setting != null) { PackageSetting targetPkgSetting = mSettings.getPackageLPr(packageName); pkgSettings = Collections.singletonList(setting); if (targetPkgSetting != null) { pkgSettings = Collections.singletonList(targetPkgSetting); } else { ipw.println("Unable to find package: " + packageName); return; } } else { } else { pkgSettings = mSettings.getPackagesLocked().values(); pkgSettings = mSettings.getPackagesLocked().values(); } } Loading @@ -4762,10 +4764,12 @@ public class PackageManagerService extends IPackageManager.Stub if (pkg == null) { if (pkg == null) { continue; continue; } } ipw.println("[" + pkgSetting.name + "]"); final String pkgName = pkg.getPackageName(); ipw.println("[" + pkgName + "]"); ipw.increaseIndent(); ipw.increaseIndent(); mPackageDexOptimizer.dumpDexoptState(ipw, pkg, pkgSetting, mPackageDexOptimizer.dumpDexoptState(ipw, pkg, pkgSetting, mDexManager.getPackageUseInfoOrDefault(pkg.getPackageName())); mDexManager.getPackageUseInfoOrDefault(pkgName)); ipw.decreaseIndent(); ipw.decreaseIndent(); } } break; break; Loading @@ -4774,28 +4778,29 @@ public class PackageManagerService extends IPackageManager.Stub case DumpState.DUMP_COMPILER_STATS: case DumpState.DUMP_COMPILER_STATS: { { final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); ipw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } ipw.println("Compiler stats:"); ipw.println("Compiler stats:"); ipw.increaseIndent(); ipw.increaseIndent(); Collection<AndroidPackage> packages; Collection<PackageSetting> pkgSettings; if (packageName != null) { if (setting != null) { AndroidPackage targetPackage = mPackages.get(packageName); pkgSettings = Collections.singletonList(setting); if (targetPackage != null) { packages = Collections.singletonList(targetPackage); } else { ipw.println("Unable to find package: " + packageName); return; } } else { } else { packages = mPackages.values(); pkgSettings = mSettings.getPackagesLocked().values(); } } for (AndroidPackage pkg : packages) { for (PackageSetting pkgSetting : pkgSettings) { final AndroidPackage pkg = pkgSetting.getPkg(); if (pkg == null) { continue; } final String pkgName = pkg.getPackageName(); final String pkgName = pkg.getPackageName(); ipw.println("[" + pkgName + "]"); ipw.println("[" + pkgName + "]"); ipw.increaseIndent(); ipw.increaseIndent(); CompilerStats.PackageStats stats = mCompilerStats.getPackageStats(pkgName); final CompilerStats.PackageStats stats = mCompilerStats.getPackageStats(pkgName); if (stats == null) { if (stats == null) { ipw.println("(No recorded stats)"); ipw.println("(No recorded stats)"); } else { } else { Loading Loading @@ -19329,16 +19334,25 @@ public class PackageManagerService extends IPackageManager.Stub final String packageName = dumpState.getTargetPackageName(); final String packageName = dumpState.getTargetPackageName(); final boolean checkin = dumpState.isCheckIn(); final boolean checkin = dumpState.isCheckIn(); // Return if the package doesn't exist. if (packageName != null && getPackageSetting(packageName) == null && !mApexManager.isApexPackage(packageName)) { pw.println("Unable to find package: " + packageName); return; } if (checkin) { if (checkin) { pw.println("vers,1"); pw.println("vers,1"); } } // reader // reader if (dumpState.isDumping(DumpState.DUMP_VERSION) && packageName == null) { if (!checkin if (!checkin) { && dumpState.isDumping(DumpState.DUMP_VERSION) && packageName == null) { dump(DumpState.DUMP_VERSION, fd, pw, dumpState); dump(DumpState.DUMP_VERSION, fd, pw, dumpState); } } } if (!checkin if (!checkin && dumpState.isDumping(DumpState.DUMP_KNOWN_PACKAGES) && dumpState.isDumping(DumpState.DUMP_KNOWN_PACKAGES) Loading Loading @@ -19368,7 +19382,8 @@ public class PackageManagerService extends IPackageManager.Stub ipw.decreaseIndent(); ipw.decreaseIndent(); } } if (dumpState.isDumping(DumpState.DUMP_VERIFIERS) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_VERIFIERS) && packageName == null) { final String requiredVerifierPackage = mRequiredVerifierPackage; final String requiredVerifierPackage = mRequiredVerifierPackage; if (!checkin) { if (!checkin) { if (dumpState.onTitlePrinted()) { if (dumpState.onTitlePrinted()) { Loading @@ -19389,14 +19404,16 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_DOMAIN_VERIFIER) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_DOMAIN_VERIFIER) && packageName == null) { final DomainVerificationProxy proxy = mDomainVerificationManager.getProxy(); final DomainVerificationProxy proxy = mDomainVerificationManager.getProxy(); final ComponentName verifierComponent = proxy.getComponentName(); final ComponentName verifierComponent = proxy.getComponentName(); if (verifierComponent != null) { if (verifierComponent != null) { String verifierPackageName = verifierComponent.getPackageName(); String verifierPackageName = verifierComponent.getPackageName(); if (!checkin) { if (!checkin) { if (dumpState.onTitlePrinted()) if (dumpState.onTitlePrinted()) { pw.println(); pw.println(); } pw.println("Domain Verifier:"); pw.println("Domain Verifier:"); pw.print(" Using: "); pw.print(" Using: "); pw.print(verifierPackageName); pw.print(verifierPackageName); Loading @@ -19416,11 +19433,13 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_LIBS) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_LIBS) && packageName == null) { dump(DumpState.DUMP_LIBS, fd, pw, dumpState); dump(DumpState.DUMP_LIBS, fd, pw, dumpState); } } if (dumpState.isDumping(DumpState.DUMP_FEATURES) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_FEATURES) && packageName == null) { if (dumpState.onTitlePrinted()) { if (dumpState.onTitlePrinted()) { pw.println(); pw.println(); } } Loading @@ -19430,12 +19449,7 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mAvailableFeatures) { synchronized (mAvailableFeatures) { for (FeatureInfo feat : mAvailableFeatures.values()) { for (FeatureInfo feat : mAvailableFeatures.values()) { if (checkin) { if (!checkin) { pw.print("feat,"); pw.print(feat.name); pw.print(","); pw.println(feat.version); } else { pw.print(" "); pw.print(" "); pw.print(feat.name); pw.print(feat.name); if (feat.version > 0) { if (feat.version > 0) { Loading @@ -19443,55 +19457,73 @@ public class PackageManagerService extends IPackageManager.Stub pw.print(feat.version); pw.print(feat.version); } } pw.println(); pw.println(); } else { pw.print("feat,"); pw.print(feat.name); pw.print(","); pw.println(feat.version); } } } } } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_ACTIVITY_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_ACTIVITY_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpActivityResolvers(pw, dumpState, packageName); mComponentResolver.dumpActivityResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_RECEIVER_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_RECEIVER_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpReceiverResolvers(pw, dumpState, packageName); mComponentResolver.dumpReceiverResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpServiceResolvers(pw, dumpState, packageName); mComponentResolver.dumpServiceResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_CONTENT_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_CONTENT_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpProviderResolvers(pw, dumpState, packageName); mComponentResolver.dumpProviderResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED)) { dump(DumpState.DUMP_PREFERRED, fd, pw, dumpState); dump(DumpState.DUMP_PREFERRED, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED_XML)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED_XML) && packageName == null) { dump(DumpState.DUMP_PREFERRED_XML, fd, pw, dumpState); dump(DumpState.DUMP_PREFERRED_XML, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_DOMAIN_PREFERRED)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_DOMAIN_PREFERRED)) { dump(DumpState.DUMP_DOMAIN_PREFERRED, fd, pw, dumpState); dump(DumpState.DUMP_DOMAIN_PREFERRED, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PERMISSIONS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PERMISSIONS)) { synchronized (mLock) { mSettings.dumpPermissions(pw, packageName, permissionNames, dumpState); mSettings.dumpPermissions(pw, packageName, permissionNames, dumpState); } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PROVIDERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PROVIDERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpContentProviders(pw, dumpState, packageName); mComponentResolver.dumpContentProviders(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_KEYSETS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_KEYSETS)) { synchronized (mLock) { synchronized (mLock) { mSettings.getKeySetManagerService().dumpLPr(pw, packageName, dumpState); mSettings.getKeySetManagerService().dumpLPr(pw, packageName, dumpState); } } Loading @@ -19506,7 +19538,8 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_QUERIES)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_QUERIES)) { dump(DumpState.DUMP_QUERIES, fd, pw, dumpState); dump(DumpState.DUMP_QUERIES, fd, pw, dumpState); } } Loading @@ -19518,8 +19551,12 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_CHANGES)) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_CHANGES) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } pw.println("Package Changes:"); pw.println("Package Changes:"); synchronized (mLock) { synchronized (mLock) { pw.print(" Sequence number="); pw.println(mChangedPackagesSequenceNumber); pw.print(" Sequence number="); pw.println(mChangedPackagesSequenceNumber); Loading @@ -19545,11 +19582,14 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_FROZEN) && packageName == null) { if (!checkin && dumpState.isDumping(DumpState.DUMP_FROZEN) && packageName == null) { // XXX should handle packageName != null by dumping only install data that // XXX should handle packageName != null by dumping only install data that // the given package is involved with. // the given package is involved with. if (dumpState.onTitlePrinted()) pw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); ipw.println(); ipw.println(); ipw.println("Frozen packages:"); ipw.println("Frozen packages:"); Loading @@ -19566,9 +19606,12 @@ public class PackageManagerService extends IPackageManager.Stub ipw.decreaseIndent(); ipw.decreaseIndent(); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_VOLUMES) && packageName == null) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_VOLUMES) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); ipw.println(); ipw.println(); ipw.println("Loaded volumes:"); ipw.println("Loaded volumes:"); Loading @@ -19585,52 +19628,65 @@ public class PackageManagerService extends IPackageManager.Stub ipw.decreaseIndent(); ipw.decreaseIndent(); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_PERMISSIONS) if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_PERMISSIONS) && packageName == null) { && packageName == null) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpServicePermissions(pw, dumpState); mComponentResolver.dumpServicePermissions(pw, dumpState); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_DEXOPT)) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_DEXOPT)) { dump(DumpState.DUMP_DEXOPT, fd, pw, dumpState); dump(DumpState.DUMP_DEXOPT, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_COMPILER_STATS)) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_COMPILER_STATS)) { dump(DumpState.DUMP_COMPILER_STATS, fd, pw, dumpState); dump(DumpState.DUMP_COMPILER_STATS, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_MESSAGES) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_MESSAGES) if (dumpState.onTitlePrinted()) pw.println(); && packageName == null) { if (!checkin) { if (dumpState.onTitlePrinted()) { pw.println(); } synchronized (mLock) { synchronized (mLock) { mSettings.dumpReadMessagesLPr(pw, dumpState); mSettings.dumpReadMessagesLPr(pw, dumpState); } } pw.println(); pw.println(); pw.println("Package warning messages:"); pw.println("Package warning messages:"); dumpCriticalInfo(pw, null); dumpCriticalInfo(pw, null); } } else { if (checkin && dumpState.isDumping(DumpState.DUMP_MESSAGES)) { dumpCriticalInfo(pw, "msg,"); dumpCriticalInfo(pw, "msg,"); } } } // PackageInstaller should be called outside of mPackages lock // PackageInstaller should be called outside of mPackages lock if (!checkin && dumpState.isDumping(DumpState.DUMP_INSTALLS) && packageName == null) { if (!checkin && dumpState.isDumping(DumpState.DUMP_INSTALLS) && packageName == null) { // XXX should handle packageName != null by dumping only install data that // XXX should handle packageName != null by dumping only install data that // the given package is involved with. // the given package is involved with. if (dumpState.onTitlePrinted()) pw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } mInstallerService.dump(new IndentingPrintWriter(pw, " ", 120)); mInstallerService.dump(new IndentingPrintWriter(pw, " ", 120)); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_APEX)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_APEX) && (packageName == null || mApexManager.isApexPackage(packageName))) { mApexManager.dump(pw, packageName); mApexManager.dump(pw, packageName); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PER_UID_READ_TIMEOUTS) if (!checkin && dumpState.isDumping(DumpState.DUMP_PER_UID_READ_TIMEOUTS) && packageName == null) { && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); pw.println(); } pw.println("Per UID read timeouts:"); pw.println("Per UID read timeouts:"); pw.println(" Default timeouts flag: " + getDefaultTimeouts()); pw.println(" Default timeouts flag: " + getDefaultTimeouts()); pw.println(" Known digesters list flag: " + getKnownDigestersList()); pw.println(" Known digesters list flag: " + getKnownDigestersList()); Loading @@ -19647,7 +19703,12 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_SNAPSHOT_STATISTICS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_SNAPSHOT_STATISTICS) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } pw.println("Snapshot statistics"); pw.println("Snapshot statistics"); if (!mSnapshotEnabled) { if (!mSnapshotEnabled) { pw.println(" Snapshots disabled"); pw.println(" Snapshots disabled"); Loading
services/core/java/com/android/server/pm/PackageManagerService.java +146 −85 Original line number Original line Diff line number Diff line Loading @@ -4617,8 +4617,14 @@ public class PackageManagerService extends IPackageManager.Stub public void dump(int type, FileDescriptor fd, PrintWriter pw, DumpState dumpState) { public void dump(int type, FileDescriptor fd, PrintWriter pw, DumpState dumpState) { final String packageName = dumpState.getTargetPackageName(); final String packageName = dumpState.getTargetPackageName(); final PackageSetting setting = mSettings.getPackageLPr(packageName); final boolean checkin = dumpState.isCheckIn(); final boolean checkin = dumpState.isCheckIn(); // Return if the package doesn't exist. if (packageName != null && setting == null) { return; } switch (type) { switch (type) { case DumpState.DUMP_VERSION: case DumpState.DUMP_VERSION: { { Loading Loading @@ -4711,8 +4717,7 @@ public class PackageManagerService extends IPackageManager.Stub case DumpState.DUMP_QUERIES: case DumpState.DUMP_QUERIES: { { final PackageSetting setting = mSettings.getPackageLPr(packageName); final Integer filteringAppId = setting == null ? null : setting.appId; Integer filteringAppId = setting == null ? null : setting.appId; mAppsFilter.dumpQueries( mAppsFilter.dumpQueries( pw, filteringAppId, dumpState, mUserManager.getUserIds(), pw, filteringAppId, dumpState, mUserManager.getUserIds(), this::getPackagesForUidInternalBody); this::getPackagesForUidInternalBody); Loading @@ -4723,8 +4728,9 @@ public class PackageManagerService extends IPackageManager.Stub { { final android.util.IndentingPrintWriter writer = final android.util.IndentingPrintWriter writer = new android.util.IndentingPrintWriter(pw); new android.util.IndentingPrintWriter(pw); if (dumpState.onTitlePrinted()) pw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } writer.println("Domain verification status:"); writer.println("Domain verification status:"); writer.increaseIndent(); writer.increaseIndent(); try { try { Loading @@ -4741,18 +4747,14 @@ public class PackageManagerService extends IPackageManager.Stub case DumpState.DUMP_DEXOPT: case DumpState.DUMP_DEXOPT: { { final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); ipw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } ipw.println("Dexopt state:"); ipw.println("Dexopt state:"); ipw.increaseIndent(); ipw.increaseIndent(); Collection<PackageSetting> pkgSettings; Collection<PackageSetting> pkgSettings; if (packageName != null) { if (setting != null) { PackageSetting targetPkgSetting = mSettings.getPackageLPr(packageName); pkgSettings = Collections.singletonList(setting); if (targetPkgSetting != null) { pkgSettings = Collections.singletonList(targetPkgSetting); } else { ipw.println("Unable to find package: " + packageName); return; } } else { } else { pkgSettings = mSettings.getPackagesLocked().values(); pkgSettings = mSettings.getPackagesLocked().values(); } } Loading @@ -4762,10 +4764,12 @@ public class PackageManagerService extends IPackageManager.Stub if (pkg == null) { if (pkg == null) { continue; continue; } } ipw.println("[" + pkgSetting.name + "]"); final String pkgName = pkg.getPackageName(); ipw.println("[" + pkgName + "]"); ipw.increaseIndent(); ipw.increaseIndent(); mPackageDexOptimizer.dumpDexoptState(ipw, pkg, pkgSetting, mPackageDexOptimizer.dumpDexoptState(ipw, pkg, pkgSetting, mDexManager.getPackageUseInfoOrDefault(pkg.getPackageName())); mDexManager.getPackageUseInfoOrDefault(pkgName)); ipw.decreaseIndent(); ipw.decreaseIndent(); } } break; break; Loading @@ -4774,28 +4778,29 @@ public class PackageManagerService extends IPackageManager.Stub case DumpState.DUMP_COMPILER_STATS: case DumpState.DUMP_COMPILER_STATS: { { final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); ipw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } ipw.println("Compiler stats:"); ipw.println("Compiler stats:"); ipw.increaseIndent(); ipw.increaseIndent(); Collection<AndroidPackage> packages; Collection<PackageSetting> pkgSettings; if (packageName != null) { if (setting != null) { AndroidPackage targetPackage = mPackages.get(packageName); pkgSettings = Collections.singletonList(setting); if (targetPackage != null) { packages = Collections.singletonList(targetPackage); } else { ipw.println("Unable to find package: " + packageName); return; } } else { } else { packages = mPackages.values(); pkgSettings = mSettings.getPackagesLocked().values(); } } for (AndroidPackage pkg : packages) { for (PackageSetting pkgSetting : pkgSettings) { final AndroidPackage pkg = pkgSetting.getPkg(); if (pkg == null) { continue; } final String pkgName = pkg.getPackageName(); final String pkgName = pkg.getPackageName(); ipw.println("[" + pkgName + "]"); ipw.println("[" + pkgName + "]"); ipw.increaseIndent(); ipw.increaseIndent(); CompilerStats.PackageStats stats = mCompilerStats.getPackageStats(pkgName); final CompilerStats.PackageStats stats = mCompilerStats.getPackageStats(pkgName); if (stats == null) { if (stats == null) { ipw.println("(No recorded stats)"); ipw.println("(No recorded stats)"); } else { } else { Loading Loading @@ -19329,16 +19334,25 @@ public class PackageManagerService extends IPackageManager.Stub final String packageName = dumpState.getTargetPackageName(); final String packageName = dumpState.getTargetPackageName(); final boolean checkin = dumpState.isCheckIn(); final boolean checkin = dumpState.isCheckIn(); // Return if the package doesn't exist. if (packageName != null && getPackageSetting(packageName) == null && !mApexManager.isApexPackage(packageName)) { pw.println("Unable to find package: " + packageName); return; } if (checkin) { if (checkin) { pw.println("vers,1"); pw.println("vers,1"); } } // reader // reader if (dumpState.isDumping(DumpState.DUMP_VERSION) && packageName == null) { if (!checkin if (!checkin) { && dumpState.isDumping(DumpState.DUMP_VERSION) && packageName == null) { dump(DumpState.DUMP_VERSION, fd, pw, dumpState); dump(DumpState.DUMP_VERSION, fd, pw, dumpState); } } } if (!checkin if (!checkin && dumpState.isDumping(DumpState.DUMP_KNOWN_PACKAGES) && dumpState.isDumping(DumpState.DUMP_KNOWN_PACKAGES) Loading Loading @@ -19368,7 +19382,8 @@ public class PackageManagerService extends IPackageManager.Stub ipw.decreaseIndent(); ipw.decreaseIndent(); } } if (dumpState.isDumping(DumpState.DUMP_VERIFIERS) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_VERIFIERS) && packageName == null) { final String requiredVerifierPackage = mRequiredVerifierPackage; final String requiredVerifierPackage = mRequiredVerifierPackage; if (!checkin) { if (!checkin) { if (dumpState.onTitlePrinted()) { if (dumpState.onTitlePrinted()) { Loading @@ -19389,14 +19404,16 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_DOMAIN_VERIFIER) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_DOMAIN_VERIFIER) && packageName == null) { final DomainVerificationProxy proxy = mDomainVerificationManager.getProxy(); final DomainVerificationProxy proxy = mDomainVerificationManager.getProxy(); final ComponentName verifierComponent = proxy.getComponentName(); final ComponentName verifierComponent = proxy.getComponentName(); if (verifierComponent != null) { if (verifierComponent != null) { String verifierPackageName = verifierComponent.getPackageName(); String verifierPackageName = verifierComponent.getPackageName(); if (!checkin) { if (!checkin) { if (dumpState.onTitlePrinted()) if (dumpState.onTitlePrinted()) { pw.println(); pw.println(); } pw.println("Domain Verifier:"); pw.println("Domain Verifier:"); pw.print(" Using: "); pw.print(" Using: "); pw.print(verifierPackageName); pw.print(verifierPackageName); Loading @@ -19416,11 +19433,13 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_LIBS) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_LIBS) && packageName == null) { dump(DumpState.DUMP_LIBS, fd, pw, dumpState); dump(DumpState.DUMP_LIBS, fd, pw, dumpState); } } if (dumpState.isDumping(DumpState.DUMP_FEATURES) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_FEATURES) && packageName == null) { if (dumpState.onTitlePrinted()) { if (dumpState.onTitlePrinted()) { pw.println(); pw.println(); } } Loading @@ -19430,12 +19449,7 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mAvailableFeatures) { synchronized (mAvailableFeatures) { for (FeatureInfo feat : mAvailableFeatures.values()) { for (FeatureInfo feat : mAvailableFeatures.values()) { if (checkin) { if (!checkin) { pw.print("feat,"); pw.print(feat.name); pw.print(","); pw.println(feat.version); } else { pw.print(" "); pw.print(" "); pw.print(feat.name); pw.print(feat.name); if (feat.version > 0) { if (feat.version > 0) { Loading @@ -19443,55 +19457,73 @@ public class PackageManagerService extends IPackageManager.Stub pw.print(feat.version); pw.print(feat.version); } } pw.println(); pw.println(); } else { pw.print("feat,"); pw.print(feat.name); pw.print(","); pw.println(feat.version); } } } } } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_ACTIVITY_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_ACTIVITY_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpActivityResolvers(pw, dumpState, packageName); mComponentResolver.dumpActivityResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_RECEIVER_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_RECEIVER_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpReceiverResolvers(pw, dumpState, packageName); mComponentResolver.dumpReceiverResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpServiceResolvers(pw, dumpState, packageName); mComponentResolver.dumpServiceResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_CONTENT_RESOLVERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_CONTENT_RESOLVERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpProviderResolvers(pw, dumpState, packageName); mComponentResolver.dumpProviderResolvers(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED)) { dump(DumpState.DUMP_PREFERRED, fd, pw, dumpState); dump(DumpState.DUMP_PREFERRED, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED_XML)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PREFERRED_XML) && packageName == null) { dump(DumpState.DUMP_PREFERRED_XML, fd, pw, dumpState); dump(DumpState.DUMP_PREFERRED_XML, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_DOMAIN_PREFERRED)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_DOMAIN_PREFERRED)) { dump(DumpState.DUMP_DOMAIN_PREFERRED, fd, pw, dumpState); dump(DumpState.DUMP_DOMAIN_PREFERRED, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PERMISSIONS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PERMISSIONS)) { synchronized (mLock) { mSettings.dumpPermissions(pw, packageName, permissionNames, dumpState); mSettings.dumpPermissions(pw, packageName, permissionNames, dumpState); } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PROVIDERS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_PROVIDERS)) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpContentProviders(pw, dumpState, packageName); mComponentResolver.dumpContentProviders(pw, dumpState, packageName); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_KEYSETS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_KEYSETS)) { synchronized (mLock) { synchronized (mLock) { mSettings.getKeySetManagerService().dumpLPr(pw, packageName, dumpState); mSettings.getKeySetManagerService().dumpLPr(pw, packageName, dumpState); } } Loading @@ -19506,7 +19538,8 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_QUERIES)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_QUERIES)) { dump(DumpState.DUMP_QUERIES, fd, pw, dumpState); dump(DumpState.DUMP_QUERIES, fd, pw, dumpState); } } Loading @@ -19518,8 +19551,12 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (dumpState.isDumping(DumpState.DUMP_CHANGES)) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_CHANGES) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } pw.println("Package Changes:"); pw.println("Package Changes:"); synchronized (mLock) { synchronized (mLock) { pw.print(" Sequence number="); pw.println(mChangedPackagesSequenceNumber); pw.print(" Sequence number="); pw.println(mChangedPackagesSequenceNumber); Loading @@ -19545,11 +19582,14 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_FROZEN) && packageName == null) { if (!checkin && dumpState.isDumping(DumpState.DUMP_FROZEN) && packageName == null) { // XXX should handle packageName != null by dumping only install data that // XXX should handle packageName != null by dumping only install data that // the given package is involved with. // the given package is involved with. if (dumpState.onTitlePrinted()) pw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); ipw.println(); ipw.println(); ipw.println("Frozen packages:"); ipw.println("Frozen packages:"); Loading @@ -19566,9 +19606,12 @@ public class PackageManagerService extends IPackageManager.Stub ipw.decreaseIndent(); ipw.decreaseIndent(); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_VOLUMES) && packageName == null) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_VOLUMES) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ", 120); ipw.println(); ipw.println(); ipw.println("Loaded volumes:"); ipw.println("Loaded volumes:"); Loading @@ -19585,52 +19628,65 @@ public class PackageManagerService extends IPackageManager.Stub ipw.decreaseIndent(); ipw.decreaseIndent(); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_PERMISSIONS) if (!checkin && dumpState.isDumping(DumpState.DUMP_SERVICE_PERMISSIONS) && packageName == null) { && packageName == null) { synchronized (mLock) { synchronized (mLock) { mComponentResolver.dumpServicePermissions(pw, dumpState); mComponentResolver.dumpServicePermissions(pw, dumpState); } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_DEXOPT)) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_DEXOPT)) { dump(DumpState.DUMP_DEXOPT, fd, pw, dumpState); dump(DumpState.DUMP_DEXOPT, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_COMPILER_STATS)) { if (!checkin if (dumpState.onTitlePrinted()) pw.println(); && dumpState.isDumping(DumpState.DUMP_COMPILER_STATS)) { dump(DumpState.DUMP_COMPILER_STATS, fd, pw, dumpState); dump(DumpState.DUMP_COMPILER_STATS, fd, pw, dumpState); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_MESSAGES) && packageName == null) { if (dumpState.isDumping(DumpState.DUMP_MESSAGES) if (dumpState.onTitlePrinted()) pw.println(); && packageName == null) { if (!checkin) { if (dumpState.onTitlePrinted()) { pw.println(); } synchronized (mLock) { synchronized (mLock) { mSettings.dumpReadMessagesLPr(pw, dumpState); mSettings.dumpReadMessagesLPr(pw, dumpState); } } pw.println(); pw.println(); pw.println("Package warning messages:"); pw.println("Package warning messages:"); dumpCriticalInfo(pw, null); dumpCriticalInfo(pw, null); } } else { if (checkin && dumpState.isDumping(DumpState.DUMP_MESSAGES)) { dumpCriticalInfo(pw, "msg,"); dumpCriticalInfo(pw, "msg,"); } } } // PackageInstaller should be called outside of mPackages lock // PackageInstaller should be called outside of mPackages lock if (!checkin && dumpState.isDumping(DumpState.DUMP_INSTALLS) && packageName == null) { if (!checkin && dumpState.isDumping(DumpState.DUMP_INSTALLS) && packageName == null) { // XXX should handle packageName != null by dumping only install data that // XXX should handle packageName != null by dumping only install data that // the given package is involved with. // the given package is involved with. if (dumpState.onTitlePrinted()) pw.println(); if (dumpState.onTitlePrinted()) { pw.println(); } mInstallerService.dump(new IndentingPrintWriter(pw, " ", 120)); mInstallerService.dump(new IndentingPrintWriter(pw, " ", 120)); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_APEX)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_APEX) && (packageName == null || mApexManager.isApexPackage(packageName))) { mApexManager.dump(pw, packageName); mApexManager.dump(pw, packageName); } } if (!checkin && dumpState.isDumping(DumpState.DUMP_PER_UID_READ_TIMEOUTS) if (!checkin && dumpState.isDumping(DumpState.DUMP_PER_UID_READ_TIMEOUTS) && packageName == null) { && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); pw.println(); } pw.println("Per UID read timeouts:"); pw.println("Per UID read timeouts:"); pw.println(" Default timeouts flag: " + getDefaultTimeouts()); pw.println(" Default timeouts flag: " + getDefaultTimeouts()); pw.println(" Known digesters list flag: " + getKnownDigestersList()); pw.println(" Known digesters list flag: " + getKnownDigestersList()); Loading @@ -19647,7 +19703,12 @@ public class PackageManagerService extends IPackageManager.Stub } } } } if (!checkin && dumpState.isDumping(DumpState.DUMP_SNAPSHOT_STATISTICS)) { if (!checkin && dumpState.isDumping(DumpState.DUMP_SNAPSHOT_STATISTICS) && packageName == null) { if (dumpState.onTitlePrinted()) { pw.println(); } pw.println("Snapshot statistics"); pw.println("Snapshot statistics"); if (!mSnapshotEnabled) { if (!mSnapshotEnabled) { pw.println(" Snapshots disabled"); pw.println(" Snapshots disabled");