网站大量收购独家精品文档,联系QQ:2885784924

Symbian OS v9.x SIS 文件格式说明书.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Symbian OS v9.x SIS 文件格式说明书

介绍 目的和范围 本文档描述Symbian OS v9.1版本重新设计和重新组织的SIS文件格式。SIS文件是设备部署所需的文件包,用手机安装程序解析。除了简单的打包文件的功能外,SIS文件还可以包含影响安装过程的条件判断,比如设备相关的安装,语言相关的安装、用户可选的组件。 Symbian OS v9.1包含了新的设备安全策略,所以不再支持以前的版本。另外,设备上的安装程序在安装成功前监督安装来确保安装包符合特定的安全标准。 SIS文件格式 概述 SIS文件的信息分成2个独立的部分。第一部分是元数据(Meta-Data),描述需要安装的文件集合。第二部分包含实际的文件数据部分。这使得安装程序可以分成2个阶段,判断和安装。在判断阶段,对SIS文件进行审查和安全检测,从而验证安装。在安装阶段,如果核实正确,就仅仅是拷贝文件到设备上的过程。 注意SIS字段的保留值 请注意,Symbian保留了定义SIS字段相关的可扩展值集。例如,字段TInstallFlags 位指示器(用bit位来标识枚举类型). 未定义的值的产生MakeSIS和/或SignSIS支持的上下文之外的,因此就可能引起跟Symbian OS后续版本的兼容性问题。因此SIS包的安装也许就会失败。 完整性 SIS文件格式支持签名和证书(签名安装包),这些签名可以在安装过程中进行审查,也可以在安装包安装到设备上之后再次审查。为了支持SIS文件的2段安装过程(判断和安装),只有SIS文件的元数据被签名。为了确保文件内容的完整性,元数据中包含了包中每个文件的散列(Hash)。因此整个SIS文件的的完整性是由签过名的元数据来保证的。这意味着在安装过程中,安装程序可以校验签过名的元数据中的每一个文件的散列,同时使用一个不受信的组件来执行任何需要的解压缩。 SIS文件中分离每个元数据的校验和(checksums) 与 文件内容使得SIS文件可以在安装过程的开始阶段被检测。这些校验和是可选的(optional)。 扩展性 考虑到修改文件格式的成本和潜在风险,SIS格式被设计成可扩展的,使用TVL(Type-Length-Value)格式。由于每个SIS字段都有规定的长度,所以当安装程序解析一个SIS文件时,可以忽略那些无法识别的类型。 压缩 SIS文件格式支持SIS包中每个文件的独立压缩,SISController也可以被压缩。这样减少了安装需要的多余空间。使用SISCompressed SIS字段来标识压缩,它内部也可以包含另一个压缩的SIS字段。 嵌套 为了限定安装一个SIS包所需的资源数量,Installer现在最多只处理SIS文件的八层嵌套。SIS文件如果包含多于8层的嵌套,就会被拒绝。 支持SIS文件再次签名 由于SIS文件格式不需要修改偏移,所以它很容易添加新的签名和证书链到元数据的末尾,即使它们在SIS文件的中间。 Symbian File Header SISContents SISController SISSignatures SISData SISSignatures 字段会由于添加的签名证书链而加长,后续字段会在SIS文件中随之往后偏移。 编程要考虑的事 文件格式 SIS文件格式被设计成每个字段由一个类(class)表示。这样就可以很容易的用C++的类来实现。由于文件格式中没有使用偏移,因此设计一个C++类包含SIS字段中的所有数据是可以实现的。 内存使用 由于SIS文件可能会很大,所以不可能一次性把所有的数据载入内存。根据文件格式的结构,可以每次载入一个SIS字段的元数据信息,而不用一次性载入所有的SIS字段。 支持嵌入SIS 支持一个SIS文件中嵌入另外一个SIS文件。MakeSIS能够在创建一个SIS文件时,把一个已经生成的SIS文件嵌入其中。这个已生成的SIS文件会被SISController加载,解压(如果需要的话),插入到SISInstallBlock字段。SISDataUnit(这个字段包含安装所需的文件)被添加到SISData字段的数据单元队列(Data Units array)的末尾。SISControllers有一个数据索引字段,标识所需文件的SISDataUnit的索引。MakeSIS必须循环访问被添加的SISControllers,修正这些索引值。 图1 - 嵌入SIS文件 在生成的SIS文件中,为了查找SISDataUnit中的SISFileData的绝对索引,SISControllers链中的每一个数据索引(Data Index),从最外层的SISController到当前处理的SISController,是总计累加的。从图1中,所有的SISController都有一个数据索引是0。当计算Controller2的SISD

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档