Restore applypatch/updater/edify for non-A/B OTA support
Google deleted this source from bootable/recovery outright (commit c7ebad5f, "rm -rf non-AB code", 2024-04-05) — confirmed present at android-14, absent at android-16.0.0_r4. The runtime side (install.cpp's SetUpNonAbUpdateCommands) and build-side packaging (ota_from_target_files.py's GenerateNonAbOtaPackage) both survived; only the source that builds the update-binary executable itself was removed. Sourced from TeamWin's android_bootable_recovery (android-14.1), the only living copy found, with install/ZipUtil.cpp, get_args.cpp, and set_metadata.cpp intentionally left out (only wired into TeamWin's modified install.cpp, which PawletOS isn't adopting — twrpinstall carries its own independent copies). Kept as its own repo, not folded into a recovery fork, so it's buildable independent of whichever recovery UI ends up in use.
This commit is contained in:
@@ -0,0 +1,192 @@
|
||||
# Copyright (C) 2008 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
# libapplypatch (static library)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := \
|
||||
applypatch.cpp \
|
||||
bspatch.cpp \
|
||||
freecache.cpp \
|
||||
imgpatch.cpp
|
||||
LOCAL_MODULE := libapplypatch
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(LOCAL_PATH)/include \
|
||||
$(commands_recovery_local_path)
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libotafault \
|
||||
libbase \
|
||||
libcrypto \
|
||||
libbspatch \
|
||||
libbz \
|
||||
libz
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += libmtdutils
|
||||
LOCAL_CFLAGS := \
|
||||
-DZLIB_CONST \
|
||||
-Werror
|
||||
|
||||
BOARD_RECOVERY_DEFINES := BOARD_BML_BOOT BOARD_BML_RECOVERY
|
||||
|
||||
$(foreach board_define,$(BOARD_RECOVERY_DEFINES), \
|
||||
$(if $($(board_define)), \
|
||||
$(eval LOCAL_CFLAGS += -D$(board_define)=\"$($(board_define))\") \
|
||||
) \
|
||||
)
|
||||
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
# libimgpatch (static library)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := \
|
||||
bspatch.cpp \
|
||||
imgpatch.cpp
|
||||
LOCAL_MODULE := libimgpatch
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(LOCAL_PATH)/include \
|
||||
$(commands_recovery_local_path)
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libcrypto \
|
||||
libbspatch \
|
||||
libbase \
|
||||
libbz \
|
||||
libz
|
||||
LOCAL_CFLAGS := \
|
||||
-DZLIB_CONST \
|
||||
-Werror
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
# libimgpatch (host static library)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := \
|
||||
bspatch.cpp \
|
||||
imgpatch.cpp
|
||||
LOCAL_MODULE := libimgpatch
|
||||
LOCAL_MODULE_HOST_OS := linux
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(LOCAL_PATH)/include \
|
||||
$(commands_recovery_local_path)
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libcrypto \
|
||||
libbspatch \
|
||||
libbase \
|
||||
libbz \
|
||||
libz
|
||||
LOCAL_CFLAGS := \
|
||||
-DZLIB_CONST \
|
||||
-Werror
|
||||
include $(BUILD_HOST_STATIC_LIBRARY)
|
||||
|
||||
# libapplypatch_modes (static library)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := \
|
||||
applypatch_modes.cpp
|
||||
LOCAL_MODULE := libapplypatch_modes
|
||||
LOCAL_C_INCLUDES := $(commands_recovery_local_path)
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libapplypatch \
|
||||
libbase \
|
||||
libedify \
|
||||
libcrypto
|
||||
LOCAL_CFLAGS := -Werror
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
# applypatch (target executable)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := applypatch_main.cpp
|
||||
LOCAL_MODULE := applypatch
|
||||
LOCAL_C_INCLUDES := $(commands_recovery_local_path)
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libapplypatch_modes \
|
||||
libapplypatch \
|
||||
libbase \
|
||||
libedify \
|
||||
libotafault \
|
||||
libcrypto \
|
||||
libbspatch \
|
||||
libbz
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libbase \
|
||||
libz \
|
||||
libcutils
|
||||
LOCAL_CFLAGS := -Werror
|
||||
include $(BUILD_EXECUTABLE)
|
||||
|
||||
libimgdiff_src_files := imgdiff.cpp
|
||||
|
||||
# libbsdiff is compiled with -D_FILE_OFFSET_BITS=64.
|
||||
libimgdiff_cflags := \
|
||||
-Werror \
|
||||
-D_FILE_OFFSET_BITS=64
|
||||
|
||||
libimgdiff_static_libraries := \
|
||||
libbsdiff \
|
||||
libdivsufsort \
|
||||
libdivsufsort64 \
|
||||
libziparchive \
|
||||
libutils \
|
||||
liblog \
|
||||
libbase \
|
||||
libz
|
||||
|
||||
# libimgdiff (static library)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := \
|
||||
$(libimgdiff_src_files)
|
||||
LOCAL_MODULE := libimgdiff
|
||||
LOCAL_CFLAGS := \
|
||||
$(libimgdiff_cflags)
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
$(libimgdiff_static_libraries)
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(LOCAL_PATH)/include
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
# libimgdiff (host static library)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := \
|
||||
$(libimgdiff_src_files)
|
||||
LOCAL_MODULE := libimgdiff
|
||||
LOCAL_CFLAGS := \
|
||||
$(libimgdiff_cflags)
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
$(libimgdiff_static_libraries)
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(LOCAL_PATH)/include
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
|
||||
include $(BUILD_HOST_STATIC_LIBRARY)
|
||||
|
||||
# imgdiff (host static executable)
|
||||
# ===============================
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := imgdiff_main.cpp
|
||||
LOCAL_MODULE := imgdiff
|
||||
LOCAL_CFLAGS := -Werror
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libimgdiff \
|
||||
$(libimgdiff_static_libraries) \
|
||||
libbz
|
||||
include $(BUILD_HOST_EXECUTABLE)
|
||||
Reference in New Issue
Block a user