电脑必须装JAVA
JAVA电脑环境教程
apktool
方法/步骤
1 配置好JAVA环境变量,下载:apktool 解压的文件放在C盘根目录的apktool文件夹里(apktool文件夹自己创立)
打开命令提示符,(开始-运行-输入cmd)
2 输入:cd \apktool 系统指令到了apktool文件夹(这里就是为什么要把解压的apktool解压的文件放到apktool文件夹的原因,当然你也可以自命名文件夹的名称,那么比如arc,那么指令就变成了:cd \arc 前提是你必须把apktool解压的文件放到这个文件夹里面)
3 使用RE管理器把系统里面的framework-resapk 与 SystemUIapk 提取出来放在apktool文件夹里面
4 如果只是想反编译framework-resapk
输入apktool if framework-resapk(框架的建立)
5 开始最重要的反编译,输入指令,apktool d framework-resapk
(反编辑的APK一定要用没换过的,否则回编辑失败)
6 最后反编译完成
7 修改代码完成后,输入代码:apktool d framework-res 即可完成回编译
8 如果反编译的是系统文件,比如,SystemUIapk 那么必须进行挂载框架,反编译时,必须敲入一下命令:(然后再重复4-7步骤)
apktool if framework-resapk
apktool if SystemUIapk
9 对于三星手机(比如9100、9108/9100G),如果反编译SystemUIapk要敲入一下命令进行框架挂载apktool if framework-resapk
apktool if twframework-resapk
apktool if SystemUIapk
10 回编译的命令是 apktool b XXX (没有后面的apk后缀)反编译的命令是 apktool d xxx (有后面的apk)
1、反编译=回编译后分别是
smali目录 回编译为 classesdex 文件
res目录 回编译为 resourcesarsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classesdex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。
3、出错问题1
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
这些小小的错误都会导致回编时译检查出错。
所以汉化时,注意对校,然后再回编译。
建议使用一些高级的文本编辑器,支持语法高亮视图的。
4、出错问题2
最近发现有些APK文件 反编译后,就算不汉化直接回编译,都会出错。
有可能的原因1,反编译后XML文件语法中@符号 前面多了"\" (\@ ),
用文本编辑工具 直接替换\@为@,应该可以解决。
建议使用最新版本的反编译工具。
5、建议大家使用新版本的APKTool工具,
当然如果新的有问题也可以试试旧的(作者说的)
你好!apktool这个软件没有root权限,是不能使用的!如未获取root权限,你可以获取的!手机获取root如下:
手机获取root方法:在电脑下载root大师,这个软件!手机连接电脑,电脑识别手机后,会出现一键root,按一键root,即可!
如果你的手机无法获取root,此时证明你的手机比较新,官方还没有你的手机型号的root,你可以等,等到可以root!
最好的解决方法,就是去你的手机型号或者apktool的贴吧看看如何使用此软件?看有关apktool的贴子或者自己发贴!
APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境,推荐使用JDK16或者JDK17。如果你想对APK文件进行修改,那么就不可避免的要使用到APKTool。论坛里有很多关于ROM美化的帖子都需要自己动手修改APK文件,比如修改framework-resapk、systemUIapk等等。
相信各位有不少人看了后都想亲自来修改一番,但是结果却是遇到了各式各样的错误却无法进行改正,甚至都不知道自己错在哪里。
一.APKTOOL使用环境配置
1安装JAVA并设置环境变量。
下载安装都很简单,关键是安装完后还需要亲自设置环境变量以方便其他程序能够条用JAVA。
以WIN7为例,在桌面上右键点击计算机——>属性——>高级系统设置——>环境变量——>在下边的系统变量里新建一个变量,变量名为JAVA_HOME,值为JAVA的安装路径,比如我的是H:\ProgramFiles\Java\jdk160_26
二.APKTool的安装
1其实这个谈不上安装,不过如果你愿意的话可以把下载到的APKTOOL中的三个文件(aaptexe、apktoolbat、apktooljar)解压缩到你的Windows安装目录下,以方便使用Dos命令
2可能有些人下载的APKTOOL里有个安装的bat文件,并且有另外两个方便使用的bat文件,在这里我不推荐大家使用这些bat文件,虽然使用起来很方便(其实我并不觉得方便),但是如果出现错误不方便查看。
三.APKTool的使用
反编译apk工具使用最广泛的就是apktool,这里先说一下整个流程用到的工具有:
1apktool,下载后拿到apktoolbat和apktooljar,然后把这两个工具放到C:\Windows底下。这个工具的作用主要是得到apk的资源文件和配置文件
2dex2jar 下载这个工具解压后放到任意盘都可以,后面主要用这个根据apk的classesdev文件生成供jd-gui工具解析的jar。
3jd-gui上一步提到其作用,和2一样,也是下载后放到任意盘即可,到时候只要运行jd-guiexe打开上一步生成的jar即可查看源码,下面对这个工具不再赘述
下面详细说一下前面两个工具类的详细用法:
先说apktool的用法:
1下载后拿到apktoolbat和apktooljar,然后把这两个工具放到C:\Windows底下
2cmd打开后默认是你的计算机,默认的不用改,直接输入apktool,如果出现如下图的效果,即表示准备已就绪
接下来,apktool d f:\app-debugapk f:\app像这样输入,这里的f:\app-debugapk是你的将要被反编译的apk的绝对路径,后面的f:\app是apk反编译后资源文件将要放入的文件夹,不需要事先新建好,在这里写好就行了,输入完回车,如果成功的话,即可在文件夹中看到资源文件,这里apktool的流程算完了。
接下来说一下第二个工具,dex2jar的使用流程:
1把你将要反编译的apk的扩展名改成压缩包的扩展名(rar\zip等),然后对其解压,找到classesdev文件,将之复制后贴到dex2jar底下,效果如如下:
接下来又要写命令了,同样cmd,然后转换到你的dex2jar目录,然后输入dex2jarbat classesdev,然后回车即可在dex2jar目录中看到一个classes_dex2jarjar。好了,完了,贴图
得到classes_dex2jarjar了,前面说了jd-gui的作用了,直接打开这个就行了,得到的就是源代码了
上图
准备的工具除了jdk还有以下内容(在Google官网都有):
把apktool-install-windows-21_r01-1zip,dex2jar-007-SNAPSHOTzip解压到一个盘的根目录下(这里我选择H盘),同时把AXMLPrinter2jar,apktooljar和你想解包的apk软件也放在同一个目录下,然后“运行--cmd”打开控制台,输入cd /d h : / 进入H盘的根目录然后输入以下内容(控制台不要关,为了后面方便):
其中apktooljar是解包工具,d表示解包,memoapk是我要解包的软件,memo表示解包后输出到这个文件夹,等待片刻,就会生成memo文件夹,打开里面会有res文件夹下的所有文件和AndroidManifestxml,用记事本就可以查看了。
以上是获得xml文件和,下面获得里面的java源代码:
用winRar或者好压打开memoapk,截图如下:
把里面的classesdex文件解压到H盘根目录下,然后重新打开控制台,输入dex2jarbat classesdex
得到一个名为classesdexdex2jarjar的文件,此时用jd-guiexe打开classesdexdex2jarjar就可以看到所有源代码了!
如果想把反编译好的文件变回apk文件,只要在控制台输入
apktooljar b memo就可以了
其中b就是重新封包的意思,memo是你刚才解包出来的文件夹,前提是确保所有文件都在memo文件夹里!!
方法一:
1、使用apktool的-d选项反编译apk文件
java -jar apktooljar d -d targetapk -o output
2、在AndroidManifest的application节点中添加 android:debuggable="true"
3、在入口点的类的onCreate中添加如下代码等待调试
invoke-static{}, Landroid/os/Debug;->waitForDebugger()V
4、回编译apk
java -jar apktooljar b -d output -o newTargetapk
5、对apk进行签名
java -jar signapkjar testkeyx509pem testkeypk8 newTargetapk signedapk
6、将签名后的apk安装到手机或者模拟器上
adb install signedapk
7、将1中的smali代码导入到Android Studio中
file→open→output目录→下断点
8、打开Monitor查找相应的进程
运行→monitor 或者Tools ->Android ->Android Device Monitor
9、配置远程调试选项
Run→Editor Configurations→Defaults→Remote,点击+号新增一个,Host为localhost,Port为8700
10、打开apk,点击绿色的小虫子就可以开始调试了
方法二:无需修改原apk文件
1、用 Android killer等工具反编译apk文件
2、将smali代码入到Android Studio中,安装smaliidea插件
File→Settings→Plugins→Install plugin from disk…→Restart
3、配置远程调试选项,打开monitor
4、使用adb以debug方式启动apk
adb shell am start -D -n package/activitiyname
5、下断点开始调试,在watch中添加寄存器http://www315nkcom/不清楚追问,希望能帮助到您
欢迎分享,转载请注明来源:品搜搜测评网