# Must be configured by the user ANDROID_NDK := /opt/android-ndk # Constants and makefile shit used in build mkfile_path = $(abspath $(lastword $(MAKEFILE_LIST))) current_dir = $(notdir $(patsubst %/,%,$(dir $(mkfile_path)))) ## NDK configuration. PLATFORM_VERSION = 19 NDK_ARCH = arm NDK_ABI = linux-androideabi NDK = $(ANDROID_NDK) NDK_COMP_VER = 4.9 NDK_HOSTARCH = linux-x86_64 NDK_TOOLS = $(NDK)/toolchains/$(NDK_ARCH)-$(NDK_ABI)-$(NDK_COMP_VER)/prebuilt/$(NDK_HOSTARCH)/bin NDK_SYSROOT = $(NDK)/platforms/android-$(PLATFORM_VERSION)/arch-$(NDK_ARCH) NDK_INC = $(NDK)/platforms/android-$(PLATFORM_VERSION)/arch-$(NDK_ARCH)/usr/include NDK_LIB = $(NDK)/platforms/android-$(PLATFORM_VERSION)/arch-$(NDK_ARCH)/usr/lib ## Compiler and compilation flags CC = $(NDK_TOOLS)/$(NDK_ARCH)-$(NDK_ABI)-gcc CFLAGS = --sysroot=$(NDK_SYSROOT) -fPIE -pie -mthumb -O3 -DNO_SECCOMP -I$(NDK_INC) \ -std=gnu99 -Wall -Werror LDFLAGS = --sysroot=$(NDK_SYSROOT) -fPIE -pie # Exploit OUT = $(current_dir)/Out/Bin RADAMSA_SRC = src all: clone bin .PHONY: all radamsa.c clone: git clone https://github.com/aoh/radamsa.git $(RADAMSA_SRC) #Checkout revision to make sure whole solution compiles cd src && git checkout 1a9cc03fda47dd3706ef69f4ad971f66b273a324 radamsa.c: $(MAKE) -C $(RADAMSA_SRC) radamsa.c patch -p1 < android.patch bin: radamsa.c mkdir -p $(OUT) $(CC) $(CFLAGS) -o $(OUT)/radamsa.o -c $(RADAMSA_SRC)/radamsa.c $(CC) $(LDFLAGS) -o $(OUT)/radamsa $(OUT)/radamsa.o -ldl clean: rm -rf $(OUT) rm -rf $(RADAMSA_SRC) push: adb push $(OUT)/radamsa /data/app/