| # Copyright 2005 The Android Open Source Project |
| |
| 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 |
| 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) |
| LOCAL_REQUIRED_MODULES := \ |
| init_first_stage \ |
| |
| endif |
| include $(BUILD_PHONY_PACKAGE) |