android_packages_modules_Vi.../apex/Android.bp

251 lines
5.9 KiB
Plaintext
Raw Normal View History

package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
microdroid_filesystem_images = [
"microdroid_boot",
"microdroid_bootconfig_app_debuggable",
"microdroid_bootconfig_full_debuggable",
"microdroid_bootconfig_normal",
"microdroid_init_boot",
"microdroid_super",
"microdroid_uboot_env",
"microdroid_vbmeta",
"microdroid_vbmeta_bootconfig",
"microdroid_vendor_boot",
]
soong_config_module_type {
name: "virt_apex",
module_type: "apex",
config_namespace: "ANDROID",
bool_variables: ["avf_enabled"],
properties: ["defaults"],
}
virt_apex {
name: "com.android.virt",
soong_config_variables: {
avf_enabled: {
defaults: ["com.android.virt_avf_enabled"],
conditions_default: {
defaults: ["com.android.virt_avf_disabled"],
},
},
},
}
apex_defaults {
name: "com.android.virt_common",
// TODO(jiyong): make it updatable
updatable: false,
future_updatable: true,
platform_apis: true,
manifest: "manifest.json",
key: "com.android.virt.key",
certificate: ":com.android.virt.certificate",
apps: [
"android.system.virtualmachine.res",
],
file_contexts: ":com.android.virt-file_contexts",
canned_fs_config: "canned_fs_config",
bootclasspath_fragments: [
"com.android.virt-bootclasspath-fragment",
],
jni_libs: [
"libvirtualmachine_jni",
],
}
apex_defaults {
name: "com.android.virt_avf_enabled",
defaults: ["com.android.virt_common"],
custom_sign_tool: "sign_virt_apex",
// crosvm and virtualizationservice are only enabled for 64-bit targets on device
arch: {
arm64: {
binaries: [
"crosvm",
"virtualizationservice",
],
filesystems: microdroid_filesystem_images,
},
x86_64: {
binaries: [
"crosvm",
"virtualizationservice",
],
filesystems: microdroid_filesystem_images,
},
},
binaries: [
"fd_server",
"vm",
],
prebuilts: [
"com.android.virt.init.rc",
"features_com.android.virt.xml",
"microdroid_initrd_app_debuggable",
"microdroid_initrd_full_debuggable",
"microdroid_initrd_normal",
"microdroid.json",
"microdroid_bootloader",
"microdroid_bootloader.avbpubkey",
"microdroid_kernel",
],
host_required: [
"vm_shell",
],
}
apex_defaults {
name: "com.android.virt_avf_disabled",
defaults: ["com.android.virt_common"],
}
apex_key {
name: "com.android.virt.key",
public_key: "com.android.virt.avbpubkey",
private_key: "com.android.virt.pem",
}
android_app_certificate {
name: "com.android.virt.certificate",
certificate: "com.android.virt",
}
prebuilt_etc {
name: "com.android.virt.init.rc",
src: "virtualizationservice.rc",
filename: "init.rc",
installable: false,
}
// Virt apex needs a custom signer for its payload
python_binary_host {
name: "sign_virt_apex",
srcs: [
"sign_virt_apex.py",
],
version: {
py3: {
embedded_launcher: true,
},
},
required: [
"img2simg",
"lpmake",
"lpunpack",
"simg2img",
],
}
sh_test_host {
name: "sign_virt_apex_test",
src: "sign_virt_apex_test.sh",
test_config: "sign_virt_apex_test.xml",
data_bins: [
// deapexer
"deapexer",
"debugfs_static",
"blkid",
"fsck.erofs",
// sign_virt_apex
"avbtool",
"img2simg",
"lpmake",
"lpunpack",
"sign_virt_apex",
"simg2img",
],
data_libs: [
"libbase",
"libc++",
"libcrypto_utils",
"libcrypto",
"libext4_utils",
"liblog",
"liblp",
"libsparse",
"libz",
],
data: [
":com.android.virt",
":test.com.android.virt.pem",
],
test_suites: ["general-tests"],
}
filegroup {
name: "test.com.android.virt.pem",
srcs: ["test.com.android.virt.pem"],
}
filegroup {
name: "test2.com.android.virt.pem",
srcs: ["test2.com.android.virt.pem"],
}
// custom tool to replace bytes in a file
python_binary_host {
name: "replace_bytes",
srcs: [
"replace_bytes.py",
],
version: {
py3: {
embedded_launcher: true,
},
},
}
// 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",
],
},
}