Skip to content

Commit 35892d4

Browse files
authored
Merge pull request #99 from sisong/dev
support Android 15+ run with 16KB page size
2 parents 9a48a5c + ec0974c commit 35892d4

22 files changed

+470
-287
lines changed

Makefile

+36-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# args
22
STATIC_CPP := 0
3+
STATIC_C := 0
34
# used clang?
45
CL := 0
56
# build with -m32?
@@ -21,17 +22,13 @@ ZLIB_OBJ := \
2122
zlib1.3.1/zutil.o
2223

2324
ZIPPATCH_OBJ := \
24-
src/patch/NewStream.o \
2525
src/patch/OldStream.o \
26-
src/patch/Patcher.o \
2726
src/patch/ZipDiffData.o \
2827
src/patch/Zipper.o \
2928
HDiffPatch/libHDiffPatch/HPatch/patch.o \
3029
HDiffPatch/file_for_patch.o \
3130
HDiffPatch/libParallel/parallel_import.o \
3231
HDiffPatch/libParallel/parallel_channel.o \
33-
lzma/C/LzmaDec.o \
34-
lzma/C/Lzma2Dec.o \
3532
$(ZLIB_OBJ)
3633

3734
APKNORM_OBJ := \
@@ -40,6 +37,12 @@ APKNORM_OBJ := \
4037
src/diff/DiffData.o \
4138
$(ZIPPATCH_OBJ)
4239

40+
ZIPPATCH_OBJ += \
41+
src/patch/NewStream.o \
42+
src/patch/Patcher.o \
43+
lzma/C/LzmaDec.o \
44+
lzma/C/Lzma2Dec.o
45+
4346
ZIPDIFF_OBJ := \
4447
src/zip_diff.o \
4548
src/diff/DiffData.o \
@@ -68,39 +71,55 @@ ZIPDIFF_OBJ := \
6871
lzma/C/Threads.o \
6972
$(ZIPPATCH_OBJ)
7073

74+
ZIPPATCH_OBJ += src/zip_patch.o
75+
7176
DEF_FLAGS := -O3 -DNDEBUG -D_IS_USED_MULTITHREAD=1 -D_IS_USED_CPP11THREAD=1
77+
ifeq ($(MINS),0)
78+
else
79+
DEF_FLAGS += \
80+
-s \
81+
-Wno-error=format-security \
82+
-fvisibility=hidden \
83+
-ffunction-sections -fdata-sections \
84+
-ffat-lto-objects -flto
85+
CXXFLAGS += -fvisibility-inlines-hidden
86+
endif
7287
CFLAGS += $(DEF_FLAGS)
7388
CXXFLAGS += $(DEF_FLAGS) -std=c++11
7489

75-
LINK_LIB := -lpthread # link pthread
90+
DEF_LINK := -lpthread # link pthread
7691
ifeq ($(M32),0)
7792
else
78-
LINK_LIB += -m32
93+
DEF_LINK += -m32
7994
endif
8095
ifeq ($(MINS),0)
8196
else
82-
LINK_LIB += -Wl,--gc-sections,--as-needed
97+
DEF_LINK += -s -Wl,--gc-sections,--as-needed
98+
endif
99+
ifeq ($(STATIC_CPP),0)
100+
DEF_LINK += -lstdc++
101+
else
102+
DEF_LINK += -static-libstdc++
103+
endif
104+
ifeq ($(STATIC_C),0)
105+
else
106+
DEF_LINK += -static
83107
endif
84108
ifeq ($(CL),1)
85109
CXX := clang++
86110
CC := clang
87111
endif
88-
ifeq ($(STATIC_CPP),0)
89-
LINK_LIB += -lstdc++
90-
else
91-
LINK_LIB += -static-libstdc++
92-
endif
93112

94113
.PHONY: all clean
95114

96115
all: ApkNormalized ZipDiff ZipPatch
97116

