Rather than depending on the existence of some place to store a file that is accessible to users on an an unbootable device (eg, a physical sdcard, external USB drive, etc.), add support for sideloading packages sent to the device with adb. This change adds a "minimal adbd" which supports nothing but receiving a package over adb (with the "adb sideload" command) and storing it to a fixed filename in the /tmp ramdisk, from where it can be verified and sideloaded in the usual way. This should be leave available even on locked user-build devices. The user can select "apply package from ADB" from the recovery menu, which starts minimal-adb mode (shutting down any real adbd that may be running). Once minimal-adb has received a package it exits (restarting real adbd if appropriate) and then verification and installation of the received package proceeds. always initialize usb product, vendor, etc. for adb in recovery Set these values even on non-debuggable builds, so that the mini-adb now in recovery can work.
78 lines
2.2 KiB
Makefile
78 lines
2.2 KiB
Makefile
LOCAL_PATH := $(call my-dir)
|
|
include $(CLEAR_VARS)
|
|
|
|
commands_recovery_local_path := $(LOCAL_PATH)
|
|
|
|
LOCAL_SRC_FILES := \
|
|
recovery.cpp \
|
|
bootloader.cpp \
|
|
install.cpp \
|
|
roots.cpp \
|
|
ui.cpp \
|
|
screen_ui.cpp \
|
|
verifier.cpp \
|
|
adb_install.cpp
|
|
|
|
LOCAL_MODULE := recovery
|
|
|
|
LOCAL_FORCE_STATIC_EXECUTABLE := true
|
|
|
|
RECOVERY_API_VERSION := 3
|
|
LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
|
|
|
|
LOCAL_STATIC_LIBRARIES :=
|
|
|
|
ifeq ($(TARGET_USERIMAGES_USE_EXT4), true)
|
|
LOCAL_CFLAGS += -DUSE_EXT4
|
|
LOCAL_C_INCLUDES += system/extras/ext4_utils
|
|
LOCAL_STATIC_LIBRARIES += libext4_utils libz
|
|
endif
|
|
|
|
# This binary is in the recovery ramdisk, which is otherwise a copy of root.
|
|
# It gets copied there in config/Makefile. LOCAL_MODULE_TAGS suppresses
|
|
# a (redundant) copy of the binary in /system/bin for user builds.
|
|
# TODO: Build the ramdisk image in a more principled way.
|
|
|
|
LOCAL_MODULE_TAGS := eng
|
|
|
|
ifeq ($(TARGET_RECOVERY_UI_LIB),)
|
|
LOCAL_SRC_FILES += default_device.cpp
|
|
else
|
|
LOCAL_STATIC_LIBRARIES += $(TARGET_RECOVERY_UI_LIB)
|
|
endif
|
|
LOCAL_STATIC_LIBRARIES += libext4_utils libz
|
|
LOCAL_STATIC_LIBRARIES += libminzip libunz libmtdutils libmincrypt libminadbd
|
|
LOCAL_STATIC_LIBRARIES += libminui libpixelflinger_static libpng libcutils
|
|
LOCAL_STATIC_LIBRARIES += libstdc++ libc
|
|
|
|
LOCAL_C_INCLUDES += system/extras/ext4_utils
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := verifier_test.cpp verifier.cpp ui.cpp
|
|
|
|
LOCAL_MODULE := verifier_test
|
|
|
|
LOCAL_FORCE_STATIC_EXECUTABLE := true
|
|
|
|
LOCAL_MODULE_TAGS := tests
|
|
|
|
LOCAL_STATIC_LIBRARIES := libmincrypt libminui libcutils libstdc++ libc
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
|
|
include $(commands_recovery_local_path)/minui/Android.mk
|
|
include $(commands_recovery_local_path)/minelf/Android.mk
|
|
include $(commands_recovery_local_path)/minzip/Android.mk
|
|
include $(commands_recovery_local_path)/minadbd/Android.mk
|
|
include $(commands_recovery_local_path)/mtdutils/Android.mk
|
|
include $(commands_recovery_local_path)/tools/Android.mk
|
|
include $(commands_recovery_local_path)/edify/Android.mk
|
|
include $(commands_recovery_local_path)/updater/Android.mk
|
|
include $(commands_recovery_local_path)/applypatch/Android.mk
|
|
commands_recovery_local_path :=
|