disable virtio-balloon by default for VirtualMachineRawConfig

So that we don't need to add an LL-NDK API to disable it.

To reduce the impact of this change, I've kept the balloon enabled for
rialto and Trusty even though it is likely not needed.

Test: TH
Bug: 369588412
Change-Id: If22280957d735bd40e86b4d43869a4b70a233cd4
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 82a5573..79c7d81 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -787,7 +787,7 @@
             boost_uclamp: config.boostUclamp,
             gpu_config,
             audio_config,
-            no_balloon: config.noBalloon,
+            balloon: config.balloon,
             usb_config,
             dump_dt_fd,
         };
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index a385b82..2bfa4e1 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -133,7 +133,7 @@
     pub boost_uclamp: bool,
     pub gpu_config: Option<GpuConfig>,
     pub audio_config: Option<AudioConfig>,
-    pub no_balloon: bool,
+    pub balloon: bool,
     pub usb_config: UsbConfig,
     pub dump_dt_fd: Option<File>,
 }
@@ -975,8 +975,7 @@
         .arg("--cid")
         .arg(config.cid.to_string());
 
-    if system_properties::read_bool("hypervisor.memory_reclaim.supported", false)?
-        && !config.no_balloon
+    if system_properties::read_bool("hypervisor.memory_reclaim.supported", false)? && config.balloon
     {
         command.arg("--balloon-page-reporting");
     } else {
diff --git a/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
index 5728a68..3393546 100644
--- a/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
+++ b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
@@ -106,7 +106,7 @@
 
     @nullable AudioConfig audioConfig;
 
-    boolean noBalloon;
+    boolean balloon;
 
     /** Enable or disable USB passthrough support */
     @nullable UsbConfig usbConfig;
diff --git a/guest/trusty/security_vm/launcher/src/main.rs b/guest/trusty/security_vm/launcher/src/main.rs
index 9611f26..f0af9b6 100644
--- a/guest/trusty/security_vm/launcher/src/main.rs
+++ b/guest/trusty/security_vm/launcher/src/main.rs
@@ -78,6 +78,7 @@
         memoryMib: args.memory_size_mib,
         cpuTopology: args.cpu_topology,
         platformVersion: "~1.0".to_owned(),
+        balloon: true, // TODO: probably don't want ballooning.
         // TODO: add instanceId
         ..Default::default()
     });
diff --git a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
index 3829f9f..6c4c599 100644
--- a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
@@ -798,7 +798,7 @@
                 Optional.ofNullable(customImageConfig.getAudioConfig())
                         .map(ac -> ac.toParcelable())
                         .orElse(null);
-        config.noBalloon = !customImageConfig.useAutoMemoryBalloon();
+        config.balloon = customImageConfig.useAutoMemoryBalloon();
         config.usbConfig =
                 Optional.ofNullable(customImageConfig.getUsbConfig())
                         .map(
diff --git a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
index 93f29a9..1708caa 100644
--- a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
@@ -486,7 +486,6 @@
         private boolean network;
         private GpuConfig gpuConfig;
         private boolean trackpad;
-        // TODO(b/363985291): balloon breaks Linux VM behavior
         private boolean autoMemoryBalloon = false;
         private UsbConfig usbConfig;
 
diff --git a/libs/libavf/src/lib.rs b/libs/libavf/src/lib.rs
index 1d7861f..b1edf29 100644
--- a/libs/libavf/src/lib.rs
+++ b/libs/libavf/src/lib.rs
@@ -217,7 +217,7 @@
     // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
     // AVirtualMachineRawConfig_create. It's the only reference to the object.
     let config = unsafe { &mut *config };
-    config.noBalloon = !balloon;
+    config.balloon = balloon;
 }
 
 /// NOT IMPLEMENTED.
diff --git a/libs/libservice_vm_manager/src/lib.rs b/libs/libservice_vm_manager/src/lib.rs
index 0f322bb..5bb97d7 100644
--- a/libs/libservice_vm_manager/src/lib.rs
+++ b/libs/libservice_vm_manager/src/lib.rs
@@ -238,7 +238,8 @@
         memoryMib: VM_MEMORY_MB,
         cpuTopology: CpuTopology::ONE_CPU,
         platformVersion: "~1.0".to_string(),
-        gdbPort: 0, // No gdb
+        gdbPort: 0,    // No gdb
+        balloon: true, // TODO: probably don't want ballooning.
         ..Default::default()
     });
     let console_out = Some(android_log_fd()?);
diff --git a/libs/vmconfig/src/lib.rs b/libs/vmconfig/src/lib.rs
index ef932c2..e520f0e 100644
--- a/libs/vmconfig/src/lib.rs
+++ b/libs/vmconfig/src/lib.rs
@@ -133,6 +133,7 @@
                 .collect::<Result<_>>()?,
             consoleInputDevice: self.console_input_device.clone(),
             usbConfig: usb_config,
+            balloon: true,
             ..Default::default()
         })
     }
diff --git a/microfuchsia/microfuchsiad/src/instance_starter.rs b/microfuchsia/microfuchsiad/src/instance_starter.rs
index 8216039..e3c4e8d 100644
--- a/microfuchsia/microfuchsiad/src/instance_starter.rs
+++ b/microfuchsia/microfuchsiad/src/instance_starter.rs
@@ -86,6 +86,7 @@
             platformVersion: "1.0.0".into(),
             #[cfg(enable_console)]
             consoleInputDevice: Some("ttyS0".into()),
+            balloon: true,
             ..Default::default()
         });
         let vm_instance = VmInstance::create(