Include session id when sending broadcasts (1/n) am: 0757179ff8

Change-Id: Ie8c67e12bd46e9fd1cba91aa2d0385289e70f901
This commit is contained in:
Automerger Merge Worker
2020-02-28 06:55:21 +00:00
3 changed files with 27 additions and 3 deletions

View File

@@ -858,6 +858,13 @@ public abstract class PackageManagerInternal {
public static final String EXTRA_ENABLE_ROLLBACK_USER =
"android.content.pm.extra.ENABLE_ROLLBACK_USER";
/**
* Extra field name for the session id of a request to enable rollback
* for a package.
*/
public static final String EXTRA_ENABLE_ROLLBACK_SESSION_ID =
"android.content.pm.extra.ENABLE_ROLLBACK_SESSION_ID";
/**
* Used as the {@code enableRollbackCode} argument for
* {@link PackageManagerInternal#setEnableRollbackCode} to indicate that

View File

@@ -1689,8 +1689,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
}
mRelinquished = true;
return new PackageManagerService.ActiveInstallSession(mPackageName, stageDir,
localObserver, params, mInstallerUid, mInstallSource, user, mSigningDetails);
return new PackageManagerService.ActiveInstallSession(mPackageName, stageDir, localObserver,
sessionId, params, mInstallerUid, mInstallSource, user, mSigningDetails);
}
private static void maybeRenameFile(File from, File to) throws PackageManagerException {

View File

@@ -1967,6 +1967,7 @@ public class PackageManagerService extends IPackageManager.Stub
}
case ENABLE_ROLLBACK_TIMEOUT: {
final int enableRollbackToken = msg.arg1;
final int sessionId = msg.arg2;
final InstallParams params = mPendingEnableRollback.get(enableRollbackToken);
if (params != null) {
final InstallArgs args = params.mArgs;
@@ -1984,6 +1985,9 @@ public class PackageManagerService extends IPackageManager.Stub
rollbackTimeoutIntent.putExtra(
PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_TOKEN,
enableRollbackToken);
rollbackTimeoutIntent.putExtra(
PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_SESSION_ID,
sessionId);
rollbackTimeoutIntent.addFlags(
Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
mContext.sendBroadcastAsUser(rollbackTimeoutIntent, UserHandle.SYSTEM,
@@ -14260,6 +14264,7 @@ public class PackageManagerService extends IPackageManager.Stub
final long requiredInstalledVersionCode;
final boolean forceQueryableOverride;
final int mDataLoaderType;
final int mSessionId;
InstallParams(OriginInfo origin, MoveInfo move, IPackageInstallObserver2 observer,
int installFlags, InstallSource installSource, String volumeUuid,
@@ -14283,6 +14288,7 @@ public class PackageManagerService extends IPackageManager.Stub
this.requiredInstalledVersionCode = requiredInstalledVersionCode;
this.forceQueryableOverride = false;
this.mDataLoaderType = dataLoaderType;
this.mSessionId = -1;
}
InstallParams(ActiveInstallSession activeInstallSession) {
@@ -14318,6 +14324,7 @@ public class PackageManagerService extends IPackageManager.Stub
forceQueryableOverride = sessionParams.forceQueryableOverride;
mDataLoaderType = (sessionParams.dataLoaderParams != null)
? sessionParams.dataLoaderParams.getType() : DataLoaderType.NONE;
mSessionId = activeInstallSession.getSessionId();
}
@Override
@@ -14554,6 +14561,9 @@ public class PackageManagerService extends IPackageManager.Stub
enableRollbackIntent.putExtra(
PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_USER,
getRollbackUser().getIdentifier());
enableRollbackIntent.putExtra(
PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_SESSION_ID,
mSessionId);
enableRollbackIntent.setDataAndType(Uri.fromFile(new File(origin.resolvedPath)),
PACKAGE_MIME_TYPE);
enableRollbackIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
@@ -14581,6 +14591,7 @@ public class PackageManagerService extends IPackageManager.Stub
final Message msg = mHandler.obtainMessage(
ENABLE_ROLLBACK_TIMEOUT);
msg.arg1 = enableRollbackToken;
msg.arg2 = mSessionId;
mHandler.sendMessageDelayed(msg, rollbackTimeout);
}
}, null, 0, null, null);
@@ -24590,6 +24601,7 @@ public class PackageManagerService extends IPackageManager.Stub
private final String mPackageName;
private final File mStagedDir;
private final IPackageInstallObserver2 mObserver;
private final int mSessionId;
private final PackageInstaller.SessionParams mSessionParams;
private final int mInstallerUid;
@NonNull private final InstallSource mInstallSource;
@@ -24597,11 +24609,12 @@ public class PackageManagerService extends IPackageManager.Stub
private final SigningDetails mSigningDetails;
ActiveInstallSession(String packageName, File stagedDir, IPackageInstallObserver2 observer,
PackageInstaller.SessionParams sessionParams, int installerUid,
int sessionId, PackageInstaller.SessionParams sessionParams, int installerUid,
InstallSource installSource, UserHandle user, SigningDetails signingDetails) {
mPackageName = packageName;
mStagedDir = stagedDir;
mObserver = observer;
mSessionId = sessionId;
mSessionParams = sessionParams;
mInstallerUid = installerUid;
mInstallSource = Preconditions.checkNotNull(installSource);
@@ -24621,6 +24634,10 @@ public class PackageManagerService extends IPackageManager.Stub
return mObserver;
}
public int getSessionId() {
return mSessionId;
}
public PackageInstaller.SessionParams getSessionParams() {
return mSessionParams;
}