// Copyright 2019 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package { default_applicable_licenses: ["Android-Apache-2.0"], } prebuilt_etc { name: "init.boringssl.zygote64_32.rc", src: "init.boringssl.zygote64_32.rc", sub_dir: "init/hw", symlinks: [ "init.boringssl.zygote32.rc", "init.boringssl.no_zygote.rc", ], } prebuilt_etc { name: "init.boringssl.zygote64.rc", src: "init.boringssl.zygote64.rc", sub_dir: "init/hw", } prebuilt_etc { name: "init.rc", src: "init.rc", sub_dir: "init/hw", required: [ "fsverity_init", "platform-bootclasspath", "init.boringssl.zygote64.rc", "init.boringssl.zygote64_32.rc", ], } prebuilt_etc { name: "ueventd.rc", src: "ueventd.rc", recovery_available: true, } filegroup { name: "system_linker_config_json_file", srcs: ["etc/linker.config.json"], } // TODO(b/147210213) Generate list of libraries during build and fill in at build time linker_config { name: "system_linker_config", src: ":system_linker_config_json_file", installable: false, } // TODO(b/185211376) Scope the native APIs that microdroid will provide to the app payload prebuilt_etc { name: "public.libraries.android.txt", src: "etc/public.libraries.android.txt", filename: "public.libraries.txt", no_full_install: true, } // adb_debug.prop in debug ramdisk prebuilt_root { name: "adb_debug.prop", src: "adb_debug.prop", debug_ramdisk: true, } prebuilt_etc { name: "init.zygote64.rc", src: "init.zygote64.rc", sub_dir: "init/hw", } prebuilt_etc { name: "init.zygote32.rc", src: "init.zygote32.rc", sub_dir: "init/hw", } prebuilt_etc { name: "init.zygote64_32.rc", src: "init.zygote64_32.rc", sub_dir: "init/hw", } prebuilt_etc { name: "init.usb.rc", src: "init.usb.rc", sub_dir: "init/hw", } prebuilt_etc { name: "init.usb.configfs.rc", src: "init.usb.configfs.rc", sub_dir: "init/hw", } prebuilt_etc { name: "etc_hosts", src: "etc/hosts", filename: "hosts", } prebuilt_etc { name: "init-debug.rc", src: "init-debug.rc", sub_dir: "init", } prebuilt_etc { name: "asan.options", src: "asan.options", } sh_binary { name: "asan_extract", src: "asan_extract.sh", init_rc: ["asan_extract.rc"], // We need bzip2 on device for extraction. required: ["bzip2"], } llndk_libraries_txt { name: "llndk.libraries.txt", } sanitizer_libraries_txt { name: "sanitizer.libraries.txt", } EXPORT_GLOBAL_ASAN_OPTIONS = select(soong_config_variable("ANDROID", "ASAN_ENABLED"), { true: "export ASAN_OPTIONS include=/system/asan.options", default: "", }) EXPORT_GLOBAL_HWASAN_OPTIONS = select(soong_config_variable("ANDROID", "HWASAN_ENABLED"), { true: "export HWASAN_OPTIONS heap_history_size=1023,stack_history_size=512,export_memory_stats=0,max_malloc_fill_size=131072,malloc_fill_byte=0", default: "", }) EXPORT_GLOBAL_GCOV_OPTIONS = select(soong_config_variable("ANDROID", "GCOV_COVERAGE"), { true: "export GCOV_PREFIX /data/misc/trace", default: "", }) EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS = select((soong_config_variable("ANDROID", "CLANG_COVERAGE"), soong_config_variable("ANDROID", "CLANG_COVERAGE_CONTINUOUS_MODE")), { (true, true): "export LLVM_PROFILE_FILE /data/misc/trace/clang%c-%20m.profraw", (true, default): "export LLVM_PROFILE_FILE /data/misc/trace/clang-%20m.profraw", (default, default): "", }) EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE = select(soong_config_variable("ANDROID", "SCUDO_ALLOCATION_RING_BUFFER_SIZE"), { "": "", any @ size: "export SCUDO_ALLOCATION_RING_BUFFER_SIZE " + size, default: "", }) genrule { name: "init.environ.rc.gen", srcs: ["init.environ.rc.in"], out: ["init.environ.rc"], cmd: "cp -f $(in) $(out) && " + "echo ' " + EXPORT_GLOBAL_ASAN_OPTIONS + "' >> $(out) && " + "echo ' " + EXPORT_GLOBAL_GCOV_OPTIONS + "' >> $(out) && " + "echo ' " + EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS + "' >> $(out) && " + "echo ' " + EXPORT_GLOBAL_HWASAN_OPTIONS + "' >> $(out) && " + "echo ' " + EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE + "' >> $(out)", } prebuilt_root { name: "init.environ.rc-soong", src: ":init.environ.rc.gen", filename: "init.environ.rc", install_in_root: true, no_full_install: true, required: select((soong_config_variable("ANDROID", "ASAN_ENABLED"), soong_config_variable("ANDROID", "SANITIZE_TARGET_SYSTEM_ENABLED")), { (true, true): [ "asan.options", "asan_extract", ], (true, default): ["asan.options"], (default, default): [], }), } filegroup { name: "ramdisk_node_list", srcs: ["ramdisk_node_list"], export_to_make_var: "RAMDISK_NODE_LIST", }