diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-07-07 03:02:01 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-07-07 03:02:01 +0000 |
commit | 9c62cdf3ac853e36cc43fa8355a8fc6a4747685a (patch) | |
tree | fe2a74142722a74f9c311dcf040a4c3295f7329c | |
parent | d308a5ab8428fbb1312491d33c0e46c1288fdc19 (diff) | |
parent | 651db0935d0f7ce424c04a24ecf8c36d151b2631 (diff) | |
download | core-9c62cdf3ac853e36cc43fa8355a8fc6a4747685a.tar.gz |
Merge "Revert "Completely migrate init first stage to Soong"" into sc-dev
-rw-r--r-- | fs_mgr/Android.bp | 2 | ||||
-rw-r--r-- | fs_mgr/libfiemap/Android.bp | 1 | ||||
-rw-r--r-- | fs_mgr/libfs_avb/Android.bp | 1 | ||||
-rw-r--r-- | fs_mgr/liblp/Android.bp | 1 | ||||
-rw-r--r-- | fs_mgr/libsnapshot/Android.bp | 1 | ||||
-rw-r--r-- | fs_mgr/libstorage_literals/Android.bp | 1 | ||||
-rw-r--r-- | init/Android.bp | 45 | ||||
-rw-r--r-- | init/Android.mk | 151 | ||||
-rw-r--r-- | libcrypto_utils/Android.bp | 1 | ||||
-rw-r--r-- | libkeyutils/Android.bp | 1 | ||||
-rw-r--r-- | libmodprobe/Android.bp | 1 | ||||
-rw-r--r-- | rootdir/Android.bp | 9 | ||||
-rw-r--r-- | rootdir/Android.mk | 11 |
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)) |