準備編譯環境:android
一、zlib-1.2.8.tar.gz 二、ucl-1.03.tar.gz 三、lzma443.tar.bz2 四、upx-hg-d9e7cb4b5485.tar.gz https://www.pysol.org:4443/hg/upx.hg
export UPX_UCLDIR=/usr/local/android/upx/ucl-1.03 export UPX_ZLIBDIR=/usr/local/android/upx/zlib-1.2.8 export UPX_LZMADIR=/usr/local/android/upx/lzma export UPX_LZMA_VERSION=0x443 export UPX_DIR=/usr/local/android/upx/upx-hg-d9e7cb4b5485
提示幾點:code
一、upx使用上面給的連接下載,這個版本修復了加固SO後沒法在手機上運行的錯誤get
二、編譯時提示找不到libz庫,須要在UPXDIR/src/MakeFile中添加編譯
INCLUDES += -I$(UPX_ZLIBDIR) LIBS += $(addprefix -L,$(dir $(wildcard $(UPX_ZLIBDIR)/libz$(libext))))
最後在UPX根目錄使用make all編譯,編譯完成後會在src目錄下生成upx.outclass
準備JNI環境變量
使用編譯好的Upx.out將jni生成的.so文件加固後放入APK中便可在手機上運行起來。file
加固語法:下載
$./upx.out -f -o libjin_upx.so libjni.so ..... packed 1 file.