| // 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: [ |
| "platform-bootclasspath", |
| "init.boringssl.zygote64.rc", |
| "init.boringssl.zygote64_32.rc", |
| ], |
| } |
| |
| prebuilt_etc { |
| name: "ueventd.rc", |
| src: "ueventd.rc", |
| } |
| |
| prebuilt_etc { |
| name: "ueventd.rc.recovery", |
| src: "ueventd.rc", |
| recovery: true, |
| filename: "ueventd.rc", |
| } |
| |
| filegroup { |
| name: "system_linker_config_json_file", |
| srcs: ["etc/linker.config.json"], |
| } |
| |
| // 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", |
| } |