| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 1 | // | 
 | 2 | // Copyright (C) 2017 The Android Open Source Project | 
 | 3 | // | 
 | 4 | // Licensed under the Apache License, Version 2.0 (the "License"); | 
 | 5 | // you may not use this file except in compliance with the License. | 
 | 6 | // You may obtain a copy of the License at | 
 | 7 | // | 
 | 8 | //      http://www.apache.org/licenses/LICENSE-2.0 | 
 | 9 | // | 
 | 10 | // Unless required by applicable law or agreed to in writing, software | 
 | 11 | // distributed under the License is distributed on an "AS IS" BASIS, | 
 | 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 | 13 | // See the License for the specific language governing permissions and | 
 | 14 | // limitations under the License. | 
 | 15 | // | 
 | 16 |  | 
| Bob Badour | d69ad69 | 2021-02-16 19:02:14 -0800 | [diff] [blame] | 17 | package { | 
 | 18 |     default_applicable_licenses: ["system_core_init_license"], | 
 | 19 | } | 
 | 20 |  | 
 | 21 | // Added automatically by a large-scale-change | 
 | 22 | // See: http://go/android-license-faq | 
 | 23 | license { | 
 | 24 |     name: "system_core_init_license", | 
 | 25 |     visibility: [":__subpackages__"], | 
 | 26 |     license_kinds: [ | 
 | 27 |         "SPDX-license-identifier-Apache-2.0", | 
 | 28 |     ], | 
 | 29 |     license_text: [ | 
 | 30 |         "NOTICE", | 
 | 31 |     ], | 
 | 32 | } | 
 | 33 |  | 
