Skip dexopt if app has preferCodeIntegrity=true

Test: 1. adb install com.android.cts.appintegrity.apk
      2. adb shell cmd package compile -m speed -f com.android.cts.appintegrity
      3. adb shell oatdump --oat-file=$(echo /data/app/com.android.cts.appintegrity-*/oat/arm64/base.odex)
      => no code is observed in oatdump, only if preferCodeIntegrity=true
Bug: 112037137
Change-Id: Ic7defd8096ae9ccb231c3d4b5ffa3adfa4b8dfab
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
index f9e31ae..db7e99d 100644
--- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java
+++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
@@ -509,8 +509,10 @@
             boolean isUsedByOtherApps) {
         int flags = info.flags;
         boolean vmSafeMode = (flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0;
-        // When a priv app is configured to run out of box, only verify it.
-        if (info.isPrivilegedApp() && DexManager.isPackageSelectedToRunOob(info.packageName)) {
+        // When an app or priv app is configured to run out of box, only verify it.
+        if (info.isCodeIntegrityPreferred()
+                || (info.isPrivilegedApp()
+                    && DexManager.isPackageSelectedToRunOob(info.packageName))) {
             return "verify";
         }
         if (vmSafeMode) {