Android APK系列5-------修改APK中的内容

首先我们需要下载反编译工具,apktool_gui_1.3.5这个是很好用的反编译工具,可以编译apk、dex。当然如果只是简单修改APK中某个文件的内容,可以简单的把扩张名从.apk改为.zip, 然后用winrar打开修改即可。现在以反编译framework-res.apk修改锁屏界面和状态栏的“中国移动”四个字为例。

1、首先,打开编译工具apktool_gui_1.3.5.exe,将framework-res.apk拖到相应编译栏。

点击反编译apk

2、反编译之后会生成一个framework-res的文件夹。我们按照路径打开framework-res\res\values-zh-rCN

路径下的strings.xml文件
3、用文本编辑器打开以后,  搜索china_mobile 你就会找到这样的一个节点,修改中国移动或中国联通几个字。

4.再点重建APK,之后生成2个apk,一个已签名,一个未签名,删掉这两个,没有用了
5打开framework-res文件夹,发现里面多了一些文件。打开build/apk就看到了之后的APK

此讲涉及到反编译(回编辑后需要把你在apk中的改过的xml文件替换到原版apk中,修改了带value字样文件夹下的xml要替换apk中resources.arsc这个文件)

反编辑framework-res.apk 
1.修改内容如下:
打开
res/values/colors.xml
<color name="bright_foreground_dark">#ffc8c8c8</color>设置界面以及对话框顶栏字体颜色
<color name="bright_foreground_dark_disabled">#80ffffff</color>未启用功能字体颜色(暗色)
<color name="dim_foreground_dark">#ffbebebe</color>    关于手机里的 型号 版本号字体颜色
<color name="dim_foreground_dark_disabled">#80bebebe</color>关于手机里的 型号版本号以及二级目录字体暗颜色
<color name="hint_foreground_dark">#ff808080</color>输入框内提示文本颜色
<color name="dim_foreground_light">#ff323232</color>关机界面 飞行模式等下的二级文本颜色
<color name="bright_foreground_light">#ff000000</color>选择列表字体颜色
<color name="status_bar_text">#ffffffff</color>状态栏字体颜色
<color name="status_bar_clock_text">#ffbebebe</color>状态栏时钟字体颜色
<color name="status_bar_event_primary_text">#ffffffff</color>下拉提示栏字体主颜色
<color name="status_bar_event_secondary_text">#ffb6cad6</color>下拉提示栏二级字体颜色
<color name="sub_text_color">#ff6e9cba</color>全局二级字体颜色

把以上的颜色代码修改为你喜欢的颜色 然后保存并退出颜色格式为ARGB

2.现在回编辑 并替换resources.arsc到原framework-res.apk

8、然后转到没有修改过的apk文件。将原来没有修改过的apk以压缩软件打开。将上面framework-res文件夹里面build/apk下的resources.arsc直接拖入到压缩文件中
9、关闭 ,反编译完成。
10、修改好了的apk,放到手机。修改权限,替换原文件之后就有你的效果了

例子:

修改电池进度条

打开解包得到的framework-res文件夹,进入res\drawable-hdpi ,向下,找到stat_sys_battery_0 可以看到,
原机的电池图标是以5为间距的。我们要做的就是把目标图标编好文件名,放置在该文件夹内。那么我们在正常状态下的电池图标顺序就是stat_sys_battery_0至stat_sys_battery_100。
当然,我们也可以添加充电动画,原机的是stat_sys_battery_charge_anim0至stat_sys_battery_charge_anim5,
我们可以随意添加,
现假设动画有21个。也就是stat_sys_battery_charge_anim0至stat_sys_battery_charge_anim20。
好了,图标问题搞定。下面是修改代码。
打开res\values\public.xml。

现在我们的工作就是为刚才我们添加的文件编写ID。
这里要注意的是我们所编写的ID必须是连续的,不重复的,ID的顺序是按照16进制来的,也就是逢16进1。
下面进入正题,为我们的图片资源编写ID。
找到<public type="drawable" name*****这一段。
看一下该字段的最大值是多少,并在其后接着添加ID。
记得十六进制还有就是不重不漏。保存。最麻烦的修改完成。。
打开res\drawable。
打开stat_sys_battery.xml
图示文件是原版的,该文件的作用是将图标对应相应电量。这么一说,了然了吧?
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" />
后面怎么做,你懂的。
打开res\drawable。
打开stat_sys_battery_charge.xml
该文件是控制充电时动画的。
原文见格式见图:

可以看到<item android:maxLevel="数字">这一句是用来控制在电量低于该数值时的动画,

<animation-list android:neshot="false"这一句用于控制动画循环方式

Android:neshot=为true时表示动画仅循环一次并停留在最后一帧上。然后后面的代码

<item android:duration="数值"这一句用来控制某一帧动画的持续时间,单位是毫秒。后面的代码含义就不用解释了……

修改吧!这个自主性比较强,可以任意修改,能够保证打包成功就好。当然,如果你不想修改充电动画,那么这个文件是不需要修改的。保存退出。

至此,所有操作完成。进入最后一步,打包。

