Android apk反编译 重封装 重签名 对齐

Android apk反编译 重打包 重签名 对齐

      关于反编译,首先,请阅读http://blog.csdn.net/jltxgcy/article/details/17141127

      第一种方式:只使用apktool

       apktool,xxx.apk放在了同一个目录下

      反编译:./apktool d -f xxx.apk,生成了xxx文件夹

      重新打包:./apktool b -f xxx(文件夹),生成了xxx/dist,里面存放着重新生成的apk,但是没有签名

       cd xxx/dist

      重签名:jarsigner -verbose -keystore /home/jltxgcy/eclipse/jdk1.6.0/bin/android123.keystore -signedjar xxx_signed.apk xxx.apk android123.keystore     

      对齐:zipalign -v 4 xxx_signed.apk xxx_align.apk


      第二种方式:使用apktool和bakmail,smail工具

       baksmail和smail工具下载地址:https://code.google.com/p/smali/downloads/list

       apktool ,smali-2.0.3.jar,baksmail-2.0.3.jar,xxx.apk放在同一目录下

       反编译:

       (1)./apktool d -f -s xxx.apk,生成了xxx文件夹,但是文件夹classes.dex没有解析成smali

       apktool的命令参数详解:请看http://code.google.com/p/android-apktool/wiki/ApktoolOptions

       (2)java -jar baksmali-2.0.3.jar -o baksmailout  xxx/classes.dex

      重新打包:

       (1)java -jar smali-2.0.3.jar baksmailout/ -o xxx/classes.dex

       (2)./apktool b -f xxx(文件夹)

       重签名和对齐和上面类似。