| The Android Open Source Project | dd7bc33 | 2009-03-03 19:32:55 -0800 | [diff] [blame] | 1 | # Copyright 2005 The Android Open Source Project | 
 | 2 |  | 
 | 3 | LOCAL_PATH:= $(call my-dir) | 
| The Android Open Source Project | dd7bc33 | 2009-03-03 19:32:55 -0800 | [diff] [blame] | 4 |  | 
| Jeff Vander Stoep | 402e4a6 | 2019-03-19 17:01:09 -0700 | [diff] [blame] | 5 | -include system/sepolicy/policy_version.mk | 
| Jeff Vander Stoep | 724eda5 | 2019-02-15 12:13:38 -0800 | [diff] [blame] | 6 |  | 
| Elliott Hughes | c0e919c | 2015-02-04 14:46:36 -0800 | [diff] [blame] | 7 | # -- | 
 | 8 |  | 
| Elliott Hughes | c0e919c | 2015-02-04 14:46:36 -0800 | [diff] [blame] | 9 | ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) | 
| Tom Cherry | 663fdfc | 2017-03-10 14:46:38 -0800 | [diff] [blame] | 10 | init_options += \ | 
| Steve Muckle | d75f30a | 2019-05-21 15:50:39 -0700 | [diff] [blame] | 11 |     -DALLOW_FIRST_STAGE_CONSOLE=1 \ | 
| Tom Cherry | 663fdfc | 2017-03-10 14:46:38 -0800 | [diff] [blame] | 12 |     -DALLOW_LOCAL_PROP_OVERRIDE=1 \ | 
 | 13 |     -DALLOW_PERMISSIVE_SELINUX=1 \ | 
| Josh Gao | bf2dd48 | 2017-03-28 13:07:15 -0700 | [diff] [blame] | 14 |     -DREBOOT_BOOTLOADER_ON_PANIC=1 \ | 
| Keun-young Park | 2ba5c81 | 2017-03-29 12:54:40 -0700 | [diff] [blame] | 15 |     -DWORLD_WRITABLE_KMSG=1 \ | 
 | 16 |     -DDUMP_ON_UMOUNT_FAILURE=1 | 
| Elliott Hughes | c0e919c | 2015-02-04 14:46:36 -0800 | [diff] [blame] | 17 | else | 
| Tom Cherry | 663fdfc | 2017-03-10 14:46:38 -0800 | [diff] [blame] | 18 | init_options += \ | 
| Steve Muckle | d75f30a | 2019-05-21 15:50:39 -0700 | [diff] [blame] | 19 |     -DALLOW_FIRST_STAGE_CONSOLE=0 \ | 
| Tom Cherry | 663fdfc | 2017-03-10 14:46:38 -0800 | [diff] [blame] | 20 |     -DALLOW_LOCAL_PROP_OVERRIDE=0 \ | 
 | 21 |     -DALLOW_PERMISSIVE_SELINUX=0 \ | 
| Josh Gao | bf2dd48 | 2017-03-28 13:07:15 -0700 | [diff] [blame] | 22 |     -DREBOOT_BOOTLOADER_ON_PANIC=0 \ | 
| Keun-young Park | 2ba5c81 | 2017-03-29 12:54:40 -0700 | [diff] [blame] | 23 |     -DWORLD_WRITABLE_KMSG=0 \ | 
 | 24 |     -DDUMP_ON_UMOUNT_FAILURE=0 | 
| Elliott Hughes | c0e919c | 2015-02-04 14:46:36 -0800 | [diff] [blame] | 25 | endif | 
 | 26 |  | 
| Keun-young Park | c4ffa5c | 2017-03-28 09:41:36 -0700 | [diff] [blame] | 27 | ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT))) | 
 | 28 | init_options += \ | 
 | 29 |     -DSHUTDOWN_ZERO_TIMEOUT=1 | 
 | 30 | else | 
 | 31 | init_options += \ | 
 | 32 |     -DSHUTDOWN_ZERO_TIMEOUT=0 | 
 | 33 | endif | 
 | 34 |  | 
| Jeff Vander Stoep | 724eda5 | 2019-02-15 12:13:38 -0800 | [diff] [blame] | 35 | init_options += -DLOG_UEVENTS=0 \ | 
 | 36 |     -DSEPOLICY_VERSION=$(POLICYVERS) | 
| Elliott Hughes | f682b47 | 2015-02-06 12:19:48 -0800 | [diff] [blame] | 37 |  | 
 | 38 | init_cflags += \ | 
 | 39 |     $(init_options) \ | 
 | 40 |     -Wall -Wextra \ | 
 | 41 |     -Wno-unused-parameter \ | 
 | 42 |     -Werror \ | 