| Tom Cherry | 6619649 | 2020-02-06 11:56:58 -0800 | [diff] [blame] | 34 | init_common_sources = [ | 
 | 35 |     "action.cpp", | 
 | 36 |     "action_manager.cpp", | 
 | 37 |     "action_parser.cpp", | 
 | 38 |     "capabilities.cpp", | 
 | 39 |     "epoll.cpp", | 
 | 40 |     "import_parser.cpp", | 
 | 41 |     "interface_utils.cpp", | 
 | 42 |     "keychords.cpp", | 
 | 43 |     "parser.cpp", | 
 | 44 |     "property_type.cpp", | 
 | 45 |     "rlimit_parser.cpp", | 
 | 46 |     "service.cpp", | 
 | 47 |     "service_list.cpp", | 
 | 48 |     "service_parser.cpp", | 
 | 49 |     "service_utils.cpp", | 
 | 50 |     "subcontext.cpp", | 
 | 51 |     "subcontext.proto", | 
 | 52 |     "tokenizer.cpp", | 
 | 53 |     "util.cpp", | 
 | 54 | ] | 
 | 55 | init_device_sources = [ | 
| David Anderson | 4117559 | 2020-03-20 19:38:28 -0700 | [diff] [blame] | 56 |     "block_dev_initializer.cpp", | 
| Tom Cherry | 6619649 | 2020-02-06 11:56:58 -0800 | [diff] [blame] | 57 |     "bootchart.cpp", | 
 | 58 |     "builtins.cpp", | 
 | 59 |     "devices.cpp", | 
 | 60 |     "firmware_handler.cpp", | 
| Steve Muckle | a4bf2ce | 2019-11-01 13:58:02 -0700 | [diff] [blame] | 61 |     "first_stage_console.cpp", | 
| Tom Cherry | 6619649 | 2020-02-06 11:56:58 -0800 | [diff] [blame] | 62 |     "first_stage_init.cpp", | 
 | 63 |     "first_stage_mount.cpp", | 
 | 64 |     "fscrypt_init_extensions.cpp", | 
 | 65 |     "init.cpp", | 
 | 66 |     "lmkd_service.cpp", | 
 | 67 |     "modalias_handler.cpp", | 
 | 68 |     "mount_handler.cpp", | 
 | 69 |     "mount_namespace.cpp", | 
 | 70 |     "persistent_properties.cpp", | 
 | 71 |     "persistent_properties.proto", | 
 | 72 |     "property_service.cpp", | 
 | 73 |     "property_service.proto", | 
 | 74 |     "reboot.cpp", | 
 | 75 |     "reboot_utils.cpp", | 
 | 76 |     "security.cpp", | 
 | 77 |     "selabel.cpp", | 
 | 78 |     "selinux.cpp", | 
 | 79 |     "sigchld_handler.cpp", | 
| David Anderson | 491e4da | 2020-12-08 00:21:20 -0800 | [diff] [blame] | 80 |     "snapuserd_transition.cpp", | 
| Tom Cherry | 6619649 | 2020-02-06 11:56:58 -0800 | [diff] [blame] | 81 |     "switch_root.cpp", | 
 | 82 |     "uevent_listener.cpp", | 
 | 83 |     "ueventd.cpp", | 
 | 84 |     "ueventd_parser.cpp", | 
 | 85 | ] | 
 | 86 | init_host_sources = [ | 
 | 87 |     "check_builtins.cpp", | 
 | 88 |     "host_import_parser.cpp", | 
 | 89 |     "host_init_verifier.cpp", | 
 | 90 | ] | 
 | 91 |  | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 92 | cc_defaults { | 
 | 93 |     name: "init_defaults", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 94 |     sanitize: { | 
| Tom Cherry | 2ffd65e | 2017-07-26 14:17:09 -0700 | [diff] [blame] | 95 |         misc_undefined: ["signed-integer-overflow"], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 96 |     }, | 
| Chih-Hung Hsieh | 122352d | 2017-10-02 15:20:07 -0700 | [diff] [blame] | 97 |     cflags: [ | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 98 |         "-DLOG_UEVENTS=0", | 
 | 99 |         "-Wall", | 
 | 100 |         "-Wextra", | 
 | 101 |         "-Wno-unused-parameter", | 
 | 102 |         "-Werror", | 
| Tom Cherry | 802864c | 2020-03-12 14:29:25 -0700 | [diff] [blame] | 103 |         "-Wthread-safety", | 
| Steve Muckle | d75f30a | 2019-05-21 15:50:39 -0700 | [diff] [blame] | 104 |         "-DALLOW_FIRST_STAGE_CONSOLE=0", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 105 |         "-DALLOW_LOCAL_PROP_OVERRIDE=0", | 
 | 106 |         "-DALLOW_PERMISSIVE_SELINUX=0", | 
 | 107 |         "-DREBOOT_BOOTLOADER_ON_PANIC=0", | 
 | 108 |         "-DWORLD_WRITABLE_KMSG=0", | 
 | 109 |         "-DDUMP_ON_UMOUNT_FAILURE=0", | 
 | 110 |         "-DSHUTDOWN_ZERO_TIMEOUT=0", | 
| Tom Cherry | a2f9136 | 2020-02-20 10:50:00 -0800 | [diff] [blame] | 111 |         "-DINIT_FULL_SOURCES", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 112 |     ], | 
 | 113 |     product_variables: { | 
 | 114 |         debuggable: { | 
 | 115 |             cppflags: [ | 
| Steve Muckle | d75f30a | 2019-05-21 15:50:39 -0700 | [diff] [blame] | 116 |                 "-UALLOW_FIRST_STAGE_CONSOLE", | 
 | 117 |                 "-DALLOW_FIRST_STAGE_CONSOLE=1", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 118 |                 "-UALLOW_LOCAL_PROP_OVERRIDE", | 
 | 119 |                 "-DALLOW_LOCAL_PROP_OVERRIDE=1", | 
 | 120 |                 "-UALLOW_PERMISSIVE_SELINUX", | 
 | 121 |                 "-DALLOW_PERMISSIVE_SELINUX=1", | 
 | 122 |                 "-UREBOOT_BOOTLOADER_ON_PANIC", | 
 | 123 |                 "-DREBOOT_BOOTLOADER_ON_PANIC=1", | 
 | 124 |                 "-UWORLD_WRITABLE_KMSG", | 
 | 125 |                 "-DWORLD_WRITABLE_KMSG=1", | 
 | 126 |                 "-UDUMP_ON_UMOUNT_FAILURE", | 
 | 127 |                 "-DDUMP_ON_UMOUNT_FAILURE=1", | 
 | 128 |             ], | 
 | 129 |         }, | 
 | 130 |         eng: { | 
 | 131 |             cppflags: [ | 
 | 132 |                 "-USHUTDOWN_ZERO_TIMEOUT", | 
 | 133 |                 "-DSHUTDOWN_ZERO_TIMEOUT=1", | 
 | 134 |             ], | 
 | 135 |         }, | 
| Dmitry Shmidt | c3bc509 | 2017-08-23 14:57:07 -0700 | [diff] [blame] | 136 |         uml: { | 
 | 137 |             cppflags: ["-DUSER_MODE_LINUX"], | 
| Elliott Hughes | dc699a2 | 2018-02-16 17:58:14 -0800 | [diff] [blame] | 138 |         }, | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 139 |     }, | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 140 |     static_libs: [ | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 141 |         "libavb", | 
| Bowgo Tsai | 30afda7 | 2019-04-11 23:57:24 +0800 | [diff] [blame] | 142 |         "libc++fs", | 
| Yifan Hong | d8ce1fb | 2019-03-22 17:21:58 -0700 | [diff] [blame] | 143 |         "libcgrouprc_format", | 
| Suren Baghdasaryan | c29c2ba | 2019-10-22 17:18:42 -0700 | [diff] [blame] | 144 |         "liblmkd_utils", | 
| Steve Muckle | 18b981e | 2019-04-15 17:43:02 -0700 | [diff] [blame] | 145 |         "libmodprobe", | 
| David Anderson | 9fd8862 | 2021-03-05 14:10:55 -0800 | [diff] [blame] | 146 |         "libprocinfo", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 147 |         "libprotobuf-cpp-lite", | 
 | 148 |         "libpropertyinfoserializer", | 
 | 149 |         "libpropertyinfoparser", | 
| David Anderson | aca0bea | 2020-09-21 16:34:25 -0700 | [diff] [blame] | 150 |         "libsnapshot_cow", | 
| David Anderson | dfe6d07 | 2019-10-09 16:24:03 -0700 | [diff] [blame] | 151 |         "libsnapshot_init", | 
| Jooyung Han | 1d951b7 | 2020-07-05 03:33:36 +0900 | [diff] [blame] | 152 |         "libxml2", | 
| Jiyong Park | 648ae3a | 2019-12-08 00:25:15 +0900 | [diff] [blame] | 153 |         "lib_apex_manifest_proto_lite", | 
| Yifan Hong | 66f0115 | 2020-04-16 11:05:16 -0700 | [diff] [blame] | 154 |         "update_metadata-protos", | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 155 |     ], | 
 | 156 |     shared_libs: [ | 
| Tom Cherry | 59656fb | 2019-05-28 10:19:44 -0700 | [diff] [blame] | 157 |         "libbacktrace", | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 158 |         "libbase", | 
| Tao Bao | 66209ca | 2018-07-25 22:35:45 -0700 | [diff] [blame] | 159 |         "libbootloader_message", | 
 | 160 |         "libcutils", | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 161 |         "libdl", | 
| Tao Bao | 66209ca | 2018-07-25 22:35:45 -0700 | [diff] [blame] | 162 |         "libext4_utils", | 
 | 163 |         "libfs_mgr", | 
| David Anderson | 0e330f1 | 2019-01-03 18:16:56 -0800 | [diff] [blame] | 164 |         "libgsi", | 
| Tao Bao | 66209ca | 2018-07-25 22:35:45 -0700 | [diff] [blame] | 165 |         "libhidl-gen-utils", | 
 | 166 |         "libkeyutils", | 
 | 167 |         "liblog", | 
 | 168 |         "liblogwrap", | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 169 |         "liblp", | 
| Suren Baghdasaryan | 82b72a5 | 2018-12-21 11:41:50 -0800 | [diff] [blame] | 170 |         "libprocessgroup", | 
| Yifan Hong | 6f9ce2e | 2019-03-05 15:47:16 -0800 | [diff] [blame] | 171 |         "libprocessgroup_setup", | 
| Jiyong Park | 012171d | 2018-06-19 16:55:05 +0900 | [diff] [blame] | 172 |         "libselinux", | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 173 |         "libutils", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 174 |     ], | 
| Jiyong Park | 93318d4 | 2018-12-26 17:34:39 +0900 | [diff] [blame] | 175 |     bootstrap: true, | 
| Daniel Norman | 8082ba2 | 2019-07-23 10:26:15 -0700 | [diff] [blame] | 176 |     visibility: [":__subpackages__"], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 177 | } | 
 | 178 |  | 
 | 179 | cc_library_static { | 
 | 180 |     name: "libinit", | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 181 |     recovery_available: true, | 
| Daniel Norman | 8082ba2 | 2019-07-23 10:26:15 -0700 | [diff] [blame] | 182 |     defaults: [ | 
 | 183 |         "init_defaults", | 
 | 184 |         "selinux_policy_version", | 
 | 185 |     ], | 
| Tom Cherry | 6619649 | 2020-02-06 11:56:58 -0800 | [diff] [blame] | 186 |     srcs: init_common_sources + init_device_sources, | 
| Jooyung Han | 1d951b7 | 2020-07-05 03:33:36 +0900 | [diff] [blame] | 187 |     generated_sources: [ | 
 | 188 |         "apex-info-list", | 
 | 189 |     ], | 
| Daniel Norman | 8082ba2 | 2019-07-23 10:26:15 -0700 | [diff] [blame] | 190 |     whole_static_libs: [ | 
 | 191 |         "libcap", | 
 | 192 |         "com.android.sysprop.apex", | 
| Nikita Ioffe | 23dbd6d | 2019-11-14 01:21:24 +0000 | [diff] [blame] | 193 |         "com.android.sysprop.init", | 
| Daniel Norman | 8082ba2 | 2019-07-23 10:26:15 -0700 | [diff] [blame] | 194 |     ], | 
| Jayant Chowdhary | 478c7c1 | 2018-03-28 18:45:35 -0700 | [diff] [blame] | 195 |     header_libs: ["bootimg_headers"], | 
| Tom Cherry | a97faba | 2017-09-15 15:44:04 -0700 | [diff] [blame] | 196 |     proto: { | 
 | 197 |         type: "lite", | 
 | 198 |         export_proto_headers: true, | 
 | 199 |     }, | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 200 |  | 
 | 201 |     target: { | 
 | 202 |         recovery: { | 
 | 203 |             cflags: ["-DRECOVERY"], | 
| Jooyung Han | 1d951b7 | 2020-07-05 03:33:36 +0900 | [diff] [blame] | 204 |             exclude_static_libs: [ | 
 | 205 |                 "libxml2", | 
 | 206 |             ], | 
 | 207 |             exclude_generated_sources: [ | 
 | 208 |                 "apex-info-list", | 
 | 209 |             ], | 
| Daniel Norman | 8082ba2 | 2019-07-23 10:26:15 -0700 | [diff] [blame] | 210 |             exclude_shared_libs: [ | 
 | 211 |                 "libbinder", | 
 | 212 |                 "libutils", | 
 | 213 |             ], | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 214 |         }, | 
 | 215 |     }, | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 216 | } | 
 | 217 |  | 