98117
ApkNormalized: $(APKNORM_OBJ)
99-
$(CXX) $(APKNORM_OBJ) $(LINK_LIB) -o ApkNormalized
118+
$(CXX) $(APKNORM_OBJ) $(DEF_LINK) -o ApkNormalized
100119
ZipDiff: $(ZIPDIFF_OBJ)
101-
$(CXX) $(ZIPDIFF_OBJ) $(LINK_LIB) -o ZipDiff
102-
ZipPatch: src/zip_patch.o $(ZIPPATCH_OBJ)
103-
$(CXX) src/zip_patch.o $(ZIPPATCH_OBJ) $(LINK_LIB) -o ZipPatch
120+
$(CXX) $(ZIPDIFF_OBJ) $(DEF_LINK) -o ZipDiff
121+
ZipPatch: $(ZIPPATCH_OBJ)
122+
$(CXX) $(ZIPPATCH_OBJ) $(DEF_LINK) -o ZipPatch
104123

105124
clean:
106-
-rm -f ApkNormalized ZipDiff ZipPatch src/zip_patch.o $(ZIPDIFF_OBJ) $(APKNORM_OBJ)
125+
-rm -f ApkNormalized ZipDiff ZipPatch $(ZIPDIFF_OBJ) $(ZIPPATCH_OBJ) $(APKNORM_OBJ)

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# [ApkDiffPatch]
2-
[![release](https://img.shields.io/badge/release-v1.7.2-blue.svg)](https://github.com/sisong/ApkDiffPatch/releases)
2+
[![release](https://img.shields.io/badge/release-v1.8.0-blue.svg)](https://github.com/sisong/ApkDiffPatch/releases)
33
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sisong/ApkDiffPatch/blob/master/LICENSE)
44
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/sisong/ApkDiffPatch/pulls)
55
[![+issue Welcome](https://img.shields.io/github/issues-raw/sisong/ApkDiffPatch?color=green&label=%2Bissue%20welcome)](https://github.com/sisong/ApkDiffPatch/issues)

builds/android_ndk_jni_mk/Android.mk

+2-41
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,9 @@ include $(CLEAR_VARS)
33

44
LOCAL_MODULE := apkpatch
55

6-
Lzma_Files := $(LOCAL_PATH)/../../lzma/C/LzmaDec.c \
7-
$(LOCAL_PATH)/../../lzma/C/Lzma2Dec.c
8-
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
9-
Lzma_Files += $(LOCAL_PATH)/../../lzma/Asm/arm64/LzmaDecOpt.S
10-
endif
6+
include $(LOCAL_PATH)/Android_i.mk
117

12-
ZLIB_PATH := $(LOCAL_PATH)/../../zlib1.3.1
13-
Zlib_Files := $(ZLIB_PATH)/crc32.c \
14-
$(ZLIB_PATH)/deflate.c \
15-
$(ZLIB_PATH)/inflate.c \
16-
$(ZLIB_PATH)/zutil.c \
17-
$(ZLIB_PATH)/adler32.c \
18-
$(ZLIB_PATH)/trees.c \
19-
$(ZLIB_PATH)/inftrees.c \
20-
$(ZLIB_PATH)/inffast.c
21-
22-
HDP_PATH := $(LOCAL_PATH)/../../HDiffPatch
23-
Hdp_Files := $(HDP_PATH)/file_for_patch.c \
24-
$(HDP_PATH)/libHDiffPatch/HPatch/patch.c \
25-
$(HDP_PATH)/libParallel/parallel_import.cpp \
26-
$(HDP_PATH)/libParallel/parallel_channel.cpp
27-
28-
ADP_PATH := $(LOCAL_PATH)/../../src/patch
29-
Adp_Files := $(ADP_PATH)/NewStream.cpp \
30-
$(ADP_PATH)/OldStream.cpp \
31-
$(ADP_PATH)/Patcher.cpp \
32-
$(ADP_PATH)/ZipDiffData.cpp \
33-
$(ADP_PATH)/Zipper.cpp
34-
35-
Src_Files := $(LOCAL_PATH)/apk_patch_jni.cpp \
36-
$(LOCAL_PATH)/apk_patch.cpp
37-
38-
LOCAL_SRC_FILES := $(Src_Files) $(Lzma_Files) $(Zlib_Files) $(Hdp_Files) $(Adp_Files)
39-
40-
LOCAL_LDLIBS := -llog
41-
LOCAL_CFLAGS := -Os -DANDROID_NDK -DNDEBUG -D_IS_USED_MULTITHREAD=1 -D_IS_USED_PTHREAD=1 -D_IS_NEED_CACHE_OLD_BY_COVERS=0
42-
ifneq ($(TARGET_ARCH_ABI),armeabi)
43-
LOCAL_CFLAGS += -DUNALIGNED_OK
44-
endif
45-
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
46-
LOCAL_CFLAGS += -DZ7_LZMA_DEC_OPT
47-
endif
8+
LOCAL_CFLAGS += -DNDEBUG
489

4910
include $(BUILD_SHARED_LIBRARY)
5011

builds/android_ndk_jni_mk/Android_DEBUG.mk

+2-47
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,9 @@ include $(CLEAR_VARS)
44
LOCAL_MODULE := apkpatch
55
LOCAL_ARM_MODE := arm
66

7-
Lzma_Files := $(LOCAL_PATH)/../../lzma/C/LzmaDec.c \
8-
$(LOCAL_PATH)/../../lzma/C/Lzma2Dec.c
9-
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
10-
Lzma_Files += $(LOCAL_PATH)/../../lzma/Asm/arm64/LzmaDecOpt.S
11-
endif
12-
13-
ZLIB_PATH := $(LOCAL_PATH)/../../zlib1.3.1
14-
Zlib_Files := $(ZLIB_PATH)/crc32.c \
15-
$(ZLIB_PATH)/deflate.c \
16-
$(ZLIB_PATH)/inflate.c \
17-
$(ZLIB_PATH)/zutil.c \
18-
$(ZLIB_PATH)/adler32.c \
19-
$(ZLIB_PATH)/trees.c \
20-
$(ZLIB_PATH)/inftrees.c \
21-
$(ZLIB_PATH)/inffast.c
22-
23-
HDP_PATH := $(LOCAL_PATH)/../../HDiffPatch
24-
Hdp_Files := $(HDP_PATH)/file_for_patch.c \
25-
$(HDP_PATH)/libHDiffPatch/HPatch/patch.c \
26-
$(HDP_PATH)/libParallel/parallel_import.cpp \
27-
$(HDP_PATH)/libParallel/parallel_channel.cpp
28-
29-
ADP_PATH := $(LOCAL_PATH)/../../src/patch
30-
Adp_Files := $(ADP_PATH)/NewStream.cpp \
31-
$(ADP_PATH)/OldStream.cpp \
32-
$(ADP_PATH)/Patcher.cpp \
33-
$(ADP_PATH)/ZipDiffData.cpp \
34-
$(ADP_PATH)/Zipper.cpp
35-
36-
Src_Files := $(LOCAL_PATH)/apk_patch_jni.cpp \
37-
$(LOCAL_PATH)/apk_patch.cpp
38-
39-
LOCAL_SRC_FILES := $(Src_Files) $(Lzma_Files) $(Zlib_Files) $(Hdp_Files) $(Adp_Files)
40-
41-
DEF_FLAGS := -O1 -DZ7_ST -D_IS_USED_MULTITHREAD=1 -D_IS_USED_PTHREAD=1
42-
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
43-
DEF_FLAGS += -DZ7_LZMA_DEC_OPT
44-
endif
45-
46-
LOCAL_LDLIBS := -llog
47-
LOCAL_CFLAGS := -Os -DANDROID_NDK -DNDEBUG -D_IS_USED_MULTITHREAD=1 -D_IS_USED_PTHREAD=1 -D_IS_NEED_CACHE_OLD_BY_COVERS=0
48-
ifneq ($(TARGET_ARCH_ABI),armeabi)
49-
LOCAL_CFLAGS += -DUNALIGNED_OK
50-
endif
51-
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
52-
LOCAL_CFLAGS += -DZ7_LZMA_DEC_OPT
53-
endif
7+
include $(LOCAL_PATH)/Android_i.mk
548

9+
LOCAL_CFLAGS += -DDEBUG=1
5510
LOCAL_SANITIZE := address
5611
include $(BUILD_SHARED_LIBRARY)
5712

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
2+
Lzma_Files := $(LOCAL_PATH)/../../lzma/C/LzmaDec.c \
3+
$(LOCAL_PATH)/../../lzma/C/Lzma2Dec.c
4+
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
5+
Lzma_Files += $(LOCAL_PATH)/../../lzma/Asm/arm64/LzmaDecOpt.S
6+
endif
7+
8+
ZLIB_PATH := $(LOCAL_PATH)/../../zlib1.3.1
9+
Zlib_Files := $(ZLIB_PATH)/crc32.c \
10+
$(ZLIB_PATH)/deflate.c \
11+
$(ZLIB_PATH)/inflate.c \
12+
$(ZLIB_PATH)/zutil.c \
13+
$(ZLIB_PATH)/adler32.c \
14+
$(ZLIB_PATH)/trees.c \
15+
$(ZLIB_PATH)/inftrees.c \
16+
$(ZLIB_PATH)/inffast.c
17+
18+
HDP_PATH := $(LOCAL_PATH)/../../HDiffPatch
19+
Hdp_Files := $(HDP_PATH)/file_for_patch.c \
20+
$(HDP_PATH)/libHDiffPatch/HPatch/patch.c \
21+
$(HDP_PATH)/libParallel/parallel_import.cpp \
22+
$(HDP_PATH)/libParallel/parallel_channel.cpp
23+
24+
ADP_PATH := $(LOCAL_PATH)/../../src/patch
25+
Adp_Files := $(ADP_PATH)/NewStream.cpp \
26+
$(ADP_PATH)/OldStream.cpp \
27+
$(ADP_PATH)/Patcher.cpp \
28+
$(ADP_PATH)/ZipDiffData.cpp \
29+
$(ADP_PATH)/Zipper.cpp
30+
31+
Src_Files := $(LOCAL_PATH)/apk_patch_jni.cpp \
32+
$(LOCAL_PATH)/apk_patch.cpp
33+
34+
LOCAL_SRC_FILES := $(Src_Files) $(Lzma_Files) $(Zlib_Files) $(Hdp_Files) $(Adp_Files)
35+
36+
LOCAL_LDLIBS := -llog
37+
LOCAL_CFLAGS := -Os -DANDROID_NDK -D_IS_USED_MULTITHREAD=1 -D_IS_USED_PTHREAD=1 -D_IS_NEED_CACHE_OLD_BY_COVERS=0
38+
ifneq ($(TARGET_ARCH_ABI),armeabi)
39+
LOCAL_CFLAGS += -DUNALIGNED_OK
40+
endif
41+
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
42+
LOCAL_CFLAGS += -DZ7_LZMA_DEC_OPT
43+
endif
44+

builds/android_ndk_jni_mk/Application.mk

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ APP_PLATFORM := android-14
22
APP_CFLAGS += -Wno-error=format-security
33
APP_CFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
44
APP_CFLAGS += -ffunction-sections -fdata-sections
5+
APP_CPPFLAGS += -fexceptions
56
APP_LDFLAGS += -Wl,--gc-sections
7+
APP_LDFLAGS += -Wl,-z,max-page-size=16384
68
APP_STL := stlport_static
7-
APP_CPPFLAGS := -fexceptions
89
APP_BUILD_SCRIPT := Android.mk
910
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64

builds/android_ndk_jni_mk/Application_DEBUG.mk

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
APP_PLATFORM := android-27
2-
APP_STL := c++_shared
32
APP_CFLAGS := -fsanitize=address -fno-omit-frame-pointer
4-
APP_LDFLAGS := -fsanitize=address
53
APP_CPPFLAGS := -fexceptions
4+
APP_LDFLAGS := -fsanitize=address
5+
APP_LDFLAGS += -Wl,-z,max-page-size=16384
6+
APP_STL := c++_shared
67
APP_BUILD_SCRIPT := Android_DEBUG.mk
78
APP_OPTIM := debug
89
NDK_DEBUG := 1

lzma

Submodule lzma updated 259 files

0 commit comments

Comments
 (0)