diff --git a/Android.mk b/Android.mk index 80af9bae..8cdf0579 100755 --- a/Android.mk +++ b/Android.mk @@ -156,7 +156,10 @@ endif ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) LOCAL_CFLAGS += -DPRODUCT_USE_DYNAMIC_PARTITIONS=1 TWRP_REQUIRED_MODULES += android.hardware.health@2.1-service android.hardware.health@2.1-impl.recovery android.hardware.health@2.1-service.rc android.hardware.health@2.1.xml - TWRP_REQUIRED_MODULES += android.hardware.health@2.0-service android.hardware.health@2.0-impl.recovery android.hardware.health@2.0-service.rc + TWRP_REQUIRED_MODULES += android.hardware.health@2.0-service android.hardware.health@2.0-impl.recovery android.hardware.health@2.0-service.rc + ifeq ($(TW_EXCLUDE_LPDUMP),) + TWRP_REQUIRED_MODULES += lpdump lpdumpd.rc + endif endif ifeq ($(TW_USES_VENDOR_LIBS),true) diff --git a/etc/Android.mk b/etc/Android.mk index 8cef51be..a6f309bd 100755 --- a/etc/Android.mk +++ b/etc/Android.mk @@ -117,6 +117,14 @@ ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc/init LOCAL_SRC_FILES := init/$(LOCAL_MODULE) include $(BUILD_PREBUILT) + + include $(CLEAR_VARS) + LOCAL_MODULE := lpdumpd.rc + LOCAL_MODULE_TAGS := optional + LOCAL_MODULE_CLASS := 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),) diff --git a/etc/init/lpdumpd.rc b/etc/init/lpdumpd.rc new file mode 100644 index 00000000..63b6c9db --- /dev/null +++ b/etc/init/lpdumpd.rc @@ -0,0 +1,36 @@ +# +# Copyright (C) 2019 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +service lpdumpd /system/bin/lpdumpd + # TODO(b/129011369): make this killable by lmkd + oneshot + disabled + user root + group root + # On Launch devices, assume "super". On virtual devices, ${ro.boot.super_partition} + # might be something else. + file /dev/block/by-name/${ro.boot.super_partition:-super} r + # On retrofit devices, ${ro.boot.super_partition} is slot-suffixed. + # Use NO_SUCH_DEVICE_NO_SUCH_SUFFIX as default values so that host_init_verifier does + # not complain about missing sysprops + file /dev/block/by-name/${ro.boot.super_partition:-NO_SUCH_DEVICE}${ro.boot.slot_suffix:-_NO_SUCH_SUFFIX} r + seclabel u:r:recovery:s0 + +on property:sys.lpdumpd=start + start lpdumpd + +on property:sys.lpdumpd=stop + stop lpdumpd diff --git a/prebuilt/Android.mk b/prebuilt/Android.mk index 114e9d78..61ac2553 100755 --- a/prebuilt/Android.mk +++ b/prebuilt/Android.mk @@ -232,7 +232,14 @@ ifeq ($(AB_OTA_UPDATER), true) RECOVERY_BINARY_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/system/bin/update_engine_sideload RECOVERY_LIBRARY_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/android.hardware.boot@1.0.so RECOVERY_LIBRARY_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/android.hardware.boot@1.1.so - RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/bootctl + ifeq ($(TW_EXCLUDE_LPDUMP),) + RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/bootctl + RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/lpdump + RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/lpdumpd + RECOVERY_LIBRARY_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/liblpdump.so + RECOVERY_LIBRARY_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/liblpdump_interface-V1-cpp.so + RECOVERY_LIBRARY_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libprotobuf-cpp-full.so + endif endif ifneq ($(wildcard system/core/libsparse/Android.*),)