×

如何修改APK自己DIY的详细资料说明

消耗积分:0 | 格式:rar | 大小:0.04 MB | 2019-01-03

分享资料个

  也许许多人都曾经想过要修改APK自己DIY ,但不知道怎么下手,其实要修改APK并没 有想象中的那样复杂,这个虽不能让你成为 高手(那要有程序基础才可能),但至少入门 是没有问题的,涵盖了大部分的东西,全 方位step By step的教你怎么弄这些东西!

  部分文字来源网络,错误难免,请指正: 一、APK文件结构介绍 二、JAVA环境的搭建 三、常用工具介绍及基本使用 四、APK的美化、汉化、去广告

  一、APK文件结构介绍:

  简单的认识一下APK文件的结构,apk文件 实际是一个zip格式的压缩包,只不过后缀 名为.apk,所以我们完全可以通过解压缩工 具(例如WINRAR,好压)解开,解开后你将看到 大致如下的结构:

  文件 AndroidManifest.xml是每个应用都必须定义和包含的,它描述了应用的名字、版本 、权限、引用的库文件等等信息,如要把a pk上传到Google Market上,也要对这个x ml做一些配置。 META-INF目录 META-INF目录下存放的是签名信息,用来 保证apk包的完整性和系统的安全。在eclip se编译生成一个api包时,会对 所有要打包 的文件做一个校验计算,并把计算结果放 在META-INF目录下。而在Android平台上安 装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与ME TA-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文件不能 被随意替换。比如拿到一个apk 包后,如果 想要替换里面的一幅图片,一段代码, 或 一段版权信息,想直接解压缩、替换再重 新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于 保护系 统的安全。 classes.dex文件 classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex 文件与class文件相比,不论是文件结构还 是opcode都不一样。目前常见的java反编 译工具都不能处理dex文件。 Android模拟器中提供了一个dex文件的反 编译工具dexdump。用法为首先启动Andro id模拟器,把要查看的dex文件用adb push 上传的模拟器中,然后通过adb shell登录 ,找到要查看的dex文件,执行dexdump x xx.dex。 目前在网上能找到的另一个dex文件的反编 译工具是Dedexer。Dedexer可以读取dex 格式的文件,生成一种类似于汇编语言的 输出。这种输出与jasmin[ ]的输出相似,但 包含的是Dalvik的字节码。我们会在下一节 详细介绍一下Dedexer。 res 目录 res目录存放资源文件。 resources.arsc 编译后的

  二进制资源文件

  二、JAVA环境的搭建

  打开www.oracle.com下载JDK,

  这里同时提供一个JDK下载的直通车地址: http://download.oracle.com/otn-pub/java/jdk/7u3-b05/jdk-7u3-windows-i586.exe

  安装JDK,一路下一步, 配置系统环境变量,以WIN7为例: 我的电脑--》属性--》高级系统设置--》环境变 量--》系统变量 新建JAVA_HOME 变量名:JAVA_HOME,变量值:JDK的安装 目录 新建CLASSPATH 变量名:CLASSPATH,变量值:%JAVA_HO ME%\lib\*.jar PS:%JAVA_HOME%表示引用JAVA_HOME的 值,相当于程序中的变量,如果不填写%JAV A_HOME%,可以直接填写路径绝对值 编辑path, 在变量值末尾加上 ;%JAVA_HOME%\bin

  PS:“;”为不同路径之间的分割符

  配置完成后,点开始--》运行--》输入CMD回 车--》输入JAVA回车,看到如图(2-6)配置成 功,否则请仔细检查系统变量是不是配置 有误

  三、常用工具介绍及基本使用

  1、反编译利器apktool 官方下载地址:http://code.google.com/p/an droid-apktool/downloads/list (需要下载“apktool-install-windows-2.2_r01 -3.tar.bz2”和“apktool1.3.2.tar.bz2”两项,解 压出里面的东西) 我们得到需要的3个文件,分别是:aapt.ex e、apktool.bat、apktool.jar 可以将这三个文件直接放到C:\Windows下 ,这样不用配置环境变量 或者放到任意目录,然后在path变量中追 加上该目录 apktool在cmd中两个最基本的命令如下: 反编译:将X盘的abc.apk反编译,并将处理后 的文件,放在X盘内的“helloworld”文件夹内。 apktool d X:\abc.apk X:\helloworld PS:当然在实际应用中,一般都是CMD先定 位到要反编译的apk文件目录下,这样命令就 不用输入绝对路径,而变成了 apktool d abc.apk helloworld 编译:将“helloworld”文件夹重新编译 apktool b X:\helloworld 特别注意:有些APK文件的编译是需要RO M中的框架的,例如conversation.apk要反编 译,同时需要framework里的framework-res /blur-res/moto-res三个apk,简单说一下如 何导入框架: 添加framework的命令: apktool if framework-res.apk 当然多数情况是不用这样的,要编译其它 的不需要这些框架的APK请删除导入的文件

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !