用于更新只读系统映像内的系统级服务的系统和方法
【专利说明】
【背景技术】
[0001]移动设备运营商和制造商通常会运送带有只读出厂设置系统映像的移动计算设备。这些系统映像一般包括运行及操作移动计算设备所需的设置、配置、软件、操作系统等等。在一些情况下,设备运营商和制造商可允许所选的开发者(如安全软件供应商)在该图像中嵌入服务。虽然开发者可以通过运营商或制造商的空中下载(OTA)更新来更新这些服务,但是此更新过程可能既麻烦又缓慢,并且可能无法让开发者及时修复严重的漏洞。此外,由于OTA更新往往涉及重新闪存设备,因此该更新过程可能意味着要承担固有的风险,这有可能导致更新失败,进而可能会使得设备不可用并且/或者造成设备上的关键应用程序发生故障。最后,虽然开发者可以为已重装或“已获取系统权限”的系统映像提供更新,但该过程可能损害设备完整性,并且在一些情况下,阻止已获取系统权限的设备连接到运营商网络。
[0002]因此,本公开认识到需要更新只读系统映像内系统级服务的更加快速有效的机制并解决了这一需求。
【发明内容】
[0003]如将在下文更加详细地描述,本发明整体涉及用于通过执行来自可写分区的对系统级服务的更新,而非执行存储在只读系统映像中的系统级服务来更新存储在只读系统映像中的系统级服务的系统和方法。在一个例子中,用于完成这种任务的计算机实现的方法可包括:(I)在移动计算设备初始化期间,执行存储在位于移动计算设备上的只读系统映像内的更新服务,(2)通过该更新服务,识别位于移动计算设备上的可写分区,(3)通过该更新服务,为至少一个系统级服务识别在可写分区内的数字签名更新,该至少一个系统级服务存储在只读系统映像中,并且被配置为在移动计算设备初始化期间被加载,以及然后(4)通过该更新服务,执行可写分区内的数字签名更新而非执行存储在只读系统映像中的系统级服务。
[0004]在一些例子中,该计算机实现的方法还可包括:(I)从远程服务器中检索该数字签名更新,以及(2)将该数字签名更新存储在可写分区内的预定义位置中。在至少一个实施例中,该方法还可包括(I)定期搜索可写分区中的更新并且/或者(2)定期查询远程服务器中的更新。
[0005]该计算机实现的方法还可包括,先通过验证数字签名更新的数字签名来确定数字签名更新是安全的,再执行数字签名更新。在至少一个例子中,验证数字签名更新的数字签名可包括验证该数字签名更新的真实性和/或完整性。
[0006]在一些实施例中,该计算机实现的方法还可包括,识别系统级服务的数字签名更新后,终止系统级服务并执行数字签名更新。在一个例子中,执行数字签名更新可包括:(I)立即执行数字签名更新以及/或者(2)当移动计算设备初始化时,执行数字签名更新。
[0007]在该计算机实现的方法的一些例子中,更新服务可包括系统级服务的父进程。在这些例子中,该计算机实现的方法还可包括,在识别系统级服务的数字签名更新之前,(I)通过更新服务,为更新服务识别其在可写分区内的数字签名更新,(2)通过更新服务,为更新服务验证数字签名更新,以及然后(3)通过更新服务,为更新服务执行数字签名更新。
[0008]在该计算机实现的方法的一个实施例中,识别数字签名更新可包括通过更新服务从(I)系统级服务和/或(2)附加服务接收数字签名更新的通知。该计算机实现的方法还可包括:(I)通过更新服务,识别至少一个附加系统级服务的更新,(2)通过更新服务确定,因为无法验证附加系统级服务的更新的数字签名,所以附加系统级服务的更新是不安全的,以及(3)通过更新服务,执行附加系统级服务,而非执行附加系统级服务的更新。
[0009]在一个实施例中,该计算机实现的方法还可包括(I)检测在更新服务执行数字签名更新之后移动计算设备初始化失败,以及然后(2)将有关初始化失败的信息存储到可写分区内的日志中。当移动计算设备重新初始化时,该方法还可包括(3)根据存储在日志中的信息,确定系统级服务的数字签名更新造成初始化失败,以及(4)执行存储在只读系统映像中的系统级服务,而非执行可写分区内的数字签名更新。
[0010]在一个实施例中,用于实施上述方法的系统可包括初始化模块,该初始化模块在移动计算设备初始化期间执行存储在位于移动计算设备上的只读系统映像内的更新服务。更新服务可包括识别位于移动计算设备上的可写分区的分区模块。更新服务还可包括识别模块,该识别模块为至少一个系统级服务识别其在可写分区内的数字签名更新,该至少一个系统级服务存储在只读系统映像中,并且被配置为在移动计算设备初始化期间被加载。更新服务还可包括执行模块,该执行模块执行可写分区内的数字签名更新,而非执行存储在只读系统映像中的系统级服务。该系统还可包括至少一个物理处理器,该至少一个物理处理器被配置为执行初始化模块和更新服务的各个模块。
[0011]相应计算机可读介质可包括一个或多个计算机可读指令,当由计算设备的至少一个处理器执行时,这些计算机可读指令可使计算设备在移动计算设备初始化期间执行存储在位于移动计算设备上的只读系统映像内的更新服务。这些计算机可读指令还可使计算设备通过更新服务识别位于移动计算设备上的可写分区。这些计算机可读指令还可使得计算设备通过更新服务为至少一个系统级服务识别其在可写分区内的数字签名更新,该至少一个系统级服务存储在只读系统映像中,并且被配置为在移动计算设备初始化期间被加载。此外,这些计算机可读指令可使计算设备通过更新服务执行可写分区内的数字签名更新,而非执行存储在只读系统映像中的系统级服务。
[0012]来自上述实施例中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施例、特征和优点。
【附图说明】
[0013]附图示出了多个示例性实施例并且为说明书的一部分。这些附图结合下面的描述展示并且说明本发明的各种原理。
[0014]图1为用于更新只读系统映像内的系统级服务的示例性系统的框图。
[0015]图2为能够更新只读系统映像内的系统级服务的示例性移动计算设备的框图。
[0016]图3为用于更新只读系统映像内的系统级服务的示例性方法的流程图。
[0017]图4为用于更新只读系统映像内的系统级服务的示例性多分区存储设备的框图。
[0018]图5为能够实施本文描述和/或示出的实施例中的一者或多者的示例性计算系统的框图。
[0019]图6为能够实施本文描述和/或示出的实施例中的一者或多者的示例性计算网络的框图。
[0020]在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施例易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施例并且将在本文详细描述。然而,本文所述的示例性实施例并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
【具体实施方式】
[0021]本发明整体涉及用于更新只读系统映像内的系统级服务的系统和方法。如将在下文更加详细地阐释,本文所述的系统和方法可为更新存储在只读系统映像内的原生可执行文件提供及时有效的进程。具体地讲,通过将原生可执行文件的更新存储在可写分区内,然后执行这些更新,而非执行存储在只读系统映像内的原始原生可执行文件,本文所述的系统和方法可避免有风险的更新进程(例如OTA更新),并且可为开发者提供可在未获取系统权限、未改变或未损害只读系统映像完整性的情况下执行的安全且易于使用的进程。
[0022]下文将结合图1至图2提供用于更新只读系统映像内的系统级服务的示例性系统的详细描述。也将结合图3和图4提供相应计算机实现方法的详细描述。此外,将分别结合图5和图6提供能够实现本文所述实施例中的一者或多者的示例性计算系统和网络体系结构的详细描述。
[0023]图1为用于更新只读系统映像内的系统级服务的示例性系统100的框图。如该图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,以及如将在下文更加详细地阐释,示例性系统100可包括初始化模块104,该初始化模块在移动计算设备初始化期间执行存储在位于移动计算设备上的只读系统映像内的更新服务。示例性系统100还可包括分区模块106,该分区模块识别位于移动计算设备上的可写分区。此外,示例性系统100可包括识别模块108,该识别模块为至少一个系统级服务识别其在可写分区内的数字签名更新,该至少一个系统级服务存储在只读系统映像中,并且被配置为在移动计算设备初始化期间被加载。示例性系统100还可包括验证模块110,该验证模块通过验证数字签名更新的数字签名来确定数字签名更新是安全的。示例性系统100还可包括执行模块112,该执行模块执行可写分区内的数字签名更新,而非执行存储在只读系统映像中的系统级服务。
[0024]在一些实施例中,示例性系统100还可包括检索模块114,该检索模块从远程服务器中检索数字签名更新,并将该数字签名更新存储在可写分区内的预定义位置中。示例性系统100还可包括故障安全模块116,该故障安全模块避免执行阻止移动计算设备初始化的数字签名更新。尽管例示为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。
[0025]在某些实施例中,图1中的模块102中的一者或多者可表不一个或多个软件应用程序或程序,当通过计算设备执行时所述软件应用程序或程序可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述,模块102中的一者或多者可表示存储并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2中示出的设备(例如,移动计算设备202和/或更新服务器206)、图5中的计算系统510和/或图6中的示例性网络体系结构600的部分。图1中的模块102中的一者或多者也可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
[0026]如图1所示,示例性系统100还可包括一个或多个数据库,诸如更新数据库120。在一个例子中,更新数据库120可被配置为存储系统级服务的更新,所述系统级服务存储在移动计算设备(诸如图2中的移动计算设备202)上的只读系统映像中。在至少一个实施例中,更新数据库120可表示存储在更新服务器206上的数据库,而更新服务器206可被配置为经由网络204向移动计算设备202提供更新。
[0027]更新数据库120可表示单个数据库或计算设备的组成部分或者多个数据库或计算设备。例如,更新数据库120可表示图2中更新服务器206的一部分、图5中计算系统510,和/或图6中示例性网络体系结构600的多个部分。作为另外一种选择,图1中的更新数据库120可表示能够通过计算