Move AVF jar to BCP and rename it to framework-virtualization
In Android U we are planning to provide privileged @SystemApi's to
manage virtual machines. These APIs will be provided by the
framework-virtualization jar.
This change moves the framework-virtualization jar to be part of
the BCP, which will allow us to use the processes and guidelines setup
for Android APIs.
This change also renames the java_sdk_library to framework-virtualization
to align it with other BCP jars provided by APEX modules.
Bug: 243512044
Test: build on product with AVF support
Test: build on product without AVF support
Test: atest --test-mapping packages/modules/Virtualization:avf-presubmit
Change-Id: Ifb0d04d58bb7e18fe548ab3780a0d753c8baba2d
diff --git a/apex/Android.bp b/apex/Android.bp
index ef7677b..2d6c757 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -53,6 +53,10 @@
file_contexts: ":com.android.virt-file_contexts",
canned_fs_config: "canned_fs_config",
+
+ bootclasspath_fragments: [
+ "com.android.virt-bootclasspath-fragment",
+ ],
}
apex_defaults {
@@ -83,9 +87,6 @@
"fd_server",
"vm",
],
- java_libs: [
- "android.system.virtualmachine",
- ],
jni_libs: [
"libvirtualmachine_jni",
],
@@ -207,3 +208,43 @@
},
},
}
+
+// Encapsulate the contributions made by the com.android.virt to the bootclasspath.
+bootclasspath_fragment {
+ name: "com.android.virt-bootclasspath-fragment",
+ contents: ["framework-virtualization"],
+ apex_available: ["com.android.virt"],
+
+ // The bootclasspath_fragments that provide APIs on which this depends.
+ fragments: [
+ {
+ apex: "com.android.art",
+ module: "art-bootclasspath-fragment",
+ },
+ ],
+
+ // Additional stubs libraries that this fragment's contents use which are
+ // not provided by another bootclasspath_fragment.
+ additional_stubs: [
+ "android-non-updatable",
+ ],
+
+ hidden_api: {
+
+ // This module does not contain any split packages.
+ split_packages: [],
+
+ // The following packages and all their subpackages currently only
+ // contain classes from this bootclasspath_fragment. Listing a package
+ // here won't prevent other bootclasspath modules from adding classes in
+ // any of those packages but it will prevent them from adding those
+ // classes into an API surface, e.g. public, system, etc.. Doing so will
+ // result in a build failure due to inconsistent flags.
+ package_prefixes: [
+ "android.system.virtualmachine",
+ "android.system.virtualizationservice",
+ // android.sysprop.*, renamed by jarjar
+ "com.android.system.virtualmachine.sysprop",
+ ],
+ },
+}
diff --git a/demo/Android.bp b/demo/Android.bp
index 8613166..5241e25 100644
--- a/demo/Android.bp
+++ b/demo/Android.bp
@@ -13,7 +13,7 @@
"com.google.android.material_material",
],
libs: [
- "android.system.virtualmachine",
+ "framework-virtualization",
],
jni_libs: ["MicrodroidTestNativeLib"],
platform_apis: true,
diff --git a/javalib/Android.bp b/javalib/Android.bp
index cb03fa1..1d89059 100644
--- a/javalib/Android.bp
+++ b/javalib/Android.bp
@@ -11,10 +11,16 @@
}
java_sdk_library {
- name: "android.system.virtualmachine",
- installable: true,
+ name: "framework-virtualization",
+ installable: false,
compile_dex: true,
+ shared_library: false,
+
+ // TODO(b/243512044): use framework-module-defaults
+
+ dist_group: "android",
+
jarjar_rules: "jarjar-rules.txt",
srcs: ["src/**/*.java"],
@@ -25,6 +31,7 @@
],
apex_available: ["com.android.virt"],
+
permitted_packages: [
"android.system.virtualmachine",
"android.system.virtualizationservice",
@@ -38,6 +45,9 @@
"-Xep:GuardedBy:ERROR",
],
},
+
+ // Temporary workaround, will be removed in a follow-up child cl.
+ unsafe_ignore_missing_latest_api: true,
}
prebuilt_apis {
diff --git a/tests/benchmark/Android.bp b/tests/benchmark/Android.bp
index e6f39f8..e917063 100644
--- a/tests/benchmark/Android.bp
+++ b/tests/benchmark/Android.bp
@@ -16,7 +16,7 @@
"com.android.microdroid.testservice-java",
"truth-prebuilt",
],
- libs: ["android.system.virtualmachine"],
+ libs: ["framework-virtualization"],
jni_libs: [
"MicrodroidBenchmarkNativeLib",
"MicrodroidIdleNativeLib",
diff --git a/tests/helper/Android.bp b/tests/helper/Android.bp
index 60d4be1..bd92020 100644
--- a/tests/helper/Android.bp
+++ b/tests/helper/Android.bp
@@ -24,5 +24,5 @@
"VirtualizationTestHelper",
"truth-prebuilt",
],
- libs: ["android.system.virtualmachine"],
+ libs: ["framework-virtualization"],
}
diff --git a/tests/testapk/Android.bp b/tests/testapk/Android.bp
index 8972046..520085e 100644
--- a/tests/testapk/Android.bp
+++ b/tests/testapk/Android.bp
@@ -19,7 +19,7 @@
"truth-prebuilt",
"compatibility-common-util-devicesidelib",
],
- libs: ["android.system.virtualmachine"],
+ libs: ["framework-virtualization"],
jni_libs: [
"MicrodroidTestNativeLib",
"MicrodroidIdleNativeLib",