From b7a7e46fdd40844a7e0572a36b4bf6992275e838 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Mon, 3 Aug 2020 11:31:34 +0200 Subject: [PATCH] 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). --- .../frida-server/Makefile.linux.mk.patch | 32 +++++++++---------- root-packages/frida-server/build.sh | 19 +++++------ root-packages/frida-server/setup-env.sh.patch | 14 ++++---- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/root-packages/frida-server/Makefile.linux.mk.patch b/root-packages/frida-server/Makefile.linux.mk.patch index bebdfa672..efe7d8d81 100644 --- a/root-packages/frida-server/Makefile.linux.mk.patch +++ b/root-packages/frida-server/Makefile.linux.mk.patch @@ -1,8 +1,8 @@ ---- ./Makefile.linux.mk.orig 2020-03-05 15:25:07.873401786 +0000 -+++ ./Makefile.linux.mk 2020-03-05 15:38:16.573505718 +0000 -@@ -236,6 +236,10 @@ - --libdir $(FRIDA)/build/frida-android-x86/lib \ - --cross-file build/frida-android-x86.txt \ +--- ./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 \ @@ -11,9 +11,9 @@ frida-core $$builddir || exit 1; \ fi @touch $@ -@@ -266,6 +270,10 @@ - --libdir $(FRIDA)/build/frida-android-arm/lib \ - --cross-file build/frida-android-arm.txt \ +@@ -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 \ @@ -22,7 +22,7 @@ frida-core $$builddir || exit 1; \ fi @touch $@ -@@ -358,6 +366,10 @@ +@@ -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 @@ -33,10 +33,10 @@ 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 -@@ -374,8 +386,8 @@ +@@ -336,8 +348,8 @@ + --cross-file build/$1-$$*.txt \ --prefix $$(FRIDA)/build/$1-$$* \ --libdir $$(FRIDA)/build/$1-$$*/lib \ - $$$$cross_args \ - -Dpython=$$(PYTHON) \ - -Dpython_incdir=$$(PYTHON_INCDIR) \ + -Dpython=/usr/bin/python3.8 \ @@ -44,7 +44,7 @@ frida-python $$$$builddir || exit 1; \ fi; \ $$(NINJA) -C $$$$builddir install || exit 1 -@@ -404,13 +416,32 @@ +@@ -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 @@ -78,7 +78,7 @@ define make-node-rule build/$1-%/lib/node_modules/frida: build/$1-%/lib/pkgconfig/frida-core-1.0.pc build/.frida-node-submodule-stamp -@@ -455,6 +486,14 @@ +@@ -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)) @@ -93,7 +93,7 @@ tools-linux-x86: build/tmp-linux-x86/frida-tools-$(PYTHON_NAME)/.frida-stamp ##@tools Build CLI tools for Linux/x86 -@@ -462,6 +501,10 @@ +@@ -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 @@ -104,7 +104,7 @@ define make-tools-rule build/$2-%/frida-tools-$$(PYTHON_NAME)/.frida-stamp: build/.frida-tools-submodule-stamp build/$2-%/frida-$$(PYTHON_NAME)/.frida-stamp -@@ -507,6 +550,23 @@ +@@ -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 @@ -128,7 +128,7 @@ .PHONY: \ -@@ -536,27 +596,41 @@ +@@ -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 \ diff --git a/root-packages/frida-server/build.sh b/root-packages/frida-server/build.sh index 06e5e84d7..b23755a4b 100644 --- a/root-packages/frida-server/build.sh +++ b/root-packages/frida-server/build.sh @@ -3,20 +3,21 @@ TERMUX_PKG_DESCRIPTION="Dynamic instrumentation toolkit for developers, reverse- TERMUX_PKG_LICENSE="wxWindows" TERMUX_PKG_MAINTAINER="Henrik Grimler @Grimler91" _MAJOR_VERSION=12 -_MINOR_VERSION=8 -_MICRO_VERSION=20 +_MINOR_VERSION=11 +_MICRO_VERSION=6 TERMUX_PKG_VERSION=${_MAJOR_VERSION}.${_MINOR_VERSION}.${_MICRO_VERSION} TERMUX_PKG_GIT_BRANCH=$TERMUX_PKG_VERSION TERMUX_PKG_SRCURL=https://github.com/frida/frida.git TERMUX_PKG_DEPENDS="libiconv, python" TERMUX_PKG_BUILD_DEPENDS="openssl" TERMUX_PKG_BUILD_IN_SRC=true +TERMUX_PKG_HOSTBUILD=true +_PYTHON_VERSION=$(source $TERMUX_SCRIPTDIR/packages/python/build.sh; echo $_MAJOR_VERSION) + TERMUX_PKG_EXTRA_MAKE_ARGS=" ANDROID_NDK_ROOT=$NDK +PYTHON=/usr/bin/python${_PYTHON_VERSION} " -TERMUX_PKG_HOSTBUILD=true -_PYTHON_VERSION=3.8 - termux_step_host_build () { local node_version=13.9.0 @@ -42,10 +43,10 @@ termux_step_make () { else arch=${TERMUX_ARCH} fi - PATH=${TERMUX_PKG_HOSTBUILD_DIR}/bin:$PATH make python-android-${arch} \ - ${TERMUX_PKG_EXTRA_MAKE_ARGS} PYTHON=/usr/bin/python${_PYTHON_VERSION} - PATH=${TERMUX_PKG_HOSTBUILD_DIR}/bin:$PATH make tools-android-${arch} \ - ${TERMUX_PKG_EXTRA_MAKE_ARGS} PYTHON=/usr/bin/python${_PYTHON_VERSION} + CC= CXX= PATH=${TERMUX_PKG_HOSTBUILD_DIR}/bin:$PATH \ + make python-android-${arch} ${TERMUX_PKG_EXTRA_MAKE_ARGS} + CC= CXX= PATH=${TERMUX_PKG_HOSTBUILD_DIR}/bin:$PATH \ + make tools-android-${arch} ${TERMUX_PKG_EXTRA_MAKE_ARGS} } termux_step_make_install () { diff --git a/root-packages/frida-server/setup-env.sh.patch b/root-packages/frida-server/setup-env.sh.patch index e5dd28963..82d945d16 100644 --- a/root-packages/frida-server/setup-env.sh.patch +++ b/root-packages/frida-server/setup-env.sh.patch @@ -1,20 +1,20 @@ ---- ./releng/setup-env.sh.orig 2020-02-23 11:01:20.820879043 +0100 -+++ ./releng/setup-env.sh 2020-02-23 11:01:20.830879026 +0100 -@@ -484,26 +484,26 @@ - +--- ./releng/setup-env.sh.orig 2020-07-22 19:22:28.247685514 +0000 ++++ ./releng/setup-env.sh 2020-07-22 19:23:37.730108226 +0000 +@@ -527,26 +527,26 @@ + host_cflags="" case $host_arch in x86) - android_api=18 + android_api=24 host_compiler_triplet="i686-linux-android" - host_arch_flags="-march=i686" + host_arch_flags="-march=pentium4" + host_cflags="-mfpmath=sse -mstackrealign" host_ldflags="-fuse-ld=gold" ;; x86_64) - android_api=21 + android_api=24 host_compiler_triplet="x86_64-linux-android" - host_arch_flags="" host_ldflags="-fuse-ld=gold -Wl,--icf=all" ;; arm) @@ -29,5 +29,5 @@ - android_api=21 + android_api=24 host_compiler_triplet="aarch64-linux-android" - host_arch_flags="" host_ldflags="-fuse-ld=gold -Wl,--icf=all" + ;;