Merge "Handles null outInfo in deleteSystemPackageLI" into qt-qpr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2b4f037ef7
@@ -19046,10 +19046,11 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
* Tries to delete system package.
|
* Tries to delete system package.
|
||||||
*/
|
*/
|
||||||
private void deleteSystemPackageLIF(DeletePackageAction action, PackageSetting deletedPs,
|
private void deleteSystemPackageLIF(DeletePackageAction action, PackageSetting deletedPs,
|
||||||
int[] allUserHandles, int flags, PackageRemovedInfo outInfo, boolean writeSettings)
|
int[] allUserHandles, int flags, @Nullable PackageRemovedInfo outInfo,
|
||||||
|
boolean writeSettings)
|
||||||
throws SystemDeleteException {
|
throws SystemDeleteException {
|
||||||
final boolean applyUserRestrictions
|
final boolean applyUserRestrictions =
|
||||||
= (allUserHandles != null) && (outInfo.origUsers != null);
|
(allUserHandles != null) && outInfo != null && (outInfo.origUsers != null);
|
||||||
final PackageParser.Package deletedPkg = deletedPs.pkg;
|
final PackageParser.Package deletedPkg = deletedPs.pkg;
|
||||||
// Confirm if the system package has been updated
|
// Confirm if the system package has been updated
|
||||||
// An updated system app can be deleted. This will also have to restore
|
// An updated system app can be deleted. This will also have to restore
|
||||||
@@ -19070,6 +19071,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (outInfo != null) {
|
||||||
// Delete the updated package
|
// Delete the updated package
|
||||||
outInfo.isRemovedPackageSystemUpdate = true;
|
outInfo.isRemovedPackageSystemUpdate = true;
|
||||||
if (outInfo.removedChildPackages != null) {
|
if (outInfo.removedChildPackages != null) {
|
||||||
@@ -19087,6 +19089,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (disabledPs.versionCode < deletedPs.versionCode) {
|
if (disabledPs.versionCode < deletedPs.versionCode) {
|
||||||
// Delete data for downgrades
|
// Delete data for downgrades
|
||||||
@@ -19115,7 +19118,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
if (DEBUG_REMOVE) Slog.d(TAG, "Re-installing system package: " + disabledPs);
|
if (DEBUG_REMOVE) Slog.d(TAG, "Re-installing system package: " + disabledPs);
|
||||||
try {
|
try {
|
||||||
installPackageFromSystemLIF(disabledPs.codePathString, allUserHandles,
|
installPackageFromSystemLIF(disabledPs.codePathString, allUserHandles,
|
||||||
outInfo.origUsers, deletedPs.getPermissionsState(), writeSettings);
|
outInfo == null ? null : outInfo.origUsers, deletedPs.getPermissionsState(),
|
||||||
|
writeSettings);
|
||||||
} catch (PackageManagerException e) {
|
} catch (PackageManagerException e) {
|
||||||
Slog.w(TAG, "Failed to restore system package:" + deletedPkg.packageName + ": "
|
Slog.w(TAG, "Failed to restore system package:" + deletedPkg.packageName + ": "
|
||||||
+ e.getMessage());
|
+ e.getMessage());
|
||||||
|
|||||||
Reference in New Issue
Block a user