250 lines
5.9 KiB
Plaintext
250 lines
5.9 KiB
Plaintext
package {
|
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
}
|
|
|
|
microdroid_filesystem_images = [
|
|
"microdroid_super",
|
|
"microdroid_vbmeta",
|
|
]
|
|
|
|
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: false,
|
|
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: [
|
|
"libvirtualizationservice_jni",
|
|
"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",
|
|
"virtmgr",
|
|
"virtualizationservice",
|
|
],
|
|
filesystems: microdroid_filesystem_images,
|
|
},
|
|
x86_64: {
|
|
binaries: [
|
|
"crosvm",
|
|
"virtmgr",
|
|
"virtualizationservice",
|
|
],
|
|
filesystems: microdroid_filesystem_images,
|
|
},
|
|
},
|
|
binaries: [
|
|
"fd_server",
|
|
"vm",
|
|
],
|
|
prebuilts: [
|
|
"com.android.virt.init.rc",
|
|
"features_com.android.virt.xml",
|
|
"microdroid_initrd_debuggable",
|
|
"microdroid_initrd_normal",
|
|
"microdroid.json",
|
|
"microdroid_kernel",
|
|
],
|
|
host_required: [
|
|
"vm_shell",
|
|
],
|
|
apps: [
|
|
"EmptyPayloadApp",
|
|
],
|
|
}
|
|
|
|
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: [
|
|
// sign_virt_apex should be runnable from outside the source tree,
|
|
// therefore, any required tool should be listed in build/make/core/Makefile as well.
|
|
"img2simg",
|
|
"initrd_bootconfig",
|
|
"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",
|
|
"initrd_bootconfig",
|
|
"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",
|
|
],
|
|
},
|
|
}
|