fastboot: implement fastbootd in twrp

fastbootd is a userspace daemon that runs in the recovery
ramdisk. It allows writing single partitions to the super
partition via fastboot CLI. When TWRP sees the fastboot option
in the misc partition during startup, it will start with
the fastbootd page and fastbootd running. Otherwise it will
run recovery normally.

Change-Id: Id7b12d29ef21dbd5950dc884dd1cd788f25357f0
diff --git a/Android.mk b/Android.mk
index f536f1a..56f4926 100755
--- a/Android.mk
+++ b/Android.mk
@@ -68,6 +68,7 @@
     partition.cpp \
     partitionmanager.cpp \
     progresstracking.cpp \
+    startupArgs.cpp \
     twinstall.cpp \
     twrp-functions.cpp \
     twrpDigestDriver.cpp \
@@ -119,7 +120,6 @@
     external/boringssl/include \
     external/libcxx/include \
     external/libselinux/include \
-    $(LOCAL_PATH)/bootloader_message_twrp/include \
     $(LOCAL_PATH)/recovery_ui/include \
     $(LOCAL_PATH)/otautil/include \
     $(LOCAL_PATH)/install/include \
@@ -128,7 +128,7 @@
     $(LOCAL_PATH)/verifier28/
 
 LOCAL_STATIC_LIBRARIES += libguitwrp
-LOCAL_SHARED_LIBRARIES += libz libc libcutils libstdc++ libtar libblkid libminuitwrp libminadbd libmtdutils libtwadbbu libbootloader_message_twrp
+LOCAL_SHARED_LIBRARIES += libz libc libcutils libstdc++ libtar libblkid libminuitwrp libminadbd libmtdutils libtwadbbu libbootloader_message
 LOCAL_SHARED_LIBRARIES += libcrecovery libtwadbbu libtwrpdigest libc++ libaosprecovery libinit libcrypto libbase libziparchive libselinux
 LOCAL_CFLAGS += -DUSE_28_VERIFIER
 
@@ -377,7 +377,7 @@
     mkfs.fat \
     permissive.sh \
     simg2img_twrp \
-    libbootloader_message_twrp \
+    libbootloader_message \
     init.recovery.hlthchrg.rc \
     init.recovery.service.rc \
     init.recovery.ldconfig.rc \
@@ -386,7 +386,8 @@
     awk \
     toybox \
     toolbox \
-    mkshrc_twrp
+    mkshrc_twrp \
+    android.hardware.health@2.0-service
 
 ifneq ($(TW_INCLUDE_CRYPTO),)
 TWRP_REQUIRED_MODULES += \
@@ -558,8 +559,8 @@
 LOCAL_MODULE := libaosprecovery
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_SRC_FILES := install/adb_install.cpp install/asn1_decoder.cpp install/fuse_sdcard_install.cpp\
-    install/install.cpp install/installcommand.cpp install/legacy_property_service.cpp \
+LOCAL_SRC_FILES := install/adb_install.cpp install/asn1_decoder.cpp install/fuse_sdcard_install.cpp \
+    install/get_args.cpp install/install.cpp install/installcommand.cpp install/legacy_property_service.cpp \
     install/package.cpp install/verifier.cpp install/wipe_data.cpp install/tw_atomic.cpp \
     install/set_metadata.cpp verifier28/verifier.cpp install/zipwrap.cpp install/ZipUtil.cpp
 LOCAL_SHARED_LIBRARIES += libbase libbootloader_message libcrypto libext4_utils \
@@ -607,8 +608,7 @@
     # $(commands_TWRP_local_path)/boot_control/Android.bp 
     # $(commands_TWRP_local_path)/update_verifier/Android.mk
 include \
-    $(commands_TWRP_local_path)/updater/Android.mk \
-    $(commands_TWRP_local_path)/bootloader_message_twrp/Android.mk
+    $(commands_TWRP_local_path)/updater/Android.mk
 
 include $(commands_TWRP_local_path)/mtp/ffs/Android.mk