xref: /aosp_15_r20/system/core/rootdir/Android.bp (revision 00c7fec1bb09f3284aad6a6f96d2f63dfc3650ad)
1*00c7fec1SAndroid Build Coastguard Worker// Copyright 2019 The Android Open Source Project
2*00c7fec1SAndroid Build Coastguard Worker//
3*00c7fec1SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*00c7fec1SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*00c7fec1SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*00c7fec1SAndroid Build Coastguard Worker//
7*00c7fec1SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*00c7fec1SAndroid Build Coastguard Worker//
9*00c7fec1SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*00c7fec1SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*00c7fec1SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*00c7fec1SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*00c7fec1SAndroid Build Coastguard Worker// limitations under the License.
14*00c7fec1SAndroid Build Coastguard Worker
15*00c7fec1SAndroid Build Coastguard Workerpackage {
16*00c7fec1SAndroid Build Coastguard Worker    default_applicable_licenses: ["Android-Apache-2.0"],
17*00c7fec1SAndroid Build Coastguard Worker}
18*00c7fec1SAndroid Build Coastguard Worker
19*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
20*00c7fec1SAndroid Build Coastguard Worker    name: "init.boringssl.zygote64_32.rc",
21*00c7fec1SAndroid Build Coastguard Worker    src: "init.boringssl.zygote64_32.rc",
22*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
23*00c7fec1SAndroid Build Coastguard Worker    symlinks: [
24*00c7fec1SAndroid Build Coastguard Worker        "init.boringssl.zygote32.rc",
25*00c7fec1SAndroid Build Coastguard Worker        "init.boringssl.no_zygote.rc",
26*00c7fec1SAndroid Build Coastguard Worker    ],
27*00c7fec1SAndroid Build Coastguard Worker}
28*00c7fec1SAndroid Build Coastguard Worker
29*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
30*00c7fec1SAndroid Build Coastguard Worker    name: "init.boringssl.zygote64.rc",
31*00c7fec1SAndroid Build Coastguard Worker    src: "init.boringssl.zygote64.rc",
32*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
33*00c7fec1SAndroid Build Coastguard Worker}
34*00c7fec1SAndroid Build Coastguard Worker
35*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
36*00c7fec1SAndroid Build Coastguard Worker    name: "init.rc",
37*00c7fec1SAndroid Build Coastguard Worker    src: "init.rc",
38*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
39*00c7fec1SAndroid Build Coastguard Worker    required: [
40*00c7fec1SAndroid Build Coastguard Worker        "fsverity_init",
41*00c7fec1SAndroid Build Coastguard Worker        "platform-bootclasspath",
42*00c7fec1SAndroid Build Coastguard Worker        "init.boringssl.zygote64.rc",
43*00c7fec1SAndroid Build Coastguard Worker        "init.boringssl.zygote64_32.rc",
44*00c7fec1SAndroid Build Coastguard Worker    ],
45*00c7fec1SAndroid Build Coastguard Worker}
46*00c7fec1SAndroid Build Coastguard Worker
47*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
48*00c7fec1SAndroid Build Coastguard Worker    name: "ueventd.rc",
49*00c7fec1SAndroid Build Coastguard Worker    src: "ueventd.rc",
50*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
51*00c7fec1SAndroid Build Coastguard Worker}
52*00c7fec1SAndroid Build Coastguard Worker
53*00c7fec1SAndroid Build Coastguard Workerfilegroup {
54*00c7fec1SAndroid Build Coastguard Worker    name: "system_linker_config_json_file",
55*00c7fec1SAndroid Build Coastguard Worker    srcs: ["etc/linker.config.json"],
56*00c7fec1SAndroid Build Coastguard Worker}
57*00c7fec1SAndroid Build Coastguard Worker
58*00c7fec1SAndroid Build Coastguard Worker// TODO(b/147210213) Generate list of libraries during build and fill in at build time
59*00c7fec1SAndroid Build Coastguard Workerlinker_config {
60*00c7fec1SAndroid Build Coastguard Worker    name: "system_linker_config",
61*00c7fec1SAndroid Build Coastguard Worker    src: ":system_linker_config_json_file",
62*00c7fec1SAndroid Build Coastguard Worker    installable: false,
63*00c7fec1SAndroid Build Coastguard Worker}
64*00c7fec1SAndroid Build Coastguard Worker
65*00c7fec1SAndroid Build Coastguard Worker// TODO(b/185211376) Scope the native APIs that microdroid will provide to the app payload
66*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
67*00c7fec1SAndroid Build Coastguard Worker    name: "public.libraries.android.txt",
68*00c7fec1SAndroid Build Coastguard Worker    src: "etc/public.libraries.android.txt",
69*00c7fec1SAndroid Build Coastguard Worker    filename: "public.libraries.txt",
70*00c7fec1SAndroid Build Coastguard Worker    no_full_install: true,
71*00c7fec1SAndroid Build Coastguard Worker}
72*00c7fec1SAndroid Build Coastguard Worker
73*00c7fec1SAndroid Build Coastguard Worker// adb_debug.prop in debug ramdisk
74*00c7fec1SAndroid Build Coastguard Workerprebuilt_root {
75*00c7fec1SAndroid Build Coastguard Worker    name: "adb_debug.prop",
76*00c7fec1SAndroid Build Coastguard Worker    src: "adb_debug.prop",
77*00c7fec1SAndroid Build Coastguard Worker    debug_ramdisk: true,
78*00c7fec1SAndroid Build Coastguard Worker}
79*00c7fec1SAndroid Build Coastguard Worker
80*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
81*00c7fec1SAndroid Build Coastguard Worker    name: "init.zygote64.rc",
82*00c7fec1SAndroid Build Coastguard Worker    src: "init.zygote64.rc",
83*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
84*00c7fec1SAndroid Build Coastguard Worker}
85*00c7fec1SAndroid Build Coastguard Worker
86*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
87*00c7fec1SAndroid Build Coastguard Worker    name: "init.zygote32.rc",
88*00c7fec1SAndroid Build Coastguard Worker    src: "init.zygote32.rc",
89*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
90*00c7fec1SAndroid Build Coastguard Worker}
91*00c7fec1SAndroid Build Coastguard Worker
92*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
93*00c7fec1SAndroid Build Coastguard Worker    name: "init.zygote64_32.rc",
94*00c7fec1SAndroid Build Coastguard Worker    src: "init.zygote64_32.rc",
95*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
96*00c7fec1SAndroid Build Coastguard Worker}
97*00c7fec1SAndroid Build Coastguard Worker
98*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
99*00c7fec1SAndroid Build Coastguard Worker    name: "init.usb.rc",
100*00c7fec1SAndroid Build Coastguard Worker    src: "init.usb.rc",
101*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
102*00c7fec1SAndroid Build Coastguard Worker}
103*00c7fec1SAndroid Build Coastguard Worker
104*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
105*00c7fec1SAndroid Build Coastguard Worker    name: "init.usb.configfs.rc",
106*00c7fec1SAndroid Build Coastguard Worker    src: "init.usb.configfs.rc",
107*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init/hw",
108*00c7fec1SAndroid Build Coastguard Worker}
109*00c7fec1SAndroid Build Coastguard Worker
110*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
111*00c7fec1SAndroid Build Coastguard Worker    name: "etc_hosts",
112*00c7fec1SAndroid Build Coastguard Worker    src: "etc/hosts",
113*00c7fec1SAndroid Build Coastguard Worker    filename: "hosts",
114*00c7fec1SAndroid Build Coastguard Worker}
115*00c7fec1SAndroid Build Coastguard Worker
116*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
117*00c7fec1SAndroid Build Coastguard Worker    name: "init-debug.rc",
118*00c7fec1SAndroid Build Coastguard Worker    src: "init-debug.rc",
119*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "init",
120*00c7fec1SAndroid Build Coastguard Worker}
121*00c7fec1SAndroid Build Coastguard Worker
122*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
123*00c7fec1SAndroid Build Coastguard Worker    name: "asan.options",
124*00c7fec1SAndroid Build Coastguard Worker    src: "asan.options",
125*00c7fec1SAndroid Build Coastguard Worker}
126*00c7fec1SAndroid Build Coastguard Worker
127*00c7fec1SAndroid Build Coastguard Workersh_binary {
128*00c7fec1SAndroid Build Coastguard Worker    name: "asan_extract",
129*00c7fec1SAndroid Build Coastguard Worker    src: "asan_extract.sh",
130*00c7fec1SAndroid Build Coastguard Worker    init_rc: ["asan_extract.rc"],
131*00c7fec1SAndroid Build Coastguard Worker    // We need bzip2 on device for extraction.
132*00c7fec1SAndroid Build Coastguard Worker    required: ["bzip2"],
133*00c7fec1SAndroid Build Coastguard Worker}
134*00c7fec1SAndroid Build Coastguard Worker
135*00c7fec1SAndroid Build Coastguard Workerllndk_libraries_txt {
136*00c7fec1SAndroid Build Coastguard Worker    name: "llndk.libraries.txt",
137*00c7fec1SAndroid Build Coastguard Worker}
138*00c7fec1SAndroid Build Coastguard Worker
139*00c7fec1SAndroid Build Coastguard Workersanitizer_libraries_txt {
140*00c7fec1SAndroid Build Coastguard Worker    name: "sanitizer.libraries.txt",
141*00c7fec1SAndroid Build Coastguard Worker}
142*00c7fec1SAndroid Build Coastguard Worker
143*00c7fec1SAndroid Build Coastguard WorkerEXPORT_GLOBAL_ASAN_OPTIONS = select(soong_config_variable("ANDROID", "ASAN_ENABLED"), {
144*00c7fec1SAndroid Build Coastguard Worker    true: "export ASAN_OPTIONS include=/system/asan.options",
145*00c7fec1SAndroid Build Coastguard Worker    default: "",
146*00c7fec1SAndroid Build Coastguard Worker})
147*00c7fec1SAndroid Build Coastguard Worker
148*00c7fec1SAndroid Build Coastguard WorkerEXPORT_GLOBAL_HWASAN_OPTIONS = select(soong_config_variable("ANDROID", "HWASAN_ENABLED"), {
149*00c7fec1SAndroid Build Coastguard Worker    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",
150*00c7fec1SAndroid Build Coastguard Worker    default: "",
151*00c7fec1SAndroid Build Coastguard Worker})
152*00c7fec1SAndroid Build Coastguard Worker
153*00c7fec1SAndroid Build Coastguard WorkerEXPORT_GLOBAL_GCOV_OPTIONS = select(soong_config_variable("ANDROID", "GCOV_COVERAGE"), {
154*00c7fec1SAndroid Build Coastguard Worker    true: "export GCOV_PREFIX /data/misc/trace",
155*00c7fec1SAndroid Build Coastguard Worker    default: "",
156*00c7fec1SAndroid Build Coastguard Worker})
157*00c7fec1SAndroid Build Coastguard Worker
158*00c7fec1SAndroid Build Coastguard WorkerEXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS = select((soong_config_variable("ANDROID", "CLANG_COVERAGE"), soong_config_variable("ANDROID", "CLANG_COVERAGE_CONTINUOUS_MODE")), {
159*00c7fec1SAndroid Build Coastguard Worker    (true, true): "export LLVM_PROFILE_FILE /data/misc/trace/clang%c-%20m.profraw",
160*00c7fec1SAndroid Build Coastguard Worker    (true, default): "export LLVM_PROFILE_FILE /data/misc/trace/clang-%20m.profraw",
161*00c7fec1SAndroid Build Coastguard Worker    (default, default): "",
162*00c7fec1SAndroid Build Coastguard Worker})
163*00c7fec1SAndroid Build Coastguard Worker
164*00c7fec1SAndroid Build Coastguard WorkerEXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE = select(soong_config_variable("ANDROID", "SCUDO_ALLOCATION_RING_BUFFER_SIZE"), {
165*00c7fec1SAndroid Build Coastguard Worker    "": "",
166*00c7fec1SAndroid Build Coastguard Worker    any @ size: "export SCUDO_ALLOCATION_RING_BUFFER_SIZE " + size,
167*00c7fec1SAndroid Build Coastguard Worker    default: "",
168*00c7fec1SAndroid Build Coastguard Worker})
169*00c7fec1SAndroid Build Coastguard Worker
170*00c7fec1SAndroid Build Coastguard Workergenrule {
171*00c7fec1SAndroid Build Coastguard Worker    name: "init.environ.rc.gen",
172*00c7fec1SAndroid Build Coastguard Worker    srcs: ["init.environ.rc.in"],
173*00c7fec1SAndroid Build Coastguard Worker    out: ["init.environ.rc"],
174*00c7fec1SAndroid Build Coastguard Worker    cmd: "cp -f $(in) $(out) && " +
175*00c7fec1SAndroid Build Coastguard Worker        "echo '    " + EXPORT_GLOBAL_ASAN_OPTIONS + "' >> $(out) && " +
176*00c7fec1SAndroid Build Coastguard Worker        "echo '    " + EXPORT_GLOBAL_GCOV_OPTIONS + "' >> $(out) && " +
177*00c7fec1SAndroid Build Coastguard Worker        "echo '    " + EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS + "' >> $(out) && " +
178*00c7fec1SAndroid Build Coastguard Worker        "echo '    " + EXPORT_GLOBAL_HWASAN_OPTIONS + "' >> $(out) && " +
179*00c7fec1SAndroid Build Coastguard Worker        "echo '    " + EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE + "' >> $(out)",
180*00c7fec1SAndroid Build Coastguard Worker}
181*00c7fec1SAndroid Build Coastguard Worker
182*00c7fec1SAndroid Build Coastguard Workerprebuilt_root {
183*00c7fec1SAndroid Build Coastguard Worker    name: "init.environ.rc-soong",
184*00c7fec1SAndroid Build Coastguard Worker    src: ":init.environ.rc.gen",
185*00c7fec1SAndroid Build Coastguard Worker    filename: "init.environ.rc",
186*00c7fec1SAndroid Build Coastguard Worker    install_in_root: true,
187*00c7fec1SAndroid Build Coastguard Worker    no_full_install: true,
188*00c7fec1SAndroid Build Coastguard Worker    required: select((soong_config_variable("ANDROID", "ASAN_ENABLED"), soong_config_variable("ANDROID", "SANITIZE_TARGET_SYSTEM_ENABLED")), {
189*00c7fec1SAndroid Build Coastguard Worker        (true, true): [
190*00c7fec1SAndroid Build Coastguard Worker            "asan.options",
191*00c7fec1SAndroid Build Coastguard Worker            "asan_extract",
192*00c7fec1SAndroid Build Coastguard Worker        ],
193*00c7fec1SAndroid Build Coastguard Worker        (true, default): ["asan.options"],
194*00c7fec1SAndroid Build Coastguard Worker        (default, default): [],
195*00c7fec1SAndroid Build Coastguard Worker    }),
196*00c7fec1SAndroid Build Coastguard Worker}
197*00c7fec1SAndroid Build Coastguard Worker
198*00c7fec1SAndroid Build Coastguard Workerfilegroup {
199*00c7fec1SAndroid Build Coastguard Worker    name: "ramdisk_node_list",
200*00c7fec1SAndroid Build Coastguard Worker    srcs: ["ramdisk_node_list"],
201*00c7fec1SAndroid Build Coastguard Worker    export_to_make_var: "RAMDISK_NODE_LIST",
202*00c7fec1SAndroid Build Coastguard Worker}
203