Use updatable sysprop to for enabling APEX mgmt

This should prevent unnecessary communication with apexd on devices that
don't support APEX package management.

Bug: 130623080
Test: CTS tests on marlin (no APEX support) and cuttlefish
Change-Id: Ic5fdb088aa1530b3c5aecbd5abd3d794a364c775
diff --git a/Android.bp b/Android.bp
index 0fcc0d5..abf95a8 100644
--- a/Android.bp
+++ b/Android.bp
@@ -687,6 +687,7 @@
         "core/java/com/android/server/DropboxLogTags.logtags",
         "core/java/org/chromium/arc/EventLogTags.logtags",
 
+        ":apex-properties",
         ":platform-properties",
 
         ":framework-statslog-gen",
@@ -1834,4 +1835,4 @@
     name: "framework-aidl-mappings",
     srcs: [":framework-defaults"],
     output: "framework-aidl-mappings.txt"
-}
\ No newline at end of file
+}
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java
index 21b6f12..5430f4c 100644
--- a/services/core/java/com/android/server/pm/ApexManager.java
+++ b/services/core/java/com/android/server/pm/ApexManager.java
@@ -33,6 +33,7 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.ServiceManager.ServiceNotFoundException;
+import android.sysprop.ApexProperties;
 import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
@@ -237,11 +238,7 @@
      * @return true if APEX packages can be managed on this device, false otherwise.
      */
     boolean isApexSupported() {
-        populateActivePackagesCacheIfNeeded();
-        // There is no system-wide property available to check if APEX are flattened and hence can't
-        // be updated. In absence of such property, we assume that if we didn't index APEX packages
-        // since they were flattened, no APEX management should be possible.
-        return !mActivePackagesCache.isEmpty();
+        return ApexProperties.updatable().orElse(false);
     }
 
     /**