| Steven Moreland | ceb36d0 | 2019-07-15 15:12:56 -0700 | [diff] [blame] | 218 | phony { | 
 | 219 |     name: "init", | 
 | 220 |     required: [ | 
 | 221 |         "init_second_stage", | 
 | 222 |     ], | 
 | 223 | } | 
 | 224 |  | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 225 | cc_binary { | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 226 |     name: "init_second_stage", | 
 | 227 |     recovery_available: true, | 
 | 228 |     stem: "init", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 229 |     defaults: ["init_defaults"], | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 230 |     static_libs: ["libinit"], | 
| Jin Qian | 0045697 | 2017-07-06 11:43:45 -0700 | [diff] [blame] | 231 |     required: [ | 
 | 232 |         "e2fsdroid", | 
| Tom Cherry | c9f5353 | 2019-11-04 10:30:36 -0800 | [diff] [blame] | 233 |         "init.rc", | 
| Jin Qian | 0045697 | 2017-07-06 11:43:45 -0700 | [diff] [blame] | 234 |         "mke2fs", | 
| Jaegeuk Kim | 899ad55 | 2017-11-28 19:26:34 -0800 | [diff] [blame] | 235 |         "sload_f2fs", | 
 | 236 |         "make_f2fs", | 
| Tom Cherry | c9f5353 | 2019-11-04 10:30:36 -0800 | [diff] [blame] | 237 |         "ueventd.rc", | 
| Jin Qian | 0045697 | 2017-07-06 11:43:45 -0700 | [diff] [blame] | 238 |     ], | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 239 |     srcs: ["main.cpp"], | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 240 |     symlinks: ["ueventd"], | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 241 |     target: { | 
 | 242 |         recovery: { | 
 | 243 |             cflags: ["-DRECOVERY"], | 
| Jooyung Han | 1d951b7 | 2020-07-05 03:33:36 +0900 | [diff] [blame] | 244 |             exclude_static_libs: [ | 
 | 245 |                 "libxml2", | 
 | 246 |             ], | 
| Daniel Norman | 8082ba2 | 2019-07-23 10:26:15 -0700 | [diff] [blame] | 247 |             exclude_shared_libs: [ | 
 | 248 |                 "libbinder", | 
 | 249 |                 "libutils", | 
 | 250 |             ], | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 251 |         }, | 
 | 252 |     }, | 
| Jiyong Park | 9035378 | 2021-01-25 18:41:40 +0900 | [diff] [blame] | 253 |     visibility: ["//packages/modules/Virtualization/microdroid"], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 254 | } | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 255 |  | 
| Inseob Kim | 2e20058 | 2021-06-11 12:58:53 +0900 | [diff] [blame] | 256 | soong_config_module_type { | 
 | 257 |     name: "init_first_stage_cc_defaults", | 
 | 258 |     module_type: "cc_defaults", | 
 | 259 |     config_namespace: "ANDROID", | 
| Inseob Kim | 4818f74 | 2021-06-30 20:24:30 +0900 | [diff] [blame] | 260 |     bool_variables: ["BOARD_BUILD_SYSTEM_ROOT_IMAGE"], | 
| Inseob Kim | 2e20058 | 2021-06-11 12:58:53 +0900 | [diff] [blame] | 261 |     properties: ["installable"], | 
 | 262 | } | 
 | 263 |  | 
 | 264 | // Do not install init_first_stage even with mma if we're system-as-root. | 
 | 265 | // Otherwise, it will overwrite the symlink. | 
 | 266 | init_first_stage_cc_defaults { | 
 | 267 |     name: "init_first_stage_defaults", | 
 | 268 |     soong_config_variables: { | 
 | 269 |         BOARD_BUILD_SYSTEM_ROOT_IMAGE: { | 
 | 270 |             installable: false, | 
 | 271 |         }, | 
| Inseob Kim | 2e20058 | 2021-06-11 12:58:53 +0900 | [diff] [blame] | 272 |     }, | 
 | 273 | } | 
 | 274 |  | 
