Upgraded payload accepted & downgraded rejected

Add Microdroid host tests which re-run Microdroid instance with
upgraded/downgraded payload apk & check the intended behaviour.

Test: Run the added tests.
Bug: 291213394
Change-Id: I1af13fe54b4b41b6f42bae66f0815093780fdff7
diff --git a/tests/testapk/Android.bp b/tests/testapk/Android.bp
index 84bf098..471aea7 100644
--- a/tests/testapk/Android.bp
+++ b/tests/testapk/Android.bp
@@ -33,10 +33,10 @@
     compile_multilib: "both",
 }
 
-android_test {
-    name: "MicrodroidTestApp",
-    defaults: ["MicrodroidTestAppsDefaults"],
+java_defaults {
+    name: "MicrodroidVersionsTestAppDefaults",
     srcs: ["src/java/**/*.java"],
+    defaults: ["MicrodroidTestAppsDefaults"],
     static_libs: [
         "MicrodroidDeviceTestHelper",
         "VmAttestationTestUtil",
@@ -58,14 +58,27 @@
         "libvm_attestation_test_payload",
     ],
     min_sdk_version: "33",
+}
+
+android_test {
+    name: "MicrodroidTestApp",
+    defaults: ["MicrodroidVersionsTestAppDefaults"],
+    manifest: "AndroidManifestV5.xml",
     // Defined in ../vmshareapp/Android.bp
     data: [
+        ":MicrodroidTestAppUpdated",
         ":MicrodroidVmShareApp",
         ":test_microdroid_vendor_image",
         ":test_microdroid_vendor_image_unsigned",
     ],
 }
 
+android_test_helper_app {
+    name: "MicrodroidTestAppUpdated",
+    defaults: ["MicrodroidVersionsTestAppDefaults"],
+    manifest: "AndroidManifestV6.xml",
+}
+
 // Defaults shared between MicrodroidTestNativeLib and MicrodroidPayloadInOtherAppNativeLib shared
 // libs. They are expected to share everything apart from the name, so that one app
 // (MicrodroidTestApp) can start a payload defined in the another app (MicrodroidVmShareApp).
diff --git a/tests/testapk/AndroidManifest.xml b/tests/testapk/AndroidManifestV5.xml
similarity index 94%
copy from tests/testapk/AndroidManifest.xml
copy to tests/testapk/AndroidManifestV5.xml
index d6e6004..7d97680 100644
--- a/tests/testapk/AndroidManifest.xml
+++ b/tests/testapk/AndroidManifestV5.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.android.microdroid.test">
+      package="com.android.microdroid.test"
+      android:versionCode="5">
     <uses-permission android:name="android.permission.MANAGE_VIRTUAL_MACHINE" />
     <uses-permission android:name="android.permission.USE_CUSTOM_VIRTUAL_MACHINE" />
     <uses-sdk android:minSdkVersion="33" android:targetSdkVersion="33" />
diff --git a/tests/testapk/AndroidManifest.xml b/tests/testapk/AndroidManifestV6.xml
similarity index 94%
rename from tests/testapk/AndroidManifest.xml
rename to tests/testapk/AndroidManifestV6.xml
index d6e6004..19d5674 100644
--- a/tests/testapk/AndroidManifest.xml
+++ b/tests/testapk/AndroidManifestV6.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.android.microdroid.test">
+      package="com.android.microdroid.test"
+      android:versionCode="6">
     <uses-permission android:name="android.permission.MANAGE_VIRTUAL_MACHINE" />
     <uses-permission android:name="android.permission.USE_CUSTOM_VIRTUAL_MACHINE" />
     <uses-sdk android:minSdkVersion="33" android:targetSdkVersion="33" />