Loading core/java/android/content/pm/PackageParser.java +25 −0 Original line number Diff line number Diff line Loading @@ -6285,6 +6285,31 @@ public class PackageParser { + " " + packageName + "}"; } public String dumpState_temp() { String flags = ""; flags += ((applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0 ? "U" : ""); flags += ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0 ? "S" : ""); if ("".equals(flags)) { flags = "-"; } String privFlags = ""; privFlags += ((applicationInfo.privateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0 ? "P" : ""); privFlags += ((applicationInfo.privateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0 ? "O" : ""); privFlags += ((applicationInfo.privateFlags & ApplicationInfo.PRIVATE_FLAG_VENDOR) != 0 ? "V" : ""); if ("".equals(privFlags)) { privFlags = "-"; } return "Package{" + Integer.toHexString(System.identityHashCode(this)) + " " + packageName + ", ver:" + getLongVersionCode() + ", path: " + codePath + ", flags: " + flags + ", privFlags: " + privFlags + ", extra: " + (mExtras == null ? "<<NULL>>" : Integer.toHexString(System.identityHashCode(mExtras)) + "}") + "}"; } @Override public int describeContents() { return 0; Loading services/core/java/com/android/server/pm/PackageManagerService.java +112 −0 Original line number Diff line number Diff line Loading @@ -2697,6 +2697,12 @@ public class PackageManagerService extends IPackageManager.Stub mSettings.getDisabledSystemPkgLPr(ps.name); if (disabledPs.codePath == null || !disabledPs.codePath.exists() || disabledPs.pkg == null) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Possibly deleted app: " + ps.dumpState_temp() + "; path: " + (disabledPs.codePath == null ? "<<NULL>>":disabledPs.codePath) + "; pkg: " + (disabledPs.pkg==null?"<<NULL>>":disabledPs.pkg.toString())); } possiblyDeletedUpdatedSystemApps.add(ps.name); } } Loading Loading @@ -2748,6 +2754,10 @@ public class PackageManagerService extends IPackageManager.Stub for (String deletedAppName : possiblyDeletedUpdatedSystemApps) { PackageParser.Package deletedPkg = mPackages.get(deletedAppName); mSettings.removeDisabledSystemPackageLPw(deletedAppName); if (REFACTOR_DEBUG) { Slog.e("TODD", "remove update; name: " + deletedAppName + ", exists? " + (deletedPkg != null)); } final String msg; if (deletedPkg == null) { // should have found an update, but, we didn't; remove everything Loading Loading @@ -8311,6 +8321,8 @@ public class PackageManagerService extends IPackageManager.Stub return scannedPkg; } // Temporary to catch potential issues with refactoring private static boolean REFACTOR_DEBUG = true; /** * Adds a new package to the internal data structures during platform initialization. * <p>After adding, the package is known to the system and available for querying. Loading Loading @@ -8351,6 +8363,10 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mPackages) { renamedPkgName = mSettings.getRenamedPackageLPr(pkg.mRealPackage); final String realPkgName = getRealPackageName(pkg, renamedPkgName); if (REFACTOR_DEBUG) { Slog.e("TODD", "Add pkg: " + pkg.packageName + (realPkgName==null?"":", realName: " + realPkgName)); } if (realPkgName != null) { ensurePackageRenamed(pkg, renamedPkgName); } Loading @@ -8365,6 +8381,12 @@ public class PackageManagerService extends IPackageManager.Stub if (DEBUG_INSTALL && isSystemPkgUpdated) { Slog.d(TAG, "updatedPkg = " + disabledPkgSetting); } if (REFACTOR_DEBUG) { Slog.e("TODD", "SSP? " + scanSystemPartition + ", exists? " + pkgAlreadyExists + (pkgAlreadyExists?" "+pkgSetting.toString():"") + ", upgraded? " + isSystemPkgUpdated + (isSystemPkgUpdated?" "+disabledPkgSetting.toString():"")); } final SharedUserSetting sharedUserSetting = (pkg.mSharedUserId != null) ? mSettings.getSharedUserLPw(pkg.mSharedUserId, Loading @@ -8376,6 +8398,12 @@ public class PackageManagerService extends IPackageManager.Stub Log.d(TAG, "Shared UserID " + pkg.mSharedUserId + " (uid=" + sharedUserSetting.userId + "):" + " packages=" + sharedUserSetting.packages); if (REFACTOR_DEBUG) { Slog.e("TODD", "Shared UserID " + pkg.mSharedUserId + " (uid=" + sharedUserSetting.userId + "):" + " packages=" + sharedUserSetting.packages); } } if (scanSystemPartition) { Loading @@ -8384,6 +8412,10 @@ public class PackageManagerService extends IPackageManager.Stub // version on /data, cycle through all of its children packages and // remove children that are no longer defined. if (isSystemPkgUpdated) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Disable child packages"); } final int scannedChildCount = (pkg.childPackages != null) ? pkg.childPackages.size() : 0; final int disabledChildCount = disabledPkgSetting.childPackageNames != null Loading @@ -8395,11 +8427,19 @@ public class PackageManagerService extends IPackageManager.Stub for (int j = 0; j < scannedChildCount; j++) { PackageParser.Package childPkg = pkg.childPackages.get(j); if (childPkg.packageName.equals(disabledChildPackageName)) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Ignore " + disabledChildPackageName); } disabledPackageAvailable = true; break; } } if (!disabledPackageAvailable) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Disable " + disabledChildPackageName); } mSettings.removeDisabledSystemPackageLPw(disabledChildPackageName); } } Loading @@ -8408,17 +8448,44 @@ public class PackageManagerService extends IPackageManager.Stub disabledPkgSetting /* pkgSetting */, null /* disabledPkgSetting */, null /* originalPkgSetting */, null, parseFlags, scanFlags, (pkg == mPlatformPackage), user); if (REFACTOR_DEBUG) { Slog.e("TODD", "Scan disabled system package"); Slog.e("TODD", "Pre: " + request.pkgSetting.dumpState_temp()); } final ScanResult result = scanPackageOnlyLI(request, mFactoryTest, -1L); if (REFACTOR_DEBUG) { Slog.e("TODD", "Post: " + (result.success?result.pkgSetting.dumpState_temp():"FAILED scan")); } } } } final boolean newPkgChangedPaths = pkgAlreadyExists && !pkgSetting.codePathString.equals(pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "paths changed? " + newPkgChangedPaths + "; old: " + pkg.codePath + ", new: " + (pkgSetting==null?"<<NULL>>":pkgSetting.codePathString)); } final boolean newPkgVersionGreater = pkgAlreadyExists && pkg.getLongVersionCode() > pkgSetting.versionCode; if (REFACTOR_DEBUG) { Slog.e("TODD", "version greater? " + newPkgVersionGreater + "; old: " + pkg.getLongVersionCode() + ", new: " + (pkgSetting==null?"<<NULL>>":pkgSetting.versionCode)); } final boolean isSystemPkgBetter = scanSystemPartition && isSystemPkgUpdated && newPkgChangedPaths && newPkgVersionGreater; if (REFACTOR_DEBUG) { Slog.e("TODD", "system better? " + isSystemPkgBetter); } if (isSystemPkgBetter) { // The version of the application on /system is greater than the version on // /data. Switch back to the application on /system. Loading @@ -8434,6 +8501,13 @@ public class PackageManagerService extends IPackageManager.Stub + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package changed;" + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); } final InstallArgs args = createInstallArgsForExisting( packageFlagsToInstallFlags(pkgSetting), pkgSetting.codePathString, Loading @@ -8445,6 +8519,10 @@ public class PackageManagerService extends IPackageManager.Stub } if (scanSystemPartition && isSystemPkgUpdated && !isSystemPkgBetter) { if (REFACTOR_DEBUG) { Slog.e("TODD", "THROW exception; system pkg version not good enough"); } // The version of the application on the /system partition is less than or // equal to the version on the /data partition. Throw an exception and use // the application already installed on the /data partition. Loading @@ -8470,6 +8548,11 @@ public class PackageManagerService extends IPackageManager.Stub logCriticalInfo(Log.WARN, "System package signature mismatch;" + " name: " + pkgSetting.name); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package signature mismatch;" + " name: " + pkgSetting.name); } try (PackageFreezer freezer = freezePackage(pkg.packageName, "scanPackageInternalLI")) { deletePackageLIF(pkg.packageName, null, true, null, 0, null, false, null); Loading @@ -8484,6 +8567,13 @@ public class PackageManagerService extends IPackageManager.Stub + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package enabled;" + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); } InstallArgs args = createInstallArgsForExisting( packageFlagsToInstallFlags(pkgSetting), pkgSetting.codePathString, pkgSetting.resourcePathString, getAppDexInstructionSets(pkgSetting)); Loading @@ -8500,13 +8590,35 @@ public class PackageManagerService extends IPackageManager.Stub + " name: " + pkgSetting.name + "; old: " + pkgSetting.codePathString + " @ " + pkgSetting.versionCode + "; new: " + pkg.codePath + " @ " + pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package disabled;" + " name: " + pkgSetting.name + "; old: " + pkgSetting.codePathString + " @ " + pkgSetting.versionCode + "; new: " + pkg.codePath + " @ " + pkg.codePath); } } } if (REFACTOR_DEBUG) { Slog.e("TODD", "Scan package"); Slog.e("TODD", "Pre: " + (pkgSetting==null?"<<NONE>>":pkgSetting.dumpState_temp())); } final PackageParser.Package scannedPkg = scanPackageNewLI(pkg, parseFlags, scanFlags | SCAN_UPDATE_SIGNATURE, currentTime, user); if (REFACTOR_DEBUG) { pkgSetting = mSettings.getPackageLPr(pkg.packageName); Slog.e("TODD", "Post: " + (pkgSetting==null?"<<NONE>>":pkgSetting.dumpState_temp())); } if (shouldHideSystemApp) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Disable package: " + pkg.packageName); } synchronized (mPackages) { mSettings.disableSystemPackageLPw(pkg.packageName, true); } services/core/java/com/android/server/pm/PackageSetting.java +29 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,35 @@ public final class PackageSetting extends PackageSettingBase { + " " + name + "/" + appId + "}"; } // Temporary to catch potential issues with refactoring public String dumpState_temp() { String flags = ""; flags += ((pkgFlags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0 ? "U" : ""); flags += ((pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0 ? "S" : ""); if ("".equals(flags)) { flags = "-"; } String privFlags = ""; privFlags += ((pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0 ? "P" : ""); privFlags += ((pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0 ? "O" : ""); privFlags += ((pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_VENDOR) != 0 ? "V" : ""); if ("".equals(privFlags)) { privFlags = "-"; } return "PackageSetting{" + Integer.toHexString(System.identityHashCode(this)) + " " + name + (realName == null ? "" : "("+realName+")") + "/" + appId + (sharedUser==null?"":" u:" + sharedUser.name+"("+sharedUserId+")") + ", ver:" + versionCode + ", path: " + codePath + ", pABI: " + primaryCpuAbiString + ", sABI: " + secondaryCpuAbiString + ", oABI: " + cpuAbiOverrideString + ", flags: " + flags + ", privFlags: " + privFlags + ", pkg: " + (pkg == null ? "<<NULL>>" : pkg.dumpState_temp()) + "}"; } public void copyFrom(PackageSetting orig) { super.copyFrom(orig); doCopy(orig); Loading Loading
core/java/android/content/pm/PackageParser.java +25 −0 Original line number Diff line number Diff line Loading @@ -6285,6 +6285,31 @@ public class PackageParser { + " " + packageName + "}"; } public String dumpState_temp() { String flags = ""; flags += ((applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0 ? "U" : ""); flags += ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0 ? "S" : ""); if ("".equals(flags)) { flags = "-"; } String privFlags = ""; privFlags += ((applicationInfo.privateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0 ? "P" : ""); privFlags += ((applicationInfo.privateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0 ? "O" : ""); privFlags += ((applicationInfo.privateFlags & ApplicationInfo.PRIVATE_FLAG_VENDOR) != 0 ? "V" : ""); if ("".equals(privFlags)) { privFlags = "-"; } return "Package{" + Integer.toHexString(System.identityHashCode(this)) + " " + packageName + ", ver:" + getLongVersionCode() + ", path: " + codePath + ", flags: " + flags + ", privFlags: " + privFlags + ", extra: " + (mExtras == null ? "<<NULL>>" : Integer.toHexString(System.identityHashCode(mExtras)) + "}") + "}"; } @Override public int describeContents() { return 0; Loading
services/core/java/com/android/server/pm/PackageManagerService.java +112 −0 Original line number Diff line number Diff line Loading @@ -2697,6 +2697,12 @@ public class PackageManagerService extends IPackageManager.Stub mSettings.getDisabledSystemPkgLPr(ps.name); if (disabledPs.codePath == null || !disabledPs.codePath.exists() || disabledPs.pkg == null) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Possibly deleted app: " + ps.dumpState_temp() + "; path: " + (disabledPs.codePath == null ? "<<NULL>>":disabledPs.codePath) + "; pkg: " + (disabledPs.pkg==null?"<<NULL>>":disabledPs.pkg.toString())); } possiblyDeletedUpdatedSystemApps.add(ps.name); } } Loading Loading @@ -2748,6 +2754,10 @@ public class PackageManagerService extends IPackageManager.Stub for (String deletedAppName : possiblyDeletedUpdatedSystemApps) { PackageParser.Package deletedPkg = mPackages.get(deletedAppName); mSettings.removeDisabledSystemPackageLPw(deletedAppName); if (REFACTOR_DEBUG) { Slog.e("TODD", "remove update; name: " + deletedAppName + ", exists? " + (deletedPkg != null)); } final String msg; if (deletedPkg == null) { // should have found an update, but, we didn't; remove everything Loading Loading @@ -8311,6 +8321,8 @@ public class PackageManagerService extends IPackageManager.Stub return scannedPkg; } // Temporary to catch potential issues with refactoring private static boolean REFACTOR_DEBUG = true; /** * Adds a new package to the internal data structures during platform initialization. * <p>After adding, the package is known to the system and available for querying. Loading Loading @@ -8351,6 +8363,10 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mPackages) { renamedPkgName = mSettings.getRenamedPackageLPr(pkg.mRealPackage); final String realPkgName = getRealPackageName(pkg, renamedPkgName); if (REFACTOR_DEBUG) { Slog.e("TODD", "Add pkg: " + pkg.packageName + (realPkgName==null?"":", realName: " + realPkgName)); } if (realPkgName != null) { ensurePackageRenamed(pkg, renamedPkgName); } Loading @@ -8365,6 +8381,12 @@ public class PackageManagerService extends IPackageManager.Stub if (DEBUG_INSTALL && isSystemPkgUpdated) { Slog.d(TAG, "updatedPkg = " + disabledPkgSetting); } if (REFACTOR_DEBUG) { Slog.e("TODD", "SSP? " + scanSystemPartition + ", exists? " + pkgAlreadyExists + (pkgAlreadyExists?" "+pkgSetting.toString():"") + ", upgraded? " + isSystemPkgUpdated + (isSystemPkgUpdated?" "+disabledPkgSetting.toString():"")); } final SharedUserSetting sharedUserSetting = (pkg.mSharedUserId != null) ? mSettings.getSharedUserLPw(pkg.mSharedUserId, Loading @@ -8376,6 +8398,12 @@ public class PackageManagerService extends IPackageManager.Stub Log.d(TAG, "Shared UserID " + pkg.mSharedUserId + " (uid=" + sharedUserSetting.userId + "):" + " packages=" + sharedUserSetting.packages); if (REFACTOR_DEBUG) { Slog.e("TODD", "Shared UserID " + pkg.mSharedUserId + " (uid=" + sharedUserSetting.userId + "):" + " packages=" + sharedUserSetting.packages); } } if (scanSystemPartition) { Loading @@ -8384,6 +8412,10 @@ public class PackageManagerService extends IPackageManager.Stub // version on /data, cycle through all of its children packages and // remove children that are no longer defined. if (isSystemPkgUpdated) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Disable child packages"); } final int scannedChildCount = (pkg.childPackages != null) ? pkg.childPackages.size() : 0; final int disabledChildCount = disabledPkgSetting.childPackageNames != null Loading @@ -8395,11 +8427,19 @@ public class PackageManagerService extends IPackageManager.Stub for (int j = 0; j < scannedChildCount; j++) { PackageParser.Package childPkg = pkg.childPackages.get(j); if (childPkg.packageName.equals(disabledChildPackageName)) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Ignore " + disabledChildPackageName); } disabledPackageAvailable = true; break; } } if (!disabledPackageAvailable) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Disable " + disabledChildPackageName); } mSettings.removeDisabledSystemPackageLPw(disabledChildPackageName); } } Loading @@ -8408,17 +8448,44 @@ public class PackageManagerService extends IPackageManager.Stub disabledPkgSetting /* pkgSetting */, null /* disabledPkgSetting */, null /* originalPkgSetting */, null, parseFlags, scanFlags, (pkg == mPlatformPackage), user); if (REFACTOR_DEBUG) { Slog.e("TODD", "Scan disabled system package"); Slog.e("TODD", "Pre: " + request.pkgSetting.dumpState_temp()); } final ScanResult result = scanPackageOnlyLI(request, mFactoryTest, -1L); if (REFACTOR_DEBUG) { Slog.e("TODD", "Post: " + (result.success?result.pkgSetting.dumpState_temp():"FAILED scan")); } } } } final boolean newPkgChangedPaths = pkgAlreadyExists && !pkgSetting.codePathString.equals(pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "paths changed? " + newPkgChangedPaths + "; old: " + pkg.codePath + ", new: " + (pkgSetting==null?"<<NULL>>":pkgSetting.codePathString)); } final boolean newPkgVersionGreater = pkgAlreadyExists && pkg.getLongVersionCode() > pkgSetting.versionCode; if (REFACTOR_DEBUG) { Slog.e("TODD", "version greater? " + newPkgVersionGreater + "; old: " + pkg.getLongVersionCode() + ", new: " + (pkgSetting==null?"<<NULL>>":pkgSetting.versionCode)); } final boolean isSystemPkgBetter = scanSystemPartition && isSystemPkgUpdated && newPkgChangedPaths && newPkgVersionGreater; if (REFACTOR_DEBUG) { Slog.e("TODD", "system better? " + isSystemPkgBetter); } if (isSystemPkgBetter) { // The version of the application on /system is greater than the version on // /data. Switch back to the application on /system. Loading @@ -8434,6 +8501,13 @@ public class PackageManagerService extends IPackageManager.Stub + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package changed;" + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); } final InstallArgs args = createInstallArgsForExisting( packageFlagsToInstallFlags(pkgSetting), pkgSetting.codePathString, Loading @@ -8445,6 +8519,10 @@ public class PackageManagerService extends IPackageManager.Stub } if (scanSystemPartition && isSystemPkgUpdated && !isSystemPkgBetter) { if (REFACTOR_DEBUG) { Slog.e("TODD", "THROW exception; system pkg version not good enough"); } // The version of the application on the /system partition is less than or // equal to the version on the /data partition. Throw an exception and use // the application already installed on the /data partition. Loading @@ -8470,6 +8548,11 @@ public class PackageManagerService extends IPackageManager.Stub logCriticalInfo(Log.WARN, "System package signature mismatch;" + " name: " + pkgSetting.name); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package signature mismatch;" + " name: " + pkgSetting.name); } try (PackageFreezer freezer = freezePackage(pkg.packageName, "scanPackageInternalLI")) { deletePackageLIF(pkg.packageName, null, true, null, 0, null, false, null); Loading @@ -8484,6 +8567,13 @@ public class PackageManagerService extends IPackageManager.Stub + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package enabled;" + " name: " + pkgSetting.name + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode() + "; " + pkgSetting.codePathString + " --> " + pkg.codePath); } InstallArgs args = createInstallArgsForExisting( packageFlagsToInstallFlags(pkgSetting), pkgSetting.codePathString, pkgSetting.resourcePathString, getAppDexInstructionSets(pkgSetting)); Loading @@ -8500,13 +8590,35 @@ public class PackageManagerService extends IPackageManager.Stub + " name: " + pkgSetting.name + "; old: " + pkgSetting.codePathString + " @ " + pkgSetting.versionCode + "; new: " + pkg.codePath + " @ " + pkg.codePath); if (REFACTOR_DEBUG) { Slog.e("TODD", "System package disabled;" + " name: " + pkgSetting.name + "; old: " + pkgSetting.codePathString + " @ " + pkgSetting.versionCode + "; new: " + pkg.codePath + " @ " + pkg.codePath); } } } if (REFACTOR_DEBUG) { Slog.e("TODD", "Scan package"); Slog.e("TODD", "Pre: " + (pkgSetting==null?"<<NONE>>":pkgSetting.dumpState_temp())); } final PackageParser.Package scannedPkg = scanPackageNewLI(pkg, parseFlags, scanFlags | SCAN_UPDATE_SIGNATURE, currentTime, user); if (REFACTOR_DEBUG) { pkgSetting = mSettings.getPackageLPr(pkg.packageName); Slog.e("TODD", "Post: " + (pkgSetting==null?"<<NONE>>":pkgSetting.dumpState_temp())); } if (shouldHideSystemApp) { if (REFACTOR_DEBUG) { Slog.e("TODD", "Disable package: " + pkg.packageName); } synchronized (mPackages) { mSettings.disableSystemPackageLPw(pkg.packageName, true); }
services/core/java/com/android/server/pm/PackageSetting.java +29 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,35 @@ public final class PackageSetting extends PackageSettingBase { + " " + name + "/" + appId + "}"; } // Temporary to catch potential issues with refactoring public String dumpState_temp() { String flags = ""; flags += ((pkgFlags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0 ? "U" : ""); flags += ((pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0 ? "S" : ""); if ("".equals(flags)) { flags = "-"; } String privFlags = ""; privFlags += ((pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0 ? "P" : ""); privFlags += ((pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0 ? "O" : ""); privFlags += ((pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_VENDOR) != 0 ? "V" : ""); if ("".equals(privFlags)) { privFlags = "-"; } return "PackageSetting{" + Integer.toHexString(System.identityHashCode(this)) + " " + name + (realName == null ? "" : "("+realName+")") + "/" + appId + (sharedUser==null?"":" u:" + sharedUser.name+"("+sharedUserId+")") + ", ver:" + versionCode + ", path: " + codePath + ", pABI: " + primaryCpuAbiString + ", sABI: " + secondaryCpuAbiString + ", oABI: " + cpuAbiOverrideString + ", flags: " + flags + ", privFlags: " + privFlags + ", pkg: " + (pkg == null ? "<<NULL>>" : pkg.dumpState_temp()) + "}"; } public void copyFrom(PackageSetting orig) { super.copyFrom(orig); doCopy(orig); Loading