From c3dac2edb0d3d50c9ac1047a5d9b1948085f0d79 Mon Sep 17 00:00:00 2001 From: Victor Hsieh Date: Wed, 10 Mar 2021 17:43:59 -0800 Subject: [PATCH] Move fs-verity check into DexMetadataHelper Bug: 180414192 Test: CtsDexMetadataHostTestCases (with pm.dexopt.dm.require_fsverity true/false) Change-Id: I91924fc92afd53bf7a276fa9ee62a7ce82d4e6b1 --- core/java/android/content/pm/dex/DexMetadataHelper.java | 4 +++- .../java/com/android/server/pm/PackageInstallerSession.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/pm/dex/DexMetadataHelper.java b/core/java/android/content/pm/dex/DexMetadataHelper.java index 0d5b33cd86724..8f9a0d79f33b8 100644 --- a/core/java/android/content/pm/dex/DexMetadataHelper.java +++ b/core/java/android/content/pm/dex/DexMetadataHelper.java @@ -29,6 +29,7 @@ import android.util.Log; import android.util.jar.StrictJarFile; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.security.VerityUtils; import java.io.File; import java.io.IOException; @@ -76,7 +77,8 @@ public class DexMetadataHelper { * Returns whether fs-verity is required to install a dex metadata */ public static boolean isFsVerityRequired() { - return SystemProperties.getBoolean(PROPERTY_DM_FSVERITY_REQUIRED, false); + return VerityUtils.isFsVeritySupported() + && SystemProperties.getBoolean(PROPERTY_DM_FSVERITY_REQUIRED, false); } /** diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 58e2aa2b76023..82b12aac0a111 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -3060,7 +3060,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { // Also stage .dm.fsv_sig. .dm may be required to install with fs-verity signature on // supported on older devices. maybeStageFsveritySignatureLocked(dexMetadataFile, targetDexMetadataFile, - VerityUtils.isFsVeritySupported() && DexMetadataHelper.isFsVerityRequired()); + DexMetadataHelper.isFsVerityRequired()); } private void storeBytesToInstallationFile(final String localPath, final String absolutePath,