| Jiyong Park | 13eb053 | 2021-02-15 14:13:51 +0900 | [diff] [blame] | 275 | cc_binary { | 
| Inseob Kim | 2e20058 | 2021-06-11 12:58:53 +0900 | [diff] [blame] | 276 |     name: "init_first_stage", | 
 | 277 |     stem: "init", | 
 | 278 |     defaults: ["init_first_stage_defaults"], | 
| Jiyong Park | 13eb053 | 2021-02-15 14:13:51 +0900 | [diff] [blame] | 279 |  | 
 | 280 |     srcs: [ | 
 | 281 |         "block_dev_initializer.cpp", | 
 | 282 |         "devices.cpp", | 
 | 283 |         "first_stage_console.cpp", | 
 | 284 |         "first_stage_init.cpp", | 
 | 285 |         "first_stage_main.cpp", | 
 | 286 |         "first_stage_mount.cpp", | 
 | 287 |         "reboot_utils.cpp", | 
 | 288 |         "selabel.cpp", | 
 | 289 |         "selinux.cpp", | 
 | 290 |         "service_utils.cpp", | 
 | 291 |         "snapuserd_transition.cpp", | 
 | 292 |         "switch_root.cpp", | 
 | 293 |         "uevent_listener.cpp", | 
 | 294 |         "util.cpp", | 
 | 295 |     ], | 
 | 296 |  | 
 | 297 |     static_libs: [ | 
 | 298 |         "libc++fs", | 
 | 299 |         "libfs_avb", | 
 | 300 |         "libfs_mgr", | 
 | 301 |         "libfec", | 
 | 302 |         "libfec_rs", | 
 | 303 |         "libsquashfs_utils", | 
 | 304 |         "liblogwrap", | 
 | 305 |         "libext4_utils", | 
 | 306 |         "libcrypto_utils", | 
 | 307 |         "libsparse", | 
 | 308 |         "libavb", | 
 | 309 |         "libkeyutils", | 
 | 310 |         "liblp", | 
 | 311 |         "libcutils", | 
 | 312 |         "libbase", | 
 | 313 |         "liblog", | 
 | 314 |         "libcrypto_static", | 
 | 315 |         "libdl", | 
 | 316 |         "libz", | 
 | 317 |         "libselinux", | 
 | 318 |         "libcap", | 
 | 319 |         "libgsi", | 
 | 320 |         "libcom.android.sysprop.apex", | 
 | 321 |         "liblzma", | 
 | 322 |         "libunwindstack_no_dex", | 
 | 323 |         "libbacktrace_no_dex", | 
 | 324 |         "libmodprobe", | 
 | 325 |         "libext2_uuid", | 
 | 326 |         "libprotobuf-cpp-lite", | 
 | 327 |         "libsnapshot_cow", | 
 | 328 |         "libsnapshot_init", | 
 | 329 |         "update_metadata-protos", | 
| David Anderson | 9fd8862 | 2021-03-05 14:10:55 -0800 | [diff] [blame] | 330 |         "libprocinfo", | 
| Jiyong Park | 13eb053 | 2021-02-15 14:13:51 +0900 | [diff] [blame] | 331 |     ], | 
 | 332 |  | 
 | 333 |     static_executable: true, | 
| Inseob Kim | 2e20058 | 2021-06-11 12:58:53 +0900 | [diff] [blame] | 334 |     system_shared_libs: [], | 
| Jiyong Park | 13eb053 | 2021-02-15 14:13:51 +0900 | [diff] [blame] | 335 |  | 
 | 336 |     cflags: [ | 
 | 337 |         "-Wall", | 
 | 338 |         "-Wextra", | 
 | 339 |         "-Wno-unused-parameter", | 
 | 340 |         "-Werror", | 
 | 341 |         "-DALLOW_FIRST_STAGE_CONSOLE=0", | 
 | 342 |         "-DALLOW_LOCAL_PROP_OVERRIDE=0", | 
 | 343 |         "-DALLOW_PERMISSIVE_SELINUX=0", | 
 | 344 |         "-DREBOOT_BOOTLOADER_ON_PANIC=0", | 
 | 345 |         "-DWORLD_WRITABLE_KMSG=0", | 
 | 346 |         "-DDUMP_ON_UMOUNT_FAILURE=0", | 
 | 347 |         "-DSHUTDOWN_ZERO_TIMEOUT=0", | 
 | 348 |         "-DLOG_UEVENTS=0", | 
 | 349 |         "-DSEPOLICY_VERSION=30", // TODO(jiyong): externalize the version number | 
 | 350 |     ], | 
 | 351 |  | 
 | 352 |     product_variables: { | 
 | 353 |         debuggable: { | 
 | 354 |             cflags: [ | 
 | 355 |                 "-UALLOW_FIRST_STAGE_CONSOLE", | 
 | 356 |                 "-DALLOW_FIRST_STAGE_CONSOLE=1", | 
 | 357 |  | 
 | 358 |                 "-UALLOW_LOCAL_PROP_OVERRIDE", | 
 | 359 |                 "-DALLOW_LOCAL_PROP_OVERRIDE=1", | 
 | 360 |  | 
 | 361 |                 "-UALLOW_PERMISSIVE_SELINUX", | 
 | 362 |                 "-DALLOW_PERMISSIVE_SELINUX=1", | 
 | 363 |  | 
 | 364 |                 "-UREBOOT_BOOTLOADER_ON_PANIC", | 
 | 365 |                 "-DREBOOT_BOOTLOADER_ON_PANIC=1", | 
 | 366 |  | 
 | 367 |                 "-UWORLD_WRITABLE_KMSG", | 
 | 368 |                 "-DWORLD_WRITABLE_KMSG=1", | 
 | 369 |  | 
 | 370 |                 "-UDUMP_ON_UMOUNT_FAILURE", | 
 | 371 |                 "-DDUMP_ON_UMOUNT_FAILURE=1", | 
 | 372 |             ], | 
 | 373 |         }, | 
 | 374 |  | 
 | 375 |         eng: { | 
 | 376 |             cflags: [ | 
 | 377 |                 "-USHUTDOWN_ZERO_TIMEOUT", | 
 | 378 |                 "-DSHUTDOWN_ZERO_TIMEOUT=1", | 
 | 379 |             ], | 
 | 380 |         }, | 
 | 381 |     }, | 
 | 382 |  | 
 | 383 |     sanitize: { | 
 | 384 |         misc_undefined: ["signed-integer-overflow"], | 
| Inseob Kim | 2e20058 | 2021-06-11 12:58:53 +0900 | [diff] [blame] | 385 |  | 
 | 386 |         // First stage init is weird: it may start without stdout/stderr, and no /proc. | 
| Jiyong Park | 13eb053 | 2021-02-15 14:13:51 +0900 | [diff] [blame] | 387 |         hwaddress: false, | 
 | 388 |     }, | 
| Inseob Kim | 2e20058 | 2021-06-11 12:58:53 +0900 | [diff] [blame] | 389 |  | 
 | 390 |     // Install adb_debug.prop into debug ramdisk. | 
 | 391 |     // This allows adb root on a user build, when debug ramdisk is used. | 
 | 392 |     required: ["adb_debug.prop"], | 
 | 393 |  | 
 | 394 |     ramdisk: true, | 
 | 395 |  | 
 | 396 |     install_in_root: true, | 
 | 397 | } | 
 | 398 |  | 
 | 399 | phony { | 
 | 400 |     name: "init_system", | 
 | 401 |     required: ["init_second_stage"], | 
| Jiyong Park | 13eb053 | 2021-02-15 14:13:51 +0900 | [diff] [blame] | 402 | } | 
 | 403 |  | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 404 | // Tests | 
 | 405 | // ------------------------------------------------------------------------------ | 
 | 406 |  | 
 | 407 | cc_test { | 
| Tom Cherry | 17b2be0 | 2019-08-20 10:43:48 -0700 | [diff] [blame] | 408 |     name: "CtsInitTestCases", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 409 |     defaults: ["init_defaults"], | 
| Josh Gao | 6cad139 | 2019-08-27 16:02:38 -0700 | [diff] [blame] | 410 |     require_root: true, | 
 | 411 |  | 
| Tom Cherry | 17b2be0 | 2019-08-20 10:43:48 -0700 | [diff] [blame] | 412 |     compile_multilib: "both", | 
 | 413 |     multilib: { | 
 | 414 |         lib32: { | 
 | 415 |             suffix: "32", | 
 | 416 |         }, | 
 | 417 |         lib64: { | 
 | 418 |             suffix: "64", | 
 | 419 |         }, | 
 | 420 |     }, | 
 | 421 |  | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 422 |     srcs: [ | 
 | 423 |         "devices_test.cpp", | 
| Tom Cherry | dcb3d15 | 2019-08-07 16:02:28 -0700 | [diff] [blame] | 424 |         "firmware_handler_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 425 |         "init_test.cpp", | 
| Mark Salyzyn | 75b901d | 2018-05-15 11:19:43 -0700 | [diff] [blame] | 426 |         "keychords_test.cpp", | 
| Tom Cherry | bdbf504 | 2020-03-04 10:52:08 -0800 | [diff] [blame] | 427 |         "oneshot_on_test.cpp", | 
| Tom Cherry | 16fad42 | 2017-08-04 15:59:03 -0700 | [diff] [blame] | 428 |         "persistent_properties_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 429 |         "property_service_test.cpp", | 
| Tom Cherry | 927c5d5 | 2017-12-11 01:40:07 -0800 | [diff] [blame] | 430 |         "property_type_test.cpp", | 
| Tom Cherry | 7ac013d | 2017-08-25 10:39:25 -0700 | [diff] [blame] | 431 |         "rlimit_parser_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 432 |         "service_test.cpp", | 
| Tom Cherry | cb0f9bb | 2017-09-12 15:58:47 -0700 | [diff] [blame] | 433 |         "subcontext_test.cpp", | 
| Tom Cherry | 2a5a4e7 | 2018-06-26 13:56:34 -0700 | [diff] [blame] | 434 |         "tokenizer_test.cpp", | 
| Tom Cherry | 5f0198b | 2018-07-17 15:28:16 -0700 | [diff] [blame] | 435 |         "ueventd_parser_test.cpp", | 
| Tom Cherry | c2e181c | 2017-07-14 16:29:23 -0700 | [diff] [blame] | 436 |         "ueventd_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 437 |         "util_test.cpp", | 
 | 438 |     ], | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 439 |     static_libs: ["libinit"], | 
| Tom Cherry | 17b2be0 | 2019-08-20 10:43:48 -0700 | [diff] [blame] | 440 |  | 
 | 441 |     test_suites: [ | 
 | 442 |         "cts", | 
 | 443 |         "device-tests", | 
| Tom Cherry | 17b2be0 | 2019-08-20 10:43:48 -0700 | [diff] [blame] | 444 |     ], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 445 | } | 
 | 446 |  | 
