APK文件的解包打包和修改 (2)

上传人:平*** 文档编号:14351594 上传时间:2017-10-31 格式:DOC 页数:9 大小:32.35KB
返回 下载 相关 举报
APK文件的解包打包和修改 (2)_第1页
第1页 / 共9页
APK文件的解包打包和修改 (2)_第2页
第2页 / 共9页
APK文件的解包打包和修改 (2)_第3页
第3页 / 共9页
APK文件的解包打包和修改 (2)_第4页
第4页 / 共9页
APK文件的解包打包和修改 (2)_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《APK文件的解包打包和修改 (2)》由会员分享,可在线阅读,更多相关《APK文件的解包打包和修改 (2)(9页珍藏版)》请在金锄头文库上搜索。

1、APK 文件的解包打包和修改相信每位玩机的人对 APK 文件都不陌生。你可能每天都与 APK 文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等。 。 。你可曾知道这些每天都伴随着你的 APK 文件是什么吗?怎样对它们作些修改呢?比如说:对英文版进行汉化、修改功能、修改文字描述、去掉广告等等。本文介绍 APK 的基本知识、结构、APK文件的解包、打包及签名,以及对 APK 文件的常规修改。1.APK 文件简介APK 是 Android Package 的缩写,即即 Android application package 文件或 Android 安装包。每个要安装到 Android

2、 平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。APK 文件是用专业软件 eclipse 编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。通过将 APK 文件直接传到 Android 手机中执行即可安装。APK 文件其实就是 zip 格式,但其扩展名被改为apk,用解压软件可以直接打开。通过 WinRAR 或 UnZip 解压后,你会看到有几个文件和文件夹。一个典型的 APK 文件通常有下列内容组成:AndroidManifest.xml 程序全局配置文件classes.dex Dalvik 字节码resources.arsc 编译后的二进制资源文件META-IN

3、F 该目录下存放的是签名信息res 该目录存放资源文件assets 该目录可以存放一些配置文件下面对这些文件和目录做些基本的注释和介绍。 AndroidManifest.xml该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。需要解包后才能加以阅读。 classes.dex 文件 classes.dex 是 java 源码编译后生成的 java 字节码文件。dex 是Dalvik VM executes 的全称,即 Android Dalvik 执行程序,并非Java ME 的字节码而是 Dalvik 字节码。 resources.arsc

4、编译后的二进制资源文件。 META-INF 目录 META-INF 目录下存放的是签名信息,用来保证 apk 包的完整性和系统的安全。在 eclipse 编译生成一个 apk 包时,会对所有要打包的文件做一个校验计算,并把计算结果放在 META-INF 目录下。这就保证了 apk 包里的文件不能被随意替换。比如拿到一个 apk 包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。 res 目录 res 目录存放资源文件。包括图片,字符串等等。解包后,几乎所有可能的修改和编辑工

5、作基本都在这里。 assets 目录assets 目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的 API 获得。 2.APK 文件的解包和打包APK 文件是用专业软件 eclipse 编译生成的文件包。在网上可以找到许多软件来对 APK 的内容进行反编译,例如:可以通过AXMLPrinter2 工具和命令:java -jar AXMLPrinter2.jar AndroidManifest.xml 解开在 apk 中的 AndroidManifest.xml。最近,业界有一个功能强大的解包打包工具包 apktool,可以在Windows 下用来方便快速地对 APK 文件

6、进行解包和打包,给修改和编辑工作带来许多方便。下面来介绍它的使用。1) APKtool 软件包APKtool 软件包有 2 个程序组成:apktool.jar 和 aapt.exe另外提供一个批处理文件:apktool.bat,其内容为:java -jar %dp0apktool.jar %1 %2 %3 %4 %5 %6 %7 %8 %9运行 apktools.jar 需要 java 环境(1.6.0 版本以上) 。apktool.jar 用于解包,apktool.jar 和 aapt.exe 联合用于打包。2) APK 文件的解包下面以解开 Contacts.apk 为例。首先把 Cont

7、acts.apk 复制到当前工作目录下(例:Test) 。在 DOS 下打入命令apktool d Contacts.apk ABC这里“d”表示要解码。Contacts.apk 是要解包的 APK 文件。ABC 是子目录名。所有解包的文件都会放在这个子目录内。3) APK 文件的打包在 DOS 下打入命令apktool b ABC New-Contacts.apk这里“b”表示要打包ABC 是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。New-Contacts.apk 是打包后产生的新的 APK 文件。4) Framework 框架文件在解开 APK 文件时,apkt

