termux-packages/root-packages/frida-server/Makefile.linux.mk.patch
Henrik Grimler b7a7e46fdd
frida: update to 12.11.6
The CC and CXX environmental variables cannot be set to the cross
compiler, meson expects them to point to the native compiler and the
build fails when meson tries to execute binaries compiled with CC and
CXX, as part of the configure tests (sanitycheckc.exe fails to
run). Unsetting CC and CXX means that clang and clang++ from the frida
sdk is used instead of the ones from the android-ndk. This is probably
fine for our purposes (and could otherwise be changed by patching
releng/setup-env.sh).
2022-04-18 14:31:36 +05:30

173 lines
11 KiB
Diff

--- ./Makefile.linux.mk.orig 2020-07-22 19:15:43.163995037 +0000
+++ ./Makefile.linux.mk 2020-07-22 19:19:19.060924976 +0000
@@ -241,6 +241,10 @@
--prefix $(FRIDA)/build/frida-android-arm \
--libdir $(FRIDA)/build/frida-android-arm/lib \
$(frida_core_flags) \
+ -Dhelper32=$(FRIDA)/build/tmp-android-x86/frida-core/src/frida-helper \
+ -Dhelper64=$(FRIDA)/build/tmp-android-x86_64/frida-core/src/frida-helper \
+ -Dagent32=$(FRIDA)/build/tmp-android-x86/frida-core/lib/agent/frida-agent.so \
+ -Dagent64=$(FRIDA)/build/tmp-android-x86_64/frida-core/lib/agent/frida-agent.so \
frida-core $$builddir || exit 1; \
fi
@touch $@
@@ -269,6 +273,10 @@
--prefix $(FRIDA)/build/frida_thin-$* \
--libdir $(FRIDA)/build/frida_thin-$*/lib \
$(frida_core_flags) \
+ -Dhelper32=$(FRIDA)/build/tmp-android-arm/frida-core/src/frida-helper \
+ -Dhelper64=$(FRIDA)/build/tmp-android-arm64/frida-core/src/frida-helper \
+ -Dagent32=$(FRIDA)/build/tmp-android-arm/frida-core/lib/agent/frida-agent.so \
+ -Dagent64=$(FRIDA)/build/tmp-android-arm64/frida-core/lib/agent/frida-agent.so \
frida-core $$builddir || exit 1; \
fi
@touch $@
@@ -326,6 +334,10 @@
python-linux-x86-thin: build/tmp_thin-linux-x86/frida-$(PYTHON_NAME)/.frida-stamp ##@python Build Python bindings for Linux/x86 without cross-arch support
python-linux-x86_64-thin: build/tmp_thin-linux-x86_64/frida-$(PYTHON_NAME)/.frida-stamp ##@python Build Python bindings for Linux/x86-64 without cross-arch support
python-linux-arm64: build/tmp_thin-linux-arm64/frida-$(PYTHON_NAME)/.frida-stamp ##@python Build Python bindings for Linux/ARM64
+python-android-x86: build/tmp-android-x86/frida-$(PYTHON_NAME)/.frida-stamp ##@python Build Python bindings for Android/x86
+python-android-x86_64: build/tmp-android-x86_64/frida-$(PYTHON_NAME)/.frida-stamp ##@python Build Python bindings for Android/x86_64
+python-android-arm: build/tmp-android-arm/frida-$(PYTHON_NAME)/.frida-stamp ##@python Build Python bindings for Android/ARM
+python-android-arm64: build/tmp-android-arm64/frida-$(PYTHON_NAME)/.frida-stamp ##@python Build Python bindings for Android/ARM64
define make-python-rule
build/$2-%/frida-$$(PYTHON_NAME)/.frida-stamp: build/.frida-python-submodule-stamp build/$1-%/lib/pkgconfig/frida-core-1.0.pc
@@ -336,8 +348,8 @@
--cross-file build/$1-$$*.txt \
--prefix $$(FRIDA)/build/$1-$$* \
--libdir $$(FRIDA)/build/$1-$$*/lib \
- -Dpython=$$(PYTHON) \
- -Dpython_incdir=$$(PYTHON_INCDIR) \
+ -Dpython=/usr/bin/python3.8 \
+ -Dpython_incdir=@TERMUX_PREFIX@/include/python3.8 \
frida-python $$$$builddir || exit 1; \
fi; \
$$(NINJA) -C $$$$builddir install || exit 1
@@ -366,13 +378,32 @@
export PYTHONPATH="$(shell pwd)/build/frida_thin-linux-arm64/lib/$(PYTHON_NAME)/site-packages" \
&& cd frida-python \
&& ${PYTHON} -m unittest discover
-
+check-python-android-x86: build/tmp_thin-android-x86/frida-$(PYTHON_NAME)/.frida-stamp ##@python Test Python bindings for Android/x86
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-x86/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-python \
+ && ${PYTHON} -m unittest discover
+check-python-android-x86_64: build/tmp_thin-android-x86_64/frida-$(PYTHON_NAME)/.frida-stamp ##@python Test Python bindings for Android/x86_64
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-x86_64/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-python \
+ && ${PYTHON} -m unittest discover
+check-python-android-arm: build/tmp_thin-android-arm/frida-$(PYTHON_NAME)/.frida-stamp ##@python Test Python bindings for Android/ARM
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-arm/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-python \
+ && ${PYTHON} -m unittest discover
+check-python-android-arm64: build/tmp_thin-android-arm64/frida-$(PYTHON_NAME)/.frida-stamp ##@python Test Python bindings for Android/ARM64
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-arm64/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-python \
+ && ${PYTHON} -m unittest discover
node-linux-x86: build/frida-linux-x86/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Linux/x86
node-linux-x86_64: build/frida-linux-x86_64/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Linux/x86-64
node-linux-x86-thin: build/frida_thin-linux-x86/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Linux/x86 without cross-arch support
node-linux-x86_64-thin: build/frida_thin-linux-x86_64/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Linux/x86-64 without cross-arch support
node-linux-arm64: build/frida_thin-linux-arm64/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Linux/ARM64
+node-android-x86: build/frida_thin-android-x86/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Android/x86
+node-android-x86_64: build/frida_thin-android-x86_64/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Android/x86_64
+node-android-arm: build/frida_thin-android-arm/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Android/ARM
+node-android-arm64: build/frida_thin-android-arm64/lib/node_modules/frida build/.frida-node-submodule-stamp ##@node Build Node.js bindings for Android/ARM64
define make-node-rule
build/$1-%/lib/node_modules/frida: build/$1-%/lib/pkgconfig/frida-core-1.0.pc build/.frida-node-submodule-stamp
@@ -417,6 +448,14 @@
$(call run-node-tests,frida_thin-linux-x86_64,$(FRIDA),$(NODE_BIN_DIR),$(NODE),$(NPM))
check-node-linux-arm64: node-linux-arm64 ##@node Test Node.js bindings for Linux/ARM64
$(call run-node-tests,frida_thin-linux-arm64,$(FRIDA),$(NODE_BIN_DIR),$(NODE),$(NPM))
+check-node-android-x86: node-android-x86 ##@node Test Node.js bindings for Android/x86
+ $(call run-node-tests,frida_thin-android-x86,$(FRIDA),$(NODE_BIN_DIR),$(NODE),$(NPM))
+check-node-android-x86_64: node-android-x86_64 ##@node Test Node.js bindings for Android/x86_64
+ $(call run-node-tests,frida_thin-android-x86_64,$(FRIDA),$(NODE_BIN_DIR),$(NODE),$(NPM))
+check-node-android-arm: node-android-arm ##@node Test Node.js bindings for Android/ARM
+ $(call run-node-tests,frida_thin-android-arm,$(FRIDA),$(NODE_BIN_DIR),$(NODE),$(NPM))
+check-node-android-arm64: node-android-arm64 ##@node Test Node.js bindings for Android/ARM64
+ $(call run-node-tests,frida_thin-android-arm64,$(FRIDA),$(NODE_BIN_DIR),$(NODE),$(NPM))
tools-linux-x86: build/tmp-linux-x86/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Linux/x86
@@ -424,6 +463,10 @@
tools-linux-x86-thin: build/tmp_thin-linux-x86/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Linux/x86 without cross-arch support
tools-linux-x86_64-thin: build/tmp_thin-linux-x86_64/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Linux/x86-64 without cross-arch support
tools-linux-arm64: build/tmp_thin-linux-arm64/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Linux/ARM64
+tools-android-x86: build/tmp-android-x86/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Android/x86
+tools-android-x86_64: build/tmp-android-x86_64/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Android/x86_64
+tools-android-arm: build/tmp-android-arm/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Android/ARM
+tools-android-arm64: build/tmp-android-arm64/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Android/ARM64
define make-tools-rule
build/$2-%/frida-tools-$$(PYTHON_NAME)/.frida-stamp: build/.frida-tools-submodule-stamp build/$2-%/frida-$$(PYTHON_NAME)/.frida-stamp
@@ -463,6 +506,23 @@
export PYTHONPATH="$(shell pwd)/build/frida_thin-linux-arm64/lib/$(PYTHON_NAME)/site-packages" \
&& cd frida-tools \
&& ${PYTHON} -m unittest discover
+check-tools-android-x86: build/tmp_thin-android-x86/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Test CLI tools for Android/x86
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-x86/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-tools \
+ && ${PYTHON} -m unittest discover
+check-tools-android-x86_64: build/tmp_thin-android-x86_64/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Test CLI tools for Android/x86_64
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-x86_64/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-tools \
+ && ${PYTHON} -m unittest discover
+check-tools-android-arm: build/tmp_thin-android-arm/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Test CLI tools for Android/ARM
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-arm/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-tools \
+ && ${PYTHON} -m unittest discover
+check-tools-android-arm64: build/tmp_thin-android-arm64/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Test CLI tools for Android/ARM64
+ export PYTHONPATH="$(shell pwd)/build/frida_thin-android-arm64/lib/$(PYTHON_NAME)/site-packages" \
+ && cd frida-tools \
+ && ${PYTHON} -m unittest discover
+
.PHONY: \
@@ -492,27 +552,41 @@
check-core-linux-x86 check-core-linux-x86_64 \
check-core-linux-x86-thin check-core-linux-x86_64-thin \
check-core-linux-arm64 \
+ check-core-android-x86 check-core-android-x86_64 \
+ check-core-android-arm check-core-android-arm64 \
frida-core-update-submodule-stamp \
python-linux-x86 python-linux-x86_64 \
python-linux-x86-thin python-linux-x86_64-thin \
python-linux-arm64 \
+ python-android-x86 python-android-x86_64 \
+ python-android-arm python-android-arm64 \
check-python-linux-x86 check-python-linux-x86_64 \
check-python-linux-x86-thin check-python-linux-x86_64-thin \
check-python-linux-arm64 \
+ check-python-android-x86 check-python-android-x86_64 \
+ check-python-android-arm check-python-android-arm64 \
frida-python-update-submodule-stamp \
node-linux-x86 node-linux-x86_64 \
node-linux-x86-thin node-linux-x86_64-thin \
node-linux-arm64 \
+ node-android-x86 node-android-x86_64 \
+ node-android-arm node-android-arm64 \
check-node-linux-x86 check-node-linux-x86_64 \
check-node-linux-x86-thin check-node-linux-x86_64-thin \
check-node-linux-arm64 \
+ check-node-android-x86 check-node-android-x86_64 \
+ check-node-android-arm check-node-android-arm64 \
frida-node-update-submodule-stamp \
tools-linux-x86 tools-linux-x86_64 \
tools-linux-x86-thin tools-linux-x86_64-thin \
tools-linux-arm64 \
+ tools-android-x86 tools-android-x86_64 \
+ tools-android-arm tools-android-arm64 \
check-tools-linux-x86 check-tools-linux-x86_64 \
check-tools-linux-x86-thin check-tools-linux-x86_64-thin \
check-tools-linux-arm64 \
+ check-tools-android-x86 check-tools-android-x86_64 \
+ check-tools-android-arm check-tools-android-arm64 \
frida-tools-update-submodule-stamp \
glib glib-symlinks \
v8 v8-symlinks