APK应用程序编辑文档格式.docx

上传人:b****1 文档编号:14680724 上传时间:2022-10-23 格式:DOCX 页数:18 大小:727.57KB
下载 相关 举报
APK应用程序编辑文档格式.docx_第1页
第1页 / 共18页
APK应用程序编辑文档格式.docx_第2页
第2页 / 共18页
APK应用程序编辑文档格式.docx_第3页
第3页 / 共18页
APK应用程序编辑文档格式.docx_第4页
第4页 / 共18页
APK应用程序编辑文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

APK应用程序编辑文档格式.docx

《APK应用程序编辑文档格式.docx》由会员分享,可在线阅读,更多相关《APK应用程序编辑文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

APK应用程序编辑文档格式.docx

尤其是最近关于2.3.4XXJVPROM的汉化,更成为论坛里的热门话题。

你们可曾知道ROM是怎样汉化的吗?

说来容易做来难。

这里要涉及很广泛的知识、手段,以及要花大量的时间。

1.APK文件简介

APK是AndroidPackage的缩写,即Androidapplicationpackage文件或Android安装包。

每个要安装到Android平台的应用都要被编译打包为一个单独的文件,扩展名为.apk。

APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。

通过将APK文件直接传到Android手机中执行即可安装。

APK文件其实就是zip格式,但其扩展名被改为apk,在Windows下用解压软件WinRAR/WinZIP/7-Zip可以直接打开。

解压后,你会看到有几个文件和文件夹。

一个典型的APK文件通常有下列内容组成:

AndroidManifest.xml程序全局配置文件

classes.dexDalvik字节码

resources.arsc编译后的二进制资源文件

META-INF\该目录下存放的是签名信息

res\该目录存放资源文件

assets\该目录可以存放一些配置文件

下面对这些文件和目录做些基本的注释和介绍:

•AndroidManifest.xml

该文件是每个apk应用程序都必须包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。

•classes.dex文件

classes.dex是java源码编译后生成的java字节码文件。

dex是DalvikVMexecutes的全称,即AndroidDalvik执行程序。

利用解析工具可以将其转换成java来加以阅读和理解。

•resources.arsc

编译后的二进制资源文件。

在做主题美化时要常与这个文件打交道。

•META-INF目录

META-INF目录下存放的是签名信息,有三个签名文件,用来保证apk包的完整性和系统的安全。

在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。

这就保证了apk包里的文件不能被随意替换。

比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。

如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。

•res目录

res目录存放资源文件。

包括图片,字符串等等。

res下有若干个子目录,主要为drawable,layout,xml。

解包后,几乎所有可能的修改和编辑工作基本都在这里。

汉化ROM的主要工作就在这里。

汉化ROM实际上就是汉化所有的apk应用程序的字符文件。

•assets目录

assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。

下面以“设置”应用程序Settings.apk为例。

用WinRAR打开文件后,看到以上介绍的六项内容。

现在,即使你已经对文件解压,你还是无法直接阅读每个文件的内容。

为了读出这些文件的内容,从而进行进一步的修改和编辑,你就必须具有相应的工具了(请到第二节)。

2.APK应用程序的解包和打包工具

这一节主要介绍在Windows系统中常用的几个工具包,用来对apk应用程序进行解包、打包、反编译、解析。

所有apk工具包都要求java环境(这个我就不介绍了,自己学习去吧)。

这些工具可以从网上各个论坛获取。

我在近一个月里收集了几个常用的工具包,我会打包上传与有志于对apk进行操作的机友分享。

主要推荐有三个工具包。

1)apktool

apktool可能是当今最为流行的apk工具包,由解包、打包、签名程序组成。

被称之为“apk反编译利器”。

去Google一下apktool,有非常多的资源,无论是软件下载,还是使用教程。

对非三星的应用程序进行操作,很好用。

打开apktool工具包,看到如下内容:

Akp程序的解包和打包软件由2个程序来完成:

apktool.jar和aapt.exe。

另外提供一个批处理文件:

apktool.bat,其内容为:

java-jar"

%~dp0\apktool.jar"

%1%2%3%4%5%6%7%8%9

运行apktools.jar需要java环境(1.6.0版本以上)。

apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。

testkey.pk8和testkey.x509.pem是签名程序。

解包命令:

apktooldxxxxxx.apkABC

这里“d”表示要解码。

Xxxxx.apk是要解包的APK文件。

ABC是子目录名。

解包的文件会放在这个子目录内。

打包命令:

apktoolbABCyyyyy.apk

这里“b”表示要打包,ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。

