——在RM970的早期固件版本中,我们是可以按照自己的意愿对其进行固件美化的,网上有很多这方面的教程。(例如:http://bbs.romman.net/thread-112858-1-1.html)笔者按照教程在自己的电脑中试了一下。但,就是得不到应该有的结果。当笔者用Image Search Editor打开V2.5版本的固件后,由于没有与之对应的书签文件,而无法找到固件中图片文件的偏移位置。导致无法进行固件美化。现在的网络上好像只有V2.2版本固件对应的固件文件列表。笔者对V2.2版本的固件以及其文件列表进行了分析,寻求到了找出V2.5版本固件文件列表的方法。
所谓,文件列表的偏移其实就是在固件文件中图片的起始位置相对于文件头的字节数。由于V2.2与V2.5版本中的图片文件是一样的。所以,首先将V2.2固件用UltraEdit-32以二进制的方式打开,根据V2.2固件对应的文件列表找到其中某张图片的位置。在UltraEdit -32的二进制文件中找到该位置。复制一定长度的二进制数。然后,再用UltraEdit-32代开V2.5固件版本,搜索刚刚复制下来的二进制串。这样便搜索到了该图片在V2.5版本中的位置。用Image Search Editor书签文件的格式记录下来就可以了!用同样的方法找出所有图片。
其中,开机的动态效果其实是由很多张渐变的图片连续切换形成的。一共有24张。这24张图片是连续存放在固件文件里面的。就是说他们偏移地址之间的差是相等的。为了避免重复相同的动作,可以用编程的方式完成文件列表的书写。下面是这段程序代码:
#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;
void main()
{
long int temp=24081600;
int count=1;
char * str;
str=(char *)malloc(sizeof(char)*30);
ofstream fout;
fout.open("V2.5list.txt");
for(int i=0;i<24;i++,count++)
{
if(count<10)
{
cout<<"Start_0"<<count<<","<<_itoa(temp,str,16)<<",400x240,32,Ramos970.RKW/n";
fout<<"Start_0"<<count<<","<<_itoa(temp,str,16)<<",400x240,32,Ramos970.RKW/n";
}
else
{
cout<<"Start_"<<count<<","<<_itoa(temp,str,16)<<",400x240,32,Ramos970.RKW/n";
fout<<"Start_"<<count<<","<<_itoa(temp,str,16)<<",400x240,32,Ramos970.RKW/n";
}
temp+=384008;
}
}