linux下使用apktool破解修改安卓apk

自己平常用linux操作系统,某时突然想改个安卓的游戏
(1)
安装jre
http://java.com/zh_CN/download/index.jsp
找到合适自己的版本

2、解压文件
tar -zxvf jrexxxx.tar.gz
将得到的文件夹jre1.7.0_45(我的文件夹名)移动到/usr/lib/java中去,如果是linux mint debian目录是/usr/lib/jvm/,下面我们假设是移动到java目录中
使用mv命令 mv jre1.7.0_45 /usr/lib/java

3、运行命令 $sudo vim /etc/environment
添加环境变量,直接添加到文件中去
JAVA_HOME="/usr/lib/java/jre1.7.0_45"
CLASSPATH="$JAVA_HOME/lib"
PATH="$JAVA_HOME/bin:$PATH"

如果原来就没有安装java, 手动export PATH="/usr/lib/java/jre1.7.0_45:$PATH"
否则执行下列步骤:
设置当前默认的java解释器
$sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jre1.7.0_45/bin/java 300
运行命令
$sudo update-alternatives --config java
选择该安装版本

测试 
$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode)
安装成功

(2)
http://code.google.com/p/android-apktool/
下载
apktool1.5.2.tar.bz2
apktool-install-linux-r05-ibot.tar.bz2

解压,取 aapt  apktool apktool.jar 到/usr/local/bin/下
使用方法 http://code.google.com/p/android-apktool/wiki/FrameworkFiles
http://code.google.com/p/android-apktool/wiki/ApktoolOptions
一般是apktool d 程序.apk 反编译后生成"程序"文件夹, 修改后 apktool b 程序/ 会在"程序/dist/"下生成新的"程序.apk"

(3)
除了apktool外,还有一种反编译的方法,可以查看java源代码的,二者结合在一起更强大
dex2jar  把dex文件转化成jar的工具
http://code.google.com/p/dex2jar/
下载它
dex2jar 使用教程
http://code.google.com/p/dex2jar/wiki/ModifyApkWithDexTool

jd-gui
http://jd.benow.ca/
下载 jd-gui-0.3.5.linux.i686.tar.gz
使用其中的jd-gui查看jar中的java代码

# 转换test_apk-debug.apk中的classes.dex为test_apk-debug_dex2jar.jar
d2j-dex2jar.sh -f -o test_apk-debug_dex2jar.jar test_apk-debug.apk
# 验证jar
d2j-asm-verify.sh test_apk-debug_dex2jar.jar
# 转换成jasmin格式 
d2j-jar2jasmin.sh -f -o test_apk_jasmin test_apk-debug_dex2jar.jar
卸载旧的apk

修改smail文件

再生成新的apk文件
# 生成jar
d2j-jasmin2jar.sh -f  -o test_apk_jasmin.jar  test_apk_jasmin/ 
# 验证jar
d2j-asm-verify.sh test_apk_jasmin.jar
# 转换成 dex
d2j-jar2dex.sh  -f -o classes.dex test_apk_jasmin.jar
# 生成一份拷贝 
cp test_apk-debug.apk test_apk-debug-toast.apk
# 替换test_apk-debug-toast.apk中的classes.dex 
zip -r test_apk-debug-toast.apk classes.dex
# 签名 apk
d2j-apk-sign.sh -f -o test_apk-debug-toast-signed.apk test_apk-debug-toast.apk
重新安装就可以了

(4)
最后把重新编译产生的 "程序.apk" 进行签名,否则是无法运行的

下载 signapk 这个网上搜一下很多 比如 http://ishare.iask.sina.com.cn/f/25267528.html
英文教程: http://www.londatiga.net/it/how-to-sign-apk-zip-files/

确保安装有openssl,生成key
openssl genrsa -out key.pem 1024
openssl req -new -key key.pem -out request.pem
openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

进行签名
java -jar signapk.jar certificate.pem key.pk8  程序.apk  签名.apk
完成, 作者:帅得不敢出门  程序员群:31843264
ApkTool』简要介绍 提供1.3.5测试版源码。 此程序在其基础上完善并添加一些功能,此版本号定位2.0 最终版。 定为最终版的原因是支持动态加载最新的内置工具: ..\Bin\*.*目录下的所有工具如果有最新版本的,替换Bin目录内的程序即可应用最新版。 [注意:不要更改目录内的文件名,否则不会被加载。],判断是否使用最新版本的程序, 可以看启动日志中每个文件的路径。日志内容如下: 加载apktool.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\apktool.jar 加载aapt.exe的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\aapt.exe 加载signapk.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\signapk.jar 加载testkey.pk8的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.pk8 加载testkey.x509.pem的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.x509.pem 加载baksmali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\baksmali.jar 加载smali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\smali.jar 加载dex2jar.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\dex2jar.jar 加载asm-debug-all.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\asm-debug-all.jar 加载commons-io.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\commons-io.jar 加载slf4j-simple.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-simple.jar 加载slf4j-api.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-api.jar ============================================================== 华丽的分割线 ============================================================== 使用说明: =========================================================== 使用环境:须安装 java,下载地址:http://www.java.com/zh_CN/ 1、反编译APK 拖拽APK程序到"反编译APK"按钮前的输入区,点击"反编译APK"按钮 2、重建APK 把第一步得到 文件夹 拖拽到"重建APK"按钮前面的输入区,点击"重建APK"按钮, 至此会自动生成已经签名好的"XXOO(已签名).apk" 3、签名 拖拽APK程序到"签名"按钮前的输入区,点击"签名"按钮,自动生成已经签名好的"XXOO(已签名).apk" 4、反编译dex 拖拽dex文件或odex到"反编译dex"按钮前的输入区,点击"反编译dex"按钮, 会在dex文件所在目录外生成一个与dex文件名相同的目录 5、重建dex 拖拽要重建的目录到"重建dex"按钮前的输入区,点击"重建dex"按钮,会生成与目录名相同的dex文件 6、dex转jar 拖拽dex文件或odex到"6、dex转jar"按钮前的输入区,点击"6、dex转jar"按钮, test.dex 会生成 test.dex.dex2jar.jar 文件 7、jar,class转java 拖拽保护class的目录,或.class文件或 jar文件到"jar,class转java"按钮前的输入区,点击"jar,class转java"按钮, 会生成相应的 java文件。 ========================== 内置软件版本: | apktool 1.4.3 | aapt r04 | baksmali 1.3.2 | smali 1.3.2 | dex2jar 0.0.7.9 | asm-debug-all 3.2 | commons-io 2.0 | slf4j 1.5.6 | jad 1.5.8e2 | ========================== ^_^ Enjoy! 2012.3.16 By:漏网之鱼 QQ:530747686
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值