机锋上的zzc文章,不知道是否可行,先转,然后试试看
我实验了,不行!!!!!!!!!!!!!!!!!!!!!
本文主要介绍services.odex的反编译、修改及编译
主要修改还是日期和时间的颜色,不止是白色与黑色哦,吼吼~
--------------------------------2011-5-10 16:53更新-----------------------------------
修正日期修改里有关变量名的问题
谢谢占米版主加精!{:125_461:}
--------------------------------2011-5-8 18:23更新-------------------------------------
我的教程帖:
--------------------------------2011-5-2 07:03更新-------------------------------------
加入颜色代码如何获取教程
--------------------------------2011-5-1更新--------------------------------------------
修正了一个小问题
接下来是抱怨,同学们可以略过...
最近论坛气氛真不咋地,技术贴都不知道沉到哪里去了。
我的观点是手机好坏已成定局,硬件方面、rom方面真的是没法强求,我们唯一可以努力的是技术方面的东西,虽然我发的这个帖技术含量比较低,但从它受到的关注程度可知,论坛的机油们不是很重视DIY的东西,只希望别人弄好现成的(并非反对伸手党),即便如此,有些同学还是要抱怨这抱怨那。
我们现在面对的现状是,用户少->开发者少,这种现状直接导致各种蛋疼人士、蛋疼帖...
所以,个人认为,论坛更应该倡导技术风,机油们应该果断顶起技术帖,而不是成天讨论那些我们无能为力的事情,为啥没人讨论技术问题呢...
以上这些也就是自己发发牢骚,因为帖子沉得太深了,难免有些不爽...
另外,同学们如果有什么技术方面的问题,也可以问我...不一定懂,但我会认真回复~
------------------------------------------------------------------------------------
我自己修改的成果图
->原生桌面(BlurHome.apk)的修改,透明的哦~
放出修改好的文件-> 传送门
很多同学可能在反编译时会碰到很多问题,这里我给出我的反编译方法:
(系统:windows)->我的是windows7,不过应该都行的吧,反正都用CMD的
(环境:java环境,如需教程,请百度或Google)
1.下载附件中的tools.rar,解压到非中文目录
2.拷贝手机/system/framework/下的android.policy.odex、core.odex、ext.odex、framework.odex、services.odex、 com.motorola.android.widget.odex ,共六个文件至baksmali-1.2.6.jar所在的目录下
3.打开命令提示符(CMD),进入tool目录,输入
- java -Xmx512M -jar baksmali-1.2.6.jar -c :com.motorola.android.widget.odex -x services.odex -o services
修改时间颜色:修改文件位置 \tool\services\classes\com\android\server\status\StatusBarIcon.smali
1.右击编辑,查找
- Landroid/widget/TextView;->setTextColor
- const/high16 v6, -0x100
- const v6, 0x?
4.保存
修改日期颜色: 修改文件位置 \tool\services\classes\com\android\server\status\StatusBarService.smali
1.右击编辑,查找
- Lcom/android/server/status/DateView
2.你应该会找到这么一行代码
- check-cast v?, Lcom/android/server/status/DateView(中文问号“?“可能为任何数字)
- const v8, 0x?
- invoke-virtual {v?, v8}, Landroid/widget/TextView;->setTextColor(I)V
4.保存
关于颜色:
格式为ARGB
例:0xFE DC BA 12
其中
FE ->透明度:0(完全透明)~FF(不透明)
DC ->红色:0~FF(越大表示越偏向红色,以下相同)
BA ->绿色:0~FF
12 ->蓝色:0~FF
对于看不懂上面这些内容的同学,我在提供一个好方法,使用pixie.zip(11.65 KB)这个软件,它会分析鼠标当前所指位置的颜色代码,运行软件,将指针指向想要的某个颜色,会在软件框里出现 例如下图的提示
红色的字是我加进去了,“HTML”后面的#FF7F27就是我们要的代码,当然,这个没有包含透明度,请在“#”后加入透明度,一般都为FF,即可得到完整的颜色代码 为“0xFFFF7F27”
编译dex:java -Xmx512M -jar smali-1.2.6.jar services -o new-classes.dex
将生成的new-classes.dex重命名为classes.dex,拖入services.jar内,在跳出来的压缩窗口中,选择文件,将“要添加的文件”框内目录剪切,复制到“不压缩直接存储的文件”框中.
最后再介绍如何生成odex文件:
1.将tool目录下的dexopt-wrapper复制到手机\system\bin目录下,并修改好权限(和其他文件权限相同即可)
2. usb“ 大容量存储” 连接手机, 复制修改好的services.jar到内存卡下 注意:文件名不可更改
3.开启调试模式,保持usb连接,改usb模式为“无”(欧版为“无”,国行应该是“仅充电”)
4.CMD到tool目录下,输入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. 对比一下文件大小,如果相差很大(原odex为1.7M,编译后为1.55M的情况),说明不行,请跳回步骤4再试,还不知道原因在哪里
10. 此时就成功生成odex咯
11.将其改名,复制到/system/,改权限,复制到/system/framework -> 注意 :进行这步操作前,请备份/system/framework/内原services.odex至内存卡内/backup/目录下,开启引导恢复模式,并备份好系统!
12.重启
恢复原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/
7.输入cd /system/framework
8.输入busybox chmod 644 services.odex
9.输入sync
10.输入reboot
题外话:
教程内容大部分都是借鉴国内外众多大侠的帖子,当然,也有我熬了几个通宵折腾我那可怜的石头2得出的...
此教程同样适用与APK重新生成odex文件,但其他jar文件的odex修改我没研究过,适用与否不得而知...
本人也不能保证教程完美无误,任何修改都有风险存在,所以我强调的还是备份!备份!备份!
如果有错误,请高手指出,也希望大家及时将问题反馈给我,以便我尽早修正。
帖子可能写得不太美观,呵呵,大家见谅,谢谢!
写教程真得很辛苦,求加分,不过分吧?{:125_448:}
-
2.62 MB, 下载次数: 1503, 下载积分: G币 -1