CN116991447B - 一种操作系统更新方法及相关设备 - Google Patents

一种操作系统更新方法及相关设备 Download PDF

Info

Publication number
CN116991447B
CN116991447B CN202311133883.9A CN202311133883A CN116991447B CN 116991447 B CN116991447 B CN 116991447B CN 202311133883 A CN202311133883 A CN 202311133883A CN 116991447 B CN116991447 B CN 116991447B
Authority
CN
China
Prior art keywords
operating system
selinux
electronic device
directory
target
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.)
Active
Application number
CN202311133883.9A
Other languages
English (en)
Other versions
CN116991447A (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.)
Honor Device Co Ltd
Original Assignee
Honor Device Co 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202311133883.9A priority Critical patent/CN116991447B/zh
Publication of CN116991447A publication Critical patent/CN116991447A/zh
Application granted granted Critical
Publication of CN116991447B publication Critical patent/CN116991447B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Abstract

本申请公开了一种操作系统更新方法及相关设备。根据该方法,响应于第一操作,电子设备获取操作系统升级包,在至少一个目标目录中存在第一类目录的情况下,电子设备基于操作系统升级包中的新版本操作系统中至少一个目标目录与selinux标签的对应关系,给至少一个目标目录中的第一类目录重新绑定selinux标签,而在至少一个目标目录中存在第二类目录的情况下,至少一个目标目录中的第二类目录对应的selinux标签为其在旧版本操作系统中对应的selinux标签。第一类目录分别在新、旧版本操作系统中对应的selinux标签不同,而第二类目录相反。这种方法可以减少操作系统更新时长,缩短开机时长,提升用户使用体验。

Description