| Tom Cherry | cb0f9bb | 2017-09-12 15:58:47 -0700 | [diff] [blame] | 447 | cc_benchmark { | 
 | 448 |     name: "init_benchmarks", | 
 | 449 |     defaults: ["init_defaults"], | 
 | 450 |     srcs: [ | 
 | 451 |         "subcontext_benchmark.cpp", | 
 | 452 |     ], | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 453 |     static_libs: ["libinit"], | 
| Tom Cherry | cb0f9bb | 2017-09-12 15:58:47 -0700 | [diff] [blame] | 454 | } | 
 | 455 |  | 
| Tom Cherry | a2f9136 | 2020-02-20 10:50:00 -0800 | [diff] [blame] | 456 | cc_defaults { | 
 | 457 |     name: "libinit_test_utils_libraries_defaults", | 
 | 458 |     shared_libs: [ | 
 | 459 |         "libbase", | 
 | 460 |         "libcutils", | 
 | 461 |         "libselinux", | 
 | 462 |         "libhidl-gen-utils", | 
 | 463 |         "liblog", | 
 | 464 |         "libprocessgroup", | 
 | 465 |         "libprotobuf-cpp-lite", | 
 | 466 |     ], | 
 | 467 | } | 
 | 468 |  | 
 | 469 | cc_library_static { | 
 | 470 |     name: "libinit_test_utils", | 
 | 471 |     defaults: ["libinit_test_utils_libraries_defaults"], | 
 | 472 |     cflags: [ | 
 | 473 |         "-Wall", | 
 | 474 |         "-Wextra", | 
 | 475 |         "-Wno-unused-parameter", | 
 | 476 |         "-Werror", | 
 | 477 |     ], | 
 | 478 |     srcs: init_common_sources + [ | 
 | 479 |         "test_utils/service_utils.cpp", | 
 | 480 |     ], | 
 | 481 |     whole_static_libs: [ | 
 | 482 |         "libcap", | 
 | 483 |     ], | 
 | 484 |     export_include_dirs: ["test_utils/include"], // for tests | 
 | 485 | } | 
 | 486 |  | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 487 | // Host Verifier | 
 | 488 | // ------------------------------------------------------------------------------ | 
 | 489 |  | 
 | 490 | genrule { | 
 | 491 |     name: "generated_stub_builtin_function_map", | 
| Tom Cherry | 4772f1d | 2019-07-30 09:34:41 -0700 | [diff] [blame] | 492 |     tool_files: ["host_builtin_map.py"], | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 493 |     out: ["generated_stub_builtin_function_map.h"], | 
| Daniel Norman | d2533c3 | 2019-08-02 15:13:50 -0700 | [diff] [blame] | 494 |     srcs: [ | 
 | 495 |         "builtins.cpp", | 
 | 496 |         "check_builtins.cpp", | 
 | 497 |     ], | 
| Tom Cherry | 4772f1d | 2019-07-30 09:34:41 -0700 | [diff] [blame] | 498 |     cmd: "$(location host_builtin_map.py) --builtins $(location builtins.cpp) --check_builtins $(location check_builtins.cpp) > $(out)", | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 499 | } | 
 | 500 |  | 
 | 501 | cc_binary { | 
 | 502 |     name: "host_init_verifier", | 
 | 503 |     host_supported: true, | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 504 |     cflags: [ | 
 | 505 |         "-Wall", | 
 | 506 |         "-Wextra", | 
 | 507 |         "-Wno-unused-parameter", | 
 | 508 |         "-Werror", | 
 | 509 |     ], | 
 | 510 |     static_libs: [ | 
 | 511 |         "libbase", | 
 | 512 |         "libselinux", | 
| Tom Cherry | b5f2ec0 | 2019-11-08 17:54:27 -0800 | [diff] [blame] | 513 |         "libpropertyinfoserializer", | 
 | 514 |         "libpropertyinfoparser", | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 515 |     ], | 
 | 516 |     whole_static_libs: ["libcap"], | 
 | 517 |     shared_libs: [ | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 518 |         "libcutils", | 
| Daniel Norman | 3f42a76 | 2019-07-09 11:00:53 -0700 | [diff] [blame] | 519 |         "libhidl-gen-utils", | 
| Steven Moreland | 422a758 | 2019-10-15 14:53:19 -0700 | [diff] [blame] | 520 |         "libhidlmetadata", | 
| Daniel Norman | 3f42a76 | 2019-07-09 11:00:53 -0700 | [diff] [blame] | 521 |         "liblog", | 
 | 522 |         "libprocessgroup", | 
 | 523 |         "libprotobuf-cpp-lite", | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 524 |     ], | 
| Tom Cherry | 6619649 | 2020-02-06 11:56:58 -0800 | [diff] [blame] | 525 |     srcs: init_common_sources + init_host_sources, | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 526 |     proto: { | 
 | 527 |         type: "lite", | 
 | 528 |     }, | 
| Yifan Hong | 3c4aa11 | 2018-06-20 22:49:48 +0000 | [diff] [blame] | 529 |     generated_headers: [ | 
 | 530 |         "generated_stub_builtin_function_map", | 
| Daniel Norman | 8082ba2 | 2019-07-23 10:26:15 -0700 | [diff] [blame] | 531 |         "generated_android_ids", | 
| Yifan Hong | 3c4aa11 | 2018-06-20 22:49:48 +0000 | [diff] [blame] | 532 |     ], | 
| Tom Cherry | 96ff0fe | 2018-02-28 17:20:27 -0800 | [diff] [blame] | 533 |     target: { | 
| Tom Cherry | 547f731 | 2018-02-28 21:40:46 -0800 | [diff] [blame] | 534 |         android: { | 
 | 535 |             enabled: false, | 
 | 536 |         }, | 
| Tom Cherry | 96ff0fe | 2018-02-28 17:20:27 -0800 | [diff] [blame] | 537 |         darwin: { | 
| Yifan Hong | 3c4aa11 | 2018-06-20 22:49:48 +0000 | [diff] [blame] | 538 |             enabled: false, | 
| Tom Cherry | 96ff0fe | 2018-02-28 17:20:27 -0800 | [diff] [blame] | 539 |         }, | 
 | 540 |     }, | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 541 | } |