Skip to content

Commit 651db09

Browse files
committed
Revert "Completely migrate init first stage to Soong"
Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Update init_first_stage" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add ramdisk_available to init_first_stage's deps" Revert "Add BOARD_BUILD_SYSTEM_ROOT_IMAGE to config vars" Revert "Add install_in_root to cc_binary" Revert "Add ramdisk_available to init_first_stage's deps" Revert submission 15071196-init_first_stage_soong Reason for revert: fixes b/192248690 Reverted Changes: I23cf4f975:Add ramdisk_available to init_first_stage's deps Icd98c7e24:Add ramdisk_available to init_first_stage's deps If9da9ba16:Add ramdisk_available to init_first_stage's deps Ibc8668029:Add ramdisk_available to init_first_stage's deps I3b4b8c475:Add ramdisk_available to init_first_stage's deps I59cd149e0:Completely migrate init first stage to Soong I36d789578:Add ramdisk_available to init_first_stage's deps I2a0daa612:Add BUILD_USES_RECOVERY_AS_BOOT to soong config Ic76c325ce:Directly create ramdisk dirs in ramdisk image rule... I4c5374deb:Add BOARD_BUILD_SYSTEM_ROOT_IMAGE to config vars I8aab5faf3:Add ramdisk_available to init_first_stage's deps I9d5a10661:Add ramdisk_available to init_first_stage's deps Iaa2edeb4a:Add ramdisk_available to init_first_stage's deps I7cb582ca0:Update init_first_stage I06091d15e:Add ramdisk_available to init_first_stage's deps I8bdb8dda3:Add ramdisk_available to init_first_stage's deps I7436b8dd1:Add ramdisk_available to init_first_stage's deps I39693fd86:Add ramdisk_available to init_first_stage's deps I0a9ba90f0:Add ramdisk_available to init_first_stage's deps Ib66b4c4ea:Add ramdisk_available to init_first_stage's deps I31ce63d23:Add ramdisk_available to init_first_stage's deps Icb580f97c:Add ramdisk_available to init_first_stage's deps I044a075b7:Add ramdisk_available to init_first_stage's deps I33164a7e7:Fix ndk and aml arch order Ib8d92904a:Add ramdisk_available to sysprop_library Ibc3516453:Add install_in_root to cc_binary Change-Id: I147777bb1c4a3b818bc0118c6cf44ccfbf7970a0
1 parent 7418252 commit 651db09

File tree

13 files changed

+164
-62
lines changed

13 files changed

+164
-62
lines changed

