WAP手机网站 手机下载 手机软件 手机游戏 手机网游 手机主题 手机图片 手机铃声 手机世界微博
手机游戏攻略

摩托罗拉 ME525 改电池图标时得到的两点经验

scorpiorick 友人 2011-4-27

这几天为了整个能够精确显示电量的电池图标,杯具了无数次,好在Defy刷不死。

两三天折腾下来终于基本搞定了,中间有一些小经验,在此记录一下,供需要的兄弟查阅,避免杯具重演。

本文档说了两件事情:

1. 修改10%电量显示图标(其实就是修改framework-res.apk文件,替换图片资源和编辑XML文件的方法),这个事情有很多人写过教程了,但是很多帖子不是很全,setp-by-setp地做还是会杯具,所以在此记录一下我自己验证过的做法;

2.PC端编辑img文件,毕竟PC端操作效率高些,而且直接刷一个精简、美化完毕的img镜像,比刷完原版镜像再去精简的感觉还是要好一些。

对这两件事情没兴趣的兄弟就不用往下看了。

先说修改电量图标:

上张改图标之后的截图:

希望将来有高人能研究出不依赖其他软件实现1%电量显示的方法,从配置文件看来既然可以自定义maxLevel,应该不可能实现不了1%电量显示,不明白限制在哪里。

APK包其实是zip算法压缩的,这点和JAR一样,所以我们可以很方便地用WinRAR之类的压缩软件来打开APK,并且可以直接读取里面的图片资源。但是要实现10%电量显示,光替换图片是不够的,还需要修改XML文件,而直接通过压缩软件查看XML文件,发现不是ASCII文件,不能直接编辑,所以第一步是要反编译APK文件。

这里需要用到apktool,请需要的兄弟自行google,apktool运行需要JRE,不明白什么是JRE的兄弟也请自行google,然后去Oracle网站下载安装。

将原机的framework-res.apk拷贝到apktool目录下,命令行执行:

apktool.bat d framework-res.apk

在apktool目录下生成了一个叫做framework-res的文件夹,里面就是反编译出来的可读的东西。

将framework-res.apk重命名为framework-res.apk.zip,等下会用到。

stat_sys_battery.xml文件就是控制特定电量下调用特定图标的文件了,一共两个,一个在framework-res\res\drawable,一个在framework-res\res\drawable-hdpi,不知道真正起作用的是哪个,反正我两个都编辑了。编辑结果如下:

红色部分的maxLevel是指,电量下降到这个百分比的时候,去调用前面的这个图标文件。

图标文件是png格式的,大家可以自己去网上找,去解包美化过的frameworks-res.apk也行,反正stat_sys_battery_0、5、10、15、20、30、40、50、60、70、80、90、100都要有,放在framework-res\res\drawable-hdpi下面就行了。

然后重新用apktool打包,命令如下:

apktool b frameworks-res frameworks-res.apk

apktool就会重新把反编译出来的东西编译回去。但请千万注意,这个apk的包是不能替换到机器上去的,里面没有证书信息,直接替换上去包你陷入无尽重启的杯具。很多帖子这里都不交代清楚,我因此杯具了很多次。

用WinRAR打开frameworks-res.apk和frameworks-res.apk.zip(注意后者才是原版),将前者的stat_sys_battery.xml(两个)拖放到后者的同路径下,并将stat_sys_battery_*.png的13个图片文件也拖过去(图片文件直接从外面拖进压缩包也行,但xml文件必须从编译好的apk文件拖),最后很重要:把前者第一层目录下的resources.arsc拖到后者的同路径下覆盖原文件,不然在手机上进行frameworks-res.apk替换后,电池图标将消失不见。

总结一下:

从新打包出来的文件拖放

res/drawable/stat_sys_battery.xml

res/drawable-hdpi/stat_sys_battery.xml

res/drawable-hdpi/stat_sys_battery_*.png

resources.arsc

到原apk文件的相同路径下即可。

然后把framework-res.apk.zip传到SD卡上,重命名回framework-res.apk;

用RE管理器将framework-res.apk复制到/system,更改权限为0777或至少0644(重要);

