Don't restore installer when rolling back APEX

Because the package manager doesn't currently support getting the
installer package for an apex.

Test: atest RollbackTest
Bug: 112431924

Change-Id: Ib53a54a3d089458a8e09f27bdf6eca2091995593
This commit is contained in:
Richard Uhler
2019-02-05 12:51:48 +00:00
parent b502afb18a
commit 7a5eeb1ae3

View File

@@ -331,13 +331,18 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
for (PackageRollbackInfo info : data.packages) {
PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
PackageInstaller.SessionParams.MODE_FULL_INSTALL);
String installerPackageName = pm.getInstallerPackageName(info.getPackageName());
if (installerPackageName == null) {
sendFailure(statusReceiver, RollbackManager.STATUS_FAILURE,
"Cannot find installer package");
return;
// TODO: We can't get the installerPackageName for apex
// (b/123920130). Is it okay to ignore the installer package
// for apex?
if (!info.isApex()) {
String installerPackageName = pm.getInstallerPackageName(info.getPackageName());
if (installerPackageName == null) {
sendFailure(statusReceiver, RollbackManager.STATUS_FAILURE,
"Cannot find installer package");
return;
}
params.setInstallerPackageName(installerPackageName);
}
params.setInstallerPackageName(installerPackageName);
params.setAllowDowngrade(true);
if (data.isStaged()) {
params.setStaged();