还是用apktool
上述操作无误的话。会没有任何错误提示的完成

至此,重要工作完成,下面要做的……
用winrar或者7z打开原机的framework-res.apk和你生成的apk文件。
将电池资源图标复制到原机文件的drawable-hdpi文件夹下,winrar的压缩方式选择存储,7z就不用管了。将修改好的文件中的resources.arsc以及res\drawable下的stat_sys_battery.xml和stat_sys_battery_charge.xml三个文件拖放到原机文件中,操作注意点同上。至此,所有修改工作完成,你要做的就是用re将文件复制到system目录下,修改权限为1247,复制到framework文件夹下。

Android APK系列5-------修改APK中的内容相关推荐

  1. Android APK系列4-------Android编译APK后的系统结构

    Android APK系列4-------Android编译APK后的系统结构 system文件夹就是system.img的解压结果,data就是userdata.img的解压结果,root就是ram ...

  2. ajax点击更改div,jquery ajax双击div可直接修改div中的内容

    jquery ajax双击div可直接修改div中的内容 发布于 2017-04-03 17:26:16 | 127 次阅读 | 评论: 0 | 来源: 网友投递 jQuery javascript框 ...

  3. html表格td的内容修改,点击table中的td,修改td中的内容功能实现

    点击table中的td,修改td中的内容 前段时间,需要搭建演示页面,有个功能是实现点击表格中的某一格,能够修改对应格子中的内容,一开始不知道怎么写,在网上找了一下,自己再整合了一下,功能实现的代码如 ...

  4. 一分钟修改网页中的内容

    欢迎访问新博客~ 有时候需要修改网页中的内容,一般采取的做法是截图网页然后使用PS或特殊工具修改,这种方法麻烦又费力,而且修改后的效果往往不是很好. 现在介绍一种小技巧,可以直接在网页上修改内容,简单 ...

  5. JQuery实例(三)- 动态修改Table中的内容

    在第一个例子中,二级联动,改变省份的时候,会动态修改另一个下拉框的内容. 这里修改为,改变一个Table中的内容. <%@ page language="java" cont ...

  6. android逆向01:修改apk的资源文件,smali插桩

    前提: 有需求才有实现. android逆向能干什么?去除游戏中的广告,跳过各种支付达到付费效果,人为干预简化游戏流程直奔主题,无限增加各种付费道具,等等:当然可以对自己的apk进行逆向的逆向进行加固 ...

  7. Android玩乐系列:修改汇编代码支持原生高清来电大头贴(二)

    [ 本文分三篇.本篇提供一个最小的修改案例.更详细的修改请参考篇三: http://blog.csdn.net/aimingoo/article/details/7939132 ] (前三节有关背景介 ...

  8. android 数据持久化——读写SD卡中的内容

    在前面讲的那三个方法:openFileOutput .openFileInput 虽然都能通过流对象OutputStream和InputStream可以处理任意文件中的数据,但与SharedPrefe ...

  9. 网页中嵌套网页flush_如何修改网页中的内容?

    注意:请勿将本文中提到的技术用于违法行为,因此造成的损失我不承担任何责任. 简介 之前在内测群里聊天,我才发现几乎没有人知道如何修改一个网页中的内容,除了相关领域.可能是因为我已经接触了前端的一些知识 ...

最新文章

  1. 配置隧道模式的IPSec.×××
  2. 亚马逊向土耳其企业启动“全球开店”计划,要和中国卖家抢夺欧洲市场
  3. PID入门的十五个基本概念
  4. SAP CRM的IOITF框架:Individual Object Integration Framework
  5. Qt-qwidget项目入门实例
  6. mysql decode语句_MySQL复制问题的分析
  7. bash环境变量配置
  8. 基于canvas的前端图片压缩
  9. 博弈论mooc期末考试答案
  10. 北京今日起最低工资和养老金标准全部上调
  11. 利用Python在统计局网站爬取统计年鉴
  12. matlab中如何去掉多行注释_matlab注释多行的方法
  13. CAN总线概念(一)
  14. HTML5 Canvas组件绘制太极图案
  15. 从源码角度浅谈IRP
  16. 模拟集成电路设计与分析——全差分放大器
  17. 知识图谱与推荐系统(DKN)
  18. 得到《三体》听书笔记
  19. 神经形态计算的物理学
  20. python+selenium——详解介绍Selenium常用API的使用--python语言(完整版)

热门文章

  1. Ubuntu解压文件的方法
  2. SQL Server创建计划任务
  3. Request,Request.Form,Request.QueryString
  4. Golang最佳Web框架对比
  5. 2018 年React 将独占前端框架鳌头
  6. python 空列表对象的布尔值_python – 从TensorFlow对象中检索数据 – 来自correct_prediction的布尔值列表...
  7. python五类前景_如何在Python中实现这五类强大的概率分布【转】
  8. java 通讯开发_java之接口开发-初级篇-socket通信
  9. linux内核动画,8个炫酷的HTML5动画、应用和游戏
  10. 程序中try、throw、catch三者之间的关系