然后把更改好权限的文件剪切到/system/framework,覆盖原文件;

手机自动重启(万一没自启就手工重启下),就看到新的电池图标了。

以上步骤请勿颠倒,否则容易出现无限重启的杯具。

再说PC端编辑img文件的事:

先说说img文件从何而来:

1. 高人解包sbf文件的来原版的system.img;

2. Defy Recovery软件备份系统得来的img文件,一般我们要编辑的也是system.img文件。

用到的软件是这个:

过程很简单,用YAFFS2IMG浏览器打开system.img文件,该删的删,该替换的替换,当然这东西还有个很重要的用处:删错了什么系统服务需要恢复apk包的话,可用这种方法到img文件里头提取。

新替换进去的文件注意要修改一下权限,右键需要改权限的文件,选“权限”即可:

参考其他文件的权限,有些镜像里头是0644的,有些是0777的,其实两种都行,主要是给所有用户读权限,但跟其他文件改成一样的心里舒服点。

精简系统服务、替换字体、替换frmaeworks-res.apk都可以在这里面完成。完成之后点击“整理另存”,生成新的镜像,存的时候接受默认设置即可,如图:

下面有一点很重要,用新生成文件替换原system.img文件后,需要编辑与之同一路径的nandroid.md5文件。该文件记录了每个img文件的md5码,不修改的话,Defy Recovery恢复的时候会md5 checksum error,恢复不了。

用WinMD5、Hash之类的软件得到新生成的system.img文件的md5码,然后用UltraEdit之类的支持Linux格式文本的编辑器打开nandroid.md5,替换system.img项的md5码,注意小写,不然比对的时候,Defy Recovery不认为大写和小写是一码事。这里用UltraEdit等比较专业的编辑器是因为Windows下的换行符和Linux下是不一样的(Android源于Linux),Windows自带的编辑器会破坏Linux换行符,但我没有测试Defy Recovery是否支持Win的换行符。另外,UltraEdit中将大写转化为小写也很方便,选中要转换的内容,Ctrl F5就行了。

然后用正常的方法去恢复镜像就行了,恢复之后你会发现该精简的精简了,该替换的也替换了。不过如果因为过度精简造成系统进不去啥的请别找我,自己重新刷底包,再来过好了。

另:本文档中提及的所有软件都没法提供下载(因为没有空间,网盘又只能是临时的),请需要的兄弟自行使用万能的google查找。

搞完收工,谢谢观赏。

现在的效果是可以显示13档电量,分别为:

0 5% 10% 15% 20% 30% 40% 50% 60% 70% 80% 90% 100%

本来想做到1%精度的,无奈经过简单测试以及查阅资料,发现Defy最多就只能支持到这13档。

但比原生的7档还是要精确一些的,有原XML配置文件为证:


 

手机资讯


手机资讯
经典游戏新版本更吸引人 苹果热门游戏推荐
销量口碑均占优 各品牌手机中流砥柱一览
低端手机哪个好 1000元左右智能手机推荐
720P视频连播14小时 摩托罗拉XT910 MAXX评测
4.3英寸已成主流 超人气大屏手机推荐
经典游戏重现江湖 一周Android游戏推荐
电信定制售价1999元 HTC新渴望VC上市
三星五一全国促销 热门手机选购推荐
不抢风头不算好手机?HTC Titan II解析
1.4GHz四核+2050mAh 三星GALAXY SIII现身



手机资讯
免费才是王道 APP免费应用大全
iOS5更新 图片+视频演示自定义多点手势
HTC S710e(Incredible S,2.3.3系统)初体验
微生活 小清新 818我刚入手的OPPO A127
WiFi减少不用愁 三招教你随时无忧上网
大葱玩手机 用天翼wifi热点畅玩网络应用
中国式情人节 2011年77条七夕传情短信
手机拍照宝典第一篇:手机拍出靓照技巧
打磨抛光后盖小改造 HTC HD2电镀版教程
手机流言终结者:智能手机真会中病毒?
手机论坛


  诺基亚手机 苹果手机 HTC手机 三星手机 摩托罗拉手机 索爱手机