forked from PerformanC/ReZygisk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
135 lines (101 loc) · 4.92 KB
/
Copy pathMakefile
File metadata and controls
135 lines (101 loc) · 4.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
BUILD_DIR := $(CURDIR)/build
include common.mk
OBJ_DIR = $(BUILD_DIR)/obj/$(BUILD_TYPE)
MODULE_OUT = $(BUILD_DIR)/module/$(BUILD_TYPE)
ZIP_DIR = $(BUILD_DIR)/out
ZKSU_VERSION = $(VER_NAME)-$(VER_CODE)-$(COMMIT_HASH)-$(BUILD_TYPE)
ZIP_NAME = $(MODULE_NAME)-$(VER_NAME)-$(VER_CODE)-$(COMMIT_HASH)-$(BUILD_TYPE).zip
ZIP_FILE = $(ZIP_DIR)/$(ZIP_NAME)
LOADER_DONE = $(OBJ_DIR)/loader/.done
ZYGISKD_DONE = $(OBJ_DIR)/zygiskd/.done
MODULE_DONE = $(BUILD_DIR)/module-$(BUILD_TYPE).done
LOADER_INPUTS = common.mk loader/Makefile \
$(shell find loader/src -type f | sort)
ZYGISKD_INPUTS = common.mk zygiskd/Makefile \
$(shell find zygiskd/src -type f | sort)
MODULE_INPUTS = scripts/sign.py \
$(shell find module/src -type f | sort) \
$(shell find webroot -type f | sort) \
$(wildcard module/private_key module/public_key)
.PHONY: debug release build clean \
installKsu installMagisk installAPatch \
installKsuAndReboot installMagiskAndReboot installAPatchAndReboot
debug:
$(MAKE) BUILD_TYPE=debug BUILD_DIR=$(BUILD_DIR) build
release:
$(MAKE) BUILD_TYPE=release BUILD_DIR=$(BUILD_DIR) build
build: $(ZIP_FILE)
$(LOADER_DONE): $(LOADER_INPUTS)
$(MAKE) -C loader BUILD_TYPE=$(BUILD_TYPE) BUILD_DIR=$(BUILD_DIR) ZKSU_VERSION=$(ZKSU_VERSION)
@mkdir -p $(dir $@)
@touch $@
$(ZYGISKD_DONE): $(ZYGISKD_INPUTS)
$(MAKE) -C zygiskd BUILD_TYPE=$(BUILD_TYPE) BUILD_DIR=$(BUILD_DIR) ZKSU_VERSION=$(ZKSU_VERSION)
@mkdir -p $(dir $@)
@touch $@
$(MODULE_DONE): $(LOADER_DONE) $(ZYGISKD_DONE) $(MODULE_INPUTS)
@rm -rf $(MODULE_OUT)
@mkdir -p $(MODULE_OUT)/META-INF/com/google/android
@echo "Copying META-INF files..."
@cp module/src/META-INF/com/google/android/update-binary \
module/src/META-INF/com/google/android/updater-script \
$(MODULE_OUT)/META-INF/com/google/android/
@echo "Copying module files..."
@cp module/src/verify.sh module/src/sepolicy.rule module/src/rezygisk.sh $(MODULE_OUT)/
@echo "Customizing module.prop..."
@sed -e 's/$${moduleId}/$(MODULE_ID)/g' \
-e 's/$${moduleName}/$(MODULE_NAME)/g' \
-e 's/$${versionName}/$(VER_NAME) ($(VER_CODE)-$(COMMIT_HASH)-$(BUILD_TYPE))/g' \
-e 's/$${versionCode}/$(VER_CODE)/g' \
module/src/module.prop > $(MODULE_OUT)/module.prop
@echo "Customizing scripts..."
@for script in customize.sh post-fs-data.sh service.sh uninstall.sh; do \
sed -e 's/@DEBUG@/$(if $(filter debug,$(BUILD_TYPE)),true,false)/g' \
-e 's/@MIN_APATCH_VERSION@/$(MIN_APATCH_VERSION)/g' \
-e 's/@MIN_KSU_VERSION@/$(MIN_KSU_VERSION)/g' \
-e 's/@MIN_KSUD_VERSION@/$(MIN_KSUD_VERSION)/g' \
-e 's/@MIN_MAGISK_VERSION@/$(MIN_MAGISK_VERSION)/g' \
module/src/$$script > $(MODULE_OUT)/$$script; \
done
@echo "Copying binaries..."
@for arch in $(ARCHS); do \
mkdir -p $(MODULE_OUT)/bin/$$arch $(MODULE_OUT)/lib/$$arch; \
cp $(OBJ_DIR)/zygiskd/$$arch/zygiskd $(MODULE_OUT)/bin/$$arch/zygiskd; \
cp $(OBJ_DIR)/loader/$$arch/stripped/libzygisk.so $(MODULE_OUT)/lib/$$arch/libzygisk.so; \
cp $(OBJ_DIR)/loader/$$arch/stripped/libzygisk_ptrace.so $(MODULE_OUT)/lib/$$arch/libzygisk_ptrace.so; \
done
@echo "Copying webroot..."
@cp -r webroot $(MODULE_OUT)/webroot
@if [ -f module/private_key ]; then \
echo "Signing module..."; \
python3 scripts/sign.py $(MODULE_OUT) module/private_key module/public_key; \
else \
echo "No private key found, skipping signing..."; \
python3 scripts/sign.py --no-sign $(MODULE_OUT); \
fi
@mkdir -p $(dir $@)
@touch $@
$(ZIP_FILE): $(MODULE_DONE)
@mkdir -p $(ZIP_DIR)
@rm -f $@
@echo "Creating ZIP file..."
@cd $(MODULE_OUT) && zip -r9 $@ . -x '*.DS_Store' > /dev/null
installKsu: build
adb push $(ZIP_FILE) /data/local/tmp/
adb shell su -c '/data/adb/ksu/bin/ksud module install /data/local/tmp/$(ZIP_NAME)'
installMagisk: build
adb push $(ZIP_FILE) /data/local/tmp/
adb shell su -M -c "magisk --install-module /data/local/tmp/$(ZIP_NAME)"
installAPatch: build
adb push $(ZIP_FILE) /data/local/tmp/
adb shell su -c "/data/adb/apd module install /data/local/tmp/$(ZIP_NAME)"
installKsuAndReboot: installKsu
adb reboot
installMagiskAndReboot: installMagisk
adb reboot
installAPatchAndReboot: installAPatch
adb reboot
clean:
rm -rf $(BUILD_DIR)
$(MAKE) -C loader clean BUILD_DIR=$(BUILD_DIR)
$(MAKE) -C zygiskd clean BUILD_DIR=$(BUILD_DIR)