一、目标
删除无用自己不喜欢的图片、主题、铃声。
二、运行环境和相关软件
基础版本:as2兄弟的1009版本;
操作工具:SBFCodec,winhex,checksum.exe(yan0兄弟的)
所需操作系统:windows (我用的xp),linux(本人用的CentOS 5.0)
三、操作步骤
3.1 在linux解开文件,修改并打包成cramfs文件。
mkdir cg34
mount -o loop CG34.smg cg34
tar cvfz 34.tar.gz cg34
mkdir new
tar cvfz 34.tar.gz new/
cd new/cg34
说明:animation是开关机动画,可以更换,两个文件Moto1.gif和Moto2.gif;
icon是一个图标集,暂时不知道用途;
picture是壁纸文件,可以更换;
soundfile是自带铃声,可以去掉自己不喜欢的;
mms_card,彩信模版,不喜欢可以删除;
mediaeditor,图像模版,不喜欢可以删除;
video,一个不知什么作用的视频文件;
试验步骤:修改开关机、壁纸、删除自己不喜欢的内容。
注意:文件属性一般都是777,属主一般是nobody;
可以用
chown -R nobody.nobody *
chmod -R 777 *
更改当前目录下所有文件和子目录下文件的权限、属性。
生成新的smg文件。
mkfs.cramfs cg34 34.smg
3.2 复制回windows,用winhex修改,填补文件大小。
复制回windows后,查看原始文件大小为10485760字节。
用winhex打开新生成的34.smg,对比原始文件,计算出需要补齐的字节数。
创建一个需要补齐字节数大小的文件,用0字节填充,替换成FF。复制。
把复制的补齐字节数内容的FF粘贴到34.smg的尾部。
3.3 把smg文件写入sbf
SBFcodec打开的刷机包位置有一个SMG目录(我们的CG34.smg就是从这里得到的)。
把34.smg文件改名成CG34_0x001A0000.smg(和该目录下CG34的对应包一致的名字),并覆盖文件。(注意保留CG34原始包的备份,有用。)
我以为到这一步就算完成了,然后生成smg文件,兴冲冲的去刷机,结果每次都是提示检查CG34的checksums出错导致刷机失败。因为缺少yan0兄弟的校验并修改sum步骤。
3.4 修改sum
找到备份的CG34_0x001A0000.smg文件,计算出该SMG文件的校验和,然后在SBF里找到该SMG文件校验和的位置。注意校验和为2个字节,低位在前,高位在后。
计算出自己新制作的CG34_0x001A0000.smg改名后的文件的校验和,把该校验和更新到SBF里。
校验和的更新:如果计算出的校验和为ABCD,那么改写到sbf对应该校验和的位置,应该填写CD AB。
例如:as2兄弟的CG34_0x001A0000.smg文件checksums为8EAC,我自己制作的CG34_0x001A0000.smg的为0E17。
修改步骤为:打开winhex,查找AC 8E,找到后用17 0E替换。
3.5 刷机
这时候再重新刷机,等着成功后就是一个完全自己定制的版本了。
【原创】E6成功单独刷CG34包
参照单独刷CG39包的方法成功单刷CG34包
E680的skin文件夹是在CG35包(/usr/language)里面的,并且通过telnet用
dd if=/mmc/mmca1/cg35.smg of=/dev/tffsa
命令是可以直接在手机上刷CG35包的内容的
E6的skin文件夹和E680的不同,是在/usr/data_resource里面
最开始我也想用类似的方法刷E6的34包
telnet用
#df -ah
命令显示
Filesystem Size Used Avail Use% Mounted on
rootfs 57M 57M 0 100% /
/dev/root 57M 57M 0 100% /
none 0 0 0 - /ram
proc 0 0 0 - /ram/proc
/dev/roflash1 13M 14M 0 100% /usr/language
/dev/roflash2 12M 13M 0 100% /usr/data_resource
/dev/roflash3 484k 484k 0 100% /usr/setup
/dev/roflash4 164k 164k 0 100% /usr/securesetup
none 0 0 0 - /dev/pts
/dev/mtdblock8 6.0M 1.1M 4.9M 17% /ezx_user
/dev/mtdblock9 7.9M 1020k 6.8M 13% /ezxlocal
/dev/mmca1 972M 949M 23M 98% /mmc/mmca1
/dev/mtdblock8 6.0M 1.1M 4.9M 17% /usr/data_resource/preloadapps/SysRegistry
/dev/mtdblock8 6.0M 1.1M 4.9M 17% /usr/data_resource/preloadapps/SysMenuTree
/dev/mmca1 972M 949M 23M 98% /usr/data_resource/skin
none 0 0 0 - /usr/language/fonts/AMCSL.TTF
发现E680的/usr/language 是挂载在 /dev/tffsa 上
而E6的/usr/data_resource 是挂载在 /dev/roflash2
但我telnet用
dd if=/mmc/mmca1/cg34.smg of=/dev/roflash2
命令后E6无反应,原因我也不太清楚
这个方法尝试失败,我就考虑参照单独刷CG39包的方法单刷CG34包
telnet用
tar czvf /mmc/mmca1/34.tar.gz /usr/data_resource/
将/usr/data_resource/打包成34.tar.gz
把34.tar.gz从sd卡里面拷出来
在windows下可以用7zip软件解压得到/usr/data_resource文件夹就可以直接修改里面的内容,不一定要
在linux下修改
但打包成smg文件还是要用到linux的
我删掉了原/usr/data_resource里的短信常用范本(/usr/data_resource/quickpage/)
添加里自己修改的一个iphone的主题
把/usr/data_resource/preloadapps/javaapps内置的java软件删掉
喜欢用手机照大头贴的人还可以自己替换喜欢的相框mediaeditor/border
把修改好的/usr/data_resource文件夹拷到linux
在data_resource文件夹的目录用终端命令
mkfs.cramfs data_resource 34.smg
打包成smg文件
把smg文件拷回windows
对照原CG34包用winhex补齐字节数,和原CG34包大小一样,并且改成相同的文件名
然后参照刷39包用SBFajbfl.exe打开你整个刷机包
把除了RDL3和CG34的都给 remove掉
然后选CG34点replace 选到刚刚作好的那个cg34
替换掉CG34包
保存剩下的文件为34.sbf文件
用RSD软件刷34.sbf文件,耐心等待至PASS状态就成功了
修改刷机有风险,相信自己diy能力的兄弟可以尝试
单刷包不丢失用户的个人信息如电话本短信什么的
因为它们存在/ezx_user和/ezxlocal文件夹里