SX1文件系统结构浅析

SymbianOS6.X Series60界面的智能手机 , 在插入MMC之后 , 系统一般存在4个逻辑存储驱动器:C(手机本身的用户存储 , SX1有4M) , D(虚拟盘 , 使用空闲运行内存虚拟的缓冲盘) , E(MMC) , Z(手机的系统ROM只读) 。
4个盘之中 , C E Z盘的文件结构大同小异 。而D驱动器是高速的虚拟驱动器 , 主要用来保存剪贴板、wap缓存、和一些临时交换文件 , 一般情况下 , 由系统自动调用 , 与用户联系不多 , 不作详细介绍 。下面我具体的将C E Z三个驱动器的目录结构和功能讲解一下 。随着安装软件的增多 , C和E盘的目录文件会变得纷繁复杂 , 我们抛开一些软件自动生成的次要的文件和目录抓住系统的结构谈一些主要的东西:

E盘根目录下:IMAGES SOUNDS VIDEOS目录 , 顾名思义就是保存了图片铃声视频剪辑 , 这3个目录等效的出现在C和Z的Nokia目录下 , 也就是说把相应类型的文件拷贝到对应的目录都可以被系统识别(Z盘只读除外) , 举例说明:midi文件或者wav文件拷贝在E:soundsdigital或者C:nokiasoundsdigital就可以像Z:NokiaSoundsdigital中固化的音乐文件一样 , 出现在情景模式铃声的选择项目中 。

C:Nokia是个无关紧要的目录 , 你完全可以删掉它而没有影响 , 但是这个目录会经常自动生成 。原因是 , C盘的Nokia目录中有特别的目录:INSTALL , 很显然这个是为了安装软件而设置的 。众所周知 , Symbian系统的软件是打成SIS压缩包传入手机的某个存储器中(C、E)然后解包安装的 , 系统往往在C:NOKIAINSTALL目录下保存一个安装副本 , 以备安装时遇到不可预见的错误(如突然没电)或者用户中断时能够恢复系统安全 , 这也就是很多情况下 , 在空余很大空间的E盘安装软件时 , 仍然出现“存储空间已满”的原因 , 保持C盘有1M以上的空余空间是个很好的习惯 。另外不使用系统的manager转而使用SeleQ进行SIS安装也可以避免产生这个副本 。

下面以分析一下结构最为复杂的系统核心C:system目录 。System目录由十几个目录和若干文件组成:
※APPS目录:该目录下的子目录保存了软件的主体即:用户交互可执行文件.app、 资源文件.rsc、 图标文件.aif 、无界面可执行程序.exe以及运行所需的其他文件 。安装在E盘的软件除了在E:SystemApps目录下保存软件主体之外 , 往往会在C:SystemApps同名目录下创建一些配置文件 。值得注意的是C:Systemappsphoneoplogo保存了营运商的标志 , 如果该目录保存了100*25的bmp图像 , 则在待机状态下将以该图片代替“中国移动”之类的营运商标志(需要重新启动手机);
※BootData目录:系统的启动参数和日志;
※Data目录:极其繁杂的目录 , 保存了各种各样的数据 , 简单介绍几个 , backgroundimage.mbm壁纸 , btstate.dat蓝牙配对信息 , Calender日历 , clockapp.dat时间参数 , Contacts.cdb联系人 , 以及很多软件的配置文件和wap信息;
※favourites目录:收藏夹;
※install目录:保存了全部的软件安装信息 , 每安装一个软件 , 就在该目录下保存一个同名sis文件索引 , 大小在几百b到几K不等 , 假如删除这个sis文件 , 在程序管理中就不会出现这个软件的安装信息 , 也就无法通过程序管理删除 , 但是仍然可以在apps目录中直接删除软件主体和配置文件 , 有必要的话在libs目录中删除相应运行库 , 在programs目录中删除相应辅助运行文件 , 从而彻底卸载软件;
※libs目录:保存某些软件运行时需要的连接库文件 , 一般由软件安装;
※mail目录:信息目录 , 结构复杂费解 , 除了一些短信、彩信、EMail设置文件之外 , 收件箱、发件箱、草稿箱、发送报告、附件等等分布在丛深复杂的目录之中 。值得一提的是 , S60的信息概念比较广 , 短信彩信Email甚至红外蓝牙传输的文件都属于“信息” , 因此接受到的红外蓝牙的文件 , 保存在mail目录下 , 而且可以由查看该信息触发相应的“安装”、“观看”、“编辑”等动作;
※MIDIets目录:java配置文件;
※midp目录:java程序主体安装在这里 , 如果全部java安装在E盘 , C:system将不会出现这个目录;
※Programs目录:保存辅助运行文件 , 和一些无界面程序exe、动态连接库dll;
※Recogs目录:关联目录 , 里面的mdl文件标识了文件关联 。如QuickWord.mdl标识了系统中的doc文件默认由quickword打开 , 另外有些mdl文件会驱动程序运行 , 如eLoader.mdl驱动了miniGPS、ExtendProfile等ePsint公司开发的软件 , 没有这个mdl文件 , 以上两个软件不能自动加载;
※Schedules目录:顾名思义 , 保存了日程安排;
※SharedData目录:全部是软件的配置文件.ini , 对用户作用不大 , 但是可以通过修改其中的某些数值和路径从而使必须安装在C盘的软件(多半是7650的软件 , 它没有mmc)安装到mmc;
※Temp目录:临时文件 。
【SX1文件系统结构浅析】
E:system目录结构与C:system基本一致 , 不同的是 , 少了intsall目录 。
Z:system比之C:system更加庞大复杂 , 它保存了系统的全部自带程序、资源文件、硬件驱动、字体字库、国际化设置和初始参数设置 。在待机状态下输入*#7370# , 将初始化手机 , 基本过程就是清空C盘 , 复制Z盘某些内容至C 。某种程度上说Z是系统的初始备份 。(新手机的第一幅待机图就保存在Z:systemdataapac.mbm)
关于路径问题 。由于三个盘的system目录结构是相似的 , 所以同名路径所起到的作用相同 , 比如E:systemrecogs目录下的关联文件同样可以起到关联作用 , libs等目录类同(有些情况下将C的内容移动到E相应路径中 , 需要在C:systemSharedData对相应的ini文件进行修改) , 而在E(C):system下建立Fonts目录则可以加入新的系统字体 。只有install目录仅仅在C:system下才有效 。
了解S60系统的文件结构 , 对于我们使用手机有着很大帮助 , 可以最大限度的获取运行空间、了解错误产生的原因 , 有意识的避免可能会带来伤害的操作 。本文仅仅对文件结构做了初步的探讨和应用层面上的解释 , 进一步的研究可以在西门子和诺基亚论坛的官方文档得到全面解答 。希望有所帮助 。

以上内容皆以Nokia3650为验证 , 仅供参考 。bemoon原创 , 转载请注明 。