Add test to verify page size of Microdroid VM

Also fix the x86_64 microdroid_16k. Unfortunately passing the
`page_shift = 14` option in the bootconfig doesn't enable 16k emulation,
so we need to pass the option in the kernel cmdline until support for
bootconfig is implemented in the kernel.

Bug: 333730505
Test: atest MicrodroidTests
Change-Id: I35375ad272b4ff91c37a9a69658a17045a4a7ac8
diff --git a/tests/testapk/src/native/testbinary.cpp b/tests/testapk/src/native/testbinary.cpp
index 1a75102..632f648 100644
--- a/tests/testapk/src/native/testbinary.cpp
+++ b/tests/testapk/src/native/testbinary.cpp
@@ -34,6 +34,7 @@
 #include <vm_main.h>
 #include <vm_payload_restricted.h>
 
+#include <cstdint>
 #include <string>
 #include <thread>
 
@@ -311,6 +312,11 @@
             return ScopedAStatus::ok();
         }
 
+        ScopedAStatus getPageSize(int32_t* out) override {
+            *out = getpagesize();
+            return ScopedAStatus::ok();
+        }
+
         ScopedAStatus requestCallback(const std::shared_ptr<IAppCallback>& appCallback) {
             auto vmCallback = ndk::SharedRefBase::make<VmCallbackImpl>(appCallback);
             std::thread callback_thread{[=] { appCallback->setVmCallback(vmCallback); }};
diff --git a/tests/testapk/src/native/testbinary.rs b/tests/testapk/src/native/testbinary.rs
index 85b411e..e479342 100644
--- a/tests/testapk/src/native/testbinary.rs
+++ b/tests/testapk/src/native/testbinary.rs
@@ -123,6 +123,9 @@
     fn getMountFlags(&self, _: &str) -> BinderResult<i32> {
         unimplemented()
     }
+    fn getPageSize(&self) -> BinderResult<i32> {
+        unimplemented()
+    }
     fn requestCallback(&self, _: &Strong<dyn IAppCallback + 'static>) -> BinderResult<()> {
         unimplemented()
     }