CN1950798A - 可移动介质上的软件安装 - Google Patents

可移动介质上的软件安装 Download PDF

Info

Publication number
CN1950798A
CN1950798A CNA2005800137200A CN200580013720A CN1950798A CN 1950798 A CN1950798 A CN 1950798A CN A2005800137200 A CNA2005800137200 A CN A2005800137200A CN 200580013720 A CN200580013720 A CN 200580013720A CN 1950798 A CN1950798 A CN 1950798A
Authority
CN
China
Prior art keywords
file
software
sisfield
sisx
installation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800137200A
Other languages
English (en)
Other versions
CN1950798B (zh
Inventor
科琳娜·迪夫-勒克吕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Symbian Software Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symbian Software Ltd filed Critical Symbian Software Ltd
Publication of CN1950798A publication Critical patent/CN1950798A/zh
Application granted granted Critical
Publication of CN1950798B publication Critical patent/CN1950798B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

为了在计算装置上安装软件,决策阶段用于决定是否安装软件,决策阶段后面是用于安装软件的安装阶段。决策阶段所需要的信息以元数据的形式提供,元数据具有由数字签名保护的完整性,并且包括将被安装的文件的各自散列,使得在开始安装阶段之前能够验证文件数据的完整性。

Description

可移动介质上的软件安装
本发明涉及安装软件的方法,尤其涉及在可移动介质上安装软件的方法。
在本发明的上下文中,术语计算装置应该解释为覆盖任何形式的电气装置,并且包括任一形式因子(form factor)的数据记录装置(例如,数字照相机和电影摄影机)、任一类型或形式的计算机(包括手持计算机和个人计算机)、以及任一形式因子的通信装置(包括移动电话、智能电话、以及将通信、图像记录和/或重放、以及计算功能结合在单个装置中的发报机、以及其他形式的无线和有线信息装置)。
在计算装置操作系统中,通过特定的安装包来处理软件安装已经成为一般惯例。最初,这些包是使用了诸如.zip或.tar的标准存档压缩格式的简单的文件存档,但是随着时间的推移,这些包变得非常复杂。现在这些包提供的优势在于:
●安装时压缩文件的透明解压缩
●确保文件安装在计算装置中正确的位置中
●检查包括软件版本和模块依存关系的系统需求
●鉴别和验证软件的完整性以及软件制造商的身份
通常使用的用于安装软件包的系统的实例包括:
●对于微软所有的操作系统Windows,连同诸如Wise(http://www.wise.com)和InstallShield(http://www.installshield.com)的第三方解决方案,虽然该后面的包现在是多平台的。
●各种Linux发行版使用诸如最初来自Red Hat的.rpm( http://www.rpm.org)包系统以及由Debian开发的dkpg和.deb系统(http://www.debian.org/doc/debian-policy/ch-binary.html)。
●由Symbian软件有限公司开发的Symbian OS操作系统.sis文件(http://www.symbian.com/developer/techlib/v70docs/SDL_v7.0/doc_source/ToolsAndUtilities/Installing-ref/MakesisToolReference.guide.html)
●Java系统使用.jar Java存档文件
(http://java.sun.com/docs/books/tutorial/post1.0/whatsnew/jar.html),而J2ME midlet附加使用.jad java应用程序描述文件(http://java.sun.com/j2me/docs/wtk2.1/user_html/deploy-midlets.html#wp20998)。
所有上述的安装包允许包含将要被安装的文件以及涉及其大小、目标位置、版本、依存关系、认证和鉴别中的任何一个或全部的基本元数据。
上述的包将软件传送机制和软件安装机制与软件鉴别机制集成在一起。虽然这很大程度上是历史的原因,因为包系统开始作为传送机制,该传送机制随后被集成更多功能(首先安装然后鉴别),在计算资源丰富的情况下,结合功能的这三个领域不存在真正的问题。其最典型的实例是在CD ROM上为桌面型个人计算机提供软件包,其中,持久的内部存储器存储(例如,在硬盘上)的数量通常不是问题,主电源实际上是用不完的,并且CD本身的成本是可以忽略的。
然而,某些种类的计算装置是受到资源限制的,并且通常在更大压力且注重节省成本的资源环境下操作。这类装置包括使用蜂窝无线技术的个人数字助理(PDA)和移动电话。这些移动计算装置具有更有限的CPU带宽,通常在电池电源而不是在主电源上运行,并且与PC装置相比,具有相对有限数量的内存储器。此外,由这些资源受限装置使用的诸如多媒体卡(MMC)、紧凑式闪存(CF)卡和记忆棒的可移动存储介质的成本与CD ROM很不同,这是因为对于用户来说,它们十分昂贵,由于成本限制了它们的消费。
对于任何大小的软件产品,使用标准PC包机制的软件的发行版被看作不适合这些资源受限制装置,因为无论在包中使用什么压缩和解压缩机制,很可能存在一些相同文件的压缩和未压缩版本需要同时呈现在计算装置上的点。此外,这些移动装置不同于PC,因为它们缺少硬盘驱动存储器,只具有可用的内部RAM和“flash”磁盘。发现在移动电话上的可移动介质存储器具有比内部装置存储器大得多的存储容量是很寻常的,在这种情况下,首先很明显没有在可移动介质上以压缩格式提供软件的点。
简单地提供预安装在可移动介质上的软件不是对该问题的好的解决方案,这是因为软件用户实际上需要遵循安装过程以确保将被安装的软件是可信的(authentic),并且没有被病毒篡改或感染(通过这样的方式损坏用户数据的安全性或装置的操作)。特别地对于这些移动计算装置,用户数据的安全性是极为重要的,这是因为如果获取了数据,根本上可以将其用来偷窃用户的钱。
这些移动装置的资源限制对于发行软件、特别是通过互联网的传送软件的可选方法也是有问题的。虽然固定PC可以使用宽带互联网连接,其中,具有零边际成本的高带宽使得下载速度很快并且几乎免费,但是无线装置使用的基于蜂窝的互联网连接至少减慢一个数量级,而且并不总是可靠的,并且许多用户感觉相对昂贵。虽然诸如在数据被接收到时实时地解压缩的技术能够有助于避免一些上面提及的存储限制,但是涉及在线软件传送的不便和可察觉的费用使得该方法对于任何相当大的软件的安装而言是不切实际的。
当前唯一的用于通过无线连接向资源受限制的装置(例如,PDA和移动电话)传送软件的方法(其不涉及上面概述的不便和费用)是通过PC连接套件(suite)。这是一类在非移动PC上运行的软件,但是该类软件通常是为移动装置配备的,并且当装置连接至PC时允许软件安全廉价方便地安装在装置上。然而该软件传送方法具有许多缺陷。最明显的是:
●移动装置的拥有者需要访问兼容的PC,不一定满足这种情况。
●PC的拥有者会发现为移动装置配备的连接软件与其个人计算机不兼容。
●当移动装置实际上移动时,不能安装软件,而是需要固定位置。
从而,当前没有令人满意的在资源受限制的移动装置上安装软件的将方便、有效性、可靠性、快速和安全性需求结合的方法。
因此,本发明的目的是提供一种用于将软件安装到计算装置上的改进方法。
根据本发明的第一方面,提供了一种在计算装置上安装软件的方法,该方法包括用于决定是否安装软件的决策阶段和用于安装软件的安装阶段,并且其中决策阶段需要的信息包括元数据,该元数据具有由数字签名保护的完整性并且包括将被安装文件的用于验证文件数据的完整性的文件的各自散列。
根据本发明的第二方面,提供了一种配置成根据第一方面的方法运行的计算装置。
根据本发明的第三方面,提供了一种用于在计算装置上安装软件的计算机软件包,使得该计算装置根据第一方面的方法运行。
现在,将参照附图只通过进一步的实例描述本发明的实施例,其中:
图1示意性地示出了软件安装过程,其中,安装过程和安装文件均被分成两个独立的阶段;
图2示意性地示出了软件安装文件格式,其中,新签名和证书链已经被插入文件中元数据信息的末端;
图3示意性地示出了将软件安装文件插入到另一个中的方法;
图4示意性地示出了设计成支持使用多证书链标记的软件安装文件格式,具有多个每个链所支持的签名;以及
图5示意性地示出了具有一个嵌入在另一个数据文件中的数据文件的软件安装文件。
本发明基于这种认识:当软件在用于无线装置的可移动介质上传送时,使得提供未压缩的软件和已经放置在正确位置的文件以及能够提供用于确保软件安全操作的功能的包系统更有意义。特别地,通过本发明可以检查系统需求和依存关系,以及可以鉴别和验证软件的完整性和软件开发者的身份,不必解压缩和安装包含在包中的所有文件。
下面,参照可从英格兰伦敦的Symbian软件有限公司得到的Symbian OSTM操作系统(其包括软件安装包)的SIS文件来描述本发明的优选实施例。然而,应该强调本发明的方法能够用于产生与其他形式软件安装包相同的优势,不管这些是孤立类型包还是结合到其他类型的操作系统中。
Symbian OSTM操作系统的Symbian SIS文件已经历史地用于将任何数量或类型的用于安装在运行该操作系统的移动计算装置上的文件打包。该操作系统配备有称为“makesis”的应用软件程序(负责生成SIS文件)、用于执行实际软件安装的分开的软件安装程序(这里称作软件安装)。在下面描述的实例中,为了实施本发明,修改了这些SIS文件的格式和安装过程。该新的格式在下面的实例中称作SISX(扩展SIS)。
对于本发明,安装过程和安装文件均被分成两个独立的阶段。安装过程阶段指的是决策阶段和安装阶段。为了支持每个阶段,SISX文件设置为两部分:SISSignedController部分和SISData部分,如图1所示。
SISSIgnedController是完成决策阶段所需的唯一部分。这是SISX文件的相对小的部分(通常<10kb),以便它能在存储器中被完整读取。该部分包含需要将所需要的软件文件安装在计算装置上的元数据,例如,鉴别、权能(capability)等等。然而,对于本发明,元数据被配置成也包含SISData部分中的每个文件的各自散列,并且必须使用标准认证(例如,符合x.509 v.3公共密钥基础设施(infrastructure),其为在安装时或运行时可验证的)来进行数字签名。
SISData部分包含所有在决策阶段不需要的数据。这主要包括将被安装在计算装置上的实际文件以及非常有限数量的控制信息。
该格式有两个非常有意义的关键商业优势:
a)当将文件“无线”地安装到移动智能电话时,可以首先下载相对小的SISSignedController部分,因此决策部分几乎可以立即进行。万一在该阶段发生任何故障,为用户节省与下载整个安装文件相关的大量额外时间和费用,这是因为相对时间消耗及因此的更多花费的安装阶段只在决策阶段已经成功完成后进行。
b)对于出现在MMC卡上且不需要安装的数据,只有SISSignedController部分需要设置在具有预安装软件的卡上,使得标准鉴别和其他安全措施正常进行,即使正常安装过程不是必须的。
这些优势中的第一个由Java包系统共享,其中,JAD文件包含用于安装的决策阶段的元数据并且JAR文件包含包数据的剩余部分。与本发明的SISX文件一样,使用Java JAD/JAR包系统传送的软件只需要下载JAD文件,以分辨软件是否能够被安全地安装。然而,与本发明严格地比较,对于Java系统,需要确保将被安装的软件文件的完整性的散列包括有JAR文件中的内容。因此,不同于本发明,使用Java JAD/JAR包系统确保用于安装的软件(其通过为JAD文件提供预安装的软件而设置在可移动介质上)的可靠性是不大可能的。
现在,将参照运行Symbian OSTM操作系统的装置描述SISX文件格式。毫无疑问,很明显对于本领域技术人员而言许多其他实施方式是可能的,并且描述中哪一部分不是本发明实施所必须的也很明显。例如,在所描述的实施例中的SISX文件格式指定所有元数据应该以低位在前(little-endian)格式存储,但是这样做是为了方便,并且没有原因为何可以提供本发明的高位在前(big-endian)或混合(agnostic-endian)实施。类似地,SISX格式指定CRC-32进行验证完整性的检查的事实并不排除实现相同结果的其他方法。
SISX文件中的信息被分成两个分开的部分。第一部分是描述需要被安装文件的元数据。SISX文件的第二部分包含所有实际文件数据。这使得软件安装被分成上面提到的决策阶段和安装阶段。在决策阶段,为了验证安装,检查SISX文件并且执行安全性检查。安装阶段只在验证成功时进行,并且实际上是将需要的文件复制到装置的过程。
SISX文件格式支持签名和认证,使得包被标记。在安装过程中验证这些签名,也可以在包安装在装置中之后被重新验证。为了支持在两个阶段SISX文件的处理,只标记SISX文件的元数据。然而,对于本发明,为了确保在每个这种文件中数据的完整性,元数据也包含用于安装的包中的每个文件的各自散列。以此方式,整个SISX文件的完整性由标记的元数据保护。这意味着在安装阶段,软件安装过程能够基于包括在标记的元数据中的“保护的”散列来验证每个被安装的文件、每个文件的各自散列,同时使用非置信部分执行安装解压缩。
每个元数据和文件数据的单独的检查和也可以出现在SISX文件中,使得在安装过程开始检测任何可能被破坏的SISX文件。
由于涉及改变文件格式的努力,SISX文件格式被设计成可扩展的,并且使用类型-长度-值格式。在SISX文件(SISField)中的每个字段具有指定的长度。这样,当读取SISX文件时,可以跳过类型未知的字段。
与其他类型的安装包一样,在Symbian OSTM操作系统的SIS文件格式中使用的压缩方案是压缩整个SIS文件,并且在安装时解压缩成单独的文件并且从解压缩的文件中安装。这是很浪费的,特别是在大的文件可被作为可选项安装时,这是因为为了解压缩包括可选文件的整个原始SIS包,需要在存储器中留有空间。
本发明的SISX文件格式支持在SISX文件中的每个文件的单独压缩,并且SISController也能够被压缩。这减小了需要执行文件安装的存储空间。通过使用SISCompressed SISField(其能够包含另一个完整压缩的SISField)支持压缩。
在本发明的该实施例中,SISX文件格式设计成支持几乎所有SIS文件格式的原始特征。唯一强加的限制是应该不超过8级的嵌入的SISX文件。应该理解这不是SISX文件格式本身的限制,而是被强加的用于限制安装过程的总复杂性的限制。
如图2所示,由于SISX文件格式没有需要被改变的偏移量(offset),因此很容易将新签名和证书链添加到SISX文件的元数据的末端,即使它们可以定位在文件的中部。在这种情况下,SISignature SISField将被新签名和证书链延长,并且在这些添加之后的SISField将被移动到文件中后面的位置。
SISX文件格式设计成每种类型的SISField可以用一个C++类表示。这使得由SISField构造C++类实例很容易,并且由于不存在文件格式中所使用的偏移量,有可能只由SISField的数据构造C++类。
因为SISX文件可能很大,可能不会立即将整个文件内容加载到存储器中。由于文件格式的结构,能够读取每个SISField的元数据信息而不读取所有包含在SISField中的数据。
存在各种需要获得表格形(flat view)的SISX文件格式数据的操作,例如执行CRC检查、以及验证元数据签名。因此,优选地将格式设计成连续存储每个SISField中的所有数据。
SISX格式也支持将一个SISX文件嵌入到另一个中。提供MakeSIS工具,其能够取出已经生成的SISX文件并将其嵌入到它正在创建的SISX文件中。加载现存的SISX文件,并且必要时解压缩SISController,并将其插入到文件内的SISInstallBlock的嵌入的SISX文件字段中。包含安装所需的文件的SISDataUnit被添加到SISData SISField的数据单元数组的末端。SISController具有数据索引字段,其指示包含它们所需文件的SISDataUnit的索引。因此,要求MakeSIS工具通过添加的SISController进行迭代,并且将这些改变成正确的索引值。在图3中示出了这种用于将一个或多个SISX文件嵌入到另一个中的过程。
以低位在前字节排序格式存储所有的元数据。此外,为了简化从SIS文件到SISX文件格式的升级,后者被配置成只支持一个文本字符集,例如,统一代码UCS-2编码字符串。
在本发明的该实施例中,将SISX文件嵌入级的数量限制成八个,虽然可以理解这并不是对文件格式的限制,而是为了限制安装的可能的复杂性而强加于软件安装的限制。
现在,将提供示例性SISX文件结构的概述。
SISX文件格式由使用类型-长度-值(TLV)编码的SISField组成。所有SISField以这种格式存储,例外情况是存储在SISArray内的任何SISField。这是因为数组存储相同类型的SISField,并且因此存储数组中的每个条目的类型值是不必要的并且是效率低的。这样,仅将SISField的长度和值存储在SISArray中。
类型字段表示SISField的类型。每种类型的SISField具有唯一的标识(ID),长度是4字节。
长度字段表示在值字段中的数据的长度,并且不包括其他包含在SISField中的其他字段的大小。根据将要存储的长度值,长度字段的长度是4字节或8字节。这是因为一些字段必须支持64位长度,而大多数字段只需要较小的位长。因此,对于所有字段以64位长度存储,将使用装置中不必要的存储空间。
长度总是用无符号值表示。如果长度值小于231,则使用32位(4字节)存储值。如果长度值大于或等于231,则使用64位(8字节)存储值。最高有效位设置为1,意味着能够代表的最大可能的数据长度是263-1。为了读入长度值,首先读入前面的32位。如果最高有效位是0,那么低32位代表值。如果最高有效位是1,那么读入下面32位,并且由两部分构成63位值。
值字段包含SISField的数据。它的格式取决于字段ID。使用该格式依存关系是因为这使得由SISField构造C++类实例非常容易。也可能仅仅通过使用在SISField中的数据而没有SISX文件的其他部分,来构造该实例。
在必要的情况下,也优选地填充SISX文件,使得每个SISField以32位字边界开始。这能够通过只允许32位对齐访问的处理器有效地分析来自存储器的格式。
以下的符号(notation)用于描述由SISX文件格式使用的数据结构:
结构名称:
字段1名称      字段类型        字段大小
…             …              …
字段N名称      字段类型        字段大小
结构名称是结构的名称,它确定了存储在类型字段中的ID。长度由所有指定的字段的长度确定。字段1到N指定应该出现在结构的值部分中的数据。
SISX文件包含能够被分为“通用SISField”和“元数据SISField”的字段。现在将解释这两个字段分类(categorisation)的内容。
通用SISField
SISString
该SISField字段包含UCS-2统一代码字符串。
SISString             长度
字符串
字符串
该字段包含统一代码UCS-2编码字符串。它在字节中的长度由长度字段指定,并且由于每个字符使用16位进行编码,因此字符串中存在该长度中一半的字符。
SISArray
该SISArray SISField保留(hold)一种SISField类型的数组。在从数据创建以及附加每个新的SISField时检查所包含的SISField字段的类型。符号SISArray<SISString>用于表示SISString的数组。在没有其类型作为优化的情况下,存储数组中的所有SISField,所以只存储TLV格式的长度和值部分。
SISArray             长度
SISField类型         TUnit32            4字节
SISField 1           SISField
…                   …
SISField N           SISField
SISField类型
该字段表示在数组中SISField的类型。所有字段是相同的类型,并且在从数据创建SISField以及附加每个新SISField时对此进行检查。
SISField
这是SISField的序列,其类型等于SISField类型字段的值。因为能够由SISArray的SISField类型字段确定省略的类型,因此只部分存储SISField类型,省略的类型作为优化。通过读入所有字段来确定字段数量,直到读入由SISArray SISField的长度指定的所有数据。在SISX文件格式中几个位置需要SISField的数组,所以为了减少代码复制,也提供了SISArray类型。
SISCompressed
该SISField是在另一个SISField周围的包装器(wrapper),其中,能够选择地压缩包装的SISField。这允许容易地将压缩集成为SISX文件格式。符号SISCompressed<SISString>可以用于表示压缩的SISString。
SISCompressed         长度
压缩算法              TUnit8       1字节
压缩数据                           压缩数据
长度字节
压缩算法
该SISfield包含用于压缩该文件数据的算法。
enum TCompressionAlgorithm
{
ECompressNone=0,//数据未压缩
ECompressDeflate  //根据RFC1951压缩数据
};
压缩数据
该SISField包含压缩数据。可以由长度字段确定长度。
SISVersion
该SISField使用主(major)、次(minor)、和编译(build)部分为版本号的存储提供数据结构。
SISVersion         长度
主                 TInt32         4字节
次                 TInt32         4字节
编译               TInt32         4字节
只有正值或零用于表示特定的版本。然而,在可应用的情况下,为了表示任何版本,可将SISVersion的主、次、和编译部分设置成-1。
SISVersion范围
该SISField指定版本的范围。它用于表示哪个版本能够满足一定的依存关系。如果范围只是一个特定的版本,那么所设置的“从版本”和“到版本”字段都应该被设置为相同的特定值。如果指定的升级可应用于任何版本,那么“从版本”和“到版本”字段应该使主、次、和编译部分设置成-1。
SISVersionRange         长度
从版本                  SISVersion
到版本                  SISVersion
当检查依存关系时,分别地根据“从版本”和“到版本”字段,检查包的安装版本。为了检查“从版本”字段,首先根据已经安装的版本的主版本检查安装的包的主版本。如果安装的主版本较低,那么该依存关系检查失败。如果安装的主版本较高,那么该依存关系检查通过。如果两个版本相同,那么以相同的方式检查次版本。如果主版本和次版本的所有部分相同,那么依存关系检查通过。以此方式执行版本的字典式(lexicographical)比较。在主、次、和编译部分中的任何值-1被作为特殊情况处理。如果出现使用“从版本”为-1的字段进行比较的情况,那么依存关系检查通过。以类似的方式检查“到版本”。
下面的实例示出了典型的比较检查结果:
              主            次            编译
从版本        3             -1            -1
到版本        4             5             -1
该检查结果将任何版本从3.x.x升级到4.5.x,其中x是任一值。
             主             次            编译
从版本       1              3             4
到版本       1              3             5
该检查结果将升级版本1.3.4或1.3.5。
SISDate
该SISDate包含日期。根据阳历(Gregorian calendar)存储日期,年部分全部存储,并且必须是有效日期。
SISDate        长度
年             TUint16        2字节
月             TUint8         1字节
日             TUint8         1字节
SISTime
该SISField包含时间。时间必须以UTC表示,而且为有效时间。
SISTime         长度
小时            TUint8        1字节
分钟            TUint8        1字节
秒              TUint8        1字节
SISDateTime
该SISField包含日期和时间SISField。
SISDateTime     长度
日期            SISDate
时间            SISTime
SISUid
该字段包含三个唯一标识符(UID)。
SISUid          长度
UID1            TInt32        4字节
UID2            TInt32        4字节
UID3            TInt32        4字节
SISVendorID
该SISField包含卖方ID。该ID对于特定的卖方是唯一的。
SISVendorID     长度
卖方ID          TInt32        4字节
VendorID
该SISField表示卖方。每个卖方具有其自身的唯一ID。
SISLanguage
该SISField标识语言。
SISLanguage     长度
语言            TUint32      4字节
语言
该字段的值对应于TLanguage枚举(enumeration),但是被作为TUint32存储在SISX文件中。
SISX文件元数据SISField
SISContent
该SISField包含SISX文件的整个内容。内容被分成SIScontroller(其包含元数据)和SISData(其包含实际文件数据)。
SISContent              长度
控制器检查和            SISControllerChecksum
数据检查和              SISDataChecksum
控制器                  SISCompressed<SISController>
数据                    SISData
控制器检查和
该检查和是整个控制器字段内容的CRC-32检查和。该检查和覆盖整个SISCompressed<SISController>,所以如果SIScontroller被压缩,则它不必被解压缩以验证该检查和。这样,可以检查控制器的完整性,而不用检查整个文件。
数据检查和
该检查和是整个数据字段内容的CRC-32检查和。这能够检查数据的完整性而无需检查整个文件。
控制器
该控制器包含SISX文件的所有元数据。其可以被可选地压缩。
数据
数据字段包含SISX文件中的实际文件。根据出现在控制器字段中的元数据,这些被不同地处理。
SISControllerChecksum
该SISField包含可能压缩的SISController的检查和。
SISControllerChecksum        长度
检查和                       TUint32
检查和
该字段包含CRC-32检查和,该检查和在整个SISCompressed<SISController>字段上被计算出。
SISDataChecksum
该SISField包含SISX文件的SISData部分的检查和。
SISDataChecksum            长度
检查和                     TUnit32
检查和
该字段包含CRC-32检查和,该检查和在整个SISData SISField上被计算出。
SISController
该SISField包含SISX文件的元数据。
SISController        长度
信息                 SISInfo
选项                 SISSupportedOptions
语言                 SISSupportedLanguages
先决条件             SISPrerequisites
属性                 SISProperties
标志                 SISLogo
安装块               SISInstallBlock
签名                 SISSignatures
数据索引             TUInt16            2字节
SISX文件的元数据内容如下:
信息
该字段包含关于SISX文件的信息。
选项
该字段包含当安装文件时要求用户选择的选项。这些选项用于确定要安装哪些文件。
语言
该字段包含SISX文件支持的语言。
先决条件
该字段包含为了安装SISX文件所需要的先决条件。
属性
该字段包含属性,其为整数的密钥对、值对。
标志
该字段是可选的,并且如果出现的话则包含在开始安装时显示的标志。
签名
该字段包含已经标记了SISX文件的签名以及需要对其进行验证的证书链。
数据索引
该字段是SISDataSISField的数据单元字段的数组的索引。每个SISController均具有一个SISDataUnit。
SISInfo
该字段包含以下关于SISX文件的信息。
SISInfo        长度
UID            SISUid
卖方ID         SISVendorID
名称           SISArray<SISString>
卖方名称            SISArray<SISString>
版本                SISVersion
创建时间            SISDateTime
安装类型            TUnit8            1字节
UID
该字段包含SISX文件的UID。该UID应该对于将特定应用程序打包的SISX文件是唯一的,但是可能该包的多个不同版本具有相同的UID。
卖方ID
该字段包含创建包的卖方的ID。
名称
该字段包含SISX文件的名称的数组。所支持的每种语言均具有一个名称,并且在数组中相同的位置,每个名称与在SISController的SISSupportedLanguages字段中标识的相应语言相匹配。
卖方名称
该字段包含SISX文件卖方的名称的数组。所支持的每种语言均具有一个名称,并且在数组中相同的位置,每个名称与在SISController的SISSupportedLanguages字段中标识的相应语言相匹配。
版本
该字段包含SISX文件的版本。
创建时间
该字段包含SISX文件的创建时间和日期。然而,这不是安全的时间信息(timestamp),因此能够在创建SISX文件之前由改变其PC时钟的用户很容易地改变。
安装类型
该字段包含SISX文件的安装类型。根据该值,安装软件将使用不同的方式安装包。将该值作为TUnint8进行存储,但是对应于下面的枚举:
enum TInstallType
              {
              EInstApplication
              };
EInstApplication
SISX文件包含能够被安装在装置上的应用程序。一旦安装了应用程序,它出现在安装的SISX文件的列表中,使得用户能够将其除去。如果用户想要在已经安装有UID和类型EInstApplication的SISX文件的装置上安装具有相同的UID和类型EInstApplication的SISX安装文件,那么这被认为是升级。如果出现这种情况,从装置中除去当前版本,安装新版本。
SISSupportedLanguage
该SISField包含SISX文件支持的语言的数组。
SISSupportedLanguage        长度
语言                        SISArray<SISLanguage>
SISSupportedOption
该SISField包含SISX文件支持的选项。在安装过程中要求用户从这些选项中进行选择。
SISSupportedOption      长度
选项                    SISArray<SISSupportedOption>
选项
该字段是SISX文件支持的选项的数组。在SISX文件支持的每个选项的数组中均具有一个条目,并且其大小可以为零或更大。
SISSupportedOption
该字段包含SISX文件支持的选项的名字。在SISX文件中每种支持的语言的数组中均具有一个名字,与在SISSupportedLanguagesSISField中指定的顺序相同。
SISSupportedOption        长度
名称                      SISArray<SISString>
SISPrerequisite
该SISField表示在安装软件将安装SISX文件之前必须满足的先决条件。在该实施例中所支持的先决条件类型是:
i.已经安装在装置上的SISX包及其版本。
ii.装置必须为装置列表中的一个,由预先安装在装置上的SISX文件进行标识。
SISPrerequisite         长度
目标装置                SISArray<SISDependency>
依存关系                SISArray<SISDependency>
目标装置
该字段是指示该SISX文件能够安装在哪个装置上的SISDependency SISField的数组。每个装置均具有预先安装的特定于那个装置的SISX文件。如果目标装置SISArray包含任何SISDependencies,那么为了将SISX文件安装在装置上,必须出现这些依存关系中的至少一个。如果目标装置SISArray没有条目,那么可以将SISX文件安装在任何类型的装置上。
依存关系
该字段是SISDependencies的数组,用于指示为了使这个字段可安装,需要安装哪些SISX包。可以有零个或多个依存关系。为了继续安装,所有出现在该SISArray中的SISX文件必须存在于装置上。
SISDependancy
该SISField指定必须安装在装置上的SISX包。
SISDependancy        长度
UID                  SISUid
版本范围             SISVersionRange
依存关系名称         SISArray<SISString>
UID
该字段指示为了满足该依存关系而需要安装在装置上的SISX包的UID。
版本范围
该字段指示需要安装在装置上的SISX包的版本范围。
依存关系名称
该数组包含由SISX文件支持的每种语言中依存关系的名称列表。SISX文件支持的每种语言中必须正好只有一个SISString。
SISProperties
SISProperties块包含SISX包的属性。
SISProperties        长度
属性                 SISArray<SISProperty>
SISProperty
该SISField包含属性,其为与SISX包相关的密钥对、值对。
SISProperty        长度
密钥对             TInt32        4字节
值                 TInt32        4字节
SISLogo
该SISField可以包含在安装过程中显示的标志。
SISLogo           长度
标志文件          SISFileDescription
Logo文件
该字段包含在安装开始时显示的标志文件的SISFileDescription。使用SISFileDescription的MIME类型字段来确定标志的格式。如果SISFileDescription的目标字段不是空字符串,那么也将标志安装在装置上。
SISFileDescription
该SISField给出关于存储在SISData部分的文件的信息。
SISFileDescription      长度
目标                    SISString
MIME类型                SISString
操作                    TUint8           1字节
操作选项                TUint32          4字节
散列                    SISHash
长度                    TUint64          8字节
未压缩长度        TUint64        8字节
文件索引          TUint32        4字节
目标
该字段是将文件安装到的位置。这只用于实际上将要复制文件在装置上某处的指令,该字段可能为指示文件将不会被安装的空字符串,例如当需要运行文件或将其显示为标志而实际上没有将其安装在装置上时。
MIME类型
该字段是所描述的文件的MIME类型。当运行MIME类型的文件时以及在安装过程中显示图像文件时使用该字段,以选择使用的图像解码器类型。
操作
该字段用于指示在安装过程中怎样处理该文件。
enum TSISFileOperation
    {
    EOpInstall=1,      //安装文件
    EOpRun=2,          //运行文件
    EOpText=4           //将文件显示为文本
    };
操作选项
该字段指示在安装过程中哪些选项可应用于处理该文件。所执行的操作确定哪些选项是有效的。
对EOpInstall有效的选项
enum TInstInstallOption
     {
     EInstVerifyOnRestore    =1<<15    //验证恢复
     };
EInstOptionReadOnly
该选项用于安全备份和恢复,以表示该文件在安装后已经被写入,所以其内容将保持与安装时相同。这允许在从备份恢复文件时,通过检查散列进行验证。
对EOpRun有效的选项
enum TInstFileRunOption
     {
     EInstFileRunOptionInstall      =1<<1,//安装时运行
     EInstFileRunOptionUnInstall    =1<<2,//卸载时运行
     EInstFileRunOptionByMimeType   =1<<3,//使用MIME类型运行
     EInstFileRunOptionWaitEnd  =1<<4,//在继续前等待结束
     };
EInstFileRunOptionInstall
该选项表示将在安装时运行指定的文件。如果目标字段有效,那么将该文件安装到那个位置,否则不将该文件复制到装置。
EInstFileRunOptionUnInstall
该选项表示将在卸载时运行指定的文件。目标字段必须有效,这是因为安装软件将该文件复制到装置,从而能够在包被卸载时运行该文件。
EInstFileRunOptionByMimeType
该选项表示通过MIME类型,将在安装时或在卸载时运行该文件。如果没有设置该选项,那么指定的文件将被作为可执行文件运行。
EInstFileRunOptionWaitEnd
如果设置了该选项,在继续前,安装软件等待直到运行的应用程序完成。然而,安装软件应该执行合理的超时,否则恶意的或畸形的应用程序在没有重新启动装置的情况下将永远运行并且防止对安装软件的任何其他访问。如果没有设置该选项,则在继续前,安装软件不等待运行的应用程序结束。一旦安装软件已经完成该安装或卸载,则终止仍在运行的应用程序。
对EOpText有效的选项
    enum TInstTextOption

         {

         EInstFileTextOptionContinue    =1<<9,//继续按钮
				
				<dp n="d31"/>
    EInstFileTextOptionSkipIfNo =1<<10,//是/否-如果用
户选择否,则跳过下一个文件

    EInstFileTextOptionAbortIfNo=1<<11,//是/否-如果用户
选择否,则中止安装

    EInstFileTextOptionExitIfNo =1<<12,//是/否-如果用户
选择否,则卸载

        };

    EInstFileTextOptionContinue
该选项表示安装程序将显示文本,具有用于继续安装的按钮。在对话框消除后,安装将继续。
EInstFileTextOptionSkipIfNo
该选项表示安装程序将显示文本,具有两个按钮,一个标记为“是”,一个标记为“否”。如果选择了“否”按钮,那么安装程序将跳过当前处理的文件,否则安装将正常进行。
EInstFileTextOptionAbortIfNo
该选项表示安装程序将显示文本,具有两个按钮,一个标记为“是”,一个标记为“否”。如果选择了“否”按钮,那么安装程序将中止安装,否则安装将正常进行。安装程序将显示表示安装已经中止的对话框。
EInstFileTextOptionExitNo
该选项表示安装程序将显示文本,具有两个按钮,一个标记为“是”,一个标记为“否”。如果选择了“否”按钮,那么安装程序将中止安装,否则安装将正常进行。EInstFileTextOptionAbortIfNo和该选项选项之间的唯一区别是安装程序将不显示表示安装已经中止的对话框。
散列
该字段包含未压缩的文件数据的散列。
长度
该字段包含压缩文件数据的长度,SISFileDescription涉及SISX文件本身。
未压缩的长度
该字段包含压缩文件数据的长度,SISFileDescription在其已经被解压缩后被涉及。
文件索引
该字段是SISFileDataSISField的索引,它包含在SISDataUnit的数据单元字段中的实际文件数据。
SISHash
该SISField代表散列
SISHash            长度
散列算法           TUint8        1字节
散列数据
散列算法
该字段表示用于生成散列的算法。可能支持的典型的散列算法为:
enum TSISHashAlgorithm
{
     ESISHashAlgSHA1=1,//SHA-1散列算法
}
散列数据
该字段包含散列的原始数据。数据的长度取决于所使用的散列算法。
SSIX文件格式被设计成支持使用多证书链进行标记。每个链也支持多个签名,使得不同的算法能够用于每个签名。在图4中示出了链的布局。只需要使这些签名中一个生效,从而安装软件认为证书链有效。
SISSIgnature
该SISField包含需要使这些签名生效的多签名和证书链。
SISSignature        长度
              SignatruesSISArray<SISSignatureCertificateChain
SISSignatureCertificateChain
该SISField包含用于将需要使签名生效的SISX文件和证书链标记的签名。
SISSignatureCertificateChain        长度
签名                                SISArray<SISSignature>
证书链                              SISCertificateChain
签名
该字段包含签名的数组。
证书链
该字段包含需要验证签名的证书链。
SISCertificateChain
该SISField包含作为ASN.1编码的X509证书链的证书数据。
SISCertificateChain        长度
证书数据
证书链
该字段包含作为ASN.1编码的X509证书链的证书数据。
SISSignature
该SISField包含签名和标记的标识符以及用于生成它的散列算法。
SISSignature        长度
签名算法
签名数据
签名算法
这包含着用于标记的算法以及用于散列数据的算法,使得签名有效。
签名数据
该字段包含签名数据。
SISSignatureAlgorithm
该SISField包含关于签名和用于创建签名的散列算法的详情。
SISSignatureAlgorithm        长度
算法标识符                   SISString
算法
这是由代表所使用的算法的对象标识符的字符“.”限定的字符串。典型的算法是:
1.“1.2.840.113549.1.1.5”-具有RSA签名的SHA-1
2.“1.2.840.10040.4.3”-具有DSA签名的SHA-1
从文本包描述中生成SISX文件。在安装时,该描述使用“if”、“then”以及“else”结构支持决定安装哪些文件的简单格式。使用以下的SISField将其编码为SISX包。
SISIf
该SISField代表在用于生成SISX文件的包文件中的条件和“if”语句。
SISIf               长度
表达式              SISExpression
安装                SISInstallBlock
Else ifs            SISArray<SISElseIf>
表达式
该字段包含在安装过程中该SISField的处理过程中计算的表达式。
安装块
该字段包含若表达式计算为真时递归处理的SISInstallBlock。
Else ifs
如果表达式计算为假,那么顺序计算这些SISElseIf SISField中的每一个。如果表达式中的一个计算为真,那么递归处理SISInstallBlock,并且不再检查数组中的SISElseIf块。在该数组中可能为零或更大的SISElseIf SISField。通过添加SISElseIfSISField,在计算总为真的条件下,MakeSIS能够模拟包中的else语句。
SISElseIf
该SISField代表在打包文件中“if”语句的“else if”部分。
SISElseIf         Length
表达式            SISExpression
安装块            SISInstallBlock
表达式
当处理SISElseIf SISField时,由安装软件计算该字段。
安装块
如果表达式字段计算为真,那么由安装软件递归处理该SISInstallBlock SISField。
SISInstallBlock
该SISField包含需要安装的文件的列表、嵌入的SISX文件的列表、以及在该安装块内部的SISIf块中的列表。这些数组中的每个均具有零个或多个条目。
SISInstallBlock         长度
文件                    SISArray<SISFileDescription>
嵌入的SISX文件          SISArray<SISController>
If块                    SISArray<SISIf>
文件
该字段包含需要使用SISInstallBlock处理的文件的列表。要执行的最通常的操作将是安装这些文件,但是根据选项,可以将它们显示给用户或运行。在该数组中,可能有零个或更多的SISFileDescription SISField。
嵌入的SISX文件
该文件包含嵌入的SISX文件的列表,SISX文件由存储在SISX文件的元数据中的SISControllers表示,并且需要使用SISInstallBlock处理。在该数组中,可能有零个或更多的SISController SISField。
If块
该字段包含需要使用SISInstallBlock处理的SISIf字段的列表。安装软件将检查这些SISIf块中的每一个的条件,并且如果条件为真,则递归处理该SISIf块。在该数组中,可能有零个或更多的SISIfSISField。
SISExpression
该SISField代表表达式。表达式被分成几个部分,并且整个表达式表示为SISExpression SISField树。
SISExpression          长度
运算符                 TInt16            2字节
左表达式               SISExpression
右表达式            SISExpression
整数值              TInt32            2字节
字符串值            SISString
如果运算符是EOpNone,那SISField将不包含其他数据,并且为以下形式:
SISExpression       长度
运算符              TInt16=EOpNone
这是允许表达式终止。
运算符
该字段表示该表达式的运算符,从而确定其他字段中哪个是有效的。
    enum TOperator

         {

         EOpNone=0,

         //二进制运算符

         EBinOpEqual=1,//等于

         EBinOpNotEqual,//不等于
				
				<dp n="d40"/>
    EBinOpGreaterThan,//大于

  EBinOpLessThan,//小于

  EBinOpGreaterOrEqual,//大于或等于

  EBinOpLessOrEqual,//小于或等于

  //逻辑运算符

  ELogOpAnd,//逻辑“与”

  ELogOpOr,//逻辑“或”

  //一元运算符

  EUnaryOpNot,//非()-逻辑“非”

  //函数

  EFuncExists,//EXISTS()-如果文件存在,则进行检查

  EFuncAppProperties,//APPPROP()-查询应用程序属性

  //基元
				
				<dp n="d41"/>
  EPrimTypeString,//该表达式保留字符串值

  EPrimTypeOption,//该表达式是选项,由字符串标识

  EPrimTypeVariable,//该表达式是变量,由字符串标识

  EPrimTypeNumber//该表达式保留数字值

  };
左表达式
这是表达式的左侧子部分。这将是有效的,即,当该SISExpression的运算符不是基元EPrimTypeString、EPrimTypeOption、EPrimTypeVariable、EPrimTypeNumber、或函数EFuncExists、EFuncAppProperties中的任何一个时,所包含的SISExpression将没有EOpNone的运算符。
右表达式
这是表达式的右侧子部分。这将是有效的,即,当该SISExpression的运算符是任何二进制运算符EBinOpEqual、EBinOpNotEqual、EBinOpGreaterThan、EBinOpLessThan、EBinOpLessOrEqual、EBinOpGreaterOrEqual、或逻辑运算符ELogOpAnd和ELogOpOr时,所包含的SISExpression将没有EOpNone的运算符。
整数值
表达式的该部分可以包含整数值。只有当表达式的类型为EPrimTypeNumber或EFuncAppProperties时,该部分才有效。
字符串值
表达式的该部分可以包含字符串。只有当表达式的类型为EPrimTypeString、EPrimTypeOption、EPrimTypeVariable或EFuncExists时,该部分才有效。
如上所述,SISX文件被设置为两部分:SISSignedController部分和SISData部分。上面的分解解释了包含在SISSignedController部分中的字段。现在将解释SISData部分。
SISX文件的该部分包含在安装过程中使用的实际文件数据。它由数据单元的数组组成,其中每一个均包含来自一个SISController的文件。如果有嵌入的SISX文件,可能有一个以上的数据单元。每个SISController均具有包含SISData SISField中的数据单元数组的索引的字段。该字段包含由那个SISController安装的文件。这使得添加和除去嵌入的SISX文件很容易。在图5中示出了具有嵌入的SISX文件的SISX文件格式的实例。SISData部分也包含如下的多个SISField。
SISData
SISData SISField包含SISX文件的所有文件数据。
SISData         长度
数据单元        SISArray<SISDataUnit>
数据单元
为SISX文件的元数据中的每个SISController提供一个数据单元。如果有嵌入的文件的话,可能有一个以上的SISController以及这样的数据单元。
SISDataUnit
SISDataUnit SISField包含SIScontroller的所有文件数据。
SISDataUnit         长度
文件数据            SISArray<SISCompressed>
<SISFileData>
文件数据
该字段是可被压缩的SISFileData SISField的数组。在每个文件的该数组中存在条目,使该SISController安装成为可能。
SISFileData
SISFileData SISField包含文件的实际数据。
SISFileData         长度
数据长度            TUint64      8字节
文件数据                         数据
长度
数据长度
该字段包含压缩数据的长度。它是出现在SISFileDescription中的信息的副本,其为了方便而出现的。
文件数据
该字段包含文件数据。
总之,本发明被认为提供了以下已知软件安装包的显著优势:
●容易实现移动安装,提供比通过PC更方便的安装,这是因为能够基本上在任何地方无线地执行安装。
●比在可移动介质上设置软件作为标准压缩包更高效和快速的安装,这是因为在对任何文件解压缩的过程中没有浪费电源、带宽或时间。
●安装更可靠,因为不大可能发生内存不足的错误。
●比提供从标准包预先安装到可移动介质上的软件更安全的安装,这是因为它没有绕过关于软件的出处和真实性的安全性检查。
●比通过无线互联网更高效、快速、且更可靠的安装,这是因为它不依赖于慢的和可能时断时续的连接。
虽然参照特定实施例描述了本发明,应该理解在所附的权利要求限定的本发明的范围内可以对本发明实施修改。

Claims (12)

1.一种用于在计算装置上安装软件的方法,所述方法包括用于决定是否安装所述软件的决策阶段和用于安装所述软件的安装阶段,其中,所述决策阶段所需要的信息包括元数据,所述元数据具有由数字签名保护的完整性并且包括将被安装的文件的用于验证所述文件数据的所述完整性的各自散列。
2.根据权利要求1所述的方法,其中,所述决策阶段包括验证将要被安装的所述文件的真实性和完整性。
3.根据权利要求1或2所述的方法,其中,将用于所述决策阶段的所述元数据与支持所述安装阶段的所述文件数据分开提供。
4.根据权利要求1至3中任一项所述的方法,其中,将所述安装阶段与所述决策阶段分开处理。
5.根据前述权利要求中任一项所述的方法,其中,在文件安装过程中验证所述元数据的所述数字签名和所述文件的所述散列,或在文件安装后对其进行重新验证,或两者都进行。
6.根据前述权利要求中任一项所述的方法,其中,所述元数据除了所述散列以外还包括关于一个或多个程序依存关系、软件模块和硬件版本支持、文件位置、设计者信息或卖方信息的信息,其中,除了验证所述文件的所述真实性和所述完整性以外,当决定是否安装所述软件时,所述决策阶段还利用该信息的至少一部分。
7.根据前述权利要求中任一项所述的方法,其中,将所述计算装置选取为包括移动电话或PDA。
8.根据前述权利要求中任一项所述的方法,其中,所述软件设置在可移动介质上,所述可移动介质包含所述文件,所述文件包括设置在其正确位置的所述软件以及所述决策阶段需要的所述元数据。
9.根据权利要求8所述的方法,其中,将所述可移动介质选取成包括紧凑式闪存卡或多媒体卡或记忆棒或任何其他类型可写且可移动介质。
10.一种计算装置,配置成根据权利要求1至9中任一项所限定的方法运行。
11.一种计算机软件包,用于在计算装置上安装软件,以使所述计算装置根据权利要求1至9中任一项所限定的方法运行。
12.根据权利要求11所述的计算机软件包,其包括所述计算装置的操作系统部分。
CN2005800137200A 2004-04-29 2005-04-29 可移动介质上的软件安装 Expired - Fee Related CN1950798B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0409633.5 2004-04-29
GB0409633A GB2413653B (en) 2004-04-29 2004-04-29 Installation of software on removable media
PCT/GB2005/001652 WO2005106654A1 (en) 2004-04-29 2005-04-29 Installation of software on removable media

Publications (2)

Publication Number Publication Date
CN1950798A true CN1950798A (zh) 2007-04-18
CN1950798B CN1950798B (zh) 2010-04-21

Family

ID=32408285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800137200A Expired - Fee Related CN1950798B (zh) 2004-04-29 2005-04-29 可移动介质上的软件安装

Country Status (6)

Country Link
US (1) US20070214453A1 (zh)
EP (1) EP1745372A1 (zh)
JP (1) JP2007535053A (zh)
CN (1) CN1950798B (zh)
GB (1) GB2413653B (zh)
WO (1) WO2005106654A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841535A (zh) * 2010-04-01 2010-09-22 华为终端有限公司 J2me程序的发布方法、接收方法、装置及系统
CN102314578A (zh) * 2011-09-26 2012-01-11 浪潮(北京)电子信息产业有限公司 一种实现软件保护的系统及方法
CN103577762A (zh) * 2012-07-23 2014-02-12 北京掌汇天下科技有限公司 一种渠道标记系统及方法
CN103886245A (zh) * 2012-12-20 2014-06-25 通用汽车环球科技运作有限责任公司 用于规避安全控制模块的真实性检查的方法和系统

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739681B2 (en) * 2005-06-29 2010-06-15 Novell, Inc. Delayed application installation
WO2007035062A1 (en) * 2005-09-22 2007-03-29 Kt Corporation Method for generating standard file based on steganography technology, and apparatus and method for validating integrity of metadata in the standard file
US8051298B1 (en) * 2005-11-29 2011-11-01 Sprint Communications Company L.P. Integrated fingerprinting in configuration audit and management
US7584195B2 (en) 2005-11-30 2009-09-01 Microsoft Corporation Decomposing installation of distributed services
US7343266B2 (en) * 2005-11-30 2008-03-11 Agilent Technologies, Inc. System and method for metadata verification during measurement processing
JP4556857B2 (ja) * 2005-12-07 2010-10-06 セイコーエプソン株式会社 情報配信装置、情報配信装置の制御方法および制御プログラム
US8869142B2 (en) * 2006-01-27 2014-10-21 Microsoft Corporation Secure content publishing and distribution
GB2435700A (en) * 2006-03-02 2007-09-05 F Secure Oyj Automatic execution of an application on a mobile communications device
US8621433B2 (en) * 2006-03-20 2013-12-31 Microsoft Corporation Managing version information for software components
US9395968B1 (en) * 2006-06-30 2016-07-19 American Megatrends, Inc. Uniquely identifying and validating computer system firmware
US7797696B1 (en) 2006-06-30 2010-09-14 American Megatrends, Inc. Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure
US7590835B1 (en) 2006-06-30 2009-09-15 American Megatrends, Inc. Dynamically updating a computer system firmware image
JP2008027129A (ja) * 2006-07-20 2008-02-07 Yamaha Corp 互換性判定装置およびプログラム
KR101495341B1 (ko) 2007-06-01 2015-02-25 삼성전자주식회사 소프트웨어 컴포넌트의 id를 할당하는 방법 및 시스템
US20140040877A1 (en) * 2007-06-08 2014-02-06 Adobe Systems Incorporated Application execution and installation environment
US9652210B2 (en) 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US8484752B2 (en) * 2007-11-14 2013-07-09 Caterpillar Inc. Verifying authenticity of electronic control unit code
US8321933B2 (en) * 2007-11-14 2012-11-27 Caterpillar Inc. Securing electronic control unit code
JPWO2009081527A1 (ja) * 2007-12-26 2011-05-06 日本電気株式会社 情報処理装置、仮想計算機構成方法、並びに、プログラムを記録したコンピュータ読み取り可能な記録媒体
GB2456134A (en) * 2007-12-31 2009-07-08 Symbian Software Ltd Typed application development
JP5052367B2 (ja) * 2008-02-20 2012-10-17 株式会社リコー 画像処理装置、認証パッケージインストール方法、認証パッケージインストールプログラム、及び記録媒体
US9032390B2 (en) * 2008-07-29 2015-05-12 Qualcomm Incorporated Framework versioning
US10459711B2 (en) 2008-08-12 2019-10-29 Adobe Inc. Updating applications using migration signatures
US8417954B1 (en) 2009-02-11 2013-04-09 Hewlett-Packard Development Company, L.P. Installation image including digital signature
US8464249B1 (en) * 2009-09-17 2013-06-11 Adobe Systems Incorporated Software installation package with digital signatures
US8949797B2 (en) 2010-04-16 2015-02-03 International Business Machines Corporation Optimizing performance of integrity monitoring
EP2383645B1 (en) 2010-04-30 2015-03-04 BlackBerry Limited Method and device for application installation to multiple memory components
JP2013020354A (ja) * 2011-07-08 2013-01-31 Ricoh Co Ltd ログ集計プログラム、ログ集計装置およびインストーラ・パッケージャ・プログラム
JP2015138297A (ja) * 2014-01-20 2015-07-30 キヤノン株式会社 配信システム及びその制御方法
FR3023400A1 (fr) * 2014-07-04 2016-01-08 Schneider Electric Ind Sas Procede de gestion de l'installation d'une application sur un dispositif electronique
WO2016065014A1 (en) * 2014-10-21 2016-04-28 Princeton University Trust architecture and related methods
CN105446767A (zh) * 2015-10-27 2016-03-30 深圳市科陆电子科技股份有限公司 智能台后装的生产测试中终端软件升级方法与系统
CN105426206B (zh) * 2015-11-12 2018-11-20 深圳国微技术有限公司 一种版本信息的控制方法和控制装置
US11902453B2 (en) * 2021-06-25 2024-02-13 Intel Corporation Method, system and apparatus for delayed production code signing for heterogeneous artifacts
CN117873539A (zh) * 2023-12-28 2024-04-12 四川赛狄信息技术股份公司 基于MicroBlaze的FPGA在线升级方法、系统及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US5768597A (en) * 1996-05-02 1998-06-16 Starfish Software, Inc. System and methods for improved installation of compressed software programs
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US6948168B1 (en) * 2000-03-30 2005-09-20 International Business Machines Corporation Licensed application installer
US6535894B1 (en) * 2000-06-01 2003-03-18 Sun Microsystems, Inc. Apparatus and method for incremental updating of archive files
AU2001285125B2 (en) * 2000-08-21 2004-08-26 Igt Method and apparatus for software authentication
JP2003202929A (ja) * 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム
US6988163B2 (en) * 2002-10-21 2006-01-17 Microsoft Corporation Executing binary images from non-linear storage systems

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841535A (zh) * 2010-04-01 2010-09-22 华为终端有限公司 J2me程序的发布方法、接收方法、装置及系统
CN102314578A (zh) * 2011-09-26 2012-01-11 浪潮(北京)电子信息产业有限公司 一种实现软件保护的系统及方法
CN102314578B (zh) * 2011-09-26 2015-10-28 浪潮(北京)电子信息产业有限公司 一种实现软件保护的系统及方法
CN103577762A (zh) * 2012-07-23 2014-02-12 北京掌汇天下科技有限公司 一种渠道标记系统及方法
CN103577762B (zh) * 2012-07-23 2017-02-01 北京掌汇天下科技有限公司 一种安卓应用分发体系内的渠道标记系统及方法
CN103886245A (zh) * 2012-12-20 2014-06-25 通用汽车环球科技运作有限责任公司 用于规避安全控制模块的真实性检查的方法和系统
US10038565B2 (en) 2012-12-20 2018-07-31 GM Global Technology Operations LLC Methods and systems for bypassing authenticity checks for secure control modules

Also Published As

Publication number Publication date
JP2007535053A (ja) 2007-11-29
GB2413653B (en) 2007-11-28
CN1950798B (zh) 2010-04-21
US20070214453A1 (en) 2007-09-13
EP1745372A1 (en) 2007-01-24
GB0409633D0 (en) 2004-06-02
GB2413653A (en) 2005-11-02
WO2005106654A1 (en) 2005-11-10

Similar Documents

Publication Publication Date Title
CN1950798A (zh) 可移动介质上的软件安装
CN1252725C (zh) 记录介质、记录设备、记录方法、编辑设备与编辑方法
CN1236581C (zh) 用于加密数据传送的数据处理方法、装置和系统
CN1264168C (zh) 用于处理数据的装置和方法
CN1650571A (zh) 内容处理装置、内容存储介质、内容处理方法和内容处理程序
CN1856036A (zh) 字幕产生设备和方法
CN1591397A (zh) 安全数据管理设备
CN1270470C (zh) 用于装置之间相互识别的数据处理系统和方法
CN1286024C (zh) 记录装置、记录方法和通信装置
CN1716225A (zh) 普通usb驱动器
CN1875345A (zh) 在编译过程中表示和检查程序组件的一致性的可扩展类型系统
CN1397123A (zh) 数据再现/记录设备和方法,和表格更新方法
CN1834889A (zh) 软件认证系统和软件认证程序及软件认证方法
CN1180567C (zh) 用于加密数据传送的数据处理方法、装置和系统
CN1719371A (zh) 文档数字签名及其实现电子印章和手写签名的方法
CN1282071C (zh) 数据处理装置、数据处理方法和程序
CN1309209C (zh) 信息提供及处理设备、方法和系统以及程序及其存储介质
CN1822016A (zh) 基于对称密钥加密保存和检索数据
CN1302391C (zh) 记录装置和方法
CN1890916A (zh) 使用椭圆曲线的信息传输系统、加密设备和解密设备
CN1219383C (zh) 一种实现用户业务远程验证拨号协议的编码和解码方法
CN100336668C (zh) 打印系统、装置及方法、打印请求装置及管理装置
CN1288524C (zh) 使用“重命名”原理保护软件防止未授权使用的方法
CN1529846A (zh) 在以过程语言开发的计算机软件应用程序中的导航
CN1288525C (zh) 通过“变量”原理保护软件防止未授权使用的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NOKIA OY

Free format text: FORMER OWNER: SYMBIAN SOFTWARE LTD.

Effective date: 20100826

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: LONDON, ENGLAND TO: ESPOO, FINLAND

TR01 Transfer of patent right

Effective date of registration: 20100826

Address after: Espoo, Finland

Patentee after: Nokia Oyj

Address before: London, England

Patentee before: Symbian Software Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160114

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100421

Termination date: 20170429

CF01 Termination of patent right due to non-payment of annual fee