本发明专利属于软件升级技术,具体涉及一种android智能电视系统软件进行ota(空中在线)升级的方法。
背景技术:
android智能电视ota网络升级是电视厂商对电视售后持续给用户带来新品特色软件体验的有效手段。电视整机系统软件在迭代中因系统版本提高或增加新功能预置特色会导致对data空间的需求较之老版本变大;而用户在电视使用过程中,也因安装各类应用会产生越来越多的数据文件占据data分区空间。这些因素导致电视在执行ota网络升级时,若data分区可用空间不足,可能导致ota升级执行过程失败,甚至是ota升级后系统无法启动或正常运行,严重影响用户使用电视。
目前国内厂商遇到ota网络升级失败时,只能通过售后人员到用户家中现场刷机;甚至有的厂商不再给用户提供软件ota网络升级服务。因此,在电视ota网络升级时实时检测data可用空间是否支撑本次软件版本升级,空间不足时采取合适的空间清理策略保证用户电视可正常ota升级,是非常必要的手段,本发明正致力于提出该手段。
技术实现要素:
本发明所要解决的技术问题是:提出一种android智能电视系统软件进行ota网络升级的方法,保障系统软件的ota正常升级,避免因data可用空间不足导致升级失败,影响用户使用电视。
本发明解决其技术问题所采用的技术方案是:
android智能电视系统软件进行ota网络升级的方法,包括以下步骤:
a.电视终端上预置系统升级应用通过网络从服务器下载厂商发布的与终端匹配的ota升级包,并对版本包进行签名和完整性校验,检查通过后设置recovery模式升级标志;
b.进入recovery模式下再次执行签名校验,解压ota升级包执行升级脚本文件,首先检测data分区剩余空闲空间容量是否满足本次版本升级需求,若满足,则继续进行升级处理,进入步骤d;若不满足,则进入步骤c;
c.执行对data分区的空间清理,直至剩余空闲空间容量满足本次版本升级需求后,继续进行升级处理,进入步骤d,在执行空间清理时,对清理的用户应用进行备份;
d.在升级完成后,重启进入android系统,首先检查和安装更新的预置应用,系统预置应用更新安装完成后,正常启动系统;然后,根据用户需求选择恢复备份的用户应用。
作为进一步优化,步骤a中,所述ota升级包的升级脚本中添加有data分区空间检测处理模块,用于执行检测data分区剩余空闲空间容量是否满足本次版本升级需求的功能。
作为进一步优化,所述检测data分区剩余空闲空间容量是否满足本次版本升级需求,具体包括:
1)估算出不同的版本包安装后对/data分区存储空间占用情况,升级前老版本记为sold,升级后的新版本记为snew,在snew>sold时计算差量;
2)遵照系统约定预留data分区10%的空间容量,记为sr;
3)计算获得新版本的data分区空闲空间需求deltas=snew-sold+sr;
4)实时计算当前data空间的空闲量space,若space 作为进一步优化,步骤c中,所述执行对data分区的空间清理,具体包括: 优先执行一级部分删除策略,清除目录限制于应用安装相关的几个目录; 然后重新计算当前data空间的空闲量space’;若space’≥deltas,则停止空间清理;反之,则执行二级全部删除策略,仅保留/data分区中需保护的指定目录和文件列表,其余都删除; 在空间清理时需要备份/data/app/目录下用户安装的应用到/data/appbakup/目录下;并写入用户应用备份标志给launcher使用。 作为进一步优化,所述应用安装相关的几个目录包括: /data/dalvik-cache、/data/data、/data/lib。 作为进一步优化,步骤d中,根据用户需求选择恢复备份的用户应用,具体包括: 在launcher应用中增加用户应用备份标志的检测,当存在备份标志时启动开机向导提示用户选择需要重新安装的备用应用。 作为进一步优化,步骤d中,还包括: 当用户处理完所有的备份应用退出时将清除掉应用备份标志和备份的应用安装文件,后续开机时,系统将不再重复这个备用应用的安装流程。 本发明的有益效果是: 能够自动检测升级设备上data分区空闲空间,在空间不足影响ota网络升级时,通过适宜的清理策略,保证用户电视顺利实施ota网络升级,避免因data可用空间不足导致升级失败,影响用户使用电视。 附图说明 图1为实施例中的ota网络升级流程图; 图2为data分区空间不足时的删除处理流程图; 图3为开机向导中恢复用户应用的流程图。 具体实施方式 本发明旨在提出一种android智能电视系统软件进行ota网络升级的方法,保障系统软件的ota正常升级,避免因data可用空间不足导致升级失败,影响用户使用电视。 为便于理解,首先从现有技术电视整机软件的ota网络升级流程、data分区对升级的影响以及本发明对于data分区容量不足的解决方式这几个方面进行具体说明: 一、现有技术电视整机软件的ota网络升级流程: 1)电视终端上预置系统升级应用通过网络从服务器下载厂商发布的与终端匹配的ota升级包,并对版本包进行签名和完整性校验,检查通过后设置recovery模式升级标志; 2)进入recovery模式下再次执行签名校验,解压ota升级包,运行升级脚本,实现系统、数据等分区的文件系统的升级处理,包括各分区文件和系统预置应用文件; 3)然后重启进入android系统检查更新的预置应用并安装到data分区。待各预置应用成功安装后才开始运行系统。 上述流程中任何阶段出现异常,都可能会导致用户电视整机系统软件ota升级失败,严重的会导致电视无法正常使用。data分区也称用户数据区,是可读写属性的分区挂载类型;系统预置应用安装在该分区中,用户应用也在该分区中,还保存有系统运行或用户设置信息等。因此该分区空间的消耗是比较频繁,用量也是最大的。 二、ota网络升级流程中data分区空间的影响: 1、data分区文件系统升级的影响: 在recovery模式下升级data分区文件系统时,如果空间不足,会导致文件拷贝到分区中失败,中断升级过程或者造成升级文件的丢失。 2、ota升级后系统首次启动时预置应用更新的影响: 预置应用文件可能放置在system/app和data/app下,当ota升级时原有预置应用可能会升级为高版本或增加新的预置应用。在recovery中升级只是将应用安装文件放置到对应目录,检查安装这些应用的更新则是在ota升级后android系统首次启动中,当data可用空间不足时,会导致这些预置应用安装失败,或者安装后无法正常运行。 3、data分区空闲空间不足对用户应用的影响 用户安装的应用是在data/app下,其安装的优先级是在预置应用之后。当系统或预置应用都无法正常安装和运行时,这些用户应用也是无法正常使用。 基于上述,本发明中需要解决的问题有:①如何判断data分区空间容量是否满足升级需求;②在data分区空间不满足需求时,执行什么样的删除策略;③如何在升级后的首次开机中恢复用户应用。为了解决这几个问题,本发明中提出的解决方案如下: 三、对于data分区容量不足的解决方式: 1、data分区空闲空间不足的自动检测方法: 不同的版本号在升级安装后对data空间需求是不一样的,估算新版本系统和预置应用正常安装运行时对data分区空闲空间的具体需求。ota差分升级包在制作时,已经明确了升级前和升级后的版本号,由此估算出升级后新版本比升级前老版本的空闲空间需求的增量。在ota升级时实时计算用户电视上data分区当前可用空间的容量,与已估算出来的新版本安装对data空间的需求增量相比,自动检测识别data分区可用空间不足状态。 2、data分区清理策略实施方法: 1)data空间清理采用两级策略实现:优先执行一级部分删除策略,限制于应用安装相关的几个目录(/data/dalvik-cache、/data/data、/data/lib);清理空间不到位时才执行二级全部删除策略,仅保留/data分区中需保护的指定目录和文件列表,其余都删除。 2)在空间清理时需要备份/data/app/目录下用户安装的应用到/data/appbakup/目录下;并写入用户应用备份标志给launcher使用,在ota升级后首次开机时启动备份应用的安装。 3、ota升级后系统首次启动的应用安装实现: 1)ota升级后系统首次启动时,系统首先检查和安装预置应用,系统预置应用更新安装完成后,才正常启动系统; 2)在launcher应用中增加用户应用备份标志的检测,存在备份标志时启动开机向导提示用户重新安装备用应用完成备份应用的安装处理。当用户处理完所有的备份应用退出时将清除掉应用备份标志和备份的应用安装文件。后续开机时,系统将不再重复这个备用应用的安装流程。 下面结合附图及实施例对本发明的方案做进一步的描述: 如图1所示,本实施例中的android智能电视系统软件进行ota网络升级的方法包括以下实现步骤: 首先,在服务器端制作ota升级包时,在升级脚本中添加data分区空间检测处理模块,用于执行检测data分区剩余空闲空间容量是否满足本次版本升级需求的功能。在升级包制作完成后,部署该ota升级包。 然后,电视从网络上下载与终端匹配的ota升级包,并对版本包进行签名和完整性校验,检查通过后设置recovery模式升级标志;进入recovery模式下再次执行签名校验,解压ota升级包,运行升级脚本,此时升级脚本中的data分区空间检测处理模块得意运行,进行检测当前data分区剩余空闲空间容量是否满足升级需求; 若满足,则继续升级,直至本次ota升级完成; 若不满足,执行对data分区的空间清理,直至剩余空闲空间容量满足本次版本升级需求后,继续进行升级处理,,在执行空间清理时,对清理的用户应用进行备份,并添加用户应用备份标识给launcher使用; 在升级完成后,重启进入android系统,首先检查和安装更新的预置应用,系统预置应用更新安装完成后,正常启动系统;然后,launcher启动用户应用备份标志的检测,若存在用户应用备份标识,则根据用户需求选择恢复备份的用户应用,若不存在用户应用备份标识,则按现有流程处理。 其中,所述检测data分区剩余空闲空间容量是否满足本次版本升级需求,具体包括: 1)估算出不同的版本包安装后对/data分区存储空间占用情况,升级前老版本记为sold,升级后的新版本记为snew,在snew>sold时计算差量; 2)遵照系统约定预留data分区10%的空间容量,记为sr; 3)计算获得新版本的data分区空闲空间需求deltas=snew-sold+sr; 4)实时计算当前data空间的空闲量space,若space 图2示意了data分区空间不足时删除清理策略的实施和用户应用安装文件的备份处理流程,其包括: 1)首先执行一级部分删除策略,清除目录(/data/dalvik-cache、/data/data、/data/lib); 2)重新计算data分区可用空间大小space’,与deltas比较: space’>deltas:备份用户应用,退出清理,继续升级处理; 否则,继续下一步; 3)执行二级全部删除策略,仅保留/data分区中需保护的指定目录和文件列表,其余都删除; 4)备份/data/app/目录下用户安装应用到/data/appbakup/目录下,设置应用备份标志,退出清理流程后继续原来的升级处理流程。 图3示意了ota升级后首次系统启动和备份应用安装,系统启动时,主场景检测备份应用标志,存在时启动开机向导执行用户应用的重新选择性安装处理,处理完成后删除备份目录和备份标志,其具体包括: 1)在正常ota升级后的首次启动系统中,除了检查安装系统预置应用之外,在主场景中增加备份应用标志的检测处理,当该标志存在时启动开机向导,弹出备份应用的选择安装界面。 2)在备份的用户应用安装界面上显示应用列表并提供安装的勾选项,当用户选择应用准备安装时,基于安装文件大小实时预估当前data空间可用容量,不足时提示用户;在此可方便用户选择常用应用的安装,没使用或不重要的用户应用可以放弃安装。