fs_mgr/Android.bp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ cc_library {
141141
// Do not ever allow this library to be vendor_available as a shared library.
142142
// It does not have a stable interface.
143143
name: "libfs_mgr",
144-
ramdisk_available: true,
145144
recovery_available: true,
146145
defaults: [
147146
"libfs_mgr_defaults",
@@ -166,7 +165,6 @@ cc_library_static {
166165
// It does not have a stable interface.
167166
name: "libfstab",
168167
vendor_available: true,
169-
ramdisk_available: true,
170168
recovery_available: true,
171169
host_supported: true,
172170
defaults: ["fs_mgr_defaults"],

fs_mgr/libfiemap/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ package {
2020

2121
cc_library_headers {
2222
name: "libfiemap_headers",
23-
ramdisk_available: true,
2423
recovery_available: true,
2524
export_include_dirs: ["include"],
2625
}

fs_mgr/libfs_avb/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ package {
2727
cc_library_static {
2828
name: "libfs_avb",
2929
defaults: ["fs_mgr_defaults"],
30-
ramdisk_available: true,
3130
recovery_available: true,
3231
host_supported: true,
3332
export_include_dirs: ["include"],

fs_mgr/liblp/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ liblp_lib_deps = [
3030
cc_library {
3131
name: "liblp",
3232
host_supported: true,
33-
ramdisk_available: true,
3433
recovery_available: true,
3534
defaults: ["fs_mgr_defaults"],
3635
cppflags: [

fs_mgr/libsnapshot/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ cc_library_static {
118118
native_coverage : true,
119119
defaults: ["libsnapshot_defaults"],
120120
srcs: [":libsnapshot_sources"],
121-
ramdisk_available: true,
122121
recovery_available: true,
123122
cflags: [
124123
"-DLIBSNAPSHOT_NO_COW_WRITE",

fs_mgr/libstorage_literals/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package {
66
cc_library_headers {
77
name: "libstorage_literals_headers",
88
host_supported: true,
9-
ramdisk_available: true,
109
recovery_available: true,
1110
export_include_dirs: ["."],
1211
target: {

init/Android.bp

Lines changed: 4 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -253,32 +253,11 @@ cc_binary {
253253
visibility: ["//packages/modules/Virtualization/microdroid"],
254254
}
255255

256-
soong_config_module_type {
257-
name: "init_first_stage_cc_defaults",
258-
module_type: "cc_defaults",
259-
config_namespace: "ANDROID",
260-
bool_variables: ["BOARD_BUILD_SYSTEM_ROOT_IMAGE", "BOARD_USES_RECOVERY_AS_BOOT"],
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-
},
272-
BOARD_USES_RECOVERY_AS_BOOT: {
273-
installable: false,
274-
},
275-
},
276-
}
277-
256+
// This currently is only for the VM usecase.
257+
// TODO(jiyong): replace init_first_stage in Android.mk with this
278258
cc_binary {
279-
name: "init_first_stage",
280-
stem: "init",
281-
defaults: ["init_first_stage_defaults"],
259+
name: "init_first_stage_soong",
260+
stem: "init_vendor",
282261

283262
srcs: [
284263
"block_dev_initializer.cpp",
@@ -334,7 +313,6 @@ cc_binary {
334313
],
335314

336315
static_executable: true,
337-
system_shared_libs: [],
338316

339317
cflags: [
340318
"-Wall",
@@ -385,23 +363,8 @@ cc_binary {
385363

386364
sanitize: {
387365
misc_undefined: ["signed-integer-overflow"],
388-
389-
// First stage init is weird: it may start without stdout/stderr, and no /proc.
390366
hwaddress: false,
391367
},
392-
393-
// Install adb_debug.prop into debug ramdisk.
394-
// This allows adb root on a user build, when debug ramdisk is used.
395-
required: ["adb_debug.prop"],
396-
397-
ramdisk: true,
398-
399-
install_in_root: true,
400-
}
401-
402-
phony {
403-
name: "init_system",
404-
required: ["init_second_stage"],
405368
}
406369

407370
// Tests

init/Android.mk

Lines changed: 148 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,162 @@
22

33
LOCAL_PATH:= $(call my-dir)
44

5+
-include system/sepolicy/policy_version.mk
6+
7+
# --
8+
9+
ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
10+
init_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
17+
else
18+
init_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
25+
endif
26+
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+
35+
init_options += -DLOG_UEVENTS=0 \
36+
-DSEPOLICY_VERSION=$(POLICYVERS)
37+
38+
init_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.
47+
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
48+
include $(CLEAR_VARS)
49+
LOCAL_CPPFLAGS := $(init_cflags)
50+
LOCAL_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+
66+
LOCAL_MODULE := init_first_stage
67+
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
68+
LOCAL_LICENSE_CONDITIONS := notice
69+
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
70+
LOCAL_MODULE_STEM := init
71+
72+
LOCAL_FORCE_STATIC_EXECUTABLE := true
73+
74+
LOCAL_MODULE_PATH := $(TARGET_RAMDISK_OUT)
75+
LOCAL_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.
79+
LOCAL_REQUIRED_MODULES := \
80+
adb_debug.prop \
81+
82+
# Set up the directories that first stage init mounts on.
83+
84+
my_ramdisk_dirs := \
85+
debug_ramdisk \
86+
dev \
87+
metadata \
88+
mnt \
89+
proc \
90+
second_stage_resources \
91+
sys \
92+
93+
LOCAL_POST_INSTALL_CMD := mkdir -p $(addprefix $(TARGET_RAMDISK_OUT)/,$(my_ramdisk_dirs))
94+
ifeq (true,$(BOARD_USES_GENERIC_KERNEL_IMAGE))
95+
LOCAL_POST_INSTALL_CMD += $(addprefix $(TARGET_RAMDISK_OUT)/first_stage_ramdisk/,$(my_ramdisk_dirs))
96+
endif
97+
98+
my_ramdisk_dirs :=
99+
100+
LOCAL_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+
135+
LOCAL_SANITIZE := signed-integer-overflow
136+
# First stage init is weird: it may start without stdout/stderr, and no /proc.
137+
LOCAL_NOSANITIZE := hwaddress
138+
include $(BUILD_EXECUTABLE)
139+
endif
140+
141+
include $(CLEAR_VARS)
142+
143+
LOCAL_MODULE := init_system
144+
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
145+
LOCAL_LICENSE_CONDITIONS := notice
146+
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
147+
LOCAL_REQUIRED_MODULES := \
148+
init_second_stage \
149+
150+
include $(BUILD_PHONY_PACKAGE)
151+
5152
include $(CLEAR_VARS)
6153

7154
LOCAL_MODULE := init_vendor
8155
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
9156
LOCAL_LICENSE_CONDITIONS := notice
10157
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
11158
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
12-
ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
13159
LOCAL_REQUIRED_MODULES := \
14160
init_first_stage \
15161

16-
endif # BOARD_USES_RECOVERY_AS_BOOT
17-
endif # BOARD_BUILD_SYSTEM_ROOT_IMAGE
162+
endif
18163
include $(BUILD_PHONY_PACKAGE)

libcrypto_utils/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ package {
2121
cc_library {
2222
name: "libcrypto_utils",
2323
vendor_available: true,
24-
ramdisk_available: true,
2524
recovery_available: true,
2625
vndk: {
2726
enabled: true,

libkeyutils/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ cc_library {
1515
name: "libkeyutils",
1616
cflags: ["-Werror"],
1717
defaults: ["linux_bionic_supported"],
18-
ramdisk_available: true,
1918
recovery_available: true,
2019
export_include_dirs: ["include/"],
2120
local_include_dirs: ["include/"],

libmodprobe/Android.bp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ cc_library_static {
88
"-Werror",
99
],
1010
vendor_available: true,
11-
ramdisk_available: true,
1211
recovery_available: true,
1312
srcs: [
1413
"libmodprobe.cpp",

rootdir/Android.bp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,4 @@ prebuilt_etc {
4545
src: "etc/public.libraries.android.txt",
4646
filename: "public.libraries.txt",
4747
installable: false,
48-
}
49-
50-
// adb_debug.prop in debug ramdisk
51-
prebuilt_root {
52-
name: "adb_debug.prop",
53-
src: "adb_debug.prop",
54-
debug_ramdisk: true,
55-
}
48+
}

rootdir/Android.mk

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,4 +210,15 @@ $(LOCAL_BUILT_MODULE):
210210
$(hide) $(foreach lib,$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES), \
211211
echo $(lib) >> $@;)
212212

213+
#######################################
214+
# adb_debug.prop in debug ramdisk
215+
include $(CLEAR_VARS)
216+
LOCAL_MODULE := adb_debug.prop
217+
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
218+
LOCAL_LICENSE_CONDITIONS := notice
219+
LOCAL_SRC_FILES := $(LOCAL_MODULE)
220+
LOCAL_MODULE_CLASS := ETC
221+
LOCAL_MODULE_PATH := $(TARGET_DEBUG_RAMDISK_OUT)
222+
include $(BUILD_PREBUILT)
223+
213224
include $(call all-makefiles-under,$(LOCAL_PATH))

0 commit comments

Comments
 (0)