您的位置:首页 > 移动开发 > Android开发

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

2016-03-17 00:29 429 查看


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文件夹下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: