blob: d0e045b7dc9aace834f67bdeb42efc1ce3eb1b04 [file] [log] [blame] [edit]
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
android_app_certificate {
name: "MicrodroidTestAppCert",
// The default app cert is the same as the default platform cert
// (on a test-keys build), which means we end up getting assigned
// the permissions via signature and can't reliably disclaim
// them. So instead we use our own custom cert. See b/290582742.
// Created via: development/tools/make_key microdroid_test_app '/CN=microdroid_test_app'
certificate: "microdroid_test_app",
}
java_defaults {
name: "MicrodroidTestAppsDefaults",
static_libs: [
"avf_aconfig_flags_java",
"com.android.microdroid.testservice-java",
"com.android.microdroid.test.vmshare_service-java",
"com.android.virt.vm_attestation.testservice-java",
"platform-test-annotations",
],
certificate: ":MicrodroidTestAppCert",
sdk_version: "test_current",
jni_uses_platform_apis: true,
use_embedded_native_libs: true,
// We only support 64-bit ABI, but CTS demands all APKs to be multi-ABI.
compile_multilib: "both",
}
java_defaults {
name: "MicrodroidVersionsTestAppDefaults",
srcs: ["src/java/**/*.java"],
defaults: ["MicrodroidTestAppsDefaults"],
static_libs: [
"MicrodroidDeviceTestHelper",
"VmAttestationTestUtil",
"androidx.test.runner",
"androidx.test.ext.junit",
"authfs_test_apk_assets",
"cbor-java",
"truth",
"compatibility-common-util-devicesidelib",
"measure_io_as_jar",
],
jni_libs: [
"MicrodroidTestNativeLib",
"MicrodroidIdleNativeLib",
"MicrodroidEmptyNativeLib",
"MicrodroidExitNativeLib",
"MicrodroidPrivateLinkingNativeLib",
"MicrodroidCrashNativeLib",
"libmicrodroid_testlib_rust",
"libvm_attestation_test_payload",
// Non-VM payload libraries
"libhwtrust_jni",
],
min_sdk_version: "33",
}
DATA = [
":MicrodroidTestAppUpdated",
":MicrodroidVmShareApp",
":test_microdroid_vendor_image",
":test_microdroid_vendor_image_unsigned",
]
android_test {
name: "MicrodroidTestApp",
defaults: ["MicrodroidVersionsTestAppDefaults"],
manifest: "AndroidManifestV5.xml",
test_suites: ["general-tests"],
test_config_template: "AndroidTestTemplate.xml",
auto_gen_config: true,
data: DATA,
}
android_test {
name: "MicrodroidTestApp.CTS",
defaults: ["MicrodroidVersionsTestAppDefaults"],
manifest: "AndroidManifestV5.xml",
test_config_template: "AndroidTestTemplate.xml",
test_suites: ["cts"],
auto_gen_config: true,
test_options: {
tradefed_options: [
{
name: "include-annotation",
value: "com.android.compatibility.common.util.CddTest",
},
{
name: "test-suite-tag",
value: "cts",
},
],
},
data: DATA,
}
android_test {
name: "MicrodroidTestApp.VTS",
defaults: ["MicrodroidVersionsTestAppDefaults"],
manifest: "AndroidManifestV5.xml",
test_config_template: "AndroidTestTemplate.xml",
test_suites: ["vts"],
auto_gen_config: true,
test_options: {
tradefed_options: [
{
name: "include-annotation",
value: "com.android.compatibility.common.util.VsrTest",
},
{
name: "test-suite-tag",
value: "vts",
},
],
},
data: DATA,
}
android_test {
name: "MicrodroidTestApp.GTS",
defaults: ["MicrodroidVersionsTestAppDefaults"],
manifest: "AndroidManifestV5.xml",
test_config_template: "AndroidTestTemplate.xml",
test_suites: ["gts"],
auto_gen_config: true,
test_options: {
tradefed_options: [
{
name: "include-annotation",
value: "com.android.compatibility.common.util.GmsTest",
},
{
name: "test-suite-tag",
value: "gts",
},
],
},
data: DATA,
}
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).
cc_defaults {
name: "MicrodroidTestNativeLibDefaults",
defaults: ["avf_build_flags_cc"],
srcs: ["src/native/testbinary.cpp"],
stl: "libc++_static",
header_libs: ["vm_payload_restricted_headers"],
shared_libs: [
"libbinder_ndk",
"libcap",
"MicrodroidTestNativeLibSub",
"libvm_payload#current",
],
static_libs: [
"com.android.microdroid.testservice-ndk",
"libbase",
"libfstab",
"libfsverity_digests_proto_cc",
"liblog",
"libprotobuf-cpp-lite-ndk",
],
}
cc_library_shared {
name: "MicrodroidPayloadInOtherAppNativeLib",
defaults: ["MicrodroidTestNativeLibDefaults"],
}
cc_library_shared {
name: "MicrodroidTestNativeLib",
defaults: ["MicrodroidTestNativeLibDefaults"],
}
cc_library_shared {
name: "MicrodroidTestNativeLibSub",
defaults: ["avf_build_flags_cc"],
srcs: ["src/native/testlib.cpp"],
stl: "libc++_static",
}
cc_library_shared {
name: "MicrodroidIdleNativeLib",
defaults: ["avf_build_flags_cc"],
srcs: ["src/native/idlebinary.cpp"],
header_libs: ["vm_payload_headers"],
stl: "libc++_static",
}
// An empty payload missing AVmPayload_main
cc_library_shared {
name: "MicrodroidEmptyNativeLib",
defaults: ["avf_build_flags_cc"],
srcs: ["src/native/emptybinary.cpp"],
stl: "none",
}
// A payload that exits immediately on start
cc_library_shared {
name: "MicrodroidExitNativeLib",
defaults: ["avf_build_flags_cc"],
srcs: ["src/native/exitbinary.cpp"],
header_libs: ["vm_payload_headers"],
stl: "libc++_static",
}
// A payload which tries to link against libselinux, one of private libraries
cc_library_shared {
name: "MicrodroidPrivateLinkingNativeLib",
defaults: ["avf_build_flags_cc"],
srcs: ["src/native/idlebinary.cpp"],
header_libs: ["vm_payload_headers"],
// HACK: linking against "libselinux" will embed libselinux.so into the apk
// link against a stub to prevent libselinux.so from being embedded
shared_libs: ["libselinux#latest"],
stl: "libc++_static",
}
// A payload that crashes immediately on start
cc_library_shared {
name: "MicrodroidCrashNativeLib",
defaults: ["avf_build_flags_cc"],
srcs: ["src/native/crashbinary.cpp"],
header_libs: ["vm_payload_headers"],
stl: "libc++_static",
}
// A payload written in Rust, using the Rust wrapper for the VM payload API.
rust_ffi_shared {
name: "libmicrodroid_testlib_rust",
crate_name: "microdroid_testlib_rust",
defaults: ["avf_build_flags_rust"],
prefer_rlib: true,
srcs: ["src/native/testbinary.rs"],
compile_multilib: "both",
rustlibs: [
"com.android.microdroid.testservice-rust",
"libandroid_logger",
"libanyhow",
"libavflog",
"liblog_rust",
"libvm_payload_rs",
],
}
rust_ffi_shared {
name: "libhwtrust_jni",
crate_name: "hwtrust_jni",
srcs: ["src/native/hwtrust_jni.rs"],
prefer_rlib: true,
rustlibs: [
"libandroid_logger",
"libanyhow",
"liblog_rust",
"libhwtrust",
"libjni",
],
shared_libs: [
"libcrypto",
],
}