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

Change-Id: I0640ec4d0f06693921814bd0be749ddac6c68a1b
This commit is contained in:
Automerger Merge Worker
2020-02-28 06:55:24 +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 = public static final String EXTRA_ENABLE_ROLLBACK_USER =
"android.content.pm.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 * Used as the {@code enableRollbackCode} argument for
* {@link PackageManagerInternal#setEnableRollbackCode} to indicate that * {@link PackageManagerInternal#setEnableRollbackCode} to indicate that

View File

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