blob: 3c7d95acf2cf9096d4b5e9b91b0dab65026bcefe [file] [log] [blame]
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -08001# Copyright 2005 The Android Open Source Project
2
3LOCAL_PATH:= $(call my-dir)
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -08004
Inseob Kim651db092021-07-01 06:50:40 +00005-include system/sepolicy/policy_version.mk
6
7# --
8
9ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
10init_options += \
11 -DALLOW_FIRST_STAGE_CONSOLE=1 \
12 -DALLOW_LOCAL_PROP_OVERRIDE=1 \
13 -DALLOW_PERMISSIVE_SELINUX=1 \
14 -DREBOOT_BOOTLOADER_ON_PANIC=1 \
15 -DWORLD_WRITABLE_KMSG=1 \
16 -DDUMP_ON_UMOUNT_FAILURE=1
17else
18init_options += \
19 -DALLOW_FIRST_STAGE_CONSOLE=0 \
20 -DALLOW_LOCAL_PROP_OVERRIDE=0 \
21 -DALLOW_PERMISSIVE_SELINUX=0 \
22 -DREBOOT_BOOTLOADER_ON_PANIC=0 \
23 -DWORLD_WRITABLE_KMSG=0 \
24 -DDUMP_ON_UMOUNT_FAILURE=0
25endif
26
27ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
28init_options += \
29 -DSHUTDOWN_ZERO_TIMEOUT=1
30else
31init_options += \
32 -DSHUTDOWN_ZERO_TIMEOUT=0
33endif
34
35init_options += -DLOG_UEVENTS=0 \
36 -DSEPOLICY_VERSION=$(POLICYVERS)
37
38init_cflags += \
39 $(init_options) \
40 -Wall -Wextra \
41 -Wno-unused-parameter \
42 -Werror \
43
44# --
45
46# Do not build this even with mmma if we're system-as-root, otherwise it will overwrite the symlink.
47ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
48include $(CLEAR_VARS)
49LOCAL_CPPFLAGS := $(init_cflags)
50LOCAL_SRC_FILES := \
51 block_dev_initializer.cpp \
52 devices.cpp \
53 first_stage_console.cpp \
54 first_stage_init.cpp \
55 first_stage_main.cpp \
56 first_stage_mount.cpp \
57 reboot_utils.cpp \
58 selabel.cpp \
59 selinux.cpp \
60 service_utils.cpp \
61 snapuserd_transition.cpp \
62 switch_root.cpp \
63 uevent_listener.cpp \
64 util.cpp \
65
66LOCAL_MODULE := init_first_stage
67LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
68LOCAL_LICENSE_CONDITIONS := notice
69LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
70LOCAL_MODULE_STEM := init
71
72LOCAL_FORCE_STATIC_EXECUTABLE := true
73
74LOCAL_MODULE_PATH := $(TARGET_RAMDISK_OUT)
75LOCAL_UNSTRIPPED_PATH := $(TARGET_RAMDISK_OUT_UNSTRIPPED)
76
77# Install adb_debug.prop into debug ramdisk.
78# This allows adb root on a user build, when debug ramdisk is used.
79LOCAL_REQUIRED_MODULES := \
80 adb_debug.prop \
81
82# Set up the directories that first stage init mounts on.
83
84my_ramdisk_dirs := \
85 debug_ramdisk \
86 dev \
87 metadata \
88 mnt \
89 proc \
90 second_stage_resources \
91 sys \
92
93LOCAL_POST_INSTALL_CMD := mkdir -p $(addprefix $(TARGET_RAMDISK_OUT)/,$(my_ramdisk_dirs))
94ifeq (true,$(BOARD_USES_GENERIC_KERNEL_IMAGE))
95 LOCAL_POST_INSTALL_CMD += $(addprefix $(TARGET_RAMDISK_OUT)/first_stage_ramdisk/,$(my_ramdisk_dirs))
96endif
97
98my_ramdisk_dirs :=
99
100LOCAL_STATIC_LIBRARIES := \
101 libc++fs \
102 libfs_avb \
103 libfs_mgr \
104 libfec \
105 libfec_rs \
106 libsquashfs_utils \
107 liblogwrap \
108 libext4_utils \
109 libcrypto_utils \
110 libsparse \
111 libavb \
112 libkeyutils \
113 liblp \
114 libcutils \
115 libbase \
116 liblog \
117 libcrypto_static \
118 libdl \
119 libz \
120 libselinux \
121 libcap \
122 libgsi \
123 libcom.android.sysprop.apex \
124 liblzma \
125 libunwindstack_no_dex \
126 libbacktrace_no_dex \
127 libmodprobe \
128 libext2_uuid \
129 libprotobuf-cpp-lite \
130 libsnapshot_cow \
131 libsnapshot_init \
132 update_metadata-protos \
133 libprocinfo \
134
135LOCAL_SANITIZE := signed-integer-overflow
136# First stage init is weird: it may start without stdout/stderr, and no /proc.
137LOCAL_NOSANITIZE := hwaddress
138include $(BUILD_EXECUTABLE)
139endif
140
141include $(CLEAR_VARS)
142
143LOCAL_MODULE := init_system
144LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
145LOCAL_LICENSE_CONDITIONS := notice
146LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
147LOCAL_REQUIRED_MODULES := \
148 init_second_stage \
149
150include $(BUILD_PHONY_PACKAGE)
151
Tom Cherry29e53482018-10-15 17:47:16 -0700152include $(CLEAR_VARS)
153
154LOCAL_MODULE := init_vendor
Bob Badourd69ad692021-02-16 19:02:14 -0800155LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
156LOCAL_LICENSE_CONDITIONS := notice
157LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
Tom Cherry29e53482018-10-15 17:47:16 -0700158ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
Yo Chiang4adce5f2020-08-13 04:54:18 +0000159LOCAL_REQUIRED_MODULES := \
160 init_first_stage \
161
Inseob Kim651db092021-07-01 06:50:40 +0000162endif
Tom Cherry29e53482018-10-15 17:47:16 -0700163include $(BUILD_PHONY_PACKAGE)