Makefile module still remains to handle post install commands. We're going to move that to somewhere else as a followup. Bug: 353429422 Test: boot with and without USE_SOONG_DEFINED_SYSTEM_IMAGE Change-Id: I85ec048e6e57981ad4496ea90762aa34bd9a5ca1
189 lines
5.3 KiB
Text
189 lines
5.3 KiB
Text
// 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,
|
|
}
|
|
|
|
// TODO(b/147210213) Generate list of libraries during build and fill in at build time
|
|
linker_config {
|
|
name: "system_linker_config",
|
|
src: "etc/linker.config.json",
|
|
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"), soong_config_variable("ANDROID", "HWADDRESS_SANITIZER_GLOBAL_OPTIONS")), {
|
|
(true, ""): "",
|
|
(true, any @ options): "export HWASAN_OPTIONS " + options,
|
|
(default, 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) && " +
|
|
"sed -i -e 's?%EXPORT_GLOBAL_ASAN_OPTIONS%?" + EXPORT_GLOBAL_ASAN_OPTIONS + "?g' $(out) && " +
|
|
"sed -i -e 's?%EXPORT_GLOBAL_GCOV_OPTIONS%?" + EXPORT_GLOBAL_GCOV_OPTIONS + "?g' $(out) && " +
|
|
"sed -i -e 's?%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%?" + EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS + "?g' $(out) && " +
|
|
"sed -i -e 's?%EXPORT_GLOBAL_HWASAN_OPTIONS%?" + EXPORT_GLOBAL_HWASAN_OPTIONS + "?g' $(out) && " +
|
|
"sed -i -e 's?%EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE%?" + EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE + "?g' $(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): [],
|
|
}),
|
|
}
|