From 49df5475dbcbd7d9b99e87d58d7282d01cd7e5e5 Mon Sep 17 00:00:00 2001 From: Captain Throwback Date: Mon, 19 Oct 2020 11:13:53 -0400 Subject: [PATCH] init: include more services in TWRP by default vndservicemanager should be included with crypto support boot and health services are needed for bootctrl and fastbootd hwservicemanager and servicemanager should be included regardless of crypto status Change-Id: Ie76dac11b733c4549c2d55301cf614fe82905884 --- Android.mk | 10 +++--- etc/Android.mk | 31 +++++++++++++++++++ etc/init/android.hardware.boot@1.0-service.rc | 8 +++++ .../android.hardware.health@2.0-service.rc | 10 ++++++ etc/init/vndservicemanager.rc | 10 ++++++ prebuilt/Android.mk | 1 + 6 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 etc/init/android.hardware.boot@1.0-service.rc create mode 100644 etc/init/android.hardware.health@2.0-service.rc create mode 100644 etc/init/vndservicemanager.rc diff --git a/Android.mk b/Android.mk index 5b2bdb15..bfd5797c 100755 --- a/Android.mk +++ b/Android.mk @@ -146,7 +146,7 @@ endif ifeq ($(AB_OTA_UPDATER),true) LOCAL_CFLAGS += -DAB_OTA_UPDATER=1 LOCAL_SHARED_LIBRARIES += libhardware android.hardware.boot@1.0 - TWRP_REQUIRED_MODULES += libhardware + TWRP_REQUIRED_MODULES += libhardware android.hardware.boot@1.0-service android.hardware.boot@1.0-service.rc endif ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) @@ -390,22 +390,24 @@ TWRP_REQUIRED_MODULES += \ init.recovery.hlthchrg.rc \ init.recovery.service.rc \ init.recovery.ldconfig.rc \ + hwservicemanager \ hwservicemanager.rc \ + servicemanager \ servicemanager.rc \ awk \ toybox \ toolbox \ mkshrc_twrp \ - android.hardware.health@2.0-service + android.hardware.health@2.0-service \ + android.hardware.health@2.0-service.rc ifneq ($(TW_INCLUDE_CRYPTO),) TWRP_REQUIRED_MODULES += \ plat_service_contexts \ plat_hwservice_contexts \ vendor_hwservice_contexts \ - hwservicemanager \ - servicemanager \ vndservicemanager \ + vndservicemanager.rc \ vold_prepare_subdirs \ task_recovery_profiles.json \ fscryptpolicyget diff --git a/etc/Android.mk b/etc/Android.mk index 1c889127..f07a2c60 100755 --- a/etc/Android.mk +++ b/etc/Android.mk @@ -76,6 +76,37 @@ LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc/init LOCAL_SRC_FILES := init/$(LOCAL_MODULE) include $(BUILD_PREBUILT) +include $(CLEAR_VARS) +LOCAL_MODULE := android.hardware.health@2.0-service.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES +LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc/init + +LOCAL_SRC_FILES := init/$(LOCAL_MODULE) +include $(BUILD_PREBUILT) + +ifeq ($(AB_OTA_UPDATER),true) + include $(CLEAR_VARS) + LOCAL_MODULE := android.hardware.boot@1.0-service.rc + LOCAL_MODULE_TAGS := optional + LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc/init + + LOCAL_SRC_FILES := init/$(LOCAL_MODULE) + include $(BUILD_PREBUILT) +endif + +ifneq ($(TW_INCLUDE_CRYPTO),) + include $(CLEAR_VARS) + LOCAL_MODULE := vndservicemanager.rc + LOCAL_MODULE_TAGS := optional + LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc/init + + LOCAL_SRC_FILES := init/$(LOCAL_MODULE) + include $(BUILD_PREBUILT) +endif + ifeq ($(TWRP_INCLUDE_LOGCAT), true) ifeq ($(TARGET_USES_LOGD), true) diff --git a/etc/init/android.hardware.boot@1.0-service.rc b/etc/init/android.hardware.boot@1.0-service.rc new file mode 100644 index 00000000..2fd44515 --- /dev/null +++ b/etc/init/android.hardware.boot@1.0-service.rc @@ -0,0 +1,8 @@ +on post-fs + start boot-hal-1-0 + +service boot-hal-1-0 /system/bin/android.hardware.boot@1.0-service + user root + group root + disabled + seclabel u:r:recovery:s0 diff --git a/etc/init/android.hardware.health@2.0-service.rc b/etc/init/android.hardware.health@2.0-service.rc new file mode 100644 index 00000000..ef17467c --- /dev/null +++ b/etc/init/android.hardware.health@2.0-service.rc @@ -0,0 +1,10 @@ +on boot + start health-hal-2-0 + +service health-hal-2-0 /system/bin/android.hardware.health@2.0-service + disabled + user root + group root + capabilities WAKE_ALARM + file /dev/kmsg w + seclabel u:r:recovery:s0 diff --git a/etc/init/vndservicemanager.rc b/etc/init/vndservicemanager.rc new file mode 100644 index 00000000..149a378a --- /dev/null +++ b/etc/init/vndservicemanager.rc @@ -0,0 +1,10 @@ +on init + start vndservicemanager + +service vndservicemanager /system/bin/vndservicemanager /dev/vndbinder + disabled + user root + group root readproc + writepid /dev/cpuset/system-background/tasks + shutdown critical + seclabel u:r:recovery:s0 diff --git a/prebuilt/Android.mk b/prebuilt/Android.mk index 09bdb7a5..a7a5b792 100755 --- a/prebuilt/Android.mk +++ b/prebuilt/Android.mk @@ -79,6 +79,7 @@ RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/keystore_cli_v2 RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/hwservicemanager RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/servicemanager RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/vold_prepare_subdirs +RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_VENDOR_EXECUTABLES)/hw/android.hardware.boot@1.0-service RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_VENDOR_EXECUTABLES)/vndservicemanager RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/toybox RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_VENDOR_EXECUTABLES)/hw/android.hardware.health@2.0-service