Include session id when sending broadcasts (1/n) am: 0757179ff8 am: 74bc1b642e
Change-Id: I2a9baa1932d7e8916796b63e8dfc73bf5b7f312b
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user