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