TWRP_REQUIRED_MODULES: add more criteria to exclude packages

Only include hwservicemanager if CRYPTO flag is set and
only include servicemanager if FBE is included.

Only include health-hal if device uses dynamic partitions

Change-Id: I056d0246e406dc9f00bda65247455741ef986a37
diff --git a/Android.mk b/Android.mk
index ce86deb..86a53d3 100755
--- a/Android.mk
+++ b/Android.mk
@@ -80,11 +80,6 @@
 
 LOCAL_STATIC_LIBRARIES += libavb
 LOCAL_SHARED_LIBRARIES += libfs_mgr libinit
-ifeq ($(TW_INCLUDE_CRYPTO),true)
-    LOCAL_CFLAGS += -DUSE_FSCRYPT -Wno-macro-redefined
-    LOCAL_C_INCLUDES += bootable/recovery/crypto/fscrypt \
-        bootable/recovery/crypto
-endif
 LOCAL_C_INCLUDES += \
     system/core/fs_mgr/libfs_avb/include/ \
     system/core/fs_mgr/include_fstab/ \
@@ -151,6 +146,7 @@
 
 ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true)
     LOCAL_CFLAGS += -DPRODUCT_USE_DYNAMIC_PARTITIONS=1
+    TWRP_REQUIRED_MODULES += android.hardware.health@2.0-service android.hardware.health@2.0-service.rc
 endif
 
 ifeq ($(TW_USES_VENDOR_LIBS),true)
@@ -292,9 +288,10 @@
     TW_INCLUDE_CRYPTO := true
 endif
 ifeq ($(TW_INCLUDE_CRYPTO), true)
-    LOCAL_CFLAGS += -DTW_INCLUDE_CRYPTO
+    LOCAL_CFLAGS += -DTW_INCLUDE_CRYPTO -DUSE_FSCRYPT -Wno-macro-redefined
     LOCAL_SHARED_LIBRARIES += libcryptfsfde libgpt_twrp
-    LOCAL_C_INCLUDES += external/boringssl/src/include
+    LOCAL_C_INCLUDES += external/boringssl/src/include bootable/recovery/crypto/fscrypt \
+        bootable/recovery/crypto
     TW_INCLUDE_CRYPTO_FBE := true
     LOCAL_CFLAGS += -DTW_INCLUDE_FBE
     LOCAL_SHARED_LIBRARIES += libtwrpfscrypt android.frameworks.stats@1.0 android.hardware.authsecret@1.0 \
@@ -396,27 +393,28 @@
     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.rc \
     plat_hwservice_contexts \
     vendor_hwservice_contexts
 
 ifneq ($(TW_INCLUDE_CRYPTO),)
 TWRP_REQUIRED_MODULES += \
-    plat_service_contexts \
+    hwservicemanager \
+    hwservicemanager.rc \
     vndservicemanager \
     vndservicemanager.rc \
     vold_prepare_subdirs \
     task_recovery_profiles.json \
     fscryptpolicyget
+    ifneq ($(TW_INCLUDE_CRYPTO_FBE),)
+    TWRP_REQUIRED_MODULES += \
+        plat_service_contexts \
+        servicemanager \
+        servicemanager.rc
+    endif
 endif
 
 ifneq ($(wildcard external/zip/Android.mk),)