Merge "Guard new added freezen metric by feature flag." into main
diff --git a/core/java/android/content/pm/flags.aconfig b/core/java/android/content/pm/flags.aconfig
index 9ad66ce..a8fe21e 100644
--- a/core/java/android/content/pm/flags.aconfig
+++ b/core/java/android/content/pm/flags.aconfig
@@ -60,9 +60,17 @@
 }
 
 flag {
+
     name: "rollback_lifetime"
     namespace: "package_manager_service"
     description: "Feature flag to enable custom rollback lifetime during install."
     bug: "299670324"
     is_fixed_read_only: true
-}
\ No newline at end of file
+}
+
+flag {
+    name: "improve_install_freeze"
+    namespace: "package_manager_service"
+    description: "Feature flag to improve install freeze time."
+    bug: "307561242"
+}
diff --git a/services/core/java/com/android/server/pm/InstallRequest.java b/services/core/java/com/android/server/pm/InstallRequest.java
index 7d822b5..be4fb5c 100644
--- a/services/core/java/com/android/server/pm/InstallRequest.java
+++ b/services/core/java/com/android/server/pm/InstallRequest.java
@@ -16,6 +16,7 @@
 
 package com.android.server.pm;
 
+import static android.content.pm.Flags.improveInstallFreeze;
 import static android.content.pm.PackageInstaller.SessionParams.USER_ACTION_UNSPECIFIED;
 import static android.content.pm.PackageManager.INSTALL_REASON_UNKNOWN;
 import static android.content.pm.PackageManager.INSTALL_SCENARIO_DEFAULT;
@@ -962,13 +963,13 @@
     }
 
     public void onFreezeStarted() {
-        if (mPackageMetrics != null) {
+        if (mPackageMetrics != null && improveInstallFreeze()) {
             mPackageMetrics.onStepStarted(PackageMetrics.STEP_FREEZE_INSTALL);
         }
     }
 
     public void onFreezeCompleted() {
-        if (mPackageMetrics != null) {
+        if (mPackageMetrics != null && improveInstallFreeze()) {
             mPackageMetrics.onStepFinished(PackageMetrics.STEP_FREEZE_INSTALL);
         }
     }