xref: /aosp_15_r20/system/core/init/Android.bp (revision 00c7fec1bb09f3284aad6a6f96d2f63dfc3650ad)
1*00c7fec1SAndroid Build Coastguard Worker//
2*00c7fec1SAndroid Build Coastguard Worker// Copyright (C) 2017 The Android Open Source Project
3*00c7fec1SAndroid Build Coastguard Worker//
4*00c7fec1SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*00c7fec1SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*00c7fec1SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*00c7fec1SAndroid Build Coastguard Worker//
8*00c7fec1SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*00c7fec1SAndroid Build Coastguard Worker//
10*00c7fec1SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*00c7fec1SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*00c7fec1SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*00c7fec1SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*00c7fec1SAndroid Build Coastguard Worker// limitations under the License.
15*00c7fec1SAndroid Build Coastguard Worker//
16*00c7fec1SAndroid Build Coastguard Worker
17*00c7fec1SAndroid Build Coastguard Workerpackage {
18*00c7fec1SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_core_init_license"],
19*00c7fec1SAndroid Build Coastguard Worker}
20*00c7fec1SAndroid Build Coastguard Worker
21*00c7fec1SAndroid Build Coastguard Worker// Added automatically by a large-scale-change
22*00c7fec1SAndroid Build Coastguard Worker// See: http://go/android-license-faq
23*00c7fec1SAndroid Build Coastguard Workerlicense {
24*00c7fec1SAndroid Build Coastguard Worker    name: "system_core_init_license",
25*00c7fec1SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
26*00c7fec1SAndroid Build Coastguard Worker    license_kinds: [
27*00c7fec1SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
28*00c7fec1SAndroid Build Coastguard Worker    ],
29*00c7fec1SAndroid Build Coastguard Worker    license_text: [
30*00c7fec1SAndroid Build Coastguard Worker        "NOTICE",
31*00c7fec1SAndroid Build Coastguard Worker    ],
32*00c7fec1SAndroid Build Coastguard Worker}
33*00c7fec1SAndroid Build Coastguard Worker
34*00c7fec1SAndroid Build Coastguard Workerinit_common_sources = [
35*00c7fec1SAndroid Build Coastguard Worker    "action.cpp",
36*00c7fec1SAndroid Build Coastguard Worker    "action_manager.cpp",
37*00c7fec1SAndroid Build Coastguard Worker    "action_parser.cpp",
38*00c7fec1SAndroid Build Coastguard Worker    "capabilities.cpp",
39*00c7fec1SAndroid Build Coastguard Worker    "epoll.cpp",
40*00c7fec1SAndroid Build Coastguard Worker    "import_parser.cpp",
41*00c7fec1SAndroid Build Coastguard Worker    "interprocess_fifo.cpp",
42*00c7fec1SAndroid Build Coastguard Worker    "keychords.cpp",
43*00c7fec1SAndroid Build Coastguard Worker    "parser.cpp",
44*00c7fec1SAndroid Build Coastguard Worker    "property_type.cpp",
45*00c7fec1SAndroid Build Coastguard Worker    "rlimit_parser.cpp",
46*00c7fec1SAndroid Build Coastguard Worker    "service.cpp",
47*00c7fec1SAndroid Build Coastguard Worker    "service_list.cpp",
48*00c7fec1SAndroid Build Coastguard Worker    "service_parser.cpp",
49*00c7fec1SAndroid Build Coastguard Worker    "service_utils.cpp",
50*00c7fec1SAndroid Build Coastguard Worker    "subcontext.cpp",
51*00c7fec1SAndroid Build Coastguard Worker    "subcontext.proto",
52*00c7fec1SAndroid Build Coastguard Worker    "tokenizer.cpp",
53*00c7fec1SAndroid Build Coastguard Worker    "util.cpp",
54*00c7fec1SAndroid Build Coastguard Worker]
55*00c7fec1SAndroid Build Coastguard Workerinit_device_sources = [
56*00c7fec1SAndroid Build Coastguard Worker    "apex_init_util.cpp",
57*00c7fec1SAndroid Build Coastguard Worker    "block_dev_initializer.cpp",
58*00c7fec1SAndroid Build Coastguard Worker    "bootchart.cpp",
59*00c7fec1SAndroid Build Coastguard Worker    "builtins.cpp",
60*00c7fec1SAndroid Build Coastguard Worker    "devices.cpp",
61*00c7fec1SAndroid Build Coastguard Worker    "firmware_handler.cpp",
62*00c7fec1SAndroid Build Coastguard Worker    "first_stage_console.cpp",
63*00c7fec1SAndroid Build Coastguard Worker    "first_stage_init.cpp",
64*00c7fec1SAndroid Build Coastguard Worker    "first_stage_mount.cpp",
65*00c7fec1SAndroid Build Coastguard Worker    "fscrypt_init_extensions.cpp",
66*00c7fec1SAndroid Build Coastguard Worker    "init.cpp",
67*00c7fec1SAndroid Build Coastguard Worker    "lmkd_service.cpp",
68*00c7fec1SAndroid Build Coastguard Worker    "modalias_handler.cpp",
69*00c7fec1SAndroid Build Coastguard Worker    "mount_handler.cpp",
70*00c7fec1SAndroid Build Coastguard Worker    "mount_namespace.cpp",
71*00c7fec1SAndroid Build Coastguard Worker    "persistent_properties.cpp",
72*00c7fec1SAndroid Build Coastguard Worker    "persistent_properties.proto",
73*00c7fec1SAndroid Build Coastguard Worker    "property_service.cpp",
74*00c7fec1SAndroid Build Coastguard Worker    "property_service.proto",
75*00c7fec1SAndroid Build Coastguard Worker    "reboot.cpp",
76*00c7fec1SAndroid Build Coastguard Worker    "reboot_utils.cpp",
77*00c7fec1SAndroid Build Coastguard Worker    "security.cpp",
78*00c7fec1SAndroid Build Coastguard Worker    "selabel.cpp",
79*00c7fec1SAndroid Build Coastguard Worker    "selinux.cpp",
80*00c7fec1SAndroid Build Coastguard Worker    "sigchld_handler.cpp",
81*00c7fec1SAndroid Build Coastguard Worker    "snapuserd_transition.cpp",
82*00c7fec1SAndroid Build Coastguard Worker    "switch_root.cpp",
83*00c7fec1SAndroid Build Coastguard Worker    "uevent_listener.cpp",
84*00c7fec1SAndroid Build Coastguard Worker    "ueventd.cpp",
85*00c7fec1SAndroid Build Coastguard Worker    "ueventd_parser.cpp",
86*00c7fec1SAndroid Build Coastguard Worker]
87*00c7fec1SAndroid Build Coastguard Worker
88*00c7fec1SAndroid Build Coastguard Workersoong_config_module_type {
89*00c7fec1SAndroid Build Coastguard Worker    name: "libinit_cc_defaults",
90*00c7fec1SAndroid Build Coastguard Worker    module_type: "cc_defaults",
91*00c7fec1SAndroid Build Coastguard Worker    config_namespace: "ANDROID",
92*00c7fec1SAndroid Build Coastguard Worker    bool_variables: [
93*00c7fec1SAndroid Build Coastguard Worker        "PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT",
94*00c7fec1SAndroid Build Coastguard Worker        "release_write_appcompat_override_system_properties",
95*00c7fec1SAndroid Build Coastguard Worker    ],
96*00c7fec1SAndroid Build Coastguard Worker    properties: [
97*00c7fec1SAndroid Build Coastguard Worker        "cflags",
98*00c7fec1SAndroid Build Coastguard Worker    ],
99*00c7fec1SAndroid Build Coastguard Worker}
100*00c7fec1SAndroid Build Coastguard Worker
101*00c7fec1SAndroid Build Coastguard Workerlibinit_cc_defaults {
102*00c7fec1SAndroid Build Coastguard Worker    name: "init_defaults",
103*00c7fec1SAndroid Build Coastguard Worker    sanitize: {
104*00c7fec1SAndroid Build Coastguard Worker        misc_undefined: ["signed-integer-overflow"],
105*00c7fec1SAndroid Build Coastguard Worker    },
106*00c7fec1SAndroid Build Coastguard Worker    cflags: [
107*00c7fec1SAndroid Build Coastguard Worker        "-DALLOW_FIRST_STAGE_CONSOLE=0",
108*00c7fec1SAndroid Build Coastguard Worker        "-DALLOW_LOCAL_PROP_OVERRIDE=0",
109*00c7fec1SAndroid Build Coastguard Worker        "-DALLOW_PERMISSIVE_SELINUX=0",
110*00c7fec1SAndroid Build Coastguard Worker        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
111*00c7fec1SAndroid Build Coastguard Worker        "-DDUMP_ON_UMOUNT_FAILURE=0",
112*00c7fec1SAndroid Build Coastguard Worker        "-DINIT_FULL_SOURCES",
113*00c7fec1SAndroid Build Coastguard Worker        "-DINSTALL_DEBUG_POLICY_TO_SYSTEM_EXT=0",
114*00c7fec1SAndroid Build Coastguard Worker        "-DLOG_UEVENTS=0",
115*00c7fec1SAndroid Build Coastguard Worker        "-DREBOOT_BOOTLOADER_ON_PANIC=0",
116*00c7fec1SAndroid Build Coastguard Worker        "-DSHUTDOWN_ZERO_TIMEOUT=0",
117*00c7fec1SAndroid Build Coastguard Worker        "-DWORLD_WRITABLE_KMSG=0",
118*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
119*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
120*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
121*00c7fec1SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
122*00c7fec1SAndroid Build Coastguard Worker        "-Wthread-safety",
123*00c7fec1SAndroid Build Coastguard Worker    ],
124*00c7fec1SAndroid Build Coastguard Worker    product_variables: {
125*00c7fec1SAndroid Build Coastguard Worker        debuggable: {
126*00c7fec1SAndroid Build Coastguard Worker            cppflags: [
127*00c7fec1SAndroid Build Coastguard Worker                "-UALLOW_FIRST_STAGE_CONSOLE",
128*00c7fec1SAndroid Build Coastguard Worker                "-DALLOW_FIRST_STAGE_CONSOLE=1",
129*00c7fec1SAndroid Build Coastguard Worker                "-UALLOW_LOCAL_PROP_OVERRIDE",
130*00c7fec1SAndroid Build Coastguard Worker                "-DALLOW_LOCAL_PROP_OVERRIDE=1",
131*00c7fec1SAndroid Build Coastguard Worker                "-UALLOW_PERMISSIVE_SELINUX",
132*00c7fec1SAndroid Build Coastguard Worker                "-DALLOW_PERMISSIVE_SELINUX=1",
133*00c7fec1SAndroid Build Coastguard Worker                "-UREBOOT_BOOTLOADER_ON_PANIC",
134*00c7fec1SAndroid Build Coastguard Worker                "-DREBOOT_BOOTLOADER_ON_PANIC=1",
135*00c7fec1SAndroid Build Coastguard Worker                "-UWORLD_WRITABLE_KMSG",
136*00c7fec1SAndroid Build Coastguard Worker                "-DWORLD_WRITABLE_KMSG=1",
137*00c7fec1SAndroid Build Coastguard Worker                "-UDUMP_ON_UMOUNT_FAILURE",
138*00c7fec1SAndroid Build Coastguard Worker                "-DDUMP_ON_UMOUNT_FAILURE=1",
139*00c7fec1SAndroid Build Coastguard Worker            ],
140*00c7fec1SAndroid Build Coastguard Worker        },
141*00c7fec1SAndroid Build Coastguard Worker        eng: {
142*00c7fec1SAndroid Build Coastguard Worker            cppflags: [
143*00c7fec1SAndroid Build Coastguard Worker                "-USHUTDOWN_ZERO_TIMEOUT",
144*00c7fec1SAndroid Build Coastguard Worker                "-DSHUTDOWN_ZERO_TIMEOUT=1",
145*00c7fec1SAndroid Build Coastguard Worker            ],
146*00c7fec1SAndroid Build Coastguard Worker        },
147*00c7fec1SAndroid Build Coastguard Worker        uml: {
148*00c7fec1SAndroid Build Coastguard Worker            cppflags: ["-DUSER_MODE_LINUX"],
149*00c7fec1SAndroid Build Coastguard Worker        },
150*00c7fec1SAndroid Build Coastguard Worker    },
151*00c7fec1SAndroid Build Coastguard Worker    soong_config_variables: {
152*00c7fec1SAndroid Build Coastguard Worker        PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT: {
153*00c7fec1SAndroid Build Coastguard Worker            cflags: [
154*00c7fec1SAndroid Build Coastguard Worker                "-UINSTALL_DEBUG_POLICY_TO_SYSTEM_EXT",
155*00c7fec1SAndroid Build Coastguard Worker                "-DINSTALL_DEBUG_POLICY_TO_SYSTEM_EXT=1",
156*00c7fec1SAndroid Build Coastguard Worker            ],
157*00c7fec1SAndroid Build Coastguard Worker        },
158*00c7fec1SAndroid Build Coastguard Worker        release_write_appcompat_override_system_properties: {
159*00c7fec1SAndroid Build Coastguard Worker            cflags: ["-DWRITE_APPCOMPAT_OVERRIDE_SYSTEM_PROPERTIES"],
160*00c7fec1SAndroid Build Coastguard Worker        },
161*00c7fec1SAndroid Build Coastguard Worker    },
162*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
163*00c7fec1SAndroid Build Coastguard Worker        "libavb",
164*00c7fec1SAndroid Build Coastguard Worker        "libavf_cc_flags",
165*00c7fec1SAndroid Build Coastguard Worker        "libbootloader_message",
166*00c7fec1SAndroid Build Coastguard Worker        "liblmkd_utils",
167*00c7fec1SAndroid Build Coastguard Worker        "liblz4",
168*00c7fec1SAndroid Build Coastguard Worker        "libzstd",
169*00c7fec1SAndroid Build Coastguard Worker        "libmodprobe",
170*00c7fec1SAndroid Build Coastguard Worker        "libprocinfo",
171*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
172*00c7fec1SAndroid Build Coastguard Worker        "libpropertyinfoserializer",
173*00c7fec1SAndroid Build Coastguard Worker        "libpropertyinfoparser",
174*00c7fec1SAndroid Build Coastguard Worker        "libsnapshot_cow",
175*00c7fec1SAndroid Build Coastguard Worker        "libsnapshot_init",
176*00c7fec1SAndroid Build Coastguard Worker        "libxml2",
177*00c7fec1SAndroid Build Coastguard Worker        "lib_apex_manifest_proto_lite",
178*00c7fec1SAndroid Build Coastguard Worker        "update_metadata-protos",
179*00c7fec1SAndroid Build Coastguard Worker        "libgenfslabelsversion.ffi",
180*00c7fec1SAndroid Build Coastguard Worker    ],
181*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
182*00c7fec1SAndroid Build Coastguard Worker        "libbase",
183*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
184*00c7fec1SAndroid Build Coastguard Worker        "libdl",
185*00c7fec1SAndroid Build Coastguard Worker        "libext4_utils",
186*00c7fec1SAndroid Build Coastguard Worker        "libfs_mgr",
187*00c7fec1SAndroid Build Coastguard Worker        "libgsi",
188*00c7fec1SAndroid Build Coastguard Worker        "liblog",
189*00c7fec1SAndroid Build Coastguard Worker        "liblogwrap",
190*00c7fec1SAndroid Build Coastguard Worker        "liblp",
191*00c7fec1SAndroid Build Coastguard Worker        "libprocessgroup",
192*00c7fec1SAndroid Build Coastguard Worker        "libprocessgroup_setup",
193*00c7fec1SAndroid Build Coastguard Worker        "libselinux",
194*00c7fec1SAndroid Build Coastguard Worker        "libunwindstack",
195*00c7fec1SAndroid Build Coastguard Worker        "libutils",
196*00c7fec1SAndroid Build Coastguard Worker        "libvendorsupport",
197*00c7fec1SAndroid Build Coastguard Worker    ],
198*00c7fec1SAndroid Build Coastguard Worker    header_libs: ["bionic_libc_platform_headers"],
199*00c7fec1SAndroid Build Coastguard Worker    bootstrap: true,
200*00c7fec1SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
201*00c7fec1SAndroid Build Coastguard Worker}
202*00c7fec1SAndroid Build Coastguard Worker
203*00c7fec1SAndroid Build Coastguard Workercc_library_headers {
204*00c7fec1SAndroid Build Coastguard Worker    name: "libinit_headers",
205*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["."],
206*00c7fec1SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
207*00c7fec1SAndroid Build Coastguard Worker}
208*00c7fec1SAndroid Build Coastguard Worker
209*00c7fec1SAndroid Build Coastguard Workercc_defaults {
210*00c7fec1SAndroid Build Coastguard Worker    name: "libinit_defaults",
211*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
212*00c7fec1SAndroid Build Coastguard Worker    defaults: [
213*00c7fec1SAndroid Build Coastguard Worker        "init_defaults",
214*00c7fec1SAndroid Build Coastguard Worker        "selinux_policy_version",
215*00c7fec1SAndroid Build Coastguard Worker    ],
216*00c7fec1SAndroid Build Coastguard Worker    srcs: init_common_sources + init_device_sources,
217*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["."],
218*00c7fec1SAndroid Build Coastguard Worker    generated_sources: [
219*00c7fec1SAndroid Build Coastguard Worker        "apex-info-list",
220*00c7fec1SAndroid Build Coastguard Worker    ],
221*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
222*00c7fec1SAndroid Build Coastguard Worker        "libcap",
223*00c7fec1SAndroid Build Coastguard Worker    ],
224*00c7fec1SAndroid Build Coastguard Worker    header_libs: ["bootimg_headers"],
225*00c7fec1SAndroid Build Coastguard Worker    proto: {
226*00c7fec1SAndroid Build Coastguard Worker        type: "lite",
227*00c7fec1SAndroid Build Coastguard Worker        export_proto_headers: true,
228*00c7fec1SAndroid Build Coastguard Worker    },
229*00c7fec1SAndroid Build Coastguard Worker
230*00c7fec1SAndroid Build Coastguard Worker    target: {
231*00c7fec1SAndroid Build Coastguard Worker        recovery: {
232*00c7fec1SAndroid Build Coastguard Worker            cflags: ["-DRECOVERY"],
233*00c7fec1SAndroid Build Coastguard Worker            exclude_static_libs: [
234*00c7fec1SAndroid Build Coastguard Worker                "libxml2",
235*00c7fec1SAndroid Build Coastguard Worker            ],
236*00c7fec1SAndroid Build Coastguard Worker            exclude_generated_sources: [
237*00c7fec1SAndroid Build Coastguard Worker                "apex-info-list",
238*00c7fec1SAndroid Build Coastguard Worker            ],
239*00c7fec1SAndroid Build Coastguard Worker            exclude_shared_libs: [
240*00c7fec1SAndroid Build Coastguard Worker                "libbinder",
241*00c7fec1SAndroid Build Coastguard Worker                "libutils",
242*00c7fec1SAndroid Build Coastguard Worker            ],
243*00c7fec1SAndroid Build Coastguard Worker        },
244*00c7fec1SAndroid Build Coastguard Worker    },
245*00c7fec1SAndroid Build Coastguard Worker}
246*00c7fec1SAndroid Build Coastguard Worker
247*00c7fec1SAndroid Build Coastguard Workercc_library_static {
248*00c7fec1SAndroid Build Coastguard Worker    name: "libinit",
249*00c7fec1SAndroid Build Coastguard Worker    defaults: ["libinit_defaults"],
250*00c7fec1SAndroid Build Coastguard Worker}
251*00c7fec1SAndroid Build Coastguard Worker
252*00c7fec1SAndroid Build Coastguard Workercc_library_static {
253*00c7fec1SAndroid Build Coastguard Worker    name: "libinit.microdroid",
254*00c7fec1SAndroid Build Coastguard Worker    defaults: [
255*00c7fec1SAndroid Build Coastguard Worker        "avf_build_flags_cc",
256*00c7fec1SAndroid Build Coastguard Worker        "libinit_defaults",
257*00c7fec1SAndroid Build Coastguard Worker    ],
258*00c7fec1SAndroid Build Coastguard Worker    recovery_available: false,
259*00c7fec1SAndroid Build Coastguard Worker    cflags: ["-DMICRODROID=1"],
260*00c7fec1SAndroid Build Coastguard Worker}
261*00c7fec1SAndroid Build Coastguard Worker
262*00c7fec1SAndroid Build Coastguard Workerphony {
263*00c7fec1SAndroid Build Coastguard Worker    name: "init",
264*00c7fec1SAndroid Build Coastguard Worker    required: [
265*00c7fec1SAndroid Build Coastguard Worker        "init_second_stage",
266*00c7fec1SAndroid Build Coastguard Worker    ],
267*00c7fec1SAndroid Build Coastguard Worker}
268*00c7fec1SAndroid Build Coastguard Worker
269*00c7fec1SAndroid Build Coastguard Workercc_defaults {
270*00c7fec1SAndroid Build Coastguard Worker    name: "init_second_stage_defaults",
271*00c7fec1SAndroid Build Coastguard Worker    stem: "init",
272*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_defaults"],
273*00c7fec1SAndroid Build Coastguard Worker    srcs: ["main.cpp"],
274*00c7fec1SAndroid Build Coastguard Worker    symlinks: ["ueventd"],
275*00c7fec1SAndroid Build Coastguard Worker}
276*00c7fec1SAndroid Build Coastguard Worker
277*00c7fec1SAndroid Build Coastguard Workercc_binary {
278*00c7fec1SAndroid Build Coastguard Worker    name: "init_second_stage",
279*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_second_stage_defaults"],
280*00c7fec1SAndroid Build Coastguard Worker    static_libs: ["libinit"],
281*00c7fec1SAndroid Build Coastguard Worker    visibility: ["//visibility:any_system_partition"],
282*00c7fec1SAndroid Build Coastguard Worker    required: [
283*00c7fec1SAndroid Build Coastguard Worker        "init.rc",
284*00c7fec1SAndroid Build Coastguard Worker        "ueventd.rc",
285*00c7fec1SAndroid Build Coastguard Worker        "e2fsdroid",
286*00c7fec1SAndroid Build Coastguard Worker        "extra_free_kbytes",
287*00c7fec1SAndroid Build Coastguard Worker        "make_f2fs",
288*00c7fec1SAndroid Build Coastguard Worker        "mke2fs",
289*00c7fec1SAndroid Build Coastguard Worker        "sload_f2fs",
290*00c7fec1SAndroid Build Coastguard Worker    ],
291*00c7fec1SAndroid Build Coastguard Worker}
292*00c7fec1SAndroid Build Coastguard Worker
293*00c7fec1SAndroid Build Coastguard Workercc_binary {
294*00c7fec1SAndroid Build Coastguard Worker    name: "init_second_stage.recovery",
295*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_second_stage_defaults"],
296*00c7fec1SAndroid Build Coastguard Worker    static_libs: ["libinit"],
297*00c7fec1SAndroid Build Coastguard Worker    recovery: true,
298*00c7fec1SAndroid Build Coastguard Worker    cflags: ["-DRECOVERY"],
299*00c7fec1SAndroid Build Coastguard Worker    exclude_static_libs: [
300*00c7fec1SAndroid Build Coastguard Worker        "libxml2",
301*00c7fec1SAndroid Build Coastguard Worker    ],
302*00c7fec1SAndroid Build Coastguard Worker    exclude_shared_libs: [
303*00c7fec1SAndroid Build Coastguard Worker        "libbinder",
304*00c7fec1SAndroid Build Coastguard Worker        "libutils",
305*00c7fec1SAndroid Build Coastguard Worker    ],
306*00c7fec1SAndroid Build Coastguard Worker    required: [
307*00c7fec1SAndroid Build Coastguard Worker        "init_recovery.rc",
308*00c7fec1SAndroid Build Coastguard Worker        "ueventd.rc.recovery",
309*00c7fec1SAndroid Build Coastguard Worker        "e2fsdroid.recovery",
310*00c7fec1SAndroid Build Coastguard Worker        "make_f2fs.recovery",
311*00c7fec1SAndroid Build Coastguard Worker        "mke2fs.recovery",
312*00c7fec1SAndroid Build Coastguard Worker        "sload_f2fs.recovery",
313*00c7fec1SAndroid Build Coastguard Worker    ],
314*00c7fec1SAndroid Build Coastguard Worker}
315*00c7fec1SAndroid Build Coastguard Worker
316*00c7fec1SAndroid Build Coastguard Workercc_binary {
317*00c7fec1SAndroid Build Coastguard Worker    name: "init_second_stage.microdroid",
318*00c7fec1SAndroid Build Coastguard Worker    defaults: [
319*00c7fec1SAndroid Build Coastguard Worker        "avf_build_flags_cc",
320*00c7fec1SAndroid Build Coastguard Worker        "init_second_stage_defaults",
321*00c7fec1SAndroid Build Coastguard Worker    ],
322*00c7fec1SAndroid Build Coastguard Worker    static_libs: ["libinit.microdroid"],
323*00c7fec1SAndroid Build Coastguard Worker    cflags: ["-DMICRODROID=1"],
324*00c7fec1SAndroid Build Coastguard Worker    no_full_install: true,
325*00c7fec1SAndroid Build Coastguard Worker    visibility: ["//packages/modules/Virtualization/build/microdroid"],
326*00c7fec1SAndroid Build Coastguard Worker}
327*00c7fec1SAndroid Build Coastguard Worker
328*00c7fec1SAndroid Build Coastguard Workersoong_config_module_type {
329*00c7fec1SAndroid Build Coastguard Worker    name: "init_first_stage_cc_defaults",
330*00c7fec1SAndroid Build Coastguard Worker    module_type: "cc_defaults",
331*00c7fec1SAndroid Build Coastguard Worker    config_namespace: "ANDROID",
332*00c7fec1SAndroid Build Coastguard Worker    bool_variables: ["BOARD_USES_RECOVERY_AS_BOOT"],
333*00c7fec1SAndroid Build Coastguard Worker    properties: ["no_full_install"],
334*00c7fec1SAndroid Build Coastguard Worker}
335*00c7fec1SAndroid Build Coastguard Worker
336*00c7fec1SAndroid Build Coastguard Worker// Do not install init_first_stage even with mma if we're system-as-root.
337*00c7fec1SAndroid Build Coastguard Worker// Otherwise, it will overwrite the symlink.
338*00c7fec1SAndroid Build Coastguard Workerinit_first_stage_cc_defaults {
339*00c7fec1SAndroid Build Coastguard Worker    name: "init_first_stage_defaults",
340*00c7fec1SAndroid Build Coastguard Worker    soong_config_variables: {
341*00c7fec1SAndroid Build Coastguard Worker        BOARD_USES_RECOVERY_AS_BOOT: {
342*00c7fec1SAndroid Build Coastguard Worker            no_full_install: true,
343*00c7fec1SAndroid Build Coastguard Worker        },
344*00c7fec1SAndroid Build Coastguard Worker    },
345*00c7fec1SAndroid Build Coastguard Worker
346*00c7fec1SAndroid Build Coastguard Worker    stem: "init",
347*00c7fec1SAndroid Build Coastguard Worker
348*00c7fec1SAndroid Build Coastguard Worker    srcs: [
349*00c7fec1SAndroid Build Coastguard Worker        "block_dev_initializer.cpp",
350*00c7fec1SAndroid Build Coastguard Worker        "devices.cpp",
351*00c7fec1SAndroid Build Coastguard Worker        "first_stage_console.cpp",
352*00c7fec1SAndroid Build Coastguard Worker        "first_stage_init.cpp",
353*00c7fec1SAndroid Build Coastguard Worker        "first_stage_main.cpp",
354*00c7fec1SAndroid Build Coastguard Worker        "first_stage_mount.cpp",
355*00c7fec1SAndroid Build Coastguard Worker        "reboot_utils.cpp",
356*00c7fec1SAndroid Build Coastguard Worker        "selabel.cpp",
357*00c7fec1SAndroid Build Coastguard Worker        "service_utils.cpp",
358*00c7fec1SAndroid Build Coastguard Worker        "snapuserd_transition.cpp",
359*00c7fec1SAndroid Build Coastguard Worker        "switch_root.cpp",
360*00c7fec1SAndroid Build Coastguard Worker        "uevent_listener.cpp",
361*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
362*00c7fec1SAndroid Build Coastguard Worker    ],
363*00c7fec1SAndroid Build Coastguard Worker
364*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
365*00c7fec1SAndroid Build Coastguard Worker        "libfs_avb",
366*00c7fec1SAndroid Build Coastguard Worker        "libavf_cc_flags",
367*00c7fec1SAndroid Build Coastguard Worker        "libfs_mgr",
368*00c7fec1SAndroid Build Coastguard Worker        "libfec",
369*00c7fec1SAndroid Build Coastguard Worker        "libfec_rs",
370*00c7fec1SAndroid Build Coastguard Worker        "libsquashfs_utils",
371*00c7fec1SAndroid Build Coastguard Worker        "libcrypto_utils",
372*00c7fec1SAndroid Build Coastguard Worker        "libavb",
373*00c7fec1SAndroid Build Coastguard Worker        "liblp",
374*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
375*00c7fec1SAndroid Build Coastguard Worker        "libbase",
376*00c7fec1SAndroid Build Coastguard Worker        "liblog",
377*00c7fec1SAndroid Build Coastguard Worker        "libcrypto_static",
378*00c7fec1SAndroid Build Coastguard Worker        "libselinux",
379*00c7fec1SAndroid Build Coastguard Worker        "libcap",
380*00c7fec1SAndroid Build Coastguard Worker        "libgsi",
381*00c7fec1SAndroid Build Coastguard Worker        "liblzma",
382*00c7fec1SAndroid Build Coastguard Worker        "libunwindstack_no_dex",
383*00c7fec1SAndroid Build Coastguard Worker        "libmodprobe",
384*00c7fec1SAndroid Build Coastguard Worker        "libext2_uuid",
385*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
386*00c7fec1SAndroid Build Coastguard Worker        "libsnapshot_cow",
387*00c7fec1SAndroid Build Coastguard Worker        "liblz4",
388*00c7fec1SAndroid Build Coastguard Worker        "libzstd",
389*00c7fec1SAndroid Build Coastguard Worker        "libsnapshot_init",
390*00c7fec1SAndroid Build Coastguard Worker        "update_metadata-protos",
391*00c7fec1SAndroid Build Coastguard Worker        "libprocinfo",
392*00c7fec1SAndroid Build Coastguard Worker        "libbootloader_message",
393*00c7fec1SAndroid Build Coastguard Worker    ],
394*00c7fec1SAndroid Build Coastguard Worker
395*00c7fec1SAndroid Build Coastguard Worker    static_executable: true,
396*00c7fec1SAndroid Build Coastguard Worker    system_shared_libs: [],
397*00c7fec1SAndroid Build Coastguard Worker
398*00c7fec1SAndroid Build Coastguard Worker    cflags: [
399*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
400*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
401*00c7fec1SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
402*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
403*00c7fec1SAndroid Build Coastguard Worker        "-DALLOW_FIRST_STAGE_CONSOLE=0",
404*00c7fec1SAndroid Build Coastguard Worker        "-DALLOW_LOCAL_PROP_OVERRIDE=0",
405*00c7fec1SAndroid Build Coastguard Worker        "-DALLOW_PERMISSIVE_SELINUX=0",
406*00c7fec1SAndroid Build Coastguard Worker        "-DREBOOT_BOOTLOADER_ON_PANIC=0",
407*00c7fec1SAndroid Build Coastguard Worker        "-DWORLD_WRITABLE_KMSG=0",
408*00c7fec1SAndroid Build Coastguard Worker        "-DDUMP_ON_UMOUNT_FAILURE=0",
409*00c7fec1SAndroid Build Coastguard Worker        "-DSHUTDOWN_ZERO_TIMEOUT=0",
410*00c7fec1SAndroid Build Coastguard Worker        "-DLOG_UEVENTS=0",
411*00c7fec1SAndroid Build Coastguard Worker        "-DSEPOLICY_VERSION=30", // TODO(jiyong): externalize the version number
412*00c7fec1SAndroid Build Coastguard Worker    ],
413*00c7fec1SAndroid Build Coastguard Worker
414*00c7fec1SAndroid Build Coastguard Worker    product_variables: {
415*00c7fec1SAndroid Build Coastguard Worker        debuggable: {
416*00c7fec1SAndroid Build Coastguard Worker            cflags: [
417*00c7fec1SAndroid Build Coastguard Worker                "-UALLOW_FIRST_STAGE_CONSOLE",
418*00c7fec1SAndroid Build Coastguard Worker                "-DALLOW_FIRST_STAGE_CONSOLE=1",
419*00c7fec1SAndroid Build Coastguard Worker
420*00c7fec1SAndroid Build Coastguard Worker                "-UALLOW_LOCAL_PROP_OVERRIDE",
421*00c7fec1SAndroid Build Coastguard Worker                "-DALLOW_LOCAL_PROP_OVERRIDE=1",
422*00c7fec1SAndroid Build Coastguard Worker
423*00c7fec1SAndroid Build Coastguard Worker                "-UALLOW_PERMISSIVE_SELINUX",
424*00c7fec1SAndroid Build Coastguard Worker                "-DALLOW_PERMISSIVE_SELINUX=1",
425*00c7fec1SAndroid Build Coastguard Worker
426*00c7fec1SAndroid Build Coastguard Worker                "-UREBOOT_BOOTLOADER_ON_PANIC",
427*00c7fec1SAndroid Build Coastguard Worker                "-DREBOOT_BOOTLOADER_ON_PANIC=1",
428*00c7fec1SAndroid Build Coastguard Worker
429*00c7fec1SAndroid Build Coastguard Worker                "-UWORLD_WRITABLE_KMSG",
430*00c7fec1SAndroid Build Coastguard Worker                "-DWORLD_WRITABLE_KMSG=1",
431*00c7fec1SAndroid Build Coastguard Worker
432*00c7fec1SAndroid Build Coastguard Worker                "-UDUMP_ON_UMOUNT_FAILURE",
433*00c7fec1SAndroid Build Coastguard Worker                "-DDUMP_ON_UMOUNT_FAILURE=1",
434*00c7fec1SAndroid Build Coastguard Worker            ],
435*00c7fec1SAndroid Build Coastguard Worker        },
436*00c7fec1SAndroid Build Coastguard Worker
437*00c7fec1SAndroid Build Coastguard Worker        eng: {
438*00c7fec1SAndroid Build Coastguard Worker            cflags: [
439*00c7fec1SAndroid Build Coastguard Worker                "-USHUTDOWN_ZERO_TIMEOUT",
440*00c7fec1SAndroid Build Coastguard Worker                "-DSHUTDOWN_ZERO_TIMEOUT=1",
441*00c7fec1SAndroid Build Coastguard Worker            ],
442*00c7fec1SAndroid Build Coastguard Worker        },
443*00c7fec1SAndroid Build Coastguard Worker    },
444*00c7fec1SAndroid Build Coastguard Worker
445*00c7fec1SAndroid Build Coastguard Worker    sanitize: {
446*00c7fec1SAndroid Build Coastguard Worker        misc_undefined: ["signed-integer-overflow"],
447*00c7fec1SAndroid Build Coastguard Worker
448*00c7fec1SAndroid Build Coastguard Worker        // First stage init is weird: it may start without stdout/stderr, and no /proc.
449*00c7fec1SAndroid Build Coastguard Worker        hwaddress: false,
450*00c7fec1SAndroid Build Coastguard Worker        memtag_stack: false,
451*00c7fec1SAndroid Build Coastguard Worker    },
452*00c7fec1SAndroid Build Coastguard Worker
453*00c7fec1SAndroid Build Coastguard Worker    // Install adb_debug.prop into debug ramdisk.
454*00c7fec1SAndroid Build Coastguard Worker    // This allows adb root on a user build, when debug ramdisk is used.
455*00c7fec1SAndroid Build Coastguard Worker    required: ["adb_debug.prop"],
456*00c7fec1SAndroid Build Coastguard Worker
457*00c7fec1SAndroid Build Coastguard Worker    ramdisk: true,
458*00c7fec1SAndroid Build Coastguard Worker
459*00c7fec1SAndroid Build Coastguard Worker    install_in_root: true,
460*00c7fec1SAndroid Build Coastguard Worker}
461*00c7fec1SAndroid Build Coastguard Worker
462*00c7fec1SAndroid Build Coastguard Workercc_binary {
463*00c7fec1SAndroid Build Coastguard Worker    name: "init_first_stage",
464*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_first_stage_defaults"],
465*00c7fec1SAndroid Build Coastguard Worker}
466*00c7fec1SAndroid Build Coastguard Worker
467*00c7fec1SAndroid Build Coastguard Workercc_binary {
468*00c7fec1SAndroid Build Coastguard Worker    name: "init_first_stage.microdroid",
469*00c7fec1SAndroid Build Coastguard Worker    defaults: [
470*00c7fec1SAndroid Build Coastguard Worker        "avf_build_flags_cc",
471*00c7fec1SAndroid Build Coastguard Worker        "init_first_stage_defaults",
472*00c7fec1SAndroid Build Coastguard Worker    ],
473*00c7fec1SAndroid Build Coastguard Worker    cflags: ["-DMICRODROID=1"],
474*00c7fec1SAndroid Build Coastguard Worker    no_full_install: true,
475*00c7fec1SAndroid Build Coastguard Worker}
476*00c7fec1SAndroid Build Coastguard Worker
477*00c7fec1SAndroid Build Coastguard Workerphony {
478*00c7fec1SAndroid Build Coastguard Worker    name: "init_system",
479*00c7fec1SAndroid Build Coastguard Worker    required: ["init_second_stage"],
480*00c7fec1SAndroid Build Coastguard Worker}
481*00c7fec1SAndroid Build Coastguard Worker
482*00c7fec1SAndroid Build Coastguard Worker// Tests
483*00c7fec1SAndroid Build Coastguard Worker// ------------------------------------------------------------------------------
484*00c7fec1SAndroid Build Coastguard Worker
485*00c7fec1SAndroid Build Coastguard Workercc_test {
486*00c7fec1SAndroid Build Coastguard Worker    // Note: This is NOT a CTS test. See b/320800872
487*00c7fec1SAndroid Build Coastguard Worker    name: "CtsInitTestCases",
488*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_defaults"],
489*00c7fec1SAndroid Build Coastguard Worker    require_root: true,
490*00c7fec1SAndroid Build Coastguard Worker
491*00c7fec1SAndroid Build Coastguard Worker    compile_multilib: "first",
492*00c7fec1SAndroid Build Coastguard Worker
493*00c7fec1SAndroid Build Coastguard Worker    srcs: [
494*00c7fec1SAndroid Build Coastguard Worker        "devices_test.cpp",
495*00c7fec1SAndroid Build Coastguard Worker        "epoll_test.cpp",
496*00c7fec1SAndroid Build Coastguard Worker        "firmware_handler_test.cpp",
497*00c7fec1SAndroid Build Coastguard Worker        "init_test.cpp",
498*00c7fec1SAndroid Build Coastguard Worker        "interprocess_fifo_test.cpp",
499*00c7fec1SAndroid Build Coastguard Worker        "keychords_test.cpp",
500*00c7fec1SAndroid Build Coastguard Worker        "oneshot_on_test.cpp",
501*00c7fec1SAndroid Build Coastguard Worker        "persistent_properties_test.cpp",
502*00c7fec1SAndroid Build Coastguard Worker        "property_service_test.cpp",
503*00c7fec1SAndroid Build Coastguard Worker        "property_type_test.cpp",
504*00c7fec1SAndroid Build Coastguard Worker        "reboot_test.cpp",
505*00c7fec1SAndroid Build Coastguard Worker        "rlimit_parser_test.cpp",
506*00c7fec1SAndroid Build Coastguard Worker        "service_test.cpp",
507*00c7fec1SAndroid Build Coastguard Worker        "subcontext_test.cpp",
508*00c7fec1SAndroid Build Coastguard Worker        "tokenizer_test.cpp",
509*00c7fec1SAndroid Build Coastguard Worker        "ueventd_parser_test.cpp",
510*00c7fec1SAndroid Build Coastguard Worker        "ueventd_test.cpp",
511*00c7fec1SAndroid Build Coastguard Worker        "util_test.cpp",
512*00c7fec1SAndroid Build Coastguard Worker    ],
513*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
514*00c7fec1SAndroid Build Coastguard Worker        "libgmock",
515*00c7fec1SAndroid Build Coastguard Worker        "libinit",
516*00c7fec1SAndroid Build Coastguard Worker    ],
517*00c7fec1SAndroid Build Coastguard Worker
518*00c7fec1SAndroid Build Coastguard Worker    test_suites: [
519*00c7fec1SAndroid Build Coastguard Worker        "device-tests",
520*00c7fec1SAndroid Build Coastguard Worker    ],
521*00c7fec1SAndroid Build Coastguard Worker}
522*00c7fec1SAndroid Build Coastguard Worker
523*00c7fec1SAndroid Build Coastguard Workercc_benchmark {
524*00c7fec1SAndroid Build Coastguard Worker    name: "init_benchmarks",
525*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_defaults"],
526*00c7fec1SAndroid Build Coastguard Worker    srcs: [
527*00c7fec1SAndroid Build Coastguard Worker        "subcontext_benchmark.cpp",
528*00c7fec1SAndroid Build Coastguard Worker    ],
529*00c7fec1SAndroid Build Coastguard Worker    static_libs: ["libinit"],
530*00c7fec1SAndroid Build Coastguard Worker}
531*00c7fec1SAndroid Build Coastguard Worker
532*00c7fec1SAndroid Build Coastguard Workercc_defaults {
533*00c7fec1SAndroid Build Coastguard Worker    name: "libinit_test_utils_libraries_defaults",
534*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
535*00c7fec1SAndroid Build Coastguard Worker        "libbase",
536*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
537*00c7fec1SAndroid Build Coastguard Worker        "libselinux",
538*00c7fec1SAndroid Build Coastguard Worker        "liblog",
539*00c7fec1SAndroid Build Coastguard Worker        "libprocessgroup",
540*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
541*00c7fec1SAndroid Build Coastguard Worker    ],
542*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
543*00c7fec1SAndroid Build Coastguard Worker        "libfs_mgr",
544*00c7fec1SAndroid Build Coastguard Worker        "libhidl-gen-utils",
545*00c7fec1SAndroid Build Coastguard Worker    ],
546*00c7fec1SAndroid Build Coastguard Worker}
547*00c7fec1SAndroid Build Coastguard Worker
548*00c7fec1SAndroid Build Coastguard Workercc_library_static {
549*00c7fec1SAndroid Build Coastguard Worker    name: "libinit_test_utils",
550*00c7fec1SAndroid Build Coastguard Worker    defaults: ["libinit_test_utils_libraries_defaults"],
551*00c7fec1SAndroid Build Coastguard Worker    cflags: [
552*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
553*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
554*00c7fec1SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
555*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
556*00c7fec1SAndroid Build Coastguard Worker    ],
557*00c7fec1SAndroid Build Coastguard Worker    srcs: init_common_sources + [
558*00c7fec1SAndroid Build Coastguard Worker        "test_utils/service_utils.cpp",
559*00c7fec1SAndroid Build Coastguard Worker    ],
560*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
561*00c7fec1SAndroid Build Coastguard Worker        "libcap",
562*00c7fec1SAndroid Build Coastguard Worker    ],
563*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["test_utils/include"], // for tests
564*00c7fec1SAndroid Build Coastguard Worker    header_libs: ["bionic_libc_platform_headers"],
565*00c7fec1SAndroid Build Coastguard Worker    product_variables: {
566*00c7fec1SAndroid Build Coastguard Worker        shipping_api_level: {
567*00c7fec1SAndroid Build Coastguard Worker            cflags: ["-DBUILD_SHIPPING_API_LEVEL=%s"],
568*00c7fec1SAndroid Build Coastguard Worker        },
569*00c7fec1SAndroid Build Coastguard Worker    },
570*00c7fec1SAndroid Build Coastguard Worker}
571*00c7fec1SAndroid Build Coastguard Worker
572*00c7fec1SAndroid Build Coastguard Worker// Host Verifier
573*00c7fec1SAndroid Build Coastguard Worker// ------------------------------------------------------------------------------
574*00c7fec1SAndroid Build Coastguard Worker
575*00c7fec1SAndroid Build Coastguard Workergenrule {
576*00c7fec1SAndroid Build Coastguard Worker    name: "generated_stub_builtin_function_map",
577*00c7fec1SAndroid Build Coastguard Worker    tool_files: ["host_builtin_map.py"],
578*00c7fec1SAndroid Build Coastguard Worker    out: ["generated_stub_builtin_function_map.h"],
579*00c7fec1SAndroid Build Coastguard Worker    srcs: [
580*00c7fec1SAndroid Build Coastguard Worker        "builtins.cpp",
581*00c7fec1SAndroid Build Coastguard Worker        "check_builtins.cpp",
582*00c7fec1SAndroid Build Coastguard Worker    ],
583*00c7fec1SAndroid Build Coastguard Worker    cmd: "$(location host_builtin_map.py) --builtins $(location builtins.cpp) --check_builtins $(location check_builtins.cpp) > $(out)",
584*00c7fec1SAndroid Build Coastguard Worker}
585*00c7fec1SAndroid Build Coastguard Worker
586*00c7fec1SAndroid Build Coastguard Workercc_defaults {
587*00c7fec1SAndroid Build Coastguard Worker    name: "init_host_defaults",
588*00c7fec1SAndroid Build Coastguard Worker    host_supported: true,
589*00c7fec1SAndroid Build Coastguard Worker    cflags: [
590*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
591*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
592*00c7fec1SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
593*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
594*00c7fec1SAndroid Build Coastguard Worker    ],
595*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
596*00c7fec1SAndroid Build Coastguard Worker        "libbase",
597*00c7fec1SAndroid Build Coastguard Worker        "libselinux",
598*00c7fec1SAndroid Build Coastguard Worker        "libpropertyinfoserializer",
599*00c7fec1SAndroid Build Coastguard Worker        "libpropertyinfoparser",
600*00c7fec1SAndroid Build Coastguard Worker    ],
601*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: ["libcap"],
602*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
603*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
604*00c7fec1SAndroid Build Coastguard Worker        "liblog",
605*00c7fec1SAndroid Build Coastguard Worker        "libprocessgroup",
606*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
607*00c7fec1SAndroid Build Coastguard Worker    ],
608*00c7fec1SAndroid Build Coastguard Worker    proto: {
609*00c7fec1SAndroid Build Coastguard Worker        type: "lite",
610*00c7fec1SAndroid Build Coastguard Worker    },
611*00c7fec1SAndroid Build Coastguard Worker    target: {
612*00c7fec1SAndroid Build Coastguard Worker        android: {
613*00c7fec1SAndroid Build Coastguard Worker            enabled: false,
614*00c7fec1SAndroid Build Coastguard Worker        },
615*00c7fec1SAndroid Build Coastguard Worker        darwin: {
616*00c7fec1SAndroid Build Coastguard Worker            enabled: false,
617*00c7fec1SAndroid Build Coastguard Worker        },
618*00c7fec1SAndroid Build Coastguard Worker    },
619*00c7fec1SAndroid Build Coastguard Worker    product_variables: {
620*00c7fec1SAndroid Build Coastguard Worker        shipping_api_level: {
621*00c7fec1SAndroid Build Coastguard Worker            cflags: ["-DBUILD_SHIPPING_API_LEVEL=%s"],
622*00c7fec1SAndroid Build Coastguard Worker        },
623*00c7fec1SAndroid Build Coastguard Worker    },
624*00c7fec1SAndroid Build Coastguard Worker}
625*00c7fec1SAndroid Build Coastguard Worker
626*00c7fec1SAndroid Build Coastguard Workercc_binary {
627*00c7fec1SAndroid Build Coastguard Worker    name: "host_init_verifier",
628*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_host_defaults"],
629*00c7fec1SAndroid Build Coastguard Worker    srcs: [
630*00c7fec1SAndroid Build Coastguard Worker        "check_builtins.cpp",
631*00c7fec1SAndroid Build Coastguard Worker        "host_import_parser.cpp",
632*00c7fec1SAndroid Build Coastguard Worker        "host_init_verifier.cpp",
633*00c7fec1SAndroid Build Coastguard Worker        "interface_utils.cpp",
634*00c7fec1SAndroid Build Coastguard Worker    ] + init_common_sources,
635*00c7fec1SAndroid Build Coastguard Worker    generated_headers: [
636*00c7fec1SAndroid Build Coastguard Worker        "generated_android_ids",
637*00c7fec1SAndroid Build Coastguard Worker        "generated_stub_builtin_function_map",
638*00c7fec1SAndroid Build Coastguard Worker    ],
639*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
640*00c7fec1SAndroid Build Coastguard Worker        "libhidl-gen-utils",
641*00c7fec1SAndroid Build Coastguard Worker        "libhidlmetadata",
642*00c7fec1SAndroid Build Coastguard Worker    ],
643*00c7fec1SAndroid Build Coastguard Worker}
644*00c7fec1SAndroid Build Coastguard Worker
645*00c7fec1SAndroid Build Coastguard Workergenrule {
646*00c7fec1SAndroid Build Coastguard Worker    name: "noop_builtin_function_map",
647*00c7fec1SAndroid Build Coastguard Worker    tool_files: ["host_builtin_map.py"],
648*00c7fec1SAndroid Build Coastguard Worker    out: ["noop_builtin_function_map.h"],
649*00c7fec1SAndroid Build Coastguard Worker    srcs: [
650*00c7fec1SAndroid Build Coastguard Worker        "builtins.cpp",
651*00c7fec1SAndroid Build Coastguard Worker        "noop_builtins.cpp",
652*00c7fec1SAndroid Build Coastguard Worker    ],
653*00c7fec1SAndroid Build Coastguard Worker    cmd: "$(location host_builtin_map.py) --builtins $(location builtins.cpp) --check_builtins $(location noop_builtins.cpp) > $(out)",
654*00c7fec1SAndroid Build Coastguard Worker}
655*00c7fec1SAndroid Build Coastguard Worker
656*00c7fec1SAndroid Build Coastguard Workercc_library_host_static {
657*00c7fec1SAndroid Build Coastguard Worker    name: "libinit_host",
658*00c7fec1SAndroid Build Coastguard Worker    defaults: ["init_host_defaults"],
659*00c7fec1SAndroid Build Coastguard Worker    srcs: [
660*00c7fec1SAndroid Build Coastguard Worker        "noop_builtins.cpp",
661*00c7fec1SAndroid Build Coastguard Worker    ] + init_common_sources,
662*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["."],
663*00c7fec1SAndroid Build Coastguard Worker    generated_headers: [
664*00c7fec1SAndroid Build Coastguard Worker        "noop_builtin_function_map",
665*00c7fec1SAndroid Build Coastguard Worker    ],
666*00c7fec1SAndroid Build Coastguard Worker    proto: {
667*00c7fec1SAndroid Build Coastguard Worker        export_proto_headers: true,
668*00c7fec1SAndroid Build Coastguard Worker    },
669*00c7fec1SAndroid Build Coastguard Worker    visibility: [
670*00c7fec1SAndroid Build Coastguard Worker        // host_apex_verifier performs a subset of init.rc validation
671*00c7fec1SAndroid Build Coastguard Worker        "//system/apex/tools",
672*00c7fec1SAndroid Build Coastguard Worker    ],
673*00c7fec1SAndroid Build Coastguard Worker}
674*00c7fec1SAndroid Build Coastguard Worker
675*00c7fec1SAndroid Build Coastguard Workersh_binary {
676*00c7fec1SAndroid Build Coastguard Worker    name: "extra_free_kbytes",
677*00c7fec1SAndroid Build Coastguard Worker    src: "extra_free_kbytes.sh",
678*00c7fec1SAndroid Build Coastguard Worker    filename_from_src: true,
679*00c7fec1SAndroid Build Coastguard Worker}
680*00c7fec1SAndroid Build Coastguard Worker
681*00c7fec1SAndroid Build Coastguard Workerphony {
682*00c7fec1SAndroid Build Coastguard Worker    name: "init_vendor",
683*00c7fec1SAndroid Build Coastguard Worker    required: select(soong_config_variable("ANDROID", "BOARD_USES_RECOVERY_AS_BOOT"), {
684*00c7fec1SAndroid Build Coastguard Worker        true: [],
685*00c7fec1SAndroid Build Coastguard Worker        default: ["init_first_stage"],
686*00c7fec1SAndroid Build Coastguard Worker    }),
687*00c7fec1SAndroid Build Coastguard Worker}
688