请问apktool怎么使用?

请问apktool怎么使用?,第1张

APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境,推荐使用JDK1.6或者JDK1.7。

如果你想对APK文件进行修改,那么就不可避免的要使用到APKTool。论坛里有很多关于ROM美化的帖子都需要自己动手修改APK文件,比如修改framework-res.apk、systemUI.apk等等。

相信各位有不少人看了后都想亲自来修改一番,但是结果却是遇到了各式各样的错误却无法进行改正,甚至都不知道自己错在哪里。

一.APKTOOL使用环境配置

1.安装JAVA并设置环境变量。

下载安装都很简单,关键是安装完后还需要亲自设置环境变量以方便其他程序能够条用JAVA。

以WIN7为例,在桌面上右键点击计算机——>属性——>高级系统设置——>环境变量——>在下边的系统变量里新建一个变量,变量名为JAVA_HOME,值为JAVA的安装路径,比如我的是H:\ProgramFiles\Java\jdk1.6.0_26

二.APKTool的安装

1.其实这个谈不上安装,不过如果你愿意的话可以把下载到的APKTOOL中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压缩到你的Windows安装目录下,以方便使用Dos命令.

2.可能有些人下载的APKTOOL里有个安装的bat文件,并且有另外两个方便使用的bat文件,在这里我不推荐大家使用这些bat文件,虽然使用起来很方便(其实我并不觉得方便),但是如果出现错误不方便查看。

三.APKTool的使用

1.decode

该命令用于进行反编译apk文件,一般用法为

apktool d <file.apk><dir>

<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk

<dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer

如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令

apktool d –f <file.apk><dir>

这样就会强行覆盖已经存在的文件

2.build

该命令用于编译修改好的文件,一般用法为

apktool b <dir>

这里的<dir>就是刚才你反编译时输入的<dir>(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。

3.install-framework

该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。具体情况请看常见问题

四.常见问题

1.关于安装和管理framework文件

以下大部分其实是翻译自http://code.google.com/p/android-apktool/wiki/FrameworkFiles

一般来说,你在使用apktool进行反编译前不需要做其他的事情,然而由于有的厂商,如HTC,三星等,他们定制了framework文件并且在他们的系统应用中使用了这些文件,这时,为了能正常的反编译这些apk文件,你就必须从你的设备中拷贝出framework文件并且安装到apktool中。

举一个例子,比如你想反编译HTCHero这款手机中的HtcContacts.apk,当你尝试反编译的时候,你会得到以下错误信息。

$ apktool d HtcContacts.apk

I: Loading resource table...

I: Decoding resources...

I: Loading resource table from file: /home/brutall/apktool/framework/1.apk

W: Could not decode attr value, using undecoded value instead: ns=android, name=drawable, value=0x02020542

...

W: Could not decode attr value, using undecoded value instead: ns=android, name=icon, value=0x02020520

Can't find framework resources for package of id: 2. You must install proper framework files, see project website for more info.

复制代码

这就是在通知你必须

卡刷包制作方法很简单: 首先我们需要准备这些东西: ①一个空的卡刷包,我们可以往里面放东西 ②一个刷机脚本,这个脚本告诉recovery应该怎么用这个包 ③卡刷包签名工具。不签名的刷机包刷入后是不稳定的。 这些东西都在教程里给你准备好了。 呵呵,大冷天手有些抖,见谅啊。 首先,我们要配置java环境。这一步可能有些繁琐,但是这是以后更高级制作的基础。 ①打开教程里附带的JDK1.7下载地址并下载JDK1.7 ②下载完毕后,打开教程里附带的配置java环境教程,按照教程配置java环境 p.s.本人已经配置完成了,这里就不再配置一遍了,请大家按照教程做。 第二,美化卡刷包的制作。这里仅仅教给大家的是一个最简单的美化包的制作,更难的请自行学习:) ①解压缩那个空包,我们可以看到有两个文件夹:META-INF和system。 meta-inf是签名信息和刷机脚本的地址。什么是签名信息呢?如果你对卡刷包进行签名,那么你签名的信息都会存放在这里。 system就对应手机上RE管理器直接打开拖到最下面的system,也就是美化主要修改的位置。 ②打开system文件夹,可以看到两个文件夹:app和framework。相信做过美化的机油都很熟悉,app放SystemUI.apk,framework放framework-res.apk。 ③把手机上的SystemUI.apk和framework-res.apk提取出来,进行美化。具体的方法请百度一下。这里我准备了两个已经美化完成的文件,一并打包在教程里。 ④把SystemUI.apk放入app文件夹,把framework-res.apk放入framework文件夹。到这里就完成了美化部分的制作。 p.s.刚刚把SystemUI.apk放入app的时候我用了一个粘贴的快捷键(Ctrl+v) 第三,刷机脚本修改与刷机包签名。 注意:完成刷机包签名必须配置好java环境!! ①下载Notepad++并安装,教程里有下载地址。我已经下载安装完毕了,这里就不再下载安装 ②用Notepad++打开updater-script。 ③我们主要修改第一行的“ui_print("This is an update KSB.")” 我来解释一下,这行代码分三个部分。 1-命令。命令是ui_print。这个的意思是让recovery在屏幕上打出一行字。 2-命令参数。参数是"This is an update KSB."(注:包括那两个引号!)这是告诉上面那个参数应该打什么字出来。我们可以随意更改引号内的内容,但不能有中文。比如,我改成我的马甲,y=ax2+bx+c,再来个制作(made by) 3-结束符。就是分号()。这告诉recovery这一行执行完毕了。 ④修改完成,我们保存这个文件,关闭Notepad++。 ⑤把这个文件复制到META-INF\com\google\android文件夹,替换里面的文件。 ⑥将META-INF和system用winrar打包。压缩格式一定要选zip!!!压缩方式一定要选标准!!! ⑦解压并安装刷机包签名软件。这里为了方便我已经装好了。 ⑧右击打包好的文件签名。你看他自己在签名,一会儿就好了。 至此制作完成!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11951471.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存