summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-07-07 03:02:01 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-07-07 03:02:01 +0000
commit9c62cdf3ac853e36cc43fa8355a8fc6a4747685a (patch)
treefe2a74142722a74f9c311dcf040a4c3295f7329c
parentd308a5ab8428fbb1312491d33c0e46c1288fdc19 (diff)
parent651db0935d0f7ce424c04a24ecf8c36d151b2631 (diff)
downloadcore-9c62cdf3ac853e36cc43fa8355a8fc6a4747685a.tar.gz
Merge "Revert "Completely migrate init first stage to Soong"" into sc-dev
-rw-r--r--fs_mgr/Android.bp2
-rw-r--r--fs_mgr/libfiemap/Android.bp1
-rw-r--r--fs_mgr/libfs_avb/Android.bp1
-rw-r--r--fs_mgr/liblp/Android.bp1
-rw-r--r--fs_mgr/libsnapshot/Android.bp1
-rw-r--r--fs_mgr/libstorage_literals/Android.bp1
-rw-r--r--init/Android.bp45
-rw-r--r--init/Android.mk151
-rw-r--r--libcrypto_utils/Android.bp1
-rw-r--r--libkeyutils/Android.bp1
-rw-r--r--libmodprobe/Android.bp1
-rw-r--r--rootdir/Android.bp9
-rw-r--r--rootdir/Android.mk11
13 files changed, 164 insertions, 62 deletions
diff --git a/fs_mgr/Android.bp b/fs_mgr/Android.bp
index 3d63a4437..5356b006d 100644
--- a/fs_mgr/Android.bp
+++ b/fs_mgr/Android.bp
@@ -141,7 +141,6 @@ cc_library {
// Do not ever allow this library to be vendor_available as a shared library.
// It does not have a stable interface.
name: "libfs_mgr",
- ramdisk_available: true,
recovery_available: true,
defaults: [
"libfs_mgr_defaults",
@@ -166,7 +165,6 @@ cc_library_static {
// It does not have a stable interface.
name: "libfstab",
vendor_available: true,
- ramdisk_available: true,
recovery_available: true,
host_supported: true,
defaults: ["fs_mgr_defaults"],
diff --git a/fs_mgr/libfiemap/Android.bp b/fs_mgr/libfiemap/Android.bp
index b62e33fdd..1c5872e6f 100644
--- a/fs_mgr/libfiemap/Android.bp
+++ b/fs_mgr/libfiemap/Android.bp
@@ -20,7 +20,6 @@ package {
cc_library_headers {
name: "libfiemap_headers",
- ramdisk_available: true,
recovery_available: true,
export_include_dirs: ["include"],
}
diff --git a/fs_mgr/libfs_avb/Android.bp b/fs_mgr/libfs_avb/Android.bp
index 62493ebd9..6892025a1 100644
--- a/fs_mgr/libfs_avb/Android.bp
+++ b/fs_mgr/libfs_avb/Android.bp
@@ -27,7 +27,6 @@ package {
cc_library_static {
name: "libfs_avb",
defaults: ["fs_mgr_defaults"],
- ramdisk_available: true,
recovery_available: true,
host_supported: true,
export_include_dirs: ["include"],
diff --git a/fs_mgr/liblp/Android.bp b/fs_mgr/liblp/Android.bp
index 86ca8f35f..7e528b164 100644
--- a/fs_mgr/liblp/Android.bp
+++ b/fs_mgr/liblp/Android.bp
@@ -30,7 +30,6 @@ liblp_lib_deps = [
cc_library {
name: "liblp",
host_supported: true,
- ramdisk_available: true,
recovery_available: true,
defaults: ["fs_mgr_defaults"],
cppflags: [
diff --git a/fs_mgr/libsnapshot/Android.bp b/fs_mgr/libsnapshot/Android.bp
index aa1f4154c..6a764e4fa 100644
--- a/fs_mgr/libsnapshot/Android.bp
+++ b/fs_mgr/libsnapshot/Android.bp
@@ -118,7 +118,6 @@ cc_library_static {
native_coverage : true,
defaults: ["libsnapshot_defaults"],
srcs: [":libsnapshot_sources"],
- ramdisk_available: true,
recovery_available: true,
cflags: [
"-DLIBSNAPSHOT_NO_COW_WRITE",
diff --git a/fs_mgr/libstorage_literals/Android.bp b/fs_mgr/libstorage_literals/Android.bp
index fd7ea0473..5b0716851 100644
--- a/fs_mgr/libstorage_literals/Android.bp
+++ b/fs_mgr/libstorage_literals/Android.bp
@@ -6,7 +6,6 @@ package {
cc_library_headers {
name: "libstorage_literals_headers",
host_supported: true,
- ramdisk_available: true,
recovery_available: true,
export_include_dirs: ["."],
target: {
diff --git a/init/Android.bp b/init/Android.bp
index d0b58caf7..7eeafa24b 100644
--- a/init/Android.bp
+++ b/init/Android.bp
@@ -253,32 +253,11 @@ cc_binary {
visibility: ["//packages/modules/Virtualization/microdroid"],
}
-soong_config_module_type {
- name: "init_first_stage_cc_defaults",
- module_type: "cc_defaults",
- config_namespace: "ANDROID",
- bool_variables: ["BOARD_BUILD_SYSTEM_ROOT_IMAGE", "BOARD_USES_RECOVERY_AS_BOOT"],
- properties: ["installable"],
-}
-
-// Do not install init_first_stage even with mma if we're system-as-root.
-// Otherwise, it will overwrite the symlink.
-init_first_stage_cc_defaults {
- name: "init_first_stage_defaults",
- soong_config_variables: {
- BOARD_BUILD_SYSTEM_ROOT_IMAGE: {
- installable: false,
- },
- BOARD_USES_RECOVERY_AS_BOOT: {
- installable: false,
- },
- },
-}
-
+// This currently is only for the VM usecase.
+// TODO(jiyong): replace init_first_stage in Android.mk with this
cc_binary {
- name: "init_first_stage",
- stem: "init",
- defaults: ["init_first_stage_defaults"],
+ name: "init_first_stage_soong",
+ stem: "init_vendor",
srcs: [
"block_dev_initializer.cpp",
@@ -334,7 +313,6 @@ cc_binary {
],
static_executable: true,
- system_shared_libs: [],
cflags: [
"-Wall",
@@ -385,23 +363,8 @@ cc_binary {
sanitize: {
misc_undefined: ["signed-integer-overflow"],
-
- // First stage init is weird: it may start without stdout/stderr, and no /proc.
hwaddress: false,
},
-
- // Install adb_debug.prop into debug ramdisk.
- // This allows adb root on a user build, when debug ramdisk is used.
- required: ["adb_debug.prop"],
-
- ramdisk: true,
-
- install_in_root: true,
-}
-
-phony {
- name: "init_system",
- required: ["init_second_stage"],
}
// Tests
diff --git a/init/Android.mk b/init/Android.mk
index c08fe0393..3c7d95acf 100644
--- a/init/Android.mk
+++ b/init/Android.mk
@@ -2,6 +2,153 @@
LOCAL_PATH:= $(call my-dir)
+-include system/sepolicy/policy_version.mk
+
+# --
+
+ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
+init_options += \
+ -DALLOW_FIRST_STAGE_CONSOLE=1 \
+ -DALLOW_LOCAL_PROP_OVERRIDE=1 \
+ -DALLOW_PERMISSIVE_SELINUX=1 \
+ -DREBOOT_BOOTLOADER_ON_PANIC=1 \
+ -DWORLD_WRITABLE_KMSG=1 \
+ -DDUMP_ON_UMOUNT_FAILURE=1
+else
+init_options += \
+ -DALLOW_FIRST_STAGE_CONSOLE=0 \
+ -DALLOW_LOCAL_PROP_OVERRIDE=0 \
+ -DALLOW_PERMISSIVE_SELINUX=0 \
+ -DREBOOT_BOOTLOADER_ON_PANIC=0 \
+ -DWORLD_WRITABLE_KMSG=0 \
+ -DDUMP_ON_UMOUNT_FAILURE=0
+endif
+
+ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
+init_options += \
+ -DSHUTDOWN_ZERO_TIMEOUT=1
+else
+init_options += \
+ -DSHUTDOWN_ZERO_TIMEOUT=0
+endif
+
+init_options += -DLOG_UEVENTS=0 \
+ -DSEPOLICY_VERSION=$(POLICYVERS)
+
+init_cflags += \
+ $(init_options) \
+ -Wall -Wextra \
+ -Wno-unused-parameter \
+ -Werror \
+
+# --
+
+# Do not build this even with mmma if we're system-as-root, otherwise it will overwrite the symlink.
+ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
+include $(CLEAR_VARS)
+LOCAL_CPPFLAGS := $(init_cflags)
+LOCAL_SRC_FILES := \
+ block_dev_initializer.cpp \
+ devices.cpp \
+ first_stage_console.cpp \
+ first_stage_init.cpp \
+ first_stage_main.cpp \
+ first_stage_mount.cpp \
+ reboot_utils.cpp \
+ selabel.cpp \
+ selinux.cpp \
+ service_utils.cpp \
+ snapuserd_transition.cpp \
+ switch_root.cpp \
+ uevent_listener.cpp \
+ util.cpp \
+
+LOCAL_MODULE := init_first_stage
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
+LOCAL_MODULE_STEM := init
+
+LOCAL_FORCE_STATIC_EXECUTABLE := true
+
+LOCAL_MODULE_PATH := $(TARGET_RAMDISK_OUT)
+LOCAL_UNSTRIPPED_PATH := $(TARGET_RAMDISK_OUT_UNSTRIPPED)
+
+# Install adb_debug.prop into debug ramdisk.
+# This allows adb root on a user build, when debug ramdisk is used.
+LOCAL_REQUIRED_MODULES := \
+ adb_debug.prop \
+
+# Set up the directories that first stage init mounts on.
+
+my_ramdisk_dirs := \
+ debug_ramdisk \
+ dev \
+ metadata \
+ mnt \
+ proc \
+ second_stage_resources \
+ sys \
+
+LOCAL_POST_INSTALL_CMD := mkdir -p $(addprefix $(TARGET_RAMDISK_OUT)/,$(my_ramdisk_dirs))
+ifeq (true,$(BOARD_USES_GENERIC_KERNEL_IMAGE))
+ LOCAL_POST_INSTALL_CMD += $(addprefix $(TARGET_RAMDISK_OUT)/first_stage_ramdisk/,$(my_ramdisk_dirs))
+endif
+
+my_ramdisk_dirs :=
+
+LOCAL_STATIC_LIBRARIES := \
+ libc++fs \
+ libfs_avb \
+ libfs_mgr \
+ libfec \
+ libfec_rs \
+ libsquashfs_utils \
+ liblogwrap \
+ libext4_utils \
+ libcrypto_utils \
+ libsparse \
+ libavb \
+ libkeyutils \
+ liblp \
+ libcutils \
+ libbase \
+ liblog \
+ libcrypto_static \
+ libdl \
+ libz \
+ libselinux \
+ libcap \
+ libgsi \
+ libcom.android.sysprop.apex \
+ liblzma \
+ libunwindstack_no_dex \
+ libbacktrace_no_dex \
+ libmodprobe \
+ libext2_uuid \
+ libprotobuf-cpp-lite \
+ libsnapshot_cow \
+ libsnapshot_init \
+ update_metadata-protos \
+ libprocinfo \
+
+LOCAL_SANITIZE := signed-integer-overflow
+# First stage init is weird: it may start without stdout/stderr, and no /proc.
+LOCAL_NOSANITIZE := hwaddress
+include $(BUILD_EXECUTABLE)
+endif
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := init_system
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
+LOCAL_REQUIRED_MODULES := \
+ init_second_stage \
+
+include $(BUILD_PHONY_PACKAGE)
+
include $(CLEAR_VARS)
LOCAL_MODULE := init_vendor
@@ -9,10 +156,8 @@ LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
-ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
LOCAL_REQUIRED_MODULES := \
init_first_stage \
-endif # BOARD_USES_RECOVERY_AS_BOOT
-endif # BOARD_BUILD_SYSTEM_ROOT_IMAGE
+endif
include $(BUILD_PHONY_PACKAGE)
diff --git a/libcrypto_utils/Android.bp b/libcrypto_utils/Android.bp
index c8a183bf1..b33d46d50 100644
--- a/libcrypto_utils/Android.bp
+++ b/libcrypto_utils/Android.bp
@@ -21,7 +21,6 @@ package {
cc_library {
name: "libcrypto_utils",
vendor_available: true,
- ramdisk_available: true,
recovery_available: true,
vndk: {
enabled: true,
diff --git a/libkeyutils/Android.bp b/libkeyutils/Android.bp
index a940b8cec..86f68fb57 100644
--- a/libkeyutils/Android.bp
+++ b/libkeyutils/Android.bp
@@ -15,7 +15,6 @@ cc_library {
name: "libkeyutils",
cflags: ["-Werror"],
defaults: ["linux_bionic_supported"],
- ramdisk_available: true,
recovery_available: true,
export_include_dirs: ["include/"],
local_include_dirs: ["include/"],
diff --git a/libmodprobe/Android.bp b/libmodprobe/Android.bp
index 525a88063..ba11dc920 100644
--- a/libmodprobe/Android.bp
+++ b/libmodprobe/Android.bp
@@ -8,7 +8,6 @@ cc_library_static {
"-Werror",
],
vendor_available: true,
- ramdisk_available: true,
recovery_available: true,
srcs: [
"libmodprobe.cpp",
diff --git a/rootdir/Android.bp b/rootdir/Android.bp
index e98733ada..ae21633da 100644
--- a/rootdir/Android.bp
+++ b/rootdir/Android.bp
@@ -45,11 +45,4 @@ prebuilt_etc {
src: "etc/public.libraries.android.txt",
filename: "public.libraries.txt",
installable: false,
-}
-
-// adb_debug.prop in debug ramdisk
-prebuilt_root {
- name: "adb_debug.prop",
- src: "adb_debug.prop",
- debug_ramdisk: true,
-}
+} \ No newline at end of file
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index 9b80575ef..99d8f9a83 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -210,4 +210,15 @@ $(LOCAL_BUILT_MODULE):
$(hide) $(foreach lib,$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES), \
echo $(lib) >> $@;)
+#######################################
+# adb_debug.prop in debug ramdisk
+include $(CLEAR_VARS)
+LOCAL_MODULE := adb_debug.prop
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_DEBUG_RAMDISK_OUT)
+include $(BUILD_PREBUILT)
+
include $(call all-makefiles-under,$(LOCAL_PATH))