Move all AOSP code out of recovery binary

Improves license compatibility between GPL and Apache

Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0
diff --git a/Android.mk b/Android.mk
index 0419e82..398eac7 100644
--- a/Android.mk
+++ b/Android.mk
@@ -16,25 +16,16 @@
 
 TARGET_RECOVERY_GUI := true
 
-include $(CLEAR_VARS)
 LOCAL_SRC_FILES := \
-    recovery.cpp \
-    twbootloader.cpp \
-    install.cpp \
-    roots.cpp \
-    ui.cpp \
-    screen_ui.cpp \
-    verifier.cpp \
+    twrp.cpp \
     fixPermissions.cpp \
     twrpTar.cpp \
     twrpDigest.cpp \
-    adb_install.cpp
 
 LOCAL_SRC_FILES += \
     data.cpp \
     partition.cpp \
     partitionmanager.cpp \
-    mtdutils/mtdutils.c \
     twinstall.cpp \
     twrp-functions.cpp \
     openrecoveryscript.cpp \
@@ -64,10 +55,8 @@
 LOCAL_STATIC_LIBRARIES :=
 LOCAL_SHARED_LIBRARIES :=
 
-LOCAL_STATIC_LIBRARIES += libmtdutils libcrecovery
-LOCAL_STATIC_LIBRARIES += libminadbd libminzip libunz
-LOCAL_STATIC_LIBRARIES += libminuitwrp libpixelflinger_static libpng libjpegtwrp libgui
-LOCAL_SHARED_LIBRARIES += libz libc libstlport libcutils libstdc++ libmincrypt libext4_utils libtar libblkid
+LOCAL_STATIC_LIBRARIES += libcrecovery libguitwrp
+LOCAL_SHARED_LIBRARIES += libz libc libstlport libcutils libstdc++ libext4_utils libtar libblkid libminuitwrp libminadbd libmtdutils libminzip libaosprecovery
 
 ifneq ($(wildcard system/core/libsparse/Android.mk),)
 LOCAL_SHARED_LIBRARIES += libsparse
@@ -80,9 +69,9 @@
 endif
 
 ifeq ($(HAVE_SELINUX), true)
-  LOCAL_C_INCLUDES += external/libselinux/include
-  LOCAL_STATIC_LIBRARIES += libselinux
-  LOCAL_CFLAGS += -DHAVE_SELINUX -g
+  #LOCAL_C_INCLUDES += external/libselinux/include
+  #LOCAL_STATIC_LIBRARIES += libselinux
+  #LOCAL_CFLAGS += -DHAVE_SELINUX -g
 endif # HAVE_SELINUX
 
 # This binary is in the recovery ramdisk, which is otherwise a copy of root.
@@ -217,17 +206,16 @@
     LOCAL_LDFLAGS += -ldl
     LOCAL_STATIC_LIBRARIES += libcrypt_samsung
 endif
-    LOCAL_SHARED_LIBRARIES += libcrypto
-    LOCAL_SRC_FILES += crypto/ics/cryptfs.c
-    LOCAL_C_INCLUDES += system/extras/ext4_utils external/openssl/include
+    LOCAL_SHARED_LIBRARIES += libcryptfsics
+    #LOCAL_SRC_FILES += crypto/ics/cryptfs.c
+    #LOCAL_C_INCLUDES += system/extras/ext4_utils external/openssl/include
 endif
 ifeq ($(TW_INCLUDE_JB_CRYPTO), true)
     LOCAL_CFLAGS += -DTW_INCLUDE_CRYPTO
     LOCAL_CFLAGS += -DTW_INCLUDE_JB_CRYPTO
-    LOCAL_SHARED_LIBRARIES += libcrypto
-    LOCAL_STATIC_LIBRARIES += libfs_mgrtwrp
-    LOCAL_SRC_FILES += crypto/jb/cryptfs.c
-    LOCAL_C_INCLUDES += system/extras/ext4_utils external/openssl/include
+    LOCAL_SHARED_LIBRARIES += libcryptfsjb
+    #LOCAL_SRC_FILES += crypto/jb/cryptfs.c
+    #LOCAL_C_INCLUDES += system/extras/ext4_utils external/openssl/include
 endif
 ifeq ($(TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID), true)
     LOCAL_CFLAGS += -DTW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID
@@ -277,6 +265,18 @@
     libc
 include $(BUILD_EXECUTABLE)
 
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libaosprecovery
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULES_TAGS = optional
+LOCAL_CFLAGS = 
+LOCAL_SRC_FILES = adb_install.cpp bootloader.cpp verifier.cpp
+LOCAL_SHARED_LIBRARIES += libc liblog libcutils libmtdutils
+LOCAL_STATIC_LIBRARIES += libmincrypt
+
+include $(BUILD_SHARED_LIBRARY)
+
 commands_recovery_local_path := $(LOCAL_PATH)
 include $(LOCAL_PATH)/minui/Android.mk \
     $(LOCAL_PATH)/minelf/Android.mk \
@@ -291,7 +291,6 @@
 include $(commands_recovery_local_path)/libjpegtwrp/Android.mk \
     $(commands_recovery_local_path)/injecttwrp/Android.mk \
     $(commands_recovery_local_path)/htcdumlock/Android.mk \
-    $(commands_recovery_local_path)/minuitwrp/Android.mk \
     $(commands_recovery_local_path)/gui/Android.mk \
     $(commands_recovery_local_path)/mmcutils/Android.mk \
     $(commands_recovery_local_path)/bmlutils/Android.mk \
@@ -305,13 +304,15 @@
     $(commands_recovery_local_path)/crypto/cryptfs/Android.mk \
     $(commands_recovery_local_path)/libcrecovery/Android.mk \
     $(commands_recovery_local_path)/twmincrypt/Android.mk \
-    $(commands_recovery_local_path)/libblkid/Android.mk
+    $(commands_recovery_local_path)/libblkid/Android.mk \
+    $(commands_recovery_local_path)/minuitwrp/Android.mk
 
 ifeq ($(TW_INCLUDE_CRYPTO_SAMSUNG), true)
     include $(commands_recovery_local_path)/crypto/libcrypt_samsung/Android.mk
 endif
 
 ifeq ($(TW_INCLUDE_JB_CRYPTO), true)
+    include $(commands_recovery_local_path)/crypto/jb/Android.mk
     include $(commands_recovery_local_path)/crypto/fs_mgr/Android.mk
 endif
 ifeq ($(BUILD_ID), GINGERBREAD)
@@ -323,5 +324,8 @@
             $(commands_recovery_local_path)/fuse/Android.mk \
             $(commands_recovery_local_path)/exfat/libexfat/Android.mk
 endif
+ifeq ($(TW_INCLUDE_CRYPTO), true)
+    include $(commands_recovery_local_path)/crypto/ics/Android.mk
+endif
 
 commands_recovery_local_path :=