Merge "Add more packages to Settings#mInstallerPackages."
This commit is contained in:
@@ -13452,9 +13452,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
|
||||
// Okay!
|
||||
targetPackageSetting.setInstallerPackageName(installerPackageName);
|
||||
if (installerPackageName != null) {
|
||||
mSettings.mInstallerPackages.add(installerPackageName);
|
||||
}
|
||||
mSettings.addInstallerPackageNames(targetPackageSetting.installSource);
|
||||
scheduleWriteSettingsLocked();
|
||||
}
|
||||
}
|
||||
@@ -15160,7 +15158,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "updateSettings");
|
||||
|
||||
final String pkgName = pkg.getPackageName();
|
||||
final String installerPackageName = installArgs.installSource.installerPackageName;
|
||||
final InstallSource installSource = installArgs.installSource;
|
||||
final String installerPackageName = installSource.installerPackageName;
|
||||
final int[] installedForUsers = res.origUsers;
|
||||
final int installReason = installArgs.installReason;
|
||||
|
||||
@@ -15171,7 +15170,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
// For system-bundled packages, we assume that installing an upgraded version
|
||||
// of the package implies that the user actually wants to run that new code,
|
||||
// so we enable the package.
|
||||
PackageSetting ps = mSettings.mPackages.get(pkgName);
|
||||
final PackageSetting ps = mSettings.mPackages.get(pkgName);
|
||||
final int userId = installArgs.user.getIdentifier();
|
||||
if (ps != null) {
|
||||
if (isSystemApp(pkg)) {
|
||||
@@ -15208,8 +15207,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
ps.setEnabled(COMPONENT_ENABLED_STATE_DEFAULT, userId, installerPackageName);
|
||||
}
|
||||
|
||||
ps.setInstallSource(installArgs.installSource);
|
||||
|
||||
ps.setInstallSource(installSource);
|
||||
mSettings.addInstallerPackageNames(installSource);
|
||||
|
||||
// When replacing an existing package, preserve the original install reason for all
|
||||
// users that had the package installed before.
|
||||
@@ -15239,7 +15238,6 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
res.name = pkgName;
|
||||
res.uid = pkg.getUid();
|
||||
res.pkg = pkg;
|
||||
mSettings.setInstallerPackageName(pkgName, installerPackageName);
|
||||
res.setReturnCode(PackageManager.INSTALL_SUCCEEDED);
|
||||
//to update install status
|
||||
Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "writeSettings");
|
||||
|
||||
@@ -280,8 +280,11 @@ public final class Settings {
|
||||
/** Map from package name to settings */
|
||||
final ArrayMap<String, PackageSetting> mPackages = new ArrayMap<>();
|
||||
|
||||
/** List of packages that installed other packages */
|
||||
final ArraySet<String> mInstallerPackages = new ArraySet<>();
|
||||
/**
|
||||
* List of packages that were involved in installing other packages, i.e. are listed
|
||||
* in at least one app's InstallSource.
|
||||
*/
|
||||
private final ArraySet<String> mInstallerPackages = new ArraySet<>();
|
||||
|
||||
/** Map from package name to appId and excluded userids */
|
||||
private final ArrayMap<String, KernelPackageState> mKernelMapping = new ArrayMap<>();
|
||||
@@ -441,16 +444,6 @@ public final class Settings {
|
||||
return mPermissions.canPropagatePermissionToInstantApp(permName);
|
||||
}
|
||||
|
||||
void setInstallerPackageName(String pkgName, String installerPkgName) {
|
||||
PackageSetting p = mPackages.get(pkgName);
|
||||
if (p != null) {
|
||||
p.setInstallerPackageName(installerPkgName);
|
||||
if (installerPkgName != null) {
|
||||
mInstallerPackages.add(installerPkgName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Gets and optionally creates a new shared user id. */
|
||||
SharedUserSetting getSharedUserLPw(String name, int pkgFlags, int pkgPrivateFlags,
|
||||
boolean create) throws PackageManagerException {
|
||||
@@ -3777,9 +3770,10 @@ public final class Settings {
|
||||
}
|
||||
if (packageSetting != null) {
|
||||
packageSetting.uidError = "true".equals(uidError);
|
||||
packageSetting.installSource = InstallSource.create(
|
||||
InstallSource installSource = InstallSource.create(
|
||||
installInitiatingPackageName, installOriginatingPackageName,
|
||||
installerPackageName, "true".equals(isOrphaned));
|
||||
packageSetting.installSource = installSource;
|
||||
packageSetting.volumeUuid = volumeUuid;
|
||||
packageSetting.categoryHint = categoryHint;
|
||||
packageSetting.legacyNativeLibraryPathString = legacyNativeLibraryPathStr;
|
||||
@@ -3809,9 +3803,7 @@ public final class Settings {
|
||||
packageSetting.setEnabled(COMPONENT_ENABLED_STATE_DEFAULT, 0, null);
|
||||
}
|
||||
|
||||
if (installerPackageName != null) {
|
||||
mInstallerPackages.add(installerPackageName);
|
||||
}
|
||||
addInstallerPackageNames(installSource);
|
||||
|
||||
int outerDepth = parser.getDepth();
|
||||
int type;
|
||||
@@ -3870,6 +3862,18 @@ public final class Settings {
|
||||
}
|
||||
}
|
||||
|
||||
void addInstallerPackageNames(InstallSource installSource) {
|
||||
if (installSource.installerPackageName != null) {
|
||||
mInstallerPackages.add(installSource.installerPackageName);
|
||||
}
|
||||
if (installSource.initiatingPackageName != null) {
|
||||
mInstallerPackages.add(installSource.initiatingPackageName);
|
||||
}
|
||||
if (installSource.originatingPackageName != null) {
|
||||
mInstallerPackages.add(installSource.originatingPackageName);
|
||||
}
|
||||
}
|
||||
|
||||
private void readDisabledComponentsLPw(PackageSettingBase packageSetting, XmlPullParser parser,
|
||||
int userId) throws IOException, XmlPullParserException {
|
||||
int outerDepth = parser.getDepth();
|
||||
|
||||
Reference in New Issue
Block a user