aboutsummaryrefslogtreecommitdiffstats
path: root/Android.mk
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-10-19 19:49:20 -0700
committerTom Marshall <tdm@cyngn.com>2015-11-20 15:46:34 -0800
commitf30dd3d81206fcfcce0404436fa55c997d03924e (patch)
tree1b9721c8724d6c7c09f523a1c58c155419e712e3 /Android.mk
parent7e9b637c45449d2d4607c9f5ba681deb39c5b230 (diff)
downloadbootable_recovery-f30dd3d81206fcfcce0404436fa55c997d03924e.zip
bootable_recovery-f30dd3d81206fcfcce0404436fa55c997d03924e.tar.gz
bootable_recovery-f30dd3d81206fcfcce0404436fa55c997d03924e.tar.bz2
sr: Get a proper shell environment in recovery
* Secure ADB support * Toybox applets * mksh * Various other tools Change-Id: I80b0e2aa5eb7142eaa9f157709f4e029077d8dfa
Diffstat (limited to 'Android.mk')
-rw-r--r--Android.mk95
1 files changed, 91 insertions, 4 deletions
diff --git a/Android.mk b/Android.mk
index 3db2656..ede6a96 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,4 +1,5 @@
# Copyright (C) 2007 The Android Open Source Project
+# Copyright (C) 2015 The CyanogenMod Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -44,13 +45,17 @@ LOCAL_SRC_FILES := \
verifier.cpp \
wear_ui.cpp \
+# External tools
+LOCAL_SRC_FILES += \
+ ../../system/core/toolbox/newfs_msdos.c \
+ ../../system/core/toolbox/start.c \
+ ../../system/core/toolbox/stop.c
+
LOCAL_MODULE := recovery
LOCAL_FORCE_STATIC_EXECUTABLE := true
-ifeq ($(HOST_OS),linux)
LOCAL_REQUIRED_MODULES := mkfs.f2fs
-endif
RECOVERY_API_VERSION := 3
RECOVERY_FSTAB_VERSION := 2
@@ -65,12 +70,19 @@ LOCAL_C_INCLUDES += \
LOCAL_STATIC_LIBRARIES := \
libext4_utils_static \
+ libmake_ext4fs_static \
+ libminizip_static \
libsparse_static \
+ libfsck_msdos \
+ libminipigz \
+ libreboot_static \
libminzip \
libz \
libmtdutils \
libmincrypt \
libminadbd \
+ libtoybox_driver \
+ libmksh_static \
libfusesideload \
libminui \
libpng \
@@ -79,10 +91,11 @@ LOCAL_STATIC_LIBRARIES := \
libcutils \
liblog \
libselinux \
+ libc++_static \
libm \
libc \
- libc++_static \
- libz
+ libext2_blkid \
+ libext2_uuid
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
@@ -96,8 +109,82 @@ else
LOCAL_STATIC_LIBRARIES += $(TARGET_RECOVERY_UI_LIB)
endif
+LOCAL_C_INCLUDES += system/extras/ext4_utils
+LOCAL_C_INCLUDES += external/boringssl/include
+
+# Symlinks
+RECOVERY_SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(RECOVERY_LINKS))
+
+ifeq ($(ONE_SHOT_MAKEFILE),)
+LOCAL_ADDITIONAL_DEPENDENCIES += \
+ mount.exfat_static \
+ recovery_e2fsck \
+ recovery_mke2fs \
+ recovery_tune2fs \
+ recovery_mkshrc
+
+endif
+
+TOYBOX_INSTLIST := $(HOST_OUT_EXECUTABLES)/toybox-instlist
+LOCAL_ADDITIONAL_DEPENDENCIES += toybox_recovery_links
+
+# Set up the static symlinks
+RECOVERY_TOOLS := \
+ gunzip gzip make_ext4fs minizip reboot setup_adbd sh start stop toybox
+LOCAL_POST_INSTALL_CMD := \
+ $(hide) $(foreach t,$(RECOVERY_TOOLS),ln -sf recovery $(TARGET_RECOVERY_ROOT_OUT)/sbin/$(t);)
+
include $(BUILD_EXECUTABLE)
+# Run toybox-instlist and generate the rest of the symlinks
+toybox_recovery_links: $(TOYBOX_INSTLIST)
+toybox_recovery_links: TOY_LIST=$(shell $(TOYBOX_INSTLIST))
+toybox_recovery_links: TOYBOX_BINARY := $(TARGET_RECOVERY_ROOT_OUT)/sbin/toybox
+toybox_recovery_links:
+ @echo -e ${CL_CYN}"Generate Toybox links:"${CL_RST} $(TOY_LIST)
+ $(hide) $(foreach t,$(TOY_LIST),ln -sf toybox $(TARGET_RECOVERY_ROOT_OUT)/sbin/$(t);)
+
+# mkshrc
+include $(CLEAR_VARS)
+LOCAL_MODULE := recovery_mkshrc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/etc
+LOCAL_SRC_FILES := etc/mkshrc
+LOCAL_MODULE_STEM := mkshrc
+include $(BUILD_PREBUILT)
+
+# make_ext4fs
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmake_ext4fs_static
+LOCAL_MODULE_TAGS := optional
+LOCAL_CFLAGS := -Dmain=make_ext4fs_main
+LOCAL_SRC_FILES := \
+ ../../system/extras/ext4_utils/make_ext4fs_main.c \
+ ../../system/extras/ext4_utils/canned_fs_config.c
+include $(BUILD_STATIC_LIBRARY)
+
+# Minizip static library
+include $(CLEAR_VARS)
+LOCAL_MODULE := libminizip_static
+LOCAL_MODULE_TAGS := optional
+LOCAL_CFLAGS := -Dmain=minizip_main -D__ANDROID__ -DIOAPI_NO_64
+LOCAL_C_INCLUDES := external/zlib
+LOCAL_SRC_FILES := \
+ ../../external/zlib/src/contrib/minizip/ioapi.c \
+ ../../external/zlib/src/contrib/minizip/minizip.c \
+ ../../external/zlib/src/contrib/minizip/zip.c
+include $(BUILD_STATIC_LIBRARY)
+
+# Reboot static library
+include $(CLEAR_VARS)
+LOCAL_MODULE := libreboot_static
+LOCAL_MODULE_TAGS := optional
+LOCAL_CFLAGS := -Dmain=reboot_main
+LOCAL_SRC_FILES := ../../system/core/reboot/reboot.c
+include $(BUILD_STATIC_LIBRARY)
+
+
# All the APIs for testing
include $(CLEAR_VARS)
LOCAL_CLANG := true