安装java
下载工具
apktool:ibotpeaches.github.io/Apktool/
jad:varaneckas.com/jad/
dex-tools:github.com/pxb1988/dex…
apk反编译脚本
#shell脚本 apk.sh
work_path=$1
apktoolDir=apktool
jad=Jad/jad
dex2jarSH=dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh
if [[ $1 =~ "/" ]];then
apkdir="${1%/*}"
else
apkdir=./
fi
apkname="${1%*.apk}"
apkname="${apkname##*/}"
echo $apkdir
echo $apkname
pushd $apkdir
unzip $apkname.apk -d ${apkname}_unzip
bash ${apktoolDir}/apktool.sh apktool d $apkname.apk
rm -r ./$apkname/original
pushd ${apkname}_unzip
rm -r ./*xml
rm -r res
bash $dex2jarSH *.dex
unzip ./*.jar -d apk_src
$jad -o -r -sjava -dsrc 'apk_src/**/*.class'
popd
popd
替换工具 apktoolDir、jad、dex2jarSH路径,linux、mac(window需要安装虚拟机或者power shell)
命令行运行: bash apk.sh androidtest.apk
在androidtest.apk 同级目录下生成 androidtest_unzip目录,里面的apk_src 为java源码文件
在androidtest.apk 同级目录下生成 androidtest目录,里面为资源文件
aar反编译脚本
#shell脚本 aar.sh
work_path=$1
apktoolDir=/Users/zhoujie/Documents/Android/apktool
jad=/Users/zhoujie/Documents/Android/Jad/jad
dex2jarSH=/Users/zhoujie/Documents/Android/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh
if [[ $1 =~ "/" ]];then
aardir="${1%/*}"
else
aardir=./
fi
aarname="${1%*.aar}"
aarname="${aarname##*/}"
echo $aardir
echo $aarname
pushd $aardir
unzip $aarname.aar -d ${aarname}_unzip
pushd ${aarname}_unzip
unzip ./*.jar
$jad -o -r -sjava -dsrc com/**/*.class
popd
popd
替换工具 apktoolDir、jad、dex2jarSH路径,linux、mac(window需要安装虚拟机或者power shell)
命令行运行: bash aar.sh androidtest.aar
在androidtest.aar 同级目录下生成 androidtest_unzip目录,里面为java源码文件和资源文件