yyyyy.apk是打包后产生的新的APK文件。

在上传的apk工具包里,已经另外加了两个批处理文件:

Unpack-apk.bat和Repack-apt.bat。

前者用于apk的解包过程,后者用于编辑后的文件的打包和签名。

把待解包的apk文件放到Unpack-apk.bat的同一个目录里,双击Unpack-apk.bat,apk文件解包开始,产生3个子文件夹,解包后的文件被放在Working_APK文件夹内。

详细内容将在第二部分描述。

另外,批处理文件允许同时对多个apk文件顺序进行解包和打包。

注意:

文件名里不允许有空格,不能有中文。

使用前,要先安装框架文件:

apktoolifframework-res.apk

如果是三星系统,还要安装:

apktooliftwframework-res.apk

2)apkmanager

apkmanager是另一个“apk反编译利器”。

它比apktool工具包还要强大些。

三星的许多apk系统应用程序用了三星的闭源系统,用apktool可以解包,但是打包不成功。

这时,apkmanager就好用了。

打开apkmanager工具包,看到如下内容。

软件都放在other子目录里。

运行apkmanager要求adb工具包(见下图中的3个adb文件)。

把待解包的apk文件放到place-apk-here-for-modding子目录里,双击脚本批处理程序Script.bat,选择选项:

9,产生一个子文件夹projects,解包后的文件被放在这个子文件夹内。

在使用时,有时apktool和apkmanager交替使用,一个不行就用另外一个。

所以,在编辑apk应用程序时两者都要掌握。

3)Dex2jar和XJad

该方法不是直接对apk文件进行解包。

它是首先提取apk文件内的classes.dex文件,然后使用dex2jar.jar工具包将classes.dex解包成jar文件,再通过XJad或者其他class反编译工具进行java反编译,最后生成java源文件。

但是,使用这个工具包无法进行classes.dex的还原(当然也无法进行apk的打包)。

尽管如此,这个工具包仍然很重要,因为它把classes.dex文件转换成了可以更容易阅读的java源文件。

在修改apk应用程序时,必不可少,是一极强的辅助工具。

相比之下,apktool和apkmanager反编译后得到的是Dalvik反编译码(Dalvikopcodes),需要很专业的知识来阅读,很不直观。

如果你读懂了java源文件,那修改相对应的Dalvik码不就容易多了吗。

4)其它工具包简介

此外,还有许多工具包可用。

这些也容易在网上找到。

a)DoAPK

DoAPK实际上就是apktool工具包。

有人把apktool写成了带窗口界面的可执行文件。

b)GoogleSmali

有两个程序:

baksmali.jar和smali.jar。

baksmali.jar用来反解析dex和odex文件,得到Dalvik码。

然后用smali.jar还原成dex文件。

例如,在修改状态栏时间显示颜色时,要用的这两个解析程序。

c)AXMLPrinter2.jar

AXMLPrinter2.jar对apk文件内的AndroidManifest.xml和main.xml进行操作,将XML还原成文本文件,便于阅读。

d)Apkdb

是一个集成apktool,smali,Dex2jar,签名等功能的工具。

e)其它工具

不再介绍。

自己动手到网上去搜索吧。

我把这些收集到的apk工具包打包上传,供你们使用,免得你们找来找去。

集成Apk工具包下载地址:

在这一部分,我们要进入实战。

首先,利用一个具体的例子来阐述apk工具包的使用,对apk文件进行解包、汉化、打包和签名。

然后,我们来对付三星闭源系统的apk程序,达到我们修改、汉化和美化的目的。

我们假定所有apk文件都是单个独立文件,不含odex文件(在官版ROM中,通常每个apk都分成两部分,第一部分是apk,第二部分是odex。

将它们合并是另一个题目,这里不作叙述)。

1.配置框架(Framework)环境

在处理APK文件时,apktool需要框架文件(framework-res.apk)来解码和打包。

apktool已经包含了标准的框架,所以在大多数APK文件的解包时,不需要另外提供框架文件。

但是,某些制造商(例如三星)使用了他们自己的框架文件,为了解包,就不得不从手机中或从ROM中把框架文件(framework-res.apk)提取出来,然后安装到计算机。

安装命令是:

安装后就会得到:

~\apktool\framework\1.apk

三星系统(例如:

I897)有两个框架文件:

framework-res.apk和twframework-res.apk。

在使用apktool之前,要安装这两个框架文件。

安装方法同上:

apktoolifframework-res.apk

apktooliftwframework-res.apk

~\apktool\framework\1.apk和

~\apktool\framework\2.apk。

许多人拿来apkt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1