Merge "Disable package verifier for staged installs."
This commit is contained in:
@@ -866,6 +866,14 @@ public abstract class PackageManager {
|
||||
*/
|
||||
public static final int INSTALL_ENABLE_ROLLBACK = 0x00040000;
|
||||
|
||||
/**
|
||||
* Flag parameter for {@link #installPackage} to indicate that package verification should be
|
||||
* disabled for this package.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static final int INSTALL_DISABLE_VERIFICATION = 0x00080000;
|
||||
|
||||
/** @hide */
|
||||
@IntDef(flag = true, prefix = { "DONT_KILL_APP" }, value = {
|
||||
DONT_KILL_APP
|
||||
|
||||
@@ -13426,6 +13426,10 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((installFlags & PackageManager.INSTALL_DISABLE_VERIFICATION) != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean ensureVerifyAppsEnabled = isUserRestricted(userId, UserManager.ENSURE_VERIFY_APPS);
|
||||
|
||||
// Check if installing from ADB
|
||||
|
||||
@@ -186,6 +186,7 @@ public class StagingManager {
|
||||
private void preRebootVerification(@NonNull PackageInstallerSession session) {
|
||||
boolean success = true;
|
||||
|
||||
// STOPSHIP: TODO(b/123753157): Verify APKs through Package Verifier.
|
||||
if (!sessionContainsApex(session)) {
|
||||
// TODO: Decide whether we want to fail fast by detecting signature mismatches for APKs,
|
||||
// right away.
|
||||
@@ -336,6 +337,7 @@ public class StagingManager {
|
||||
|
||||
PackageInstaller.SessionParams params = originalSession.params.copy();
|
||||
params.isStaged = false;
|
||||
params.installFlags |= PackageManager.INSTALL_DISABLE_VERIFICATION;
|
||||
int apkSessionId = mPi.createSession(
|
||||
params, originalSession.getInstallerPackageName(), originalSession.userId);
|
||||
PackageInstallerSession apkSession = mPi.getSession(apkSessionId);
|
||||
|
||||
Reference in New Issue
Block a user