Merge "Skip post install if package was deleted" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9f9ffca0c2
@@ -2072,8 +2072,18 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
int autoRevokePermissionsMode,
|
||||
boolean launchedForRestore, String installerPackage,
|
||||
IPackageInstallObserver2 installObserver, int dataLoaderType) {
|
||||
final boolean succeeded = res.returnCode == PackageManager.INSTALL_SUCCEEDED;
|
||||
boolean succeeded = res.returnCode == PackageManager.INSTALL_SUCCEEDED;
|
||||
final boolean update = res.removedInfo != null && res.removedInfo.removedPackage != null;
|
||||
final String packageName = res.name;
|
||||
final PackageSetting pkgSetting = succeeded ? getPackageSetting(packageName) : null;
|
||||
if (succeeded && pkgSetting == null) {
|
||||
Slog.e(TAG, packageName + " was removed before handlePackagePostInstall "
|
||||
+ "could be executed");
|
||||
res.returnCode = INSTALL_FAILED_PACKAGE_CHANGED;
|
||||
res.returnMsg = "Package was removed before install could complete.";
|
||||
notifyInstallObserver(res, installObserver);
|
||||
return;
|
||||
}
|
||||
|
||||
if (succeeded) {
|
||||
// Send the removed broadcasts
|
||||
@@ -2117,8 +2127,6 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
mInstantAppRegistry.onPackageInstalledLPw(res.pkg, res.newUsers);
|
||||
}
|
||||
|
||||
final String packageName = res.pkg.getPackageName();
|
||||
|
||||
// Determine the set of users who are adding this package for
|
||||
// the first time vs. those who are seeing an update.
|
||||
int[] firstUserIds = EMPTY_INT_ARRAY;
|
||||
@@ -2126,7 +2134,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
int[] updateUserIds = EMPTY_INT_ARRAY;
|
||||
int[] instantUserIds = EMPTY_INT_ARRAY;
|
||||
final boolean allNewUsers = res.origUsers == null || res.origUsers.length == 0;
|
||||
final PackageSetting ps = getPackageSetting(res.pkg.getPackageName());
|
||||
final PackageSetting ps = pkgSetting;
|
||||
for (int newUser : res.newUsers) {
|
||||
final boolean isInstantApp = ps.getInstantApp(newUser);
|
||||
if (allNewUsers) {
|
||||
@@ -2263,7 +2271,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
if (packageExternalStorageType != StorageEnums.UNKNOWN) {
|
||||
FrameworkStatsLog.write(
|
||||
FrameworkStatsLog.APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED,
|
||||
packageExternalStorageType, res.pkg.getPackageName());
|
||||
packageExternalStorageType, packageName);
|
||||
}
|
||||
}
|
||||
if (DEBUG_INSTALL) {
|
||||
@@ -2295,12 +2303,9 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
if (packageIsBrowser(packageName, userId)) {
|
||||
// If this browser is restored from user's backup, do not clear
|
||||
// default-browser state for this user
|
||||
synchronized (mLock) {
|
||||
final PackageSetting pkgSetting = mSettings.mPackages.get(packageName);
|
||||
if (pkgSetting.getInstallReason(userId)
|
||||
!= PackageManager.INSTALL_REASON_DEVICE_RESTORE) {
|
||||
mPermissionManager.setDefaultBrowser(null, true, true, userId);
|
||||
}
|
||||
if (pkgSetting.getInstallReason(userId)
|
||||
!= PackageManager.INSTALL_REASON_DEVICE_RESTORE) {
|
||||
mPermissionManager.setDefaultBrowser(null, true, true, userId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user