因为学业的关系,好久没有安静的坐在键盘前 KEY 字了,总觉得要写点什么出来,想来想去,既然小 A 和小 2 出自西门,一定要把 DIY 发扬光大!就写一写如何应用狼大的 COOLIMAGE 吧。
这个软件是用来修改西门子手机固有图片的,何谓“固有图片”,这里不是简单的待机图片,而是把手机内置的图片拿出来修改,比如可以把手机的待机时钟表盘换成你喜欢的样式,把收到短信的信封图标换成带小翅膀的微笑信封,这是一般的待机图片所做不到的!
使用方法很简单,简单的说就是用 COOLIMAGE 生成图片补丁,再用 V KLAY 刷进手机。但是考虑到部分既有对 FLASH 的修改不熟悉而不敢动手 ( 其实修改图片是对手机绝对无害的 ), 我还是参照狼大的 read me 把修改的原理说一说,这里献丑了 ^_^
Flash 地址和文件地址的转换,在手机内部是用统一的 16M 地址来处理 Flash 的。而 2128 和 A55 的 FLASH 只有 8M ,所以有如下公式 :FlashAddress = FileAddress + 0x800000 。就是说在 FLASH 的前面填上 8M 的空间来进行 16M 寻址。
而转换为页地址则为 :FlashAddress / 0x4000 = Page ;
FlashAddress % 0x4000 = Offset 。
FlashAddress = 0x8F7856 ,转换为文件地址则为 0x0F7856 。
Page = 0xAF7856 / 4000H = 0x3D ,
offset = 0x7856 % 4000H = 0x3856 。
在一些资源如 IMAGE( 图片 ) 的索引中,地址就是以( page , offset )的方式存储,
Image 索引格式 :
00 Byte 图片高度 Higth
01 Byte 图片宽度 Weigth
02 Word unknown
04 Word 页内偏移 OFFSET
06 Word 页地址 PAGE
例如
0x500000 (索引表开始地址) 04 04 01 00 FA 3F A1 03
PAGE = 03A1
OFFSET = 3FFA
FlashAddress = (0x03A1 * 0x4000 + 3FFA) = 0xE87FFA
ImageFileAddress 0x687FFA = FlashAddress - 0x8000000
下面是详细的步骤
1 :需要你有一款手机的 FullFlash 。关于 FLASH 的提取,简单说两句:安装 V KLAY ,选手机类型 A55 就选 A55 ,不要选那个 A55(with test point) 。在 PORT 一栏选择数据线连接在电脑上的端口,比如 COM1 ,速率 BAUD 一般为 115200 。然后点 flasher 标签,在 memory of the phone 下默认显示 FLASH 地址从 0x000000 开始, size 是 0x800000 ,点下面的 read memory 按钮,出现进度提示时短按开机键,进度条闪动就说明程序已经连接并工作了,大概需要几分钟,完整的 FLASH 大小为 8M ,读完 FLASH 后,点 SAVE FILE ,指定保存的路径和名称即可。
如果你直接用别人做好的图片补丁,那么强烈推荐在写入前先备份完整的的 Flash !
软件自带支持的是 2128 的 21 版, 24 版和 A55 的 09 版,如果你用的不是上述的版本,这里给出增加配置文件的方法。
一款手机的 Flash 配置文件主要有四项,段名的格式是“ [ 手机类型 _ 软件版本 ] ”
FullFlashSize ->FullFlash 大小
AdrFlashStart ->FullFlash 在内存中的映射位置,一般是 0x800000 - FullFlashSize
IndexAddress -> 图片索引的开始位置
ImageCount -> 固有图片的数量
前面的两项容易确定,在小 A 上是 800000 。
后面两项的确定方法是用 Uedit( 著名的 16 位编辑器 ) 查找:“ 04 04 01 00 ”(第一张图片的索引,后面的四个字节是地址,可能有多个,找到再后面是 0C 0C 01 00 的),这个地址是图片索引的开始位置,然后向后查找,直到后面出现 FF FF FF 一类的东西,是索引标的结束,最后一张大概是 65 xx 01 00 ,这张是调整对比度的图片(世界地图)。 XX 是 36 ,是屏幕的高度。在 A55 ( 2128 )上这个 XX 是 36 ,因为图片是 101*54 ,换成 16 进制就是 65*36 这两个地址的差除 8 ,再加 1 ,就是图片的数量。
这个配置文件可以自己做的不妨自己搞定,嫌麻烦的机油可以跟贴,我会更新下载点的配置文件 ^_^
2 :打开 FullFlash (以 2128 的 21 版为例),如果文件正确,会出现 Flash 信息,
手机类型: 2128
软件版本: 21
语言包: lg8
文件大小: 8192KB
如果已在配置文件中支持,则在列表中会出现图像列表。否则会给出提示。
1> 选中列表中的项,左上的图片框会显示当前图片。
2> 然后可以按工具栏的黄色上箭头导出图片,注意图片是 BMP 格式的。
3> 按黄色下箭头导入图片来替换手机 Flash 的固有图片,导入时左下的图片框显示导入图片。
如果不想输出这个修改,可以在列表中双击对应项。则前面的对勾取消,再次双击,则恢复。
导入规则:如果导入图片大于固有图片,则只显示左上部分。如小于固有图片,则填充空白。
4> 按下保存, 则生成的 VKP 文件会保存在 Flash 的相同路径下,以当前系统时间命名。
如果用已经有的图片资源,那么重复本步骤的 1 , 3 , 4 步就可以了,前提是你知道在做什么 ^_^
如果想修改如电量和信号的图标,那么你就要辛苦一点了,把相关的图标全部修改才能达到效果,拿信号来说,就是说你要把一格,两格信号…直到满信号的图片做好了以后依次导入,再一次性导出保存,生成 VKP^_^
3 :用 V_KLAY 将此修改写入手机即可替换手机固有图片。
警告,警告,警告:在第一次刷图片补丁前一定要 ( 一定要!!! ) 先用 V KLAY 刷去除 CRC 校验的补丁,否则出现 Wrong Software ,后果是不能开机,虽然可以恢复,但是比较麻烦。 ( 以后不用每次都刷 ) 。
A55 的 09 版 CRC 补丁是:
0F6C5C: 0D0848C12D06 0D0848C10D06 ; Disable 2nd CRC
刷了 CRC 以后,双击生成的图片补丁,选手机类型 A55 ,不要选那个 A55(with test point) 然后点 apply patch ,确定,弹出进度条提示 CONNECTING 时短按开机键,进度条开始会稍微停顿一下然后立即快速闪动,同时提示文字变成 READING ……,表明已经连接上手机并工作了,刷新成功后,点上面的 turn on 按钮,然后开机检验。
再看看是不是你的手机与众不同? ^_^