| Elliott Hughes | c0e919c | 2015-02-04 14:46:36 -0800 | [diff] [blame] | 43 |  | 
 | 44 | # -- | 
 | 45 |  | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 46 | # Do not build this even with mmma if we're system-as-root, otherwise it will overwrite the symlink. | 
 | 47 | ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true) | 
| Elliott Hughes | f682b47 | 2015-02-06 12:19:48 -0800 | [diff] [blame] | 48 | include $(CLEAR_VARS) | 
 | 49 | LOCAL_CPPFLAGS := $(init_cflags) | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 50 | LOCAL_SRC_FILES := \ | 
 | 51 |     devices.cpp \ | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 52 |     first_stage_init.cpp \ | 
 | 53 |     first_stage_main.cpp \ | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 54 |     first_stage_mount.cpp \ | 
| Jiyong Park | 6866041 | 2019-01-16 23:00:59 +0900 | [diff] [blame] | 55 |     mount_namespace.cpp \ | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 56 |     reboot_utils.cpp \ | 
| Vic Yang | 92c236e | 2019-05-28 15:58:35 -0700 | [diff] [blame] | 57 |     selabel.cpp \ | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 58 |     selinux.cpp \ | 
| Tom Cherry | 4590a2a | 2018-08-07 10:22:01 -0700 | [diff] [blame] | 59 |     switch_root.cpp \ | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 60 |     uevent_listener.cpp \ | 
 | 61 |     util.cpp \ | 
| The Android Open Source Project | dd7bc33 | 2009-03-03 19:32:55 -0800 | [diff] [blame] | 62 |  | 
| Tom Cherry | 29e5348 | 2018-10-15 17:47:16 -0700 | [diff] [blame] | 63 | LOCAL_MODULE := init_first_stage | 
 | 64 | LOCAL_MODULE_STEM := init | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 65 |  | 
 | 66 | LOCAL_FORCE_STATIC_EXECUTABLE := true | 
| Andres Morales | db5f5d4 | 2015-05-08 08:30:33 -0700 | [diff] [blame] | 67 |  | 
| Tom Cherry | 4590a2a | 2018-08-07 10:22:01 -0700 | [diff] [blame] | 68 | LOCAL_MODULE_PATH := $(TARGET_RAMDISK_OUT) | 
 | 69 | LOCAL_UNSTRIPPED_PATH := $(TARGET_RAMDISK_OUT_UNSTRIPPED) | 
 | 70 |  | 
| Bowgo Tsai | 05f07d8 | 2019-04-19 22:08:56 +0800 | [diff] [blame] | 71 | # Install adb_debug.prop into debug ramdisk. | 
 | 72 | # This allows adb root on a user build, when debug ramdisk is used. | 
 | 73 | LOCAL_REQUIRED_MODULES := \ | 
 | 74 |    adb_debug.prop \ | 
 | 75 |  | 
| Tom Cherry | 4590a2a | 2018-08-07 10:22:01 -0700 | [diff] [blame] | 76 | # Set up the same mount points on the ramdisk that system-as-root contains. | 
| Jiyong Park | e5dc674 | 2019-03-07 10:53:23 +0900 | [diff] [blame] | 77 | LOCAL_POST_INSTALL_CMD := mkdir -p \ | 
 | 78 |     $(TARGET_RAMDISK_OUT)/apex \ | 
| Bowgo Tsai | 30afda7 | 2019-04-11 23:57:24 +0800 | [diff] [blame] | 79 |     $(TARGET_RAMDISK_OUT)/debug_ramdisk \ | 
| Jiyong Park | e5dc674 | 2019-03-07 10:53:23 +0900 | [diff] [blame] | 80 |     $(TARGET_RAMDISK_OUT)/dev \ | 
| Xin Li | 1721645 | 2018-09-17 14:20:16 -0700 | [diff] [blame] | 81 |     $(TARGET_RAMDISK_OUT)/mnt \ | 
 | 82 |     $(TARGET_RAMDISK_OUT)/proc \ | 
 | 83 |     $(TARGET_RAMDISK_OUT)/sys \ | 
| The Android Open Source Project | dd7bc33 | 2009-03-03 19:32:55 -0800 | [diff] [blame] | 84 |  | 
| Kenny Root | b5982bf | 2012-10-16 23:07:05 -0700 | [diff] [blame] | 85 | LOCAL_STATIC_LIBRARIES := \ | 
| Bowgo Tsai | 30afda7 | 2019-04-11 23:57:24 +0800 | [diff] [blame] | 86 |     libc++fs \ | 
| Bowgo Tsai | c1bc281 | 2018-11-26 17:49:23 +0800 | [diff] [blame] | 87 |     libfs_avb \ | 
| Elliott Hughes | f682b47 | 2015-02-06 12:19:48 -0800 | [diff] [blame] | 88 |     libfs_mgr \ | 
| Sami Tolvanen | 99e3a92 | 2015-05-22 15:43:50 +0100 | [diff] [blame] | 89 |     libfec \ | 
 | 90 |     libfec_rs \ | 