一种操作系统更新方法及相关设备
技术领域
本申请涉及终端技术领域,尤其涉及一种操作系统更新方法及相关设备。
背景技术
随着终端技术的迅速发展,硬件和软件的性能在不断提升,促进了操作系统(例如,安卓系统)的更新迭代。具体地,一方面,随着处理器和存储设备的不断升级,为了适应该新的硬件环境,操作系统需要不断更新,又一方面,随着互联网的迅速发展,网络安全问题越来越严峻,为了保护用户的个人信息和隐私,操作系统需要不断更新,又一方面,操作系统需要不断更新以提升用户的使用体验。
目前,安卓系统等操作系统使用安全增强型访问控制系统(Security EnhancedLinux,SELinux,后文统一写为selinux)来限制进程、用户和应用程序对系统资源的访问,从而减少系统被攻击的风险。在这种情况下,若操作系统新版本中的selinux标签发生变化,则操作系统更新时需要遍历用户数据来重新给数据路径下的目录绑定selinux标签。若用户数据太多,操作系统更新时会花费很长时间来重新绑定selinux标签,从而导致手机、平板电脑等电子设备在进行操作系统更新时花费很长时间才能开机启动,影响用户体验。
因此,如何减少操作系统更新时长是目前亟待解决的问题。
发明内容
本申请提供了一种操作系统更新方法及相关设备。根据该操作系统更新方法,电子设备可以只针对selinux标签发生变化的目录重新绑定selinux标签,而针对selinux标签未发生变化的目录仍采用其原来对应的selinux标签,以减少操作系统更新时给数据路径绑定selinux标签的时长,从而减少操作系统更新时长,缩短操作系统更新时的开机时长,提升用户使用体验。
第一方面,本申请提供了一种操作系统更新方法,可以应用于电子设备,所述方法包括:所述电子设备检测到第一操作;响应于所述第一操作,所述电子设备获取操作系统升级包;所述操作系统升级包用于将所述电子设备使用的操作系统由旧版本操作系统升级为新版本操作系统;所述电子设备确定至少一个目标目录;在所述至少一个目标目录中存在第一类目录的情况下,所述电子设备基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签;其中,在所述至少一个目标目录中存在第二类目录的情况下,所述至少一个目标目录中的所述第二类目录对应的selinux标签不重新绑定;所述第一类目录分别在所述新版本操作系统和所述旧版本操作系统中对应的selinux标签不同;所述第二类目录分别在所述新版本操作系统和所述旧版本操作系统中对应的selinux标签相同。
在本申请提供的方案中,用户可以触发电子设备更新操作系统。具体地,电子设备可以获取操作系统升级包,并在存在至少一个目标目录分别在新版本操作系统和旧版本操作系统中对应的selinux标签不同的情况下,基于操作系统升级包中的新版本操作系统中的目标目录和selinux标签的对应的关系,针对selinux标签发生变化的目标目录重新绑定selinux标签,而selinux标签未发生变化的目标目录仍保持原有的selinux标签(即其在旧版本操作系统中对应的selinux标签),不必重新绑定其对应的selinux标签。这种方法不必针对所有目标目录都重新绑定selinux标签,而仅针对selinux标签发生变化的目标目录更新其对应的selinux标签,可以减少操作系统更新时给数据路径绑定selinux标签的时长,从而减少操作系统更新时长,缩短操作系统更新时的开机时长,提升用户使用体验。
在本申请的一些实施例中,第一操作可以为后文所提及的操作系统升级操作。
在本申请的一些实施例中,电子设备确定的至少一个目标目录中的第一类目录可以包括除预设配置文件中的目录及其子目录外的其他目标目录。电子设备确定的至少一个目标目录中的第二类目录可以包括预设配置文件中的目录及其子目录中的目标目录。
可理解,第一类目录在新版本操作系统中对应的selinux标签,与其在旧版本操作系统中对应的selinux标签不同。第二类目录在新版本操作系统中对应的selinux标签,与其在旧版本操作系统中对应的selinux标签相同。
结合第一方面,在一种可能的实现方式中,在所述至少一个目标目录中存在第一类目录的情况下,所述操作系统升级包包括预设配置文件;所述预设配置文件包括至少一个目录,所述预设配置文件包括的目录的父目录分别在所述新版本操作系统和所述旧版本操作系统中对应的selinux标签不同;所述电子设备基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签之前,所述方法还包括:所述电子设备将所述预设配置文件包括的目录以及所述包括的目录下的所有子目录确定为所述至少一个目标目录中的所述第二类目录。
在本申请提供的方案中,在存在目标目录分别在新版本操作系统和旧版本操作系统中对应的selinux标签不同的情况下,操作系统升级包中可以设置有预设配置文件。该预设配置文件可以包括父目录对应的selinux标签不变,但自身和子目录对应的selinux标签改变的目标目录。在这种情况下,电子设备可以确定预设配置文件中的目录及其下的所有子目录为不需要重新绑定selinux标签的目标目录。
结合第一方面,在一种可能的实现方式中,所述电子设备确定至少一个目标目录之后,所述方法还包括:所述电子设备基于操作系统升级包确定所述目标目录对应的哈希值;所述电子设备获取所述目标目录对应的历史哈希值;所述电子设备确定基于所述操作系统升级包确定的所述目标目录对应的哈希值,与所述目标目录对应的历史哈希值是否完全相同;若基于所述操作系统升级包确定的所述目标目录对应的哈希值,与所述目标目录对应的历史哈希值不完全相同,所述电子设备确定所述至少一个目标目录中存在所述第一类目录。
在本申请提供的方案中,电子设备可以通过比较基于操作系统升级包确定的目标目录的哈希值和其历史哈希值,来判断是否存在在新版本操作系统和旧版本操作系统中对应的selinux标签不同的目标目录。若基于操作系统升级包确定的目标目录的哈希值和其历史哈希值不完全相同,则电子设备可以确定存在在新版本操作系统和旧版本操作系统中对应的selinux标签不同的目标目录。在这种情况下,电子设备可以针对该在新版本操作系统和旧版本操作系统中对应的selinux标签不同的目标目录重新绑定selinux标签。
结合第一方面,在一种可能的实现方式中,所述电子设备基于操作系统升级包确定所述目标目录对应的哈希值,具体包括:所述电子设备基于所述操作系统升级包确定所述目标目录在所述新版本操作系统中对应的selinux标签、正则表达式和模式;所述电子设备采用安全哈希算法对所述目标目录在所述新版本操作系统中对应的selinux标签、正则表达式和模式进行处理,得到所述目标目录对应的哈希值。
在本申请的一些实施例中,电子设备可以基于目标目录在新版本操作系统中对应的selinux标签、正则表达式和模式(即mode),来确定目标目录对应的哈希值。可理解,电子设备无需基于目标目录在旧版本操作系统中对应的selinux标签确定历史哈希值,而直接从扩展属性中查找,可以减少开机时长,并节省计算资源。
结合第一方面,在一种可能的实现方式中,电子设备获取所述目标目录对应的历史哈希值,具体包括:所述电子设备在所述电子设备的扩展属性中查找所述目标目录对应的历史哈希值。
在本申请的一些实施例中,电子设备可以在其扩展属性中查找目标目录对应的哈希值,并将该哈希值作为目标目录对应的历史哈希值。
在本申请的一些实施例中,电子设备每一次开机都可以重新确定目标目录对应的哈希值,并将该哈希值保存在扩展属性中。
结合第一方面,在一种可能的实现方式中,所述至少一个目标目录包括:除加密目录外的其他存储用户数据的目录。
在本申请的一些实施例中,加密目录指的是ce目录,用于存储用户数据的目录指的是以/data开始的目录。在这种情况下,除加密目录外的其他存储用户数据的目录,具体可以指:除ce目录外的其他以/data开始的目录。
结合第一方面,在一种可能的实现方式中,该方法还可以包括:若所述重新绑定selinux标签的时长超过第一时长,所述电子设备重新执行所述基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签的步骤。
在本申请提供的方案中,电子设备可以设置第一时长,一旦电子设备针对在新版本操作系统和旧版本操作系统中对应的selinux标签不同的目标目录重新绑定selinux标签的时长超过该门限时长,则电子设备可以重新针对在新版本操作系统和旧版本操作系统中对应的selinux标签不同的目标目录重新绑定selinux标签,以免在更新操作系统的过程中由于其他原因造成卡顿,从而导致无法顺利进行selinux标签的绑定。
在本申请的一些实施例中,第一时长可以为后文所提及的门限时长。
结合第一方面,在一种可能的实现方式中,所述电子设备重新执行所述基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签的步骤之前,所述方法还包括:所述电子设备确定第二时长;所述第二时长为所述至少一个目标目录中的所述第一类目录的总数量,与给目录绑定selinux标签的速率的乘积;所述电子设备基于所述第二时长确定所述第一时长;所述第二时长不大于所述第一时长。
在本申请提供的方案中,电子设备可以预估针对在新版本操作系统和旧版本操作系统中对应的selinux标签不同的目标目录重新绑定selinux标签所需的时长,并基于该时长设置第一时长。这种方式可以合理设置门限时长,既避免因其他原因造成的卡顿,又避免因门限时长过小而用户数据量过大而中断重新绑定selinux标签。
第二方面,本申请提供了一种电子设备,该电子设备包括:一个或多个存储器,以及一个或多个处理器;该一个或多个存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
第三方面,本申请提供了一种计算机存储介质。该计算机存储介质包括计算机指令,当该计算机指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
第四方面,本申请实施例提供一种芯片。该芯片可以应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
第五方面,本申请实施例提供一种包含指令的计算机程序产品。当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
可理解,上述第二方面提供的电子设备、第三方面提供的计算机存储介质、第四方面提供的芯片,以及第五方面提供的计算机程序产品均用于执行如第一方面或第一方面的任意一种实现方式所描述的方法。因此,其所能达到的有益效果可参考上述第一方面中任一种可能的实现方式的有益效果,此处不再赘述。
附图说明
图1A-图1H为本申请实施例提供的一组用户界面示意图;
图2为本申请实施例提供的一种操作系统更新方法的流程图;
图3为本申请实施例提供的又一种操作系统更新方法的流程图;
图4为本申请实施例提供的一种电子设备的硬件结构示意图;
图5为本申请实施例提供的一种电子设备的软件结构示意图;
图6为本申请实施例提供的一种软件模块交互示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
应当理解,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
根据上文,安卓系统等操作系统使用selinux(安全增强型访问控制系统)来限制进程、用户和应用程序对系统资源的访问,从而减少系统被攻击的风险。在这种情况下,若操作系统新版本中的selinux标签发生变化,则电子设备将操作系统更新为新版本时需要遍历用户数据来重新给数据路径(也称为目录)绑定selinux标签。在用户数据较多的情况下,需要给较多数据路径重新绑定selinux标签,这样,重新绑定selinux标签需要花费较多时间,从而导致电子设备在进行操作系统更新时需要花费很长时间才能开机启动,影响用户使用体验。
基于上述内容,本申请实施例提供了一种操作系统更新方法及相关设备。根据该操作系统更新方法,电子设备可以只针对selinux标签发生变化且相应子目录的selinux标签未发生变化的目录重新绑定selinux标签,以减少操作系统更新时给数据路径绑定selinux标签的时长,从而减少操作系统更新时长,缩短操作系统更新时的开机时长,提升用户使用体验。
首先,对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
1、操作系统
操作系统(Operating System,OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。操作系统可以对计算机系统的各项资源板块开展调度工作,其中包括软硬件设备、数据信息等。操作系统在计算机程序的辅助下,可以抽象处理计算系统资源提供的各项基础职能,以可视化的手段来向使用者展示操作系统功能,减低计算机的使用难度,即操作系统可以提供用户与系统交互的操作界面(也称为用户界面)。
本申请所涉及的操作系统可以包括但不限于:windows操作系统、linux操作系统、安卓(Android)操作系统、IOS操作系统等。
2、selinux
selinux是一种安全增强型的Linux操作系统,其主要作用是强化系统的安全性和保护系统资源免受未经授权的访问和攻击。它通过强制访问控制(MAC)机制,限制了进程、用户和应用程序对系统资源的访问,从而减少系统被攻击的风险。也就是说,selinux定义了每个主体对客体的访问权限。它利用安全策略(一组告知selinux哪些能访问,哪些不能访问的规则)来强制执行策略所允许的访问。selinux还提供了细粒度的访问控制策略,可以根据不同的场景和需求进行定制,以满足各种安全需求。
3、selinux标签
操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的。在selinux中,访问控制属性叫做安全上下文,也可以称为selinux上下文或selinux标签。客体和主体都有与其关联的selinux标签。可理解,selinux定义了每个主体对客体的访问权限,它利用安全策略(一组告知selinux哪些能访问,哪些不能访问的规则)来强制执行策略所允许的访问。selinux标签就是该安全策略中给主体或者客体定义的标识,selinux基于selinux标签控制访问权限。
其中,客体指的是可以被主体操作、访问的资源。例如,文件、目录、端口、网络主机等。主体指的是可以操作、访问客体的实体,一般指进程。可理解,进程有时候也是客体。
下面介绍本申请实施例提供的一种操作系统更新场景。
可理解,本申请的说明书和权利要求书及附图中的术语“界面”和“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
值得注意的是,本申请中所提及的“界面”和“用户界面”可以体现同一窗口在不同时刻所显示的不同内容,还可以体现不同窗口在不同时刻所显示不同内容。
1、触发操作系统更新(图1A-图1F)
图1A示例性示出了用于展示电子设备安装的应用程序的用户界面100。
用户界面100显示了一个设置有应用图标的页面,该页面可包括多个应用图标(例如,天气应用图标、日历应用图标、相册应用图标、便签应用图标、电子邮件应用图标、应用商店应用图标、设置应用图标101等等)。上述多个应用图标下方还可显示有页面指示符,以表明当前显示的页面与其他页面的位置关系。页面指示符的下方有多个应用图标(例如,相机应用图标、浏览器应用图标、信息应用图标、拨号应用图标)。页面指示符下方的应用图标在页面切换时保持显示。
电子设备可以检测到作用于设置应用图标101的用户操作。响应于该用户操作,电子设备可以启动设置应用,并显示图1B所示的用户界面200。用户界面200可以包括若干设置项。例如,用户界面200可以包括系统和更新设置项201。系统和更新设置项201可以用于触发电子设备的操作系统升级、软件更新,以及更改电子设备的系统设置。
可理解,本申请中所提及的用户操作可以包括但不限于触摸(例如,点击等)、声控、手势等操作,本申请对此不作限制。
电子设备可以检测到作用于系统和更新设置项201上的用户操作。响应于该用户操作,电子设备可以显示如图1C所示的用户界面300。用户界面300可以包括系统版本更新选项301。系统版本更新选项301可以用于触发电子设备更新操作系统,即将电子设备当前使用的操作系统升级为新版本操作系统。
电子设备可以检测到作用于系统版本更新选项301上的用户操作。响应于该用户操作,电子设备可以显示如图1D所示的用户界面400。用户界面400可以包括版本更新控件401和检测更新控件402。版本更新控件401可以用于表示电子设备经检测发现存在新版本操作系统可供更新升级。检测更新控件402可以用于触发电子设备检测是否存在新版本操作系统。
在本申请的一些实施例中,电子设备可以自动检测是否存在新版本操作系统。若电子设备检测到新版本操作系统,电子设备可以在设置应用中的系统版本更新选项的相关界面(如用户界面400)上显示新版本操作系统的相关提示(如版本更新控件401)。在一种可能的实现方式中,电子设备每隔一段时间(例如,5天)自动检测一次是否存在新版本操作系统。
在本申请的一些实施例中,用户可以触发电子设备检测是否存在新版本操作系统。例如,用户可以点击用户界面400上的检测更新控件402,相应的,电子设备可以检测到该点击操作,响应于该点击操作,电子设备可以检测是否存在新版本操作系统。
在一种可能的实现方式中,电子设备检测是否存在新版本操作系统,具体可以包括:电子设备可以向服务器查询是否存在新版本操作系统对应的升级包。类似的,电子设备自动检测是否存在新版本操作系统,具体可以包括:电子设备可以自动向服务器查询是否存在新版本操作系统对应的升级包。
电子设备可以检测到作用于版本更新控件401上的用户操作。响应于该用户操作,电子设备可以显示如图1E所示的用户界面500。用户界面500可以包括显示区域501。显示区域501可以用于提示用户即将升级至新版本操作系统。例如,如图1E所示,电子设备当前使用的操作系统为Android12,在用户触发升级后,电子设备可以在显示区域501上显示“升级至Android13”以提示用户即将升级至新版本操作系统。可理解,显示区域501可以包括取消控件5011和确定控件5012。其中,取消控件5011可以用于取消升级至新版本操作系统,确定控件5012可以用于确定升级至新版本操作系统。
电子设备可以检测到作用于确定控件5012上的用户操作。响应于该用户操作,电子设备可以下载新版本操作系统对应的升级包,并显示如图1F所示的用户界面600。用户界面600可以包括升级包下载进度条601。升级包下载进度条601可以表示当前下载进度为已下载97%的升级包。
2、操作系统更新时给相应目录重新绑定selinux标签(图1G)
可理解,待电子设备下载完新版本操作系统对应的升级包(例如,Android13升级包)之后,可以重启,并显示如图1G所示的用户界面700。在电子设备重启的过程中,电子设备可以基于该升级包更新操作系统。可理解,电子设备在重启的过程中基于升级包更新操作系统,具体可以包括:电子设备可以在确定需要绑定selinux标签的目录在新版本操作系统和旧版本操作系统中对应的selinux标签不同的情况下,根据升级包中的预设配置文件来针对selinux标签发生变化的目录重新绑定selinux标签。这样,电子设备更新操作系统所需的开机时长会缩短。这也就意味着,电子设备显示用户界面700的时长会缩短。
可理解,操作系统更新完成后,电子设备可以显示如图1A所示的用户界面100。
在本申请的一些实施例中,电子设备可以自动检测是否存在新版本操作系统。若电子设备自动检测到存在新版本操作系统,则可以通过语音或文字等方式提示用户。例如,如图1H所示,电子设备自动检测到存在新版本操作系统后,可以显示用户界面800。用户界面800可以包括显示区域801。显示区域801可以用于提示用户已检测到新版本操作系统Android13。显示区域801可以包括控件8011和控件8012。控件8011可以用于触发电子设备立即更新至新版本操作系统。控件8012可以用于触发电子设备稍后更新至新版本操作系统。可理解,用户可以通过点击控件8011来触发电子设备下载升级包,以及基于该升级包来更新操作系统。在一种可能的实现方式中,电子设备检测到作用于控件8012上的用户操作,响应于该用户操作,电子设备可以等待一段时间后再下载升级包,并基于升级包来更新操作系统。例如,电子设备可以等到夜间(例如,凌晨一点到凌晨五点)下载升级包并更新操作系统。在又一种可能的实现方式中,电子设备检测到作用于控件8012上的用户操作,响应于该用户操作,电子设备可以首先下载升级包,并在等待一段时间后再基于升级包来更新操作系统。例如,电子设备可以首先下载升级包,等到夜间(例如,凌晨一点到凌晨五点)再基于该升级包来更新操作系统。
需要说明的是,本申请所涉及的用户界面仅为示例,不应视为对本申请的限制。
下面介绍本申请实施例提供的一种操作系统更新方法。
请参阅图2,图2为本申请实施例提供的一种操作系统更新方法的流程图。该操作系统更新方法可以包括但不限于以下步骤:
S101:电子设备检测到操作系统升级操作,响应于该操作系统升级操作,电子设备获取操作系统升级包。操作系统升级包用于将电子设备当前使用的操作系统升级为新版本操作系统。操作系统升级包包括在新版本操作系统中目标目录和selinux标签之间的对应关系。
用户可以触发电子设备升级操作系统。具体地,电子设备可以检测到操作系统升级操作。响应于该操作系统升级操作,电子设备可以获取操作系统升级包。操作系统升级包可以用于将电子设备当前使用的操作系统升级为新版本操作系统。其中,电子设备当前使用的操作系统可以理解为旧版本操作系统。也就是说,操作系统升级包为新版本操作系统对应的升级包。
示例性的,用户可以点击如图1E所示的用户界面500中的确定控件5012。电子设备可以检测到作用于确定控件5012上的用户操作。响应于该用户操作,电子设备可以下载新版本操作系统对应的升级包,即操作系统升级包。
示例性的,用户可以点击如图1H所示的用户界面800中的控件8011。电子设备可以检测到作用于控件8011上的用户操作。响应于该用户操作,电子设备可以下载新版本操作系统对应的升级包。类似的,用户可以点击如图1H所示的用户界面800中的控件8012。电子设备可以检测到作用于控件8012上的用户操作。响应于该用户操作,电子设备可以等待一段时间后下载新版本操作系统对应的升级包。
可理解,操作系统升级包可以包括在新版本操作系统中目标目录和selinux标签之间的对应关系。该目标目录可以有一个或多个。在本申请的一些实施例中,该一个或多个目标目录可以包括用户数据对应的目录路径。例如,该一个或多个目标目录可以包括以/data开始的file_contexts的目录。在本申请的一些实施例中,该一个或多个目标目录还可以包括系统分区对应的目录路径。
可理解,file_contexts位于sepolicy(安全策略)子目录中。该文件用于为文件分配标签,并且可供多种用户空间组件使用。在创建新策略时,需要创建或更新该文件,以便为文件分配新标签。若需应用新的file_contexts,电子设备需要重新构建文件系统映像,或对要重新添加标签的文件运行restorecon。在升级时,对file_contexts所做的更改会在升级过程中自动应用于系统和用户数据分区。
在本申请的一些实施例中,电子设备可以通过无线网络下载操作系统升级包。在一种可能的实现方式中,电子设备可以采用OTA升级方式来通过无线网络下载远程服务器上的操作系统升级包。在又一种可能的实现方式中,电子设备可以从官方网络或第三方下载站点中下载操作系统升级包。
在本申请的一些实施例中,若电子设备采用OTA升级方式,则电子设备在连接无线网络的情况下可以接收系统更新提示。在一种可能的实现方式中,电子设备接收系统更新提示后可以首先提示用户当前操作系统可升级,并在检测到用户作用在电子设备上的操作系统升级操作的情况下从远程服务器上下载操作系统升级包。在又一种可能的实现方式中,电子设备接收系统更新提示后可以从远程服务器上下载操作升级包,并在下载完成后提示用户当前操作系统可升级。在这种情况下,电子设备可以自动检测是否存在操作系统升级包,并在检测到存在操作系统升级包的情况下下载该操作系统升级包。
其中,OTA的英文全称为Over-the-Air Technology,其中文含义为空中下载技术,是无线网络实现对移动终端设备及用户身份识别模块(Subscriber Identity Module,SIM)卡数据进行远程管理的技术。其中,无线网络可以为全球移动通信(Global Systemfor Mobile Communications,GSM)系统,码分多址(Code Division Multiple Access,CDMA)中,宽带码分多址(Wideband Code Division Multiple Access,WCDMA)等移动通信系统对应的网络,还可以为无线局域网(wireless local area networks,WLAN)等网络,比如无线保真(wireless fidelity,Wi-Fi)网络。OTA升级则是通过无线网络下载、升级设备所需要的数据(比如问题修复、操作系统版本更新等),即可直接在无线环境下载、升级,不用通过有线连接来下载、升级。
在本申请的一些实施例中,电子设备可以从其他设备(例如,USB闪存盘)拷贝操作系统升级包。
在本申请的一些实施例中,电子设备获取操作系统升级包后,可以进入recovery模式,并在recovery模式下基于操作系统升级包来更新操作系统。其中,recovery模式为Android系统的升级恢复模式,具体是指一种可以对Android系统内部的数据或者系统进行修改的模式。在recovery模式下,电子设备可以对已经具有升级包的系统进行备份或者升级,也可以进行恢复出厂操作。
S102:在至少一个目标目录在新版本操作系统中所对应的selinux标签,与其在电子设备当前使用的操作系统中所对应的selinux标签不相同的情况下,操作系统升级包包括预设配置文件,电子设备基于操作系统升级包所包括的在新版本操作系统中目标目录和selinux标签之间的对应关系,针对除预设配置文件中的目录及其子目录外的其他目标目录,重新绑定selinux标签。针对预设配置文件中的任意一个目录,其在电子设备当前使用的操作系统和新版本操作系统中对应的selinux标签相同,其子目录在电子设备当前使用的操作系统和新版本操作系统中对应的selinux标签相同,其父目录在电子设备当前使用的操作系统和新版本操作系统中对应的selinux标签不同。
电子设备获取操作系统升级包之后,可以确定目标目录在新版本操作系统中所对应的selinux标签与其在电子设备当前使用的操作系统中所对应的selinux标签是否相同。具体地,电子设备中可以存储有在电子设备当前使用的操作系统中目标目录所对应的selinux标签,并结合获取的操作系统升级包所包括的在新版本操作系统中目标目录和selinux标签之间的对应关系,确定是否存在至少一个目标目录,其在新版本操作系统中所对应的selinux标签与其在电子设备当前使用的操作系统中所对应的selinux标签不相同。
若存在至少一个目标目录在新版本操作系统中所对应的selinux标签,与该至少一个目录在电子设备当前使用的操作系统中所对应的selinux标签不相同,电子设备可以基于操作系统升级包所包括的在新版本操作系统中目标目录和selinux标签之间的对应关系,针对除预设配置文件中的目录以及预设配置文件中的目录的每一级子目录外的其他目标目录,重新绑定该其他目标目录在新版本操作系统中对应的selinux标签。也就是说,针对预设配置文件中的目录以及预设配置文件中的目录的每一级子目录,电子设备无需给其重新绑定selinux标签,而针对除预设配置文件中的目录以及预设配置文件中的目录的每一级子目录以外的其他目标目录,电子设备可以将该其他目标目录对应的selinux标签重新绑定为该其他目标目录在新版本操作系统中所对应的selinux标签。
可理解,操作系统升级包可以包括预设配置文件。预设配置文件可以包括一个或多个目录。针对预设配置文件中的任意一个目录,其分别在新版本操作系统和电子设备当前使用的操作系统中对应的selinux标签相同,其子目录分别在新版本操作系统和电子设备当前使用的操作系统中对应的selinux标签相同,其父目录分别在新版本操作系统和电子设备当前使用的操作系统中对应的selinux标签不同。也就是说,预设配置文件中的任意一个目录及其子目录在新版本操作系统和旧版本操作系统中对应的selinux标签相同。
在本申请的一些实施例中,预设配置文件可以由技术人员提前设置在操作系统升级包中。
在本申请的一些实施例中,预设配置文件可以针对目标目录设置。在这种情况下,预设配置文件中的目录可以为电子设备确定的一部分目标目录。在本申请的又一些实施例中,预设配置文件还可以包括其他内容(例如,其他目录或相关配置项)。
在本申请的一些实施例中,本身和相应子目录对应的selinux标签不变,且相应父目录对应的selinux标签变化的目标目录可以以其他形式设置在操作系统升级包中,本申请对此不作具体限制。
在本申请的一些实施例中,若电子设备针对除预设配置文件中的目录及其子目录外的其他目标目录,重新绑定selinux标签的时长超过门限时长,则电子设备可以重新基于操作系统升级包更新操作系统。
可理解,门限时长可以根据实际需要进行设置,本申请对其具体值不作限制。例如,预设时长可以为10分钟。
在本申请的一些实施例中,电子设备可以根据除预设配置文件中的目录及其子目录外的其他目标目录的总数量,以及针对目录绑定selinux标签的速率,来确定上述重新绑定selinux标签所需的时长,并基于该时长确定门限时长。在这种情况下,电子设备可以根据其自身需更新的用户数据大小来预估重新绑定selinux标签所需的时长,从而相应修改门限时长,既可以避免因其他原因造成的卡顿,又可以避免因门限时长过小而用户数据量过大而中断重新绑定selinux标签。
具体地,电子设备可以确定除预设配置文件中的目录及其子目录外的其他目标目录的总数量,与针对目录绑定selinux标签的速率的乘积,该乘积即为重新绑定selinux标签所需的预估时长。在一种可能的实现方式中,电子设备可以将该乘积作为门限时长。在又一种可能的实现方式中,电子设备可以将该乘积的x倍作为门限时长。可理解,x大于1。示例性的,x可以大于1,且小于1.5。
下面介绍前述实施例的一种具体实现方式。
请参阅图3,图3为本申请实施例提供的又一种操作系统更新方法的流程图。该操作系统更新方法可以包括但不限于以下步骤:
S201:电子设备检测到操作系统升级操作,响应于该操作系统升级操作,电子设备获取操作系统升级包。
可理解,步骤S201的具体实现方式可以参考步骤S101的相关描述,本申请不再赘述。
S202:电子设备基于操作系统升级包确定以/data开始的目录对应的哈希值。
电子设备获取操作系统升级包之后,可以确定需要重新绑定selinux标签的目录(即目标目录),并确定其对应的哈希值。在本申请的一些实施例中,电子设备可以确定需要重新绑定selinux标签的目录为以/data开始的目录,并确定以/data开始的目录所对应的哈希值。
在本申请的一些实施例中,电子设备可以通过restorecon命令(或称restorecon函数)和recursive命令(或称recursive函数)来指定需要重新绑定selinux标签的目录。在本申请的一些实施例中,电子设备还可以通过相应命令排除不需要重新绑定selinux标签的目录。示例性的,电子设备可以通过restorecon命令和recursive命令来指定relabel(重新绑定标签)以/data开始的目录,还可以通过相应命令(例如,包含skip参数的restorecon命令)来指示排除以/data开始的目录中的ce目录,即无需对ce目录重新绑定标签。在这种情况下,目标目录可以包括除ce目录外的其他以/data开始的目录。其中,ce目录指的是以/data开始的目录中的加密目录。
可理解,restorecon命令可以用于基于sepolicy中定义的规则,重新relable指定的文件(夹)。recursive命令可以用于递归处理所有的文件及子目录递归处理所有的文件(夹)及子目录。
在本申请的一些实施例中,电子设备可以基于安全哈希算法(Secure HashAlgorithm,SHA1)确定以/data开始的目录所对应的哈希值。
可理解,SHA1算法的主要思想是将任意长度的消息数据(Message)经过处理,压缩成一个160位(20字节)的消息摘要(Digest)。SHA1加密算法的原理包括以下三个部分:(1)填充数据(SHA1算法规定先对数据进行填充,以保证数据补齐后长度为512位的倍数);(2)分组计算(SHA1算法将补齐后的数据划分为512位的分组);(3)生成消息摘要(SHA1算法将512位的分组计算结果压缩到160位,生成一个20字节的十六进制字符串,表示消息摘要)。
在一种可能的实现方式中,针对每一个以/data开始的目录,电子设备可以采用SHA1来对新版本操作系统中该目录对应的selinux标签和正则表达式,以及mode(模式)进行处理,并将得到的消息摘要作为这一个以/data开始的目录所对应的哈希值。其中,mode是正则匹配的一种规则模式,其具体含义可以参考相关技术文档。示例性的,mode可以统一设置为0。
可理解,selinux路径正则表达式(或简称为正则表达式)是一种用于匹配文件路径(或称目录)的语法规则,在selinux策略中被广泛使用。它可以用来限制文件访问权限,保护系统安全。selinux路径正则表达式由三个部分组成:根目录、匹配模式和标志。其中,根目录表示该正则表达式匹配的根目录。匹配模式表示匹配文件名的模式。匹配模式可以使用通配符、字符组和转义字符来表示不同的匹配规则。标志表示该正则表达式的一些属性,如是否递归匹配、是否忽略大小写等。
S203:电子设备确定基于操作系统升级包确定的以/data开始的目录对应的哈希值,与其对应的历史哈希值是否完全相同。
针对每一个以/data开始的目录,电子设备可以确定基于操作系统升级包确定的该目录对应的哈希值(即步骤S202中确定的哈希值),与该目录对应的历史哈希值是否相同。若存在一个或多个以/data开始的目录,电子设备基于操作系统升级包确定的其对应的哈希值不同于其对应的历史哈希值,则电子设备确定基于操作系统升级包确定的以/data开始的目录对应的哈希值,与其对应的历史哈希值不完全相同。在这种情况下,电子设备可以继续执行步骤S204。若电子设备基于操作系统升级包确定的每一个以/data开始的目录所对应的哈希值均与其对应的历史哈希值相同,则电子设备确定基于操作系统升级包确定的以/data开始的目录对应的哈希值,与其对应的历史哈希值完全相同。在这种情况下,电子设备可以不再对以/data开始的目录重新绑定标签,直接进行后续升级步骤,具体可以参考相关技术文档,在此不展开说明。
其中,基于操作系统升级包确定的以/data开始的目录对应的哈希值,可以理解为:基于新版本操作系统中的selinux标签确定的以/data开始的目录对应的哈希值。
在本申请的一些实施例中,以/data开始的目录对应的历史哈希值可以为电子设备基于当前使用的操作系统中的以/data开始的目录所对应的selinux标签确定的哈希值。以/data开始的目录对应的历史哈希值可以存储在电子设备中。在一种可能的实现方式中,以/data开始的目录对应的历史哈希值可以存储在电子设备的扩展属性中,即可以为attr值。可理解,attr是attribute的简写,其表示linux文件系统的扩展属性,是一种存储方式。
在本申请的一些实施例中,每一次电子设备开机启动后,电子设备可以重新确定一次目标目录(例如,以/data开始的目录)对应的哈希值,并将其存储在内存空间中。在这种情况下,目标目录(例如,以/data开始的目录)对应的历史哈希值可以指电子设备最近一次开机启动后所确定的以/data开始的目录对应的哈希值。
S204:电子设备从以/data开始的第一级目录开始,遍历以/data开始的目录。除了记录在操作系统升级包中的预设配置文件中的以/data开始的目录及其子目录,电子设备基于操作系统升级包对其他以/data开始的目录重新绑定selinux标签。
可理解,电子设备从以/data开始的第一级目录开始,遍历以/data开始的目录以查看其是否为预设配置文件中记录的目录。具体地,电子设备可以从以/data开始的第一级目录开始查看该目录是否为预设配置文件中记录的目录,待查看完毕后再查看以/data开始的第一级目录的下一级子目录是否为预设配置文件中记录的目录,以此类推,直到电子设备将以/data开始的目录遍历完成。
在本申请的一些实施例中,若电子设备在遍历以/data开始的目录的过程中确定一个以/data开始的目录为预设配置文件中所记录的目录,或者该目录为预设配置文件中所记录的目录的子目录,则电子设备可以不对该目录重新绑定selinux标签。
在本申请的一些实施例中,电子设备可以直接查看预设配置文件中的目录,并针对除预设配置文件中的目录及其子目录外的其他以/data开始的目录,重新绑定selinux标签。
可理解,电子设备重新绑定的selinux标签为操作系统升级包中包括的相应以/data开始的目录在新版本操作系统中所对应的selinux标签。
下面介绍本申请实施例涉及的装置。
图4为本申请实施例提供的一种电子设备的硬件结构示意图。
如图4所示,电子设备可以包括处理器、外部存储器接口、内部存储器、音频模块、扬声器、受话器、麦克风、耳机接口、显示屏。
本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请的一些实施例中,电子设备可以包括比图示更多的部件。例如,电子设备可以包括触摸传感器、加速度传感器和陀螺仪传感器等传感器。在本申请的一些实施例中,电子设备可以包括比图示更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。
处理器可以包括一个或多个处理单元。例如,处理器可以包括应用处理器(Application Processor,AP),调制解调处理器,图形处理器(Graphics ProcessingUnit,GPU),图像信号处理器(Image Signal Processor,ISP),控制器,视频编解码器,数字信号处理器(Digital Signal Processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。处理器中还可以设置存储器,用于存储指令和数据。
电子设备可以通过GPU、显示屏和应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。显示屏用于显示图像,视频等。在本申请的一些实施例中,电子设备可以包括1个或多个显示屏。
在本申请中,电子设备显示用户界面(如图1A-图1H)的能力,依赖于上述GPU、显示屏和应用处理器提供的显示功能。
内部存储器可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器通过运行存储在内部存储器的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(例如,声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(例如,音频数据,电话本等)等。
可理解,内部存储器可以包括一个或多个随机存取存储器(Random AccessMemory,RAM)和一个或多个非易失性存储器(Non-Volatile Memory,NVM)。例如,至少一个磁盘存储器件,闪存器件,通用闪存存储器(Universal Flash Storage,UFS)等。随机存取存储器可以由处理器直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如,机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器直接进行读写。
在本申请中,实现本申请实施例所述的操作系统更新方法的代码可存储在非易失性存储器上。在实现该方法时,电子设备可将非易失性存储器中存储的可执行代码加载到随机存取存储器。
外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡可以通过外部存储器接口与处理器通信,实现数据存储功能。例如,将音乐,视频等文件保存在外部存储卡中。
电子设备可以通过音频模块、扬声器、受话器、麦克风、耳机接口,以及应用处理器等实现音频功能。
音频模块用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器,也称“喇叭”,用于将音频电信号转换为声音信号。受话器,也称“听筒”,用于将音频电信号转换成声音信号。麦克风,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口用于连接有线耳机。
显示屏用于显示图像、视频等。在本申请的一些实施例中,电子设备可以包括1个或多个显示屏。电子设备可以通过图形处理器、显示屏和应用处理器等实现显示功能。
图5为本申请实施例提供的一种电子设备的软件结构示意图。
如图5所示,电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的安卓(Android)系统为例,示例性说明电子设备的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,电子设备的软件框架可以包括应用程序层、应用程序框架层、系统库、运行时(Runtime)、硬件抽象层(HAL)和内核层。
应用程序层可以包括一系列应用程序包。例如,应用程序包可以包括相机、图库、设置、通话、地图、导航、WLAN、蓝牙、音乐、视频和短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层可以包括一系列系统服务。系统服务是专注于特定功能的模块化组件。应用框架API所提供的功能可与系统服务通信,以访问底层硬件。例如,应用程序框架层可以包括窗口管理器、内容提供器、视图系统、电话管理器、资源管理器和通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以快速停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
系统库可以包括若干功能模块。例如:表面管理器(Surface Manager),媒体库(Media Libraries),三维图形处理库(例如,OpenGL ES),二维图形引擎(例如,SGL)等。这些功能模块的具体含义和作用可以参考相关技术文档,在此不展开说明。这些功能模块的具体含义和作用可以参考相关技术文档,在此不展开说明。
系统库还可以包括init进程和selinux调用和编译模块。其中,init进程是内核引导过程完成时创建的第一个进程。电子设备可以通过init进程来对系统服务和应用程序进行初始化。selinux调用和编译模块可以用于构建编译selinux安全策略和标签所需的各种工具,如提供libselinux库函数,checkpolicy编译器(policy.conf编译成cil文件),secilc编译器(cil文件编译成二进制)。在本申请的一些实施例中,selinux调用和编译模块可以用于调用绑定selinux标签的相关函数。
在本申请的一些实施例中,电子设备获取操作系统升级包之后,可以重新拉起init进程,并在拉起init进程后触发selinux调用和编译模块执行重新绑定标签的相关流程。在电子设备触发selinux调用和编译模块执行针对指定目录(即selinux标签变化的目标目录,比如以/data开始的目录)重新绑定标签的相关流程的过程中,电子设备可以通过selinux调用和编译模块调用相关函数(例如,restorecon函数、recursive函数等)以实现针对指定目录重新绑定标签。
运行时(Runtime)负责系统的调度和管理。Runtime包括核心库和虚拟机。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
硬件抽象层(HAL)是位于操作系统内核与上层软件之间的接口层,其目的在于将硬件抽象化。硬件抽象层是设备内核驱动的抽象接口,用于实现向更高级别的Java API框架提供访问底层设备的应用编程接口。HAL可以提供标准界面,向更高级别的Java API框架显示设备硬件功能。HAL包含多个库模块,例如相机HAL等。其中每个库模块都为特定类型的硬件组件实现一个界面。为当系统框架层API要求访问便携设备的硬件时,操作系统将为该硬件组件加载库模块。
内核层是硬件和软件之间的层。内核层是Android操作系统的基础。内核层负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。内核层是硬件与软件之间的一个中间层,其作用是将应用程序的请求传递给硬件。
内核层可以包括selinux LSM安全内核模块。selinux LSM安全内核模块是将selinux安全模型以模块方式载入内核后所得的模块。在本申请的一些实施例中,电子设备触发selinux调用和编译模块执行针对指定目录重新绑定标签的相关流程后,最终由selinux LSM安全内核模块具体实现针对指定目录重新绑定标签。也就是说,针对指定目录对应的重新绑定后的标签加载到selinux LSM安全内核模块中。
内核层还可以包括显示驱动、摄像头驱动、音频驱动和传感器驱动等,这些驱动的具体功能可以参考相关技术文档,在此不展开说明。
需要说明的是,本申请提供的图5所示的电子设备的软件架构示意图仅作为一种示例,并不限定Android操作系统不同分层中的具体模块划分,具体可以参考常规技术中对Android操作系统软件架构的介绍。另外,本申请提供的操作系统更新方法还可以基于其他操作系统实现,本申请不再一一举例。
下面基于前述软件结构,从软件模块交互的角度来介绍本申请实施例提供的一种操作系统更新方法。
请参阅图6,图6为本申请实施例提供的一种软件模块交互示意图。如图6所示,电子设备获取操作系统升级包之后,可以触发重新启动,拉起init进程,通过init进程触发selinux调用和编译模块调用相关函数(例如,restorecon函数、recursive函数等)以实现针对指定目录重新绑定标签,并最终由selinux LSM安全内核模块具体实现针对指定目录重新绑定标签。针对指定目录对应的重新绑定后的标签可以加载到selinux LSM安全内核模块中。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种操作系统更新方法,其特征在于,应用于电子设备,所述方法包括:
所述电子设备检测到第一操作;
响应于所述第一操作,所述电子设备获取操作系统升级包;所述操作系统升级包用于将所述电子设备使用的操作系统由旧版本操作系统升级为新版本操作系统;
所述电子设备确定至少一个目标目录;
在所述至少一个目标目录中存在第一类目录的情况下,所述电子设备基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签;
其中,在所述至少一个目标目录中存在第二类目录的情况下,所述至少一个目标目录中的所述第二类目录对应的selinux标签不重新绑定;所述第一类目录分别在所述新版本操作系统和所述旧版本操作系统中对应的selinux标签不同;所述第二类目录分别在所述新版本操作系统和所述旧版本操作系统中对应的selinux标签相同;所述操作系统升级包包括在所述新版本操作系统中所述目标目录和selinux标签之间的对应关系。
2.如权利要求1所述的方法,其特征在于,在所述至少一个目标目录中存在所述第一类目录的情况下,所述操作系统升级包包括预设配置文件;所述预设配置文件包括至少一个目录,所述预设配置文件包括的目录的父目录分别在所述新版本操作系统和所述旧版本操作系统中对应的selinux标签不同;
所述电子设备基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签之前,所述方法还包括:所述电子设备将所述预设配置文件包括的目录以及所述包括的目录下的所有子目录确定为所述至少一个目标目录中的所述第二类目录。
3.如权利要求1或2所述的方法,其特征在于,所述电子设备确定至少一个目标目录之后,所述方法还包括:
所述电子设备基于所述操作系统升级包确定所述目标目录对应的哈希值;
所述电子设备获取所述目标目录对应的历史哈希值;
所述电子设备确定基于所述操作系统升级包确定的所述目标目录对应的哈希值,与所述目标目录对应的历史哈希值是否完全相同;
若基于所述操作系统升级包确定的所述目标目录对应的哈希值,与所述目标目录对应的历史哈希值不完全相同,所述电子设备确定所述至少一个目标目录中存在所述第一类目录。
4.如权利要求3所述的方法,其特征在于,所述电子设备基于所述操作系统升级包确定所述目标目录对应的哈希值,具体包括:
所述电子设备基于所述操作系统升级包确定所述目标目录在所述新版本操作系统中对应的selinux标签、正则表达式和模式;
所述电子设备采用安全哈希算法对所述目标目录在所述新版本操作系统中对应的selinux标签、正则表达式和模式进行处理,得到所述目标目录对应的哈希值。
5.如权利要求3所述的方法,其特征在于,所述电子设备获取所述目标目录对应的历史哈希值,具体包括:所述电子设备在所述电子设备的扩展属性中查找所述目标目录对应的历史哈希值。
6.如权利要求3所述的方法,其特征在于,所述至少一个目标目录包括:除加密目录外的其他存储用户数据的目录。
7.如权利要求1或2或4-6中任一项所述的方法,其特征在于,所述方法还包括:
若所述重新绑定selinux标签的时长超过第一时长,所述电子设备重新执行所述基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签的步骤。
8.如权利要求7所述的方法,其特征在于,所述电子设备重新执行所述基于所述操作系统升级包所包括的在所述新版本操作系统中所述至少一个目标目录与selinux标签的对应关系,针对所述至少一个目标目录中的所述第一类目录重新绑定selinux标签的步骤之前,所述方法还包括:
所述电子设备确定第二时长;所述第二时长为所述至少一个目标目录中的所述第一类目录的总数量,与给目录绑定selinux标签的速率的乘积;
所述电子设备基于所述第二时长确定所述第一时长;所述第二时长不大于所述第一时长。
9.一种电子设备,包括一个或多个存储器,以及一个或多个处理器,其特征在于,所述存储器用于存储计算机程序;所述处理器用于调用所述计算机程序,使得所述电子设备执行权利要求1-8中任一项所述的方法。
10.一种计算机存储介质,其特征在于,包括:计算机指令;当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求1-8中任一项所述的方法。
CN202311133883.9A 2023-09-05 2023-09-05 一种操作系统更新方法及相关设备 Active CN116991447B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311133883.9A CN116991447B (zh) 2023-09-05 2023-09-05 一种操作系统更新方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311133883.9A CN116991447B (zh) 2023-09-05 2023-09-05 一种操作系统更新方法及相关设备

Publications (2)

Publication Number Publication Date
CN116991447A CN116991447A (zh) 2023-11-03
CN116991447B true CN116991447B (zh) 2023-12-22

Family

ID=88528493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311133883.9A Active CN116991447B (zh) 2023-09-05 2023-09-05 一种操作系统更新方法及相关设备

Country Status (1)

Country Link
CN (1) CN116991447B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020923A (zh) * 2016-06-02 2016-10-12 北京元心科技有限公司 SELinux策略的编译方法及系统
CN106775903A (zh) * 2017-02-24 2017-05-31 北京小米移动软件有限公司 安全策略文件更新方法及装置
CN108108181A (zh) * 2017-12-14 2018-06-01 深圳市雷鸟信息科技有限公司 应用程序的功能更新方法、装置及计算机可读存储介质
CN109508550A (zh) * 2018-10-22 2019-03-22 南瑞集团有限公司 基于SEAndroid的用户隐私保护方法及系统
CN111782232A (zh) * 2020-07-31 2020-10-16 平安银行股份有限公司 集群的部署方法、装置、终端设备及存储介质
CN116010347A (zh) * 2023-02-01 2023-04-25 杭州数梦工场科技有限公司 资源更新方法、装置、系统、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069931B2 (en) * 2012-06-08 2015-06-30 Red Hat, Inc. Extending SELinux policy with enforcement of file name translation
US9158930B2 (en) * 2012-09-12 2015-10-13 Red Hat, Inc. Facilitating secure file creation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020923A (zh) * 2016-06-02 2016-10-12 北京元心科技有限公司 SELinux策略的编译方法及系统
CN106775903A (zh) * 2017-02-24 2017-05-31 北京小米移动软件有限公司 安全策略文件更新方法及装置
CN108108181A (zh) * 2017-12-14 2018-06-01 深圳市雷鸟信息科技有限公司 应用程序的功能更新方法、装置及计算机可读存储介质
CN109508550A (zh) * 2018-10-22 2019-03-22 南瑞集团有限公司 基于SEAndroid的用户隐私保护方法及系统
CN111782232A (zh) * 2020-07-31 2020-10-16 平安银行股份有限公司 集群的部署方法、装置、终端设备及存储介质
CN116010347A (zh) * 2023-02-01 2023-04-25 杭州数梦工场科技有限公司 资源更新方法、装置、系统、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SELinux安全策略配置;李云雪等;信息网络安全(02);全文 *

Also Published As

Publication number Publication date
CN116991447A (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
US8694981B2 (en) Shared resource dependencies
WO2017185253A1 (zh) 基于补丁升级的文件处理方法、装置、终端以及存储介质
CN112256286B (zh) 一种应用运行的方法、装置及计算机存储介质
US20100093396A1 (en) Systems and methods for storing or performing functions within removable memory, such as a subscriber identity module of a mobile device
US11016785B2 (en) Method and system for mirror image package preparation and application operation
CN109726067B (zh) 一种进程监控方法以及客户端设备
JP4376181B2 (ja) プログラム実行処理端末装置
CN104049986A (zh) 插件加载方法及装置
US9910662B2 (en) Selectively migrating applications during an operating system upgrade
CN116991447B (zh) 一种操作系统更新方法及相关设备
CN116700768B (zh) 一种应用的处理方法及相关装置
CN108804258B (zh) 数据恢复方法、装置、移动终端和存储介质
JP6317058B2 (ja) 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法
US9910667B2 (en) Segregating a monolithic computing system into multiple attachable application containers based on application boundaries
CN114138343A (zh) 一种终端及终端启动方法
CN113157348A (zh) 游戏启动方法、装置、计算机设备以及存储介质
Vavru et al. Android programming: Complete application programming guide
WO2024067053A1 (zh) 一种应用程序安装方法及电子设备
CN116643778B (zh) 一种应用程序优化方法及电子设备
US7702890B2 (en) Information processing apparatus and program
CN108733467A (zh) 电子设备运行应用的方法及装置、电子设备
TWI677789B (zh) 周邊硬體的操作方法與操作系統
CN117708070A (zh) 一种文件压缩方法及电子设备
KR101240096B1 (ko) 이동통신 단말기의 자바 애플리케이션 관리 방법
CN116700740A (zh) 软件修复方法和相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant