-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathresign_apk.sh
executable file
·44 lines (35 loc) · 1.05 KB
/
resign_apk.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/sh
CurrDir=$(cd "$(dirname "$0")"; pwd)
cd ${CurrDir}
#签名配置
KEYSTORE=~/.android/debug.keystore
KEYALISE=androiddebugkey
KEYPWD=android
KEYALISEPWD=android
APK=`basename $1`
CURR_TIME=`date +"%Y%m%d%H%M%S"`
APK_NAME=`echo ${APK} | awk -F ".apk" '{print $1}'`
APKTOOL=./apktool/apktool.jar
DECOMPILE_PATH=./${APK_NAME}
if [ ! -e ./resigned_apks ]; then
mkdir resigned_apks
fi
echo "反编译APK包..."
java -jar $APKTOOL d -r -s -f $1 $APK_NAME
echo "编译APK打包"
java -jar $APKTOOL b $APK_NAME
echo "重签名APK包..."
unsigned_apk=./${APK_NAME}/dist/${APK_NAME}.apk
signed_apk=./${APK_NAME}_signed_${CURR_TIME}.apk
jarsigner -verbose -storepass ${KEYALISEPWD} -keypass ${KEYPWD} -keystore ${KEYSTORE} -signedjar ${signed_apk} ${unsigned_apk} ${KEYALISE}
echo "优化APK包..."
aligned_apk=./resigned_apks/resigned_${APK}
zipalign -v -f 4 ${signed_apk} ${aligned_apk}
echo "清理文件..."
if [ -e $DECOMPILE_PATH ]; then
rm -r $DECOMPILE_PATH
fi
if [ -e $signed_apk ]; then
rm -r $signed_apk
fi
echo "完成APK重签名==========\n"$aligned_apk