赞
踩
系统:Windows
apktool工具的作用:
首先要下载apktool工具,我们需要去到apktool官网去下,链接是:https://ibotpeaches.github.io/Apktool/install/
翻译过来是这样子:
我这边是在E盘新建一个“apktool反编译工具”的文件夹,并将两个文件(apktool.jar)&(apktool.bat)放在里边,然后配置系统环境变量Path:
然后调出cmd命令行窗口,就可以自由使用apktool命令了~
相关命令:
//apk解析
apktool d -f E:\gongju\apktool反编译工具\app.apk -o E:\gongju\apktool反编译工具\test
解析后的目录结构是这样的:
这里我们可以查看:
assets:资源文件
lib:jni相关的so包
original:原始的AndroidManifest.xml文件和签名文
res:xml和图片资源
smail:反编译出来的代码,smail文件夹中目录结构和源代码的包一样
AndroidManifest:就AndroidManifest.xml
//打包成apk
apktool b -f E:\gongju\apktool反编译工具\test -o E:\gongju\apktool反编译工具\packed.apk
此外,可以修改smail文件后用apktool工具来重新打包,这样子避免了开发过程中一些小改动导致重新修改、编译以及打包的情况。
那么问题来了,smail文件是什么?
Dalvik虚拟机和Jvm一样,也有自己的一套指令集,类似汇编语言,但是比汇编简单许多,只要你会java,了解android的相关知识,就可以轻松的看懂,如果得到这些汇编文件呢,利用apktool或者dex2jar工具包(网上很多),反编译classes.dex文件,就可以得到以smali为后缀的文件,这些smali文件就是Dalvik的寄存器语言。
以上是摘抄的,打开来看看是这样子的,怎么样?我反正看不怎么懂。
怎么改代码呢?是不是还要学会这种汇编语言的语法呢?其实大可不必,只要会看一点就可以。
首先我们需要定位要改的代码所在的位置,这里用到的工具有:
下载地址:https://sourceforge.net/projects/dex2jar/postdownload
使用步骤:
d2j-dex2jar classes.dex
下载地址:http://java-decompiler.github.io/
使用步骤:
1.这个是Android自带的(如何你安装了Android Studio)工具,你可以在以下目录中找到它:
2.通过cmd命令行进入到当前目录:
cd C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\28.0.3
输入此命令拿到dex文件:
dx.bat --dex --no-strict --no-warning --output=E:\work\out\dex\classes.dex(此处替换你想输入dex文件的位置) E:\Project\jhsdk\build\intermediates\bundles\default\classes.jar(此处替换你的jar文件所在的位置)
下载链接:
https://bitbucket.org/JesusFreke/smali/downloads/
命令:
java -jar baksmali.jar(此处为baksmail.jar文件的路径) -o E:\work\out\smali(输出smail文件的位置) E:\work\out\dex\classes.dex(dex文件的位置)
上述这些都是代码层面的修改,如果我们想改资源就更简单了,直接在res文件中修改,不过要注意不能随意更改,资源大都被引用了,删除了会导致我们在build构建apk时直接报错,亦或者安装apk失败。
另外,如果我们要改apk的包名和版本呢?包名简单,只需要在AndroidManifest中修改就可以,sdk版本在哪修改呢?在这儿:
转载:https://blog.csdn.net/baidu_34928905/article/details/96735356
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。