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/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()
         })
     }