blob: 44acbbae4b4df1ed27bdd916b524c5e5eaceea4b [file] [log] [blame]
Tom Cherryc9f53532019-11-04 10:30:36 -08001// Copyright 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badourd69ad692021-02-16 19:02:14 -080015package {
16 default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
Tom Cherryc9f53532019-11-04 10:30:36 -080019prebuilt_etc {
Po-yao Chang6fe93672023-08-10 17:03:34 +080020 name: "init.boringssl.zygote64_32.rc",
21 src: "init.boringssl.zygote64_32.rc",
22 sub_dir: "init/hw",
23 symlinks: [
24 "init.boringssl.zygote32.rc",
25 "init.boringssl.no_zygote.rc",
26 ],
27}
28
29prebuilt_etc {
30 name: "init.boringssl.zygote64.rc",
31 src: "init.boringssl.zygote64.rc",
32 sub_dir: "init/hw",
33}
34
35prebuilt_etc {
Tom Cherryc9f53532019-11-04 10:30:36 -080036 name: "init.rc",
37 src: "init.rc",
38 sub_dir: "init/hw",
Yunkai Lim9292f742023-07-26 06:21:30 +000039 required: [
40 "fsverity_init",
41 "platform-bootclasspath",
Po-yao Chang6fe93672023-08-10 17:03:34 +080042 "init.boringssl.zygote64.rc",
43 "init.boringssl.zygote64_32.rc",
Yunkai Lim9292f742023-07-26 06:21:30 +000044 ],
Tom Cherryc9f53532019-11-04 10:30:36 -080045}
46
47prebuilt_etc {
48 name: "ueventd.rc",
49 src: "ueventd.rc",
50 recovery_available: true,
51}
Kiyoung Kim235ae0d2020-10-21 11:08:12 +090052
Justin Yun807ab252024-09-12 18:28:50 +090053filegroup {
54 name: "system_linker_config_json_file",
55 srcs: ["etc/linker.config.json"],
56}
57
Kiyoung Kim235ae0d2020-10-21 11:08:12 +090058// TODO(b/147210213) Generate list of libraries during build and fill in at build time
59linker_config {
60 name: "system_linker_config",
Justin Yun807ab252024-09-12 18:28:50 +090061 src: ":system_linker_config_json_file",
Kiyoung Kim344b46a2020-11-16 10:49:24 +090062 installable: false,
Kiyoung Kim235ae0d2020-10-21 11:08:12 +090063}
Jooyung Han489cea12021-04-15 05:18:21 +090064
65// TODO(b/185211376) Scope the native APIs that microdroid will provide to the app payload
66prebuilt_etc {
67 name: "public.libraries.android.txt",
68 src: "etc/public.libraries.android.txt",
69 filename: "public.libraries.txt",
Kiyoung Kimed92eab2024-05-29 17:19:04 +090070 no_full_install: true,
Inseob Kim2e200582021-06-11 12:58:53 +090071}
72
73// adb_debug.prop in debug ramdisk
74prebuilt_root {
75 name: "adb_debug.prop",
76 src: "adb_debug.prop",
77 debug_ramdisk: true,
78}
Jeongik Cha36520042024-01-24 16:33:43 +090079
80prebuilt_etc {
81 name: "init.zygote64.rc",
82 src: "init.zygote64.rc",
83 sub_dir: "init/hw",
84}
85
86prebuilt_etc {
87 name: "init.zygote32.rc",
88 src: "init.zygote32.rc",
89 sub_dir: "init/hw",
90}
91
92prebuilt_etc {
93 name: "init.zygote64_32.rc",
94 src: "init.zygote64_32.rc",
95 sub_dir: "init/hw",
96}
97
98prebuilt_etc {
99 name: "init.usb.rc",
100 src: "init.usb.rc",
101 sub_dir: "init/hw",
102}
103
104prebuilt_etc {
105 name: "init.usb.configfs.rc",
106 src: "init.usb.configfs.rc",
107 sub_dir: "init/hw",
108}
Inseob Kimf1ddc622024-04-17 18:30:19 +0900109
110prebuilt_etc {
111 name: "etc_hosts",
112 src: "etc/hosts",
113 filename: "hosts",
114}
Inseob Kim4113b652024-04-19 16:17:14 +0900115
116prebuilt_etc {
117 name: "init-debug.rc",
118 src: "init-debug.rc",
119 sub_dir: "init",
120}
Kiyoung Kimef637fd2024-05-03 16:09:43 +0900121
Nelson Lib335f4d2024-07-17 10:16:39 +0800122prebuilt_etc {
123 name: "asan.options",
124 src: "asan.options",
125}
126
127sh_binary {
128 name: "asan_extract",
129 src: "asan_extract.sh",
130 init_rc: ["asan_extract.rc"],
131 // We need bzip2 on device for extraction.
132 required: ["bzip2"],
133}
134
Kiyoung Kimef637fd2024-05-03 16:09:43 +0900135llndk_libraries_txt {
136 name: "llndk.libraries.txt",
137}
Kiyoung Kim5bec4e02024-05-07 14:54:20 +0900138
139sanitizer_libraries_txt {
140 name: "sanitizer.libraries.txt",
Nelson Lib335f4d2024-07-17 10:16:39 +0800141}
Inseob Kimb7fa3352024-07-30 16:32:20 +0900142
143EXPORT_GLOBAL_ASAN_OPTIONS = select(soong_config_variable("ANDROID", "ASAN_ENABLED"), {
144 true: "export ASAN_OPTIONS include=/system/asan.options",
145 default: "",
146})
147
148EXPORT_GLOBAL_HWASAN_OPTIONS = select(soong_config_variable("ANDROID", "HWASAN_ENABLED"), {
149 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 default: "",
151})
152
153EXPORT_GLOBAL_GCOV_OPTIONS = select(soong_config_variable("ANDROID", "GCOV_COVERAGE"), {
154 true: "export GCOV_PREFIX /data/misc/trace",
155 default: "",
156})
157
158EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS = select((soong_config_variable("ANDROID", "CLANG_COVERAGE"), soong_config_variable("ANDROID", "CLANG_COVERAGE_CONTINUOUS_MODE")), {
159 (true, true): "export LLVM_PROFILE_FILE /data/misc/trace/clang%c-%20m.profraw",
160 (true, default): "export LLVM_PROFILE_FILE /data/misc/trace/clang-%20m.profraw",
161 (default, default): "",
162})
163
164EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE = select(soong_config_variable("ANDROID", "SCUDO_ALLOCATION_RING_BUFFER_SIZE"), {
165 "": "",
166 any @ size: "export SCUDO_ALLOCATION_RING_BUFFER_SIZE " + size,
167 default: "",
168})
169
170genrule {
171 name: "init.environ.rc.gen",
172 srcs: ["init.environ.rc.in"],
173 out: ["init.environ.rc"],
174 cmd: "cp -f $(in) $(out) && " +
Inseob Kim3ce6cb92024-07-31 13:10:48 +0900175 "echo ' " + EXPORT_GLOBAL_ASAN_OPTIONS + "' >> $(out) && " +
176 "echo ' " + EXPORT_GLOBAL_GCOV_OPTIONS + "' >> $(out) && " +
177 "echo ' " + EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS + "' >> $(out) && " +
178 "echo ' " + EXPORT_GLOBAL_HWASAN_OPTIONS + "' >> $(out) && " +
179 "echo ' " + EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE + "' >> $(out)",
Inseob Kimb7fa3352024-07-30 16:32:20 +0900180}
181
182prebuilt_root {
183 name: "init.environ.rc-soong",
184 src: ":init.environ.rc.gen",
185 filename: "init.environ.rc",
186 install_in_root: true,
187 no_full_install: true,
188 required: select((soong_config_variable("ANDROID", "ASAN_ENABLED"), soong_config_variable("ANDROID", "SANITIZE_TARGET_SYSTEM_ENABLED")), {
189 (true, true): [
190 "asan.options",
191 "asan_extract",
192 ],
193 (true, default): ["asan.options"],
194 (default, default): [],
195 }),
196}
Nelson Li560cb932024-08-14 15:29:36 +0800197
198filegroup {
199 name: "ramdisk_node_list",
200 srcs: ["ramdisk_node_list"],
201 export_to_make_var: "RAMDISK_NODE_LIST",
202}