| Mohamad Ayyash | 030ef359 | 2015-04-08 17:59:19 -0700 | [diff] [blame] | 91 |     libsquashfs_utils \ | 
| Elliott Hughes | f682b47 | 2015-02-06 12:19:48 -0800 | [diff] [blame] | 92 |     liblogwrap \ | 
| Alex Deymo | 705353a | 2017-01-11 14:03:11 -0800 | [diff] [blame] | 93 |     libext4_utils \ | 
| Eric Biggers | f05da4a | 2018-10-23 13:10:33 -0700 | [diff] [blame] | 94 |     libfscrypt \ | 
| Steve Muckle | af1a9bf | 2017-07-17 15:14:02 -0700 | [diff] [blame] | 95 |     libseccomp_policy \ | 
| Josh Gao | 47763c3 | 2016-08-05 15:47:57 -0700 | [diff] [blame] | 96 |     libcrypto_utils \ | 
| Alex Deymo | b0c3959 | 2017-01-11 14:37:50 -0800 | [diff] [blame] | 97 |     libsparse \ | 
| Elliott Hughes | f8627ce | 2017-05-09 17:09:06 -0700 | [diff] [blame] | 98 |     libavb \ | 
 | 99 |     libkeyutils \ | 
| David Anderson | f792e41 | 2018-07-27 16:05:31 -0700 | [diff] [blame] | 100 |     liblp \ | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 101 |     libcutils \ | 
 | 102 |     libbase \ | 
 | 103 |     liblog \ | 
 | 104 |     libcrypto \ | 
 | 105 |     libdl \ | 
 | 106 |     libz \ | 
| Jiyong Park | 012171d | 2018-06-19 16:55:05 +0900 | [diff] [blame] | 107 |     libselinux \ | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 108 |     libcap \ | 
| David Anderson | 0e330f1 | 2019-01-03 18:16:56 -0800 | [diff] [blame] | 109 |     libgsi \ | 
| Jiyong Park | 8502ed3 | 2019-02-25 22:18:37 +0900 | [diff] [blame] | 110 |     libcom.android.sysprop.apex \ | 
| Tom Cherry | 59656fb | 2019-05-28 10:19:44 -0700 | [diff] [blame] | 111 |     liblzma \ | 
 | 112 |     libdexfile_support \ | 
 | 113 |     libunwindstack \ | 
 | 114 |     libbacktrace \ | 
| Steve Muckle | 18b981e | 2019-04-15 17:43:02 -0700 | [diff] [blame] | 115 |     libmodprobe \ | 
| David Anderson | 924858c | 2019-06-26 17:00:00 -0700 | [diff] [blame] | 116 |     libext2_uuid \ | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 117 |  | 
| Tom Cherry | 2ffd65e | 2017-07-26 14:17:09 -0700 | [diff] [blame] | 118 | LOCAL_SANITIZE := signed-integer-overflow | 
| Evgenii Stepanov | 1f47f4a | 2018-11-01 13:38:38 -0700 | [diff] [blame] | 119 | # First stage init is weird: it may start without stdout/stderr, and no /proc. | 
 | 120 | LOCAL_NOSANITIZE := hwaddress | 
| The Android Open Source Project | dd7bc33 | 2009-03-03 19:32:55 -0800 | [diff] [blame] | 121 | include $(BUILD_EXECUTABLE) | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 122 | endif | 
| Tom Cherry | 29e5348 | 2018-10-15 17:47:16 -0700 | [diff] [blame] | 123 |  | 
 | 124 | include $(CLEAR_VARS) | 
 | 125 |  | 
 | 126 | LOCAL_MODULE := init_system | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 127 | LOCAL_REQUIRED_MODULES := \ | 
 | 128 |    init_second_stage \ | 
 | 129 |  | 
| Tom Cherry | 29e5348 | 2018-10-15 17:47:16 -0700 | [diff] [blame] | 130 | include $(BUILD_PHONY_PACKAGE) | 
 | 131 |  | 
 | 132 | include $(CLEAR_VARS) | 
 | 133 |  | 
 | 134 | LOCAL_MODULE := init_vendor | 
 | 135 | ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true) | 
 | 136 | LOCAL_REQUIRED_MODULES := \ | 
 | 137 |    init_first_stage \ | 
 | 138 |  | 
 | 139 | endif | 
 | 140 | include $(BUILD_PHONY_PACKAGE) |