8、ool 需要框架文件(framework-res.apk)来解码和打包。Apktool 已经包含了标准的框架,所以在大多数 APK文件的解包时,不需要另外提供框架文件。但是,某些制造商使用了他们自己的框架文件,为了解包,就不得不从手机中把框架文件(framework-res.apk)提取出来,然后安装到计算机。安装命令是:apktool if framework-res.apk 安装后就会得到:apktoolframework1.apk5) 解包、解包和签名批处理在实际使用时,可能对多个 APK 文件进行处理。方便的做法是写成批处理文件。打包和签名可以一次完成。解包批处理命令:for %i i

9、n (*.apk) do java -jar apktool.jar d %i _%i & move _%i Modifying_Files & copy %i Backuped_Raw_Files & echo File %i unpacking process is completed!打包和签名批处理命令:for /d %i in (*) do cd. & java -jar apktool.jar b Modifying_Files%i & java -jar signapk.jar testkey.x509.pem testkey.pk8 Modifying_Files%idist*

10、.apk %i & ren %i New%i & move New%i Modified_Signed_Files & echo %i Complete repacking and Signing! & cd Modifying_Files3.应用实例:APK 解包后的编辑和修改为什么要对 APK 文件进行解包?当然要对其内容进行必要的修改。修改什么呢?通常,如果只是对图像进行替换,没有必要进行解包和打包。用 WinRAR 打开 APK 文件,直接做替换就可以了。但是,如果要对文字和其它非图像类内容进行修改,那只能通过解包解码了。下面几项任务需要对 APK 进行解包和打包。这里只作大概介绍,请

11、自己去找详细的操作方法和教程。1) 汉化 APK 软件在 res 文件夹中,我们可以看到有很多 values-*的文件夹,这就是语言包。values 是英文语言包,values-zh 是中国地区语言包(包含港澳台及内地) ,values-zh-rCN 是中文简体语言包(只包含内地) ,values-zh-rTW 是中文繁体语言包(港澳台) 。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。在 values 文件夹里,通常有 arrays.xml、strings.xml 等语言文件,要作汉化就要对这些文件进行修改。有时也需要修改其它 xml 文件,一个一个地认真查看。2) 修改图标标签

12、每一个 APK 文件都有一个“图标标签” 。将 APK 程序安装进手机后,在图标下面显示图标标签文字。这个图标标签的内容是可以修改的。在resvalues 下找到 strings.xml,修改其中的一行:图标标签例如:静音启动同理,如果是窗口小插件,要修改 widget_name。注意:system/app 下的 apk 不宜修改,因为要同时修改对应的 odex文件。3) 去掉 APK 中的广告有很多 APK 应用都带有广告。为了去掉程序中的广告,要修改main.xml 文件与广告有关的内容。在res 目录下找到文件main.xml。通常在layout 目录下,有时也被放在其它目录下。甚至,有

13、时不存在 main.xml 文件,广告行被放在其它 xml 文件内。只能细心逐个文件进行查找。无论哪一种情况,查看其内容,你会看到有一项类似的命令如下。这就是广告显示。将其改为:可以看到,关键是要把 fill_parent 改为 0.0dip,把 wrap_content改为 0.0dip,其它保持不变即可。这种改法就是不给广告显示空间,当然你就看不到广告了。4) 修改显示电池为 1%精度在 XT502 上,默认显示只有 7 档: 0%,10%,20%,40%,60%,80% 和 100%。通过修改 framework-res.apk,可以改变显示精度。但是在 XT502 上,实践证明最好可能

14、达到的现实精度只有 10%。修改工作如下:(1) 对 framework-res.apk 进行解包(2) 修改和增加电池状态图标(3) 修改文件 stat_sys_battery.xml(4) 修改文件 stat_sys_battery_charge.xml(5) 打包(6) 提取stat_sys_battery.xml,stat_sys_battery_charge.xml,resources.arsc 和一个图标目录:drawable-mdpi(7) 重新装配 framework-res.apk5) 状态栏信息通知文字颜色修改状态栏信息通知文字颜色,是由 framework-res.apk 文件里resvalues 下的 colors.xml 文件控制的,所以我们只需修改colors.xml 文件就可以了。另外,此文件还控制下拉栏的文字颜色,可以修改。用文本编辑器打开 colors.xml 文件,找到#ff000000 将这句修改为:#ffffffff这状态栏信息通知文字颜色由黑色改为白色。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号