Revert "Revert "Change apex_available value of libavf based on a..."

Revert submission 3481353-revert-3477737-move_apex_shortcut-EGRJFKGUNB

Reason for revert: relanding with fix

Reverted changes: /q/submissionid:3481353-revert-3477737-move_apex_shortcut-EGRJFKGUNB

Change-Id: Ib1d21c4db0ba652c59450ca2fa0743158e299d49
diff --git a/guest/authfs/Android.bp b/guest/authfs/Android.bp
index d7a8322..28e0f4a 100644
--- a/guest/authfs/Android.bp
+++ b/guest/authfs/Android.bp
@@ -47,5 +47,8 @@
 rust_binary {
     name: "authfs",
     defaults: ["authfs_defaults"],
-    apex_available: ["com.android.virt"],
+    // //apex_available:platform is necessary here to counteract the
+    // com.android.virt in crosvm_defaults and make authfs available
+    // to the platform so it can be embedded in the microdroid image.
+    apex_available: ["//apex_available:platform"],
 }
diff --git a/libs/libavf/Android.bp b/libs/libavf/Android.bp
index c958796..aceb927 100644
--- a/libs/libavf/Android.bp
+++ b/libs/libavf/Android.bp
@@ -40,8 +40,30 @@
     defaults: ["libavf.default"],
 }
 
+soong_config_module_type {
+    name: "virt_cc_defaults",
+    module_type: "cc_defaults",
+    config_namespace: "ANDROID",
+    bool_variables: [
+        "avf_enabled",
+    ],
+    properties: [
+        "apex_available",
+    ],
+}
+
+virt_cc_defaults {
+    name: "libavf_apex_available_defaults",
+    soong_config_variables: {
+        avf_enabled: {
+            apex_available: ["com.android.virt"],
+        },
+    },
+}
+
 cc_library {
     name: "libavf",
+    defaults: ["libavf_apex_available_defaults"],
     llndk: {
         symbol_file: "libavf.map.txt",
         moved_to_apex: true,
@@ -53,7 +75,6 @@
         "liblog",
     ],
     export_include_dirs: ["include"],
-    apex_available: ["com.android.virt"],
     version_script: "libavf.map.txt",
     stubs: {
         symbol_file: "libavf.map.txt",