244 lines
5.7 KiB
Plaintext
244 lines
5.7 KiB
Plaintext
package {
|
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
}
|
|
|
|
microdroid_shell_and_utilities = [
|
|
"reboot",
|
|
"sh",
|
|
"toolbox",
|
|
"toybox",
|
|
]
|
|
|
|
microdroid_rootdirs = [
|
|
"dev",
|
|
"proc",
|
|
"sys",
|
|
|
|
// TODO(b/180267599): clean up unnecessary partition mount points
|
|
"system",
|
|
"system_ext",
|
|
"vendor",
|
|
"vendor_dlkm",
|
|
"product",
|
|
"odm",
|
|
"odm_dlkm",
|
|
"debug_ramdisk",
|
|
"mnt",
|
|
|
|
"apex",
|
|
"linkerconfig",
|
|
"second_stage_resources",
|
|
"postinstall",
|
|
]
|
|
|
|
microdroid_symlinks = [
|
|
{
|
|
target: "/sys/kernel/debug",
|
|
name: "d",
|
|
},
|
|
]
|
|
|
|
android_filesystem {
|
|
name: "microdroid",
|
|
use_avb: true,
|
|
avb_private_key: "microdroid.pem",
|
|
avb_algorithm: "SHA256_RSA4096",
|
|
deps: [
|
|
"init_second_stage",
|
|
"microdroid_init_rc",
|
|
"ueventd.rc",
|
|
"libbinder",
|
|
"libstdc++",
|
|
"logcat",
|
|
"logd",
|
|
"run-as",
|
|
"secilc",
|
|
"adbd",
|
|
"apexd",
|
|
"debuggerd",
|
|
"linker",
|
|
"linkerconfig",
|
|
"servicemanager",
|
|
"tombstoned",
|
|
"cgroups.json",
|
|
|
|
// These two files are temporary and only for test.
|
|
// TODO(b/178993690): migrate cil files to Soong
|
|
"microdroid_plat_sepolicy.cil",
|
|
"microdroid_plat_mapping_file",
|
|
] + microdroid_shell_and_utilities,
|
|
multilib: {
|
|
common: {
|
|
deps: [
|
|
"com.android.runtime",
|
|
"plat_file_contexts",
|
|
"plat_hwservice_contexts",
|
|
"plat_property_contexts",
|
|
"plat_service_contexts",
|
|
"plat_keystore2_key_contexts",
|
|
],
|
|
},
|
|
},
|
|
base_dir: "system",
|
|
dirs: microdroid_rootdirs,
|
|
symlinks: microdroid_symlinks,
|
|
file_contexts: "microdroid_file_contexts",
|
|
}
|
|
|
|
prebuilt_etc {
|
|
name: "microdroid_init_rc",
|
|
filename: "init.rc",
|
|
src: "init.rc",
|
|
relative_install_path: "init/hw",
|
|
installable: false, // avoid collision with system partition's init.rc
|
|
}
|
|
|
|
android_filesystem {
|
|
name: "microdroid_vendor",
|
|
use_avb: true,
|
|
deps: [
|
|
"microdroid_plat_sepolicy_vers.txt",
|
|
"microdroid_vendor_sepolicy.cil",
|
|
"microdroid_plat_pub_versioned.cil",
|
|
],
|
|
avb_private_key: "microdroid.pem",
|
|
avb_algorithm: "SHA256_RSA4096",
|
|
file_contexts: "microdroid_vendor_file_contexts",
|
|
}
|
|
|
|
prebuilt_etc {
|
|
name: "microdroid_plat_sepolicy_vers.txt",
|
|
src: "plat_sepolicy_vers.txt",
|
|
filename: "plat_sepolicy_vers.txt",
|
|
sub_dir: "selinux",
|
|
installable: false,
|
|
}
|
|
|
|
logical_partition {
|
|
name: "microdroid_super",
|
|
sparse: true,
|
|
// TODO(b/181107248): remove this hard-coded value
|
|
size: "104857600",
|
|
groups: [
|
|
{
|
|
name: "mygroup",
|
|
// TODO(b/181107248): remove this hard-coded value
|
|
size: "80000000",
|
|
partitions: [
|
|
{
|
|
name: "system",
|
|
filesystem: ":microdroid",
|
|
},
|
|
{
|
|
name: "vendor",
|
|
filesystem: ":microdroid_vendor",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
bootimg {
|
|
name: "microdroid_boot-5.10",
|
|
ramdisk_module: "microdroid_ramdisk-5.10",
|
|
// We don't have kernel for arm and x86. But Soong demands one when it builds for
|
|
// arm or x86 target. Satisfy that by providing an empty file as the kernel.
|
|
kernel_prebuilt: "empty_kernel",
|
|
arch: {
|
|
arm64: {
|
|
kernel_prebuilt: ":kernel_prebuilts-5.10-arm64",
|
|
},
|
|
x86_64: {
|
|
kernel_prebuilt: ":kernel_prebuilts-5.10-x86_64",
|
|
},
|
|
},
|
|
// TODO(jiyong): change the name to init, cause it's confusing
|
|
cmdline: "rdinit=/bin/init_vendor " +
|
|
"panic=-1 " +
|
|
// TODO(b/181936135) make the ratelimiting conditional; ratelimiting on prod build
|
|
"printk.devkmsg=on " +
|
|
"androidboot.first_stage_console=1 " +
|
|
"androidboot.hardware=microdroid " +
|
|
"androidboot.boot_devices=10000.pci " +
|
|
// TODO(b/181747352) remove this to enforce selinux
|
|
"androidboot.selinux=permissive",
|
|
dtb_prebuilt: "dummy_dtb.img",
|
|
header_version: "4",
|
|
partition_name: "boot",
|
|
}
|
|
|
|
android_filesystem {
|
|
name: "microdroid_ramdisk-5.10",
|
|
deps: [
|
|
"init_first_stage_soong",
|
|
],
|
|
dirs: [
|
|
"dev",
|
|
"proc",
|
|
"sys",
|
|
|
|
// TODO(jiyong): remove these
|
|
"mnt",
|
|
"debug_ramdisk",
|
|
"second_stage_resources",
|
|
],
|
|
type: "compressed_cpio",
|
|
}
|
|
|
|
bootimg {
|
|
name: "microdroid_vendor_boot-5.10",
|
|
ramdisk_module: "microdroid_vendor_ramdisk-5.10",
|
|
dtb_prebuilt: "dummy_dtb.img",
|
|
header_version: "4",
|
|
vendor_boot: true,
|
|
partition_name: "vendor_boot",
|
|
}
|
|
|
|
android_filesystem {
|
|
name: "microdroid_vendor_ramdisk-5.10",
|
|
arch: {
|
|
arm64: {
|
|
deps: ["virt_device_prebuilts_kernel_modules-5.10-arm64"],
|
|
},
|
|
x86_64: {
|
|
deps: ["virt_device_prebuilts_kernel_modules-5.10-x86_64"],
|
|
},
|
|
},
|
|
deps: [
|
|
"microdroid_fstab",
|
|
],
|
|
base_dir: "first_stage_ramdisk",
|
|
type: "compressed_cpio",
|
|
symlinks: [
|
|
{
|
|
target: "etc/fstab",
|
|
name: "first_stage_ramdisk/fstab.microdroid",
|
|
},
|
|
{
|
|
target: "first_stage_ramdisk/lib",
|
|
name: "lib",
|
|
},
|
|
],
|
|
}
|
|
|
|
prebuilt_etc {
|
|
name: "microdroid_fstab",
|
|
src: "fstab",
|
|
filename: "fstab",
|
|
installable: false,
|
|
}
|
|
|
|
prebuilt_etc {
|
|
name: "microdroid_uboot_env",
|
|
src: ":microdroid_uboot_env_gen",
|
|
filename: "uboot_env.img",
|
|
}
|
|
|
|
genrule {
|
|
name: "microdroid_uboot_env_gen",
|
|
tools: ["mkenvimage_host"],
|
|
srcs: ["uboot-env.txt"],
|
|
out: ["output.img"],
|
|
cmd: "$(location mkenvimage_host) -s 4096 -o $(out) $(in)",
|
|
}
|