首先,格机是格式化C盘显然与MMC无关,而更换另一张MMC,可以看到所有用户建立的目录都在,所以可以肯定的是桌面设置文件保存在C盘。依照经验,此类设置文件多半在C:SystemDATA目录下,于是用Fileman通过蓝牙把DATA下所有文件发送到电脑(Contacts.cdb等几个文件由于系统使用,无法发送),然后用UltraEDIT依次打开值得怀疑的几个文件(有些文件顾名思义,基本不需要怀疑),试图寻找类似树的结构或者熟悉的程序名,但是无功而返。于是想到因为所有的文件夹都是中文名,文件里肯定是内码,看不出来的,不妨建立个英文文件夹试试。在桌面上建立了名叫BEMOON的文件夹,然后再次发送DATA目录到PC,经过细心查找(其实文件不多,每个文件都不大)在C:SystemdataApllications.dat找到了“BEMOON”字符串。怀疑这个就是桌面配置文件。
回到手机,将该文件移至MMC,重新启动手机,桌面完全乱了,所有程序都在根目录下,再将原来文件从MMC移回,覆盖同名文件,重启手机,桌面复原。可以初步确定这个文件保存了桌面设置,但是,是不是仅仅这一个文件起到了作用,还未可知,因为这个文件里面并没有保存程序的名字,也可能仅仅保存了目录结构。为了验证,将“游戏”目录改为“GAMES”,把C:SystemdataApllications.dat传到PC。然后把GAMES中的“GoBoy”移动到根目录,再把此时的C:SystemdataApllications.dat传到PC。比较2个文件,发现了端倪:
红色的方框就是GAMES的ASCII啦,除此之外,可以明显的发现,蓝色的方框里面的数字表示了该目录下程序数目,GAMES从1A变成19,根目录从2C变成2D,而换算成10进制的确与该目录下快捷方式数目相符。观察绿色的8位16进制数,第二组“0A 00 FF 01”变成了第一个,而第一组“F8 8F 1F 10”跑到了文件末尾(图上没有画出),而这与实际情况非常吻合(GoBoy被放到功能表最尾)。看到这里我恍然大悟,做过Symbian开发的都知道,每个SymbianOS授权的APP都有一个全球唯一的Unicode标识UID,正好是8位16进制数,所以这个也就是程序的标识,各个标志之间以“71 1D 62 70”作为分隔符,整个文件呈现顺序数据结构,也就是说Applications.dat这个文件完整的保存了桌面的配置。
如此以来,格机前只要把这个文件保存在mmc上,格机后再回复到原来位置,我们精心归类的桌面还是可以回来,但是以前安装在C上程序已经没有了,会不会发生错误?我每次这样做,哪怕mmc不同了,都不会发生错误。但是也有一位兄弟说这样做后一按menu就报错,只能重新格机,第二次就不报错了。所以最好还是把系统完全复原再恢复桌面。
Symbian系统不像windows一样有个累赘的注册表,系统的配置都在相应的文件里面,软件安装卸载也非常绿色自由,内存管理安全严格、ActiveObject技术也比MultiThread更加稳定健壮,这样的系统更适合爱好者大胆钻研、深入探索。此文仅仅简单介绍了一种刨根问底式的文件结构分析方法,希望能抛砖引玉,继承6688老传统,掀起技术讨论的热潮。
文中提及方法,未在SX1测试,3650测试通过。bemoon创作,转载注明。
标签:
留言评论