[讲解]android修改状态栏时间和日期颜色
android修改状态栏时间和日期颜色
条件:手机获取ROOT权限和安装R.E.管理器,刷入或安装好Recovery并备份,我是在死机后用Recovery N次恢复试验才成功的。
我的手机为华为c8500,/system/framework下有services.odex 和services.jar ,但services.jar里没有classes.dex,只有一个META-INF文件夹,但网上教程多数是修改services.jar里的classes.dex文件的。
下载并安装软件java jdk 7(java jdk1.7.0):
网盘下载 官网下载
下载需要的软件工具包:BAT批处理.zip
下载:ADB SHELL.RAR
用R.E.管理器将/system下的framework整个文件夹复制出来放到电脑任意盘,将framework文件夹下的所有文件复制到如D盘下的名为 abc 的文件夹,将BAT批处理.zip解压,把 odex、dex转class.bat class转dex.bat smali.jar baksmali.jar 等所有文件都放到D盘abc文件夹里。
在abc文件夹里找到services.odex,把它拖到 odex或dex转class.bat 这个批处理文件图标上,就会生成一个out文件夹,里面就有要修改的文件。(这个bat批处理可以将xxx.odex和xxx.dex反编译为class,odex文件需要framework下的文件,dex反编译则不需要framework下的文件)
修改时间颜色:文件位置在
D:\abc\out\com\android\server\status\StatusBarIcon.smali
直接进入out文件夹,搜索StatusBarIcon.smali 即可,用windows自带记事本打开,查找
const/high16 v6, -0x100 (状态栏时间颜色是黑色才行)
将 const/high16 v6, -0x100 修改为 const v6, -0x1
-0x100为黑色, -0x1为白色,先试验白色,成功后修改什么颜色都可
点记事本文件按钮,点保存,关闭记事本。
将out文件夹拖到 Class转dex.bat 的文件图标上面,自己选择用:自动删除out文件夹和不删除out文件夹的批处理
批处理完成后产生一个classes.dex的文件。
接着是将classes.dex添加进services.jar里
参考:android修改Framework-res.apk使状态栏背景颜色为黑色或透明
里的部分
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
如下:
替换statusbar_background.9.png的方法
由于apk并不是真正的zip,所以替换方法并不像普通的zip
用winRAR打开原来的Framework-res.apk
进入到你要修改的文件夹
将改好的图拖入这个窗口(文件名一定要一致)
在弹出的这个窗口中选择文件选项卡
将“要添加的文件”一栏中的内容剪切到“不压缩直接存储的文件一栏中”
文件路径选择“不储存路径”
单击确定
这样,一个加工过的Framework-res.apk就完成了
五、安装至手机
使用RootExplore将新的Framework-res.apk复制到/system文件夹下
将权限修改为:rw-r--r--
在使用RootExplore将这个该国权限的新Framework-res.apk移动到system/framework文件夹里覆盖原来的Framework-res.apk,重启就可以看到新效果了。
参考完毕了~
继续
用Winrar打开services.jar,将classes.dex拖到winrar窗口里,在弹出的这个窗口中选择文件选项卡 ,按照上面的方法用快捷组合键剪切:Ctrl+x 剪切后Ctrl+v粘帖,文件路径选择“不储存路径”,点确定即可。
如何生成services.odex文件:
1.先查看\system\bin有没有dexopt-wrapper,没有就将tool目录下的dexopt-wrapper复制到手机\system\bin目录下,并修改好权
限(和其他文件权限相同即可,即wrx-等九个代码一样)
2.复制修改好的services.jar到内存卡下 注意:
文件名不可更改
3.开启USB调试模式,即USB调试设置要打勾
4.将ADB SHEL.RAR解压,把里面的两个文件复制到C:/windows/system32下,打开CMD,开始-运行-输入cmd后点确定,或直接到C:/windows/system32下打开cdm.exe,输入adb shell,等待出现$
5.输入su命令,此时手机上会跳出授权,记得点,否则进不去,成功后出现#
6.输入cd /sdcard/
7.输入 dexopt-wrapper services.jar new.odex
8.输入 busybox dd if=/system/framework/services.odex of=new.odex bs=1
count=20 skip=52 seek=52 conv=notrunc
如图:
9.新生成的new.odex和原services.odex大小基本一样。
用R.E.管理器将new.odex改名为services.odex,复制到/system/,改权限,如下图:
,>注意
:进行这步操作前,请备份/system/framework/内原services.odex至内存卡 内/backup/目录下。系统必须用Recovery备份~
按住services.odex,选移动或剪切,进入framework ,粘帖,提示替换,点确定。
重启
(c8500状态栏修改的时间颜色无改变,N次各种无聊尝试也无效)
参考:
恢复原odex:
1.恢复模式下,挂载sdcard、system
2.连接usb线,开启cmd,进入tool目录下
3.输入adb shell
4.输入su
5.输入busybox cp /sdcard/backup/services.odex /system/framework/services.odex
6.如果提示read-only file system,则输入 mount -o remount,rw rootfs
/system/
复制代码后再进行步骤5,注意空格
7.输入cd /system/framework
8.输入busybox chmod 644 services.odex
9.输入sync
10.输入reboot
继续正题:
“人说听君一席话,胜读十年书”,这句话的第一次实在地感受到,感谢这位仁兄:u8110修改时间白色的方法(u8110的特殊)
要得是这句:郁闷好久,终于发现,还需要修改 system/build.prop 文件中的 ro.config.SetStatusbarText=true 值修改为 false,才能生效
按照上面用R.E.管理器修改后,重新启动,时间变白色了,至于日期不重要就不改了,时间搞定了,日期……。
真难找在那么多代码中,设想方法:把/system/build.prop复制出来,用记事本打开,搜索SetStatusbarText ,修改后替换/system/build.prop,权限(即wrx-)要和原来一样——这仅是设想~但可用记事本打开build.prop
原文很短只有几句:
论坛搜索关键之 时间 白色 即可具体方法就不重复了
反编译 services.odex,修改2个源文件,重新编译,重新生成odex文件,修改 37~44字节,刷回去
但是,我的U8110/citylink系统却只有日期变颜色了,通知栏上的时间却老是黑 色
郁闷好久,终于发现,还需要修改 system/build.prop 文件中的
ro.config.SetStatusbarText=true 值修改为 false,才能生效
哦,忘了,一般还要修改通知栏的通知信息颜色
这个是修改 framework-res\res\layout 下的 status_bar.xml 用apktool 解开 后,打开该文件
把有 android:textColor= 的地方后面的颜色全部改成 #ffffffff。修改过后是 这样的
android:textColor="#ffffffff
重新生成odex文件,修改37~44字节,刷回去,这个是我没改。
状态栏修改成功截图:
修改之前: