Set dev.bootcomplete in Microdroid

This is done right before microdroid_manager starts the payload.
Also update a boot-completeness check in the test to use this property.

Bug: 230774156
Test: atest MicrodroidTestCase
Change-Id: Id9604058c546e062425fe1ee8a201af32c0bd344
diff --git a/microdroid_manager/src/main.rs b/microdroid_manager/src/main.rs
index 8a638db..f9b4cf7 100644
--- a/microdroid_manager/src/main.rs
+++ b/microdroid_manager/src/main.rs
@@ -282,6 +282,7 @@
         config.task.is_some(),
         MicrodroidError::InvalidConfig("No task in VM config".to_string())
     );
+    system_properties::write("dev.bootcomplete", "1").context("set dev.bootcomplete")?;
     exec_task(&config.task.unwrap(), service)
 }
 
diff --git a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
index 6a5689d..7126399 100644
--- a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
+++ b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
@@ -105,11 +105,8 @@
                 false);
     }
 
-    // Wait until logd-init starts. The service is one of the last services that are started in
-    // the microdroid boot procedure. Therefore, waiting for the service means that we wait for
-    // the boot to complete. TODO: we need a better marker eventually.
-    private void waitForLogdInit() {
-        runOnMicrodroidForResult("watch -e \"getprop init.svc.logd-reinit | grep '^$'\"");
+    private void waitForBootComplete() {
+        runOnMicrodroidForResult("watch -e \"getprop dev.bootcomplete | grep '^0$'\"");
     }
 
     @Test
@@ -382,7 +379,7 @@
                         Optional.of(NUM_VCPUS),
                         Optional.of(CPU_AFFINITY));
         adbConnectToMicrodroid(getDevice(), cid);
-        waitForLogdInit();
+        waitForBootComplete();
         runOnMicrodroid("logcat -c");
         // We need root permission to write to /data/tombstones/
         rootMicrodroid();
@@ -415,7 +412,7 @@
                         Optional.of(NUM_VCPUS),
                         Optional.of(CPU_AFFINITY));
         adbConnectToMicrodroid(getDevice(), cid);
-        waitForLogdInit();
+        waitForBootComplete();
         // Test writing to /data partition
         runOnMicrodroid("echo MicrodroidTest > /data/local/tmp/test.txt");
         assertThat(runOnMicrodroid("cat /data/local/tmp/test.txt"), is("MicrodroidTest"));