一种软件升级方法和装置转让专利

申请号 : CN202010942977.0

文献号 : CN113741925B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈磊

申请人 : 荣耀终端有限公司

摘要 :

本申请实施例提供一种软件升级方法和装置,涉及终端领域,能够使第一设备(例如,手机)辅助第二设备(例如,音箱或耳机)进行软件升级。其方法应用于包括第一设备、第二设备和服务器的系统,第一设备包括第一模块集合,第一模块集合包括第一模块和第二模块,第二设备包括第二模块集合和第一配置信息,第二模块集合是第一模块集合的子集,该方法包括:第二设备可以根据第一配置信息确定调度第一设备的第一模块从服务器搜索第一软件的第二版本信息;第二设备根据第一配置信息确定调度第一设备的第二模块从服务器下载第二版本信息对应的升级包;第二设备从第一设备接收第二版本信息对应的升级包;第二设备安装第二版本信息对应的升级包。

权利要求 :

1.一种软件升级方法,其特征在于,应用于包括第一设备、第二设备和服务器的系统,所述第一设备包括第一模块集合,所述第一模块集合包括第一模块和第二模块,所述第二设备包括第二模块集合和第一配置信息,所述第二模块集合是所述第一模块集合的子集,所述方法包括:所述第二设备确定所述第二设备的第一软件待升级,所述第一软件当前的版本信息为第一版本信息;

所述第二设备根据所述第一配置信息确定调度所述第一设备的所述第一模块从所述服务器搜索所述第一软件的第二版本信息,所述第二版本信息不同于所述第一版本信息;

其中,所述第一配置信息是所述第二设备根据所述第二设备的能力信息和所述第一设备的能力信息确定的;其中,所述第二设备的能力信息包括所述第二设备的通信能力、处理能力、显示能力中的至少一种,所述第一设备的能力信息包括所述第一设备的通信能力、处理能力、显示能力中的至少一种;

所述第一设备的所述第一模块从所述服务器搜索所述第一软件的所述第二版本信息;

所述第二设备根据所述第一配置信息确定调度所述第一设备的所述第二模块从所述服务器下载所述第二版本信息对应的升级包;

所述第一设备的所述第二模块从所述服务器下载所述第二版本信息对应的升级包;

所述第一设备向所述第二设备发送所述第二版本信息对应的升级包;

所述第二设备从所述第一设备接收所述第二版本信息对应的升级包;

所述第二设备安装所述第二版本信息对应的升级包。

2.根据权利要求1所述的方法,其特征在于,所述系统还包括第三设备,所述第三设备包括第三模块集合和第二配置信息,所述第三模块集合是所述第一模块集合的子集,且所述第三模块集合与所述第二模块集合不同,所述方法还包括:所述第三设备确定所述第三设备的第二软件待升级,所述第二软件当前的版本信息为第三版本信息;

所述第三设备根据所述第二配置信息确定调度所述第一设备的所述第一模块从所述服务器搜索所述第二软件的第四版本信息,所述第四版本信息不同于所述第一版本信息;

所述第一设备的所述第一模块从所述服务器搜索所述第二软件的所述第四版本信息;

所述第三设备根据所述第二配置信息确定调度所述第一设备的所述第二模块从所述服务器下载所述第四版本信息对应的升级包;

所述第一设备的所述第二模块从所述服务器下载所述第四版本信息对应的升级包;

所述第一设备向所述第三设备发送所述第四版本信息对应的升级包;

所述第三设备从所述第一设备接收所述第四版本信息对应的升级包;

所述第三设备安装所述第四版本信息对应的升级包。

3.根据权利要求1或2所述的方法,其特征在于,所述第一模块集合还包括第三模块,所述方法还包括:所述第二设备根据所述第一配置信息确定调度所述第一设备的所述第三模块校验所述第二版本信息对应的升级包;

所述第一设备的所述第三模块校验所述第二版本信息对应的升级包。

4.根据权利要求3所述的方法,其特征在于,所述第一模块集合还包括第四模块,所述方法还包括:所述第二设备根据所述第一配置信息确定调度所述第一设备的所述第四模块对所述第二版本信息对应的升级包进行差分还原和/或压缩还原;

所述第一设备的所述第四模块对所述第二版本信息对应的升级包进行差分还原和/或压缩还原。

5.根据权利要求1、2、4中任一项所述的方法,其特征在于,所述第一设备的所述第一模块从所述服务器搜索所述第一软件的第二版本信息包括:向所述第一模块输入所述第二设备的标识信息和所述第一软件的类型信息,所述第一模块输出所述第二版本信息的搜索结果。

6.根据权利要求5所述的方法,其特征在于,

所述第一模块还输出所述第二版本信息、所述第二版本信息对应的升级包的统一资源定位器地址信息、升级包大小信息或更新日志信息中的至少一个。

7.根据权利要求1、2、4、6中任一项所述的方法,其特征在于,所述第一设备的所述第二模块从所述服务器下载所述第二版本信息对应的升级包包括:向所述第二模块输入所述第二设备的标识信息、所述第二版本信息、所述第二版本信息对应的升级包的统一资源定位器地址信息或所述第一软件的类型信息中的至少一个,所述第二模块输出所述第二版本信息对应的升级包的下载结果。

8.根据权利要求7所述的方法,其特征在于,

所述第二模块还输出所述第二版本信息对应的升级包的缓存地址或所述第二版本信息对应的升级包的下载进度中的至少一个。

9.根据权利要求1、2、4、6、8中任一项所述的方法,其特征在于,所述第一模块集合或所述第二模块集合集成在SDK中。

10.根据权利要求1、2、4、6、8中任一项所述的方法,其特征在于,所述第二设备确定所述第二设备的第一软件待升级之前,所述方法还包括:所述第一设备在应用程序的第一界面显示提示信息,所述提示信息用于提示所述第二设备的第一软件待升级;

所述第一设备接收用户的第一操作,所述第一操作用于升级所述第二设备的所述第一软件;

所述第一设备向所述第二设备发送通知消息,所述通知消息用于指示所述第一软件待升级。

11.根据权利要求1、2、4、6、8中任一项所述的方法,其特征在于,所述第一设备向所述第二设备发送所述第二版本信息对应的升级包包括:所述第一设备基于近场设备通信协议向所述第二设备发送所述第二版本信息对应的升级包;其中,所述近场设备通信协议包括无线保真协议、蓝牙协议或近场通信协议中的至少一个。

12.根据权利要求1、2、4、6、8中任一项所述的方法,其特征在于,所述方法还包括:所述第一设备向所述第二设备发送所述第二版本信息对应的升级包的下载进度。

13.根据权利要求1、2、4、6、8中任一项所述的方法,其特征在于,所述方法还包括:所述第二设备向所述第一设备发送所述第二版本信息对应的升级包的安装进度。

14.根据权利要求1、2、4、6、8中任一项所述的方法,其特征在于,所述第一软件的类型包括固件、补丁、软件开发工具包、插件或设备参数中的至少一个。

15.根据权利要求1、2、4、6、8中任一项所述的方法,其特征在于,所述第一配置信息是所述第二设备的生产厂商提供的。

16.一种软件升级方法,其特征在于,应用于第一设备,所述第一设备包括第一模块集合,所述第一模块集合包括第一模块和第二模块,所述方法包括:所述第一设备确定第二设备的第一软件待升级,所述第一软件当前的版本信息为第一版本信息;其中,所述第二设备包括第二模块集合和第一配置信息,所述第二模块集合是所述第一模块集合的子集,所述第一配置信息是所述第二设备根据所述第二设备的能力信息和所述第一设备的能力信息确定的;其中,所述第二设备的能力信息包括所述第二设备的通信能力、处理能力、显示能力中的至少一种,所述第一设备的能力信息包括所述第一设备的通信能力、处理能力、显示能力中的至少一种;

所述第一设备的所述第一模块从服务器搜索所述第一软件的第二版本信息;

所述第一设备的所述第二模块从所述服务器下载所述第二版本信息对应的升级包;

所述第一设备向所述第二设备发送所述第二版本信息对应的升级包。

17.一种软件升级方法,其特征在于,包括:

第二设备确定所述第二设备的第一软件待升级,所述第一软件当前的版本信息为第一版本信息;

所述第二设备根据第一配置信息确定调度第一设备的第一模块从服务器搜索所述第一软件的第二版本信息,所述第二版本信息不同于所述第一版本信息;其中,所述第一配置信息是所述第二设备根据所述第二设备的能力信息和所述第一设备的能力信息确定的;其中,所述第二设备的能力信息包括所述第二设备的通信能力、处理能力、显示能力中的至少一种,所述第一设备的能力信息包括所述第一设备的通信能力、处理能力、显示能力中的至少一种;

所述第二设备根据所述第一配置信息确定调度所述第一设备的第二模块从所述服务器下载所述第二版本信息对应的升级包;

所述第二设备从所述第一设备接收所述第二版本信息对应的升级包;

所述第二设备安装所述第二版本信息对应的升级包。

18.一种软件升级系统,其特征在于,包括第一设备、第二设备和服务器,所述第一设备执行如权利要求1‑16中任一项所述的方法,所述第二设备执行如权利要求1‑15或17中任一项所述的方法。

19.一种计算机可读存储介质,其特征在于,包括计算机指令;

当所述计算机指令在第一设备上运行时,使得所述第一设备执行如权利要求1‑16中任一项所述的方法;

或者,当所述计算机指令在第二设备上运行时,使得所述第二设备执行如权利要求1‑

15或17中任一项所述的方法。

说明书 :

一种软件升级方法和装置

技术领域

[0001] 本申请涉及通信领域,尤其涉及一种软件升级方法和装置。

背景技术

[0002] 目前,设备厂商/厂家(例如,物联网(internet of things,IOT)设备厂商)在对IOT设备进行升级时,通常采用手机辅助IOT设备升级的策略。IOT设备可以分为多种类型,IOT设备厂商可以针对每种类型的IOT设备提供一套集成二进制组件,分别在IOT设备侧和手机侧集成,确保手机和IOT设备之间的接口稳定。
[0003] 上述方案具有以下缺点:手机侧和IOT设备侧的功能实现是固定好的,在IOT设备的类型不同的情况下,手机和IOT设备之间的交互接口也不同。随着IOT设备的不断增加,如果手机侧要统一控制多种不同类型的IOT设备,则手机侧需要集成很多不同的二进制组件,导致手机侧的存储空间消耗大。并且,当出现新类型的IOT设备时,需要针对新类型的IOT设备重新设计并集成相应的二进制组件,导致手机难以实现对多种类型IOT设备辅助升级的有效扩展。

发明内容

[0004] 本申请实施例提供一种软件升级方法和装置,用于辅助升级设备(例如,IOT设备)的软件。
[0005] 第一方面,本申请实施例提供一种软件升级方法,应用于包括第一设备、第二设备和服务器的系统,第一设备包括第一模块集合,第一模块集合包括第一模块和第二模块,第二设备包括第二模块集合和第一配置信息,第二模块集合是第一模块集合的子集,方法包括:第二设备确定第二设备的第一软件待升级,第一软件当前的版本信息为第一版本信息;第二设备根据第一配置信息确定调度第一设备的第一模块从服务器搜索第一软件的第二版本信息,第二版本信息不同于第一版本信息;第一设备的第一模块从服务器搜索第一软件的第二版本信息;第二设备根据第一配置信息确定调度第一设备的第二模块从服务器下载第二版本信息对应的升级包;第一设备的第二模块从服务器下载第二版本信息对应的升级包;第一设备向第二设备发送第二版本信息对应的升级包;第二设备从第一设备接收第二版本信息对应的升级包;第二设备安装第二版本信息对应的升级包。
[0006] 基于本申请实施例提供的方法,第一设备(例如,手机)可以辅助第二设备(例如,音箱)搜索和下载第二版本信息对应的升级包。这样,若第二设备不具备联网能力或者在第二设备不能联网的情况下,第二设备可以借助第一设备的联网能力搜索和下载第二版本信息对应的升级包,可以实现第二设备的软件升级。
[0007] 在一种可能的实现方式中,系统还包括第三设备,第三设备包括第三模块集合和第二配置信息,第三模块集合是第一模块集合的子集,且第三模块集合与第二模块集合不同,方法还包括:第三设备确定第三设备的第二软件待升级,第二软件当前的版本信息为第三版本信息;第三设备根据第二配置信息确定调度第一设备的第一模块从服务器搜索第二软件的第四版本信息,第四版本信息不同于第一版本信息;第一设备的第一模块从服务器搜索第二软件的第四版本信息;第三设备根据第二配置信息确定调度第一设备的第二模块从服务器下载第四版本信息对应的升级包;第一设备的第二模块从服务器下载第四版本信息对应的升级包;第一设备向第三设备发送第四版本信息对应的升级包;第三设备从第一设备接收第四版本信息对应的升级包;第三设备安装第四版本信息对应的升级包。
[0008] 基于本申请实施例提供的方法,第一设备(例如,手机)可以辅助第三设备(例如,音箱)搜索和下载第四版本信息对应的升级包。这样,若第三设备不具备联网能力或者在第三设备不能联网的情况下,第三设备可以借助第一设备的联网能力搜索和下载第四版本信息对应的升级包,可以实现第三设备的软件升级。
[0009] 并且,本申请实施例提供的方法可以使第一设备通过第一模块集合中的模块(例如,第一模块和第二模块)辅助不同设备(第二设备和第三设备)进行升级。
[0010] 在一种可能的实现方式中,第一模块集合还包括第三模块,方法还包括:第二设备根据第一配置信息确定调度第一设备的第三模块校验第二版本信息对应的升级包;第一设备的第三模块校验第二版本信息对应的升级包。
[0011] 这样,若第二设备不具备升级包检验能力或者在第二设备不能检验升级包的情况下,第二设备可以借助第一设备的升级包检验能力校验第二版本信息对应的升级包。
[0012] 在一种可能的实现方式中,第一模块集合还包括第四模块,方法还包括:第二设备根据第一配置信息确定调度第一设备的第四模块对第二版本信息对应的升级包进行差分还原和/或压缩还原;第一设备的第四模块对第二版本信息对应的升级包进行差分还原和/或压缩还原。
[0013] 这样,若第二设备不具备升级包差分还原和/或压缩还原能力或者在第二设备不能进行差分还原和/或压缩还原的情况下,第二设备可以借助第一设备的差分还原和/或压缩还原能力对第二版本信息对应的升级包进行差分还原和/或压缩还原。
[0014] 在一种可能的实现方式中,第一设备的第一模块从服务器搜索第一软件的第二版本信息包括:向第一模块输入第二设备的标识信息和第一软件的类型信息,第一模块输出第二版本信息的搜索结果。
[0015] 即第一模块可以根据第二设备的标识信息和第一软件的类型信息搜索第二版本信息。
[0016] 在一种可能的实现方式中,第一模块还输出第二版本信息、第二版本信息对应的升级包的统一资源定位器地址信息、升级包大小信息或更新日志信息中的至少一个。
[0017] 在一种可能的实现方式中,第一设备的第二模块从服务器下载第二版本信息对应的升级包包括:向第二模块输入第二设备的标识信息、第二版本信息、第二版本信息对应的升级包的统一资源定位器地址信息或第一软件的类型信息中的至少一个,第二模块输出第二版本信息对应的升级包的下载结果。
[0018] 即第二模块可以根据第二设备的标识信息、第二版本信息、第二版本信息对应的升级包的统一资源定位器地址信息或第一软件的类型信息中的至少一个下载第二版本信息对应的升级包。
[0019] 在一种可能的实现方式中,第二模块还输出第二版本信息对应的升级包的缓存地址或第二版本信息对应的升级包的下载进度中的至少一个。
[0020] 在一种可能的实现方式中,第一模块集合或第二模块集合集成在软件开发工具包(software development kit,SDK)中。第一模块集合可以集成在第一设备的SDK中,第二模块集合可以集成在第二设备的SDK。其中,SDK可以是软件厂商(例如,华为)统一提供的。
[0021] 在一种可能的实现方式中,第二设备确定第二设备的第一软件待升级之前,方法还包括:第一设备在应用程序的第一界面显示提示信息,提示信息用于提示第二设备的第一软件待升级;第一设备接收用户的第一操作,第一操作用于升级第二设备的第一软件;第一设备向第二设备发送通知消息,通知消息用于指示第一软件待升级。即用户可以在第一设备上进行相应操作,以便对第二设备的软件进行升级,无需用户在第二设备上操作,可以提高用户的操作便利性。
[0022] 在一种可能的实现方式中,第一设备向第二设备发送第二版本信息对应的升级包包括:第一设备基于近场设备通信协议向第二设备发送第二版本信息对应的升级包;其中,近场设备通信协议包括无线保真协议、蓝牙协议或近场通信协议(near field communication,NFC)中的至少一个。
[0023] 在一种可能的实现方式中,方法还包括:第一设备向第二设备发送第二版本信息对应的升级包的下载进度。若第二设备有显示屏,可以向用户显示下载进度。
[0024] 在一种可能的实现方式中,方法还包括:第二设备向第一设备发送第二版本信息对应的升级包的安装进度。这样,第一设备可以通过显示屏向用户显示安装进度。
[0025] 在一种可能的实现方式中,第一软件的类型包括固件、补丁、软件开发工具包、插件或设备参数中的至少一个。即第一设备可以辅助第二设备进行多种升级业务的升级。
[0026] 在一种可能的实现方式中,第一配置信息是第二设备的生产厂商提供的。这样,可以确保音箱的升级流程都是经过音箱厂商有效验证测试的,确保升级可靠性。
[0027] 在一种可能的实现方式中,第一配置信息是第二设备根据第二设备的能力信息和第一设备的能力信息确定的;其中,第二设备的能力信息包括第二设备的通信能力、处理能力、显示能力中的至少一种,第一设备的能力信息包括第一设备的通信能力、处理能力、显示能力中的至少一种。这样,可以使升级过程更加灵活。
[0028] 第二方面,本申请实施例提供一种软件升级方法,应用于第一设备,第一设备包括第一模块集合,第一模块集合包括第一模块和第二模块,方法包括:第一设备确定第二设备的第一软件待升级,第一软件当前的版本信息为第一版本信息;第一设备的第一模块从服务器搜索第一软件的第二版本信息;第一设备的第二模块从服务器下载第二版本信息对应的升级包;第一设备向第二设备发送第二版本信息对应的升级包。
[0029] 基于本申请实施例提供的方法,第一设备(例如,手机)可以辅助第二设备(例如,音箱)搜索和下载第二版本信息对应的升级包。这样,若第二设备不具备联网能力或者在第二设备不能联网的情况下,第二设备可以借助第一设备的联网能力搜索和下载第二版本信息对应的升级包,可以实现第二设备的软件升级。
[0030] 第三方面,本申请实施例提供一种软件升级方法,包括:第二设备确定第二设备的第一软件待升级,第一软件当前的版本信息为第一版本信息;第二设备根据第一配置信息确定调度第一设备的第一模块从服务器搜索第一软件的第二版本信息,第二版本信息不同于第一版本信息;第二设备根据第一配置信息确定调度第一设备的第二模块从服务器下载第二版本信息对应的升级包;第二设备从第一设备接收第二版本信息对应的升级包;第二设备安装第二版本信息对应的升级包。
[0031] 基于本申请实施例提供的方法,若第二设备不具备联网能力或者在第二设备不能联网的情况下,第二设备可以借助第一设备的联网能力搜索和下载第二版本信息对应的升级包,可以实现第二设备的软件升级。
[0032] 第四方面,本申请实施例提供一种第一设备,该第一设备包括:无线通信模块、存储器和一个或多个处理器;无线通信模块、存储器与处理器耦合;其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得第一设备执行如第一方面或第二方面及其任一种可能的实现方式所述的方法。
[0033] 第五方面,本申请实施例提供一种第一设备,该装置具有实现上述第一方面或第二方面及其任一种可能的实现方式所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0034] 第六方面,本申请实施例提供一种第二设备,该第二设备包括:无线通信模块、存储器和一个或多个处理器;无线通信模块、存储器与处理器耦合;其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得第二设备执行如第一方面或第三方面及其任一种可能的实现方式所述的方法。
[0035] 第七方面,本申请实施例提供一种第二设备,该装置具有实现上述第一方面或第三方面及其任一种可能的实现方式所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0036] 第八方面,本申请实施例提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。
[0037] 上述芯片系统可以应用于包括通信模块和存储器的第一设备。该接口电路用于从存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,第一设备可以执行如第一方面及其任一种可能的实现方式所述的方法。
[0038] 或者,上述芯片系统可以应用于包括通信模块和存储器的第二设备。该接口电路用于从第二设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,第二设备可以执行如第二方面及其任一种可能的实现方式所述的方法。
[0039] 第九方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。当计算机指令在第一设备上运行时,使得该第一设备执行如第一方面及其任一种可能的实现方式所述的方法。当计算机指令在第二设备上运行时,使得该第二设备执行如第二方面及其任一种可能的实现方式所述的方法。
[0040] 第十方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面、第二方面或第三方面及其任一种可能的实现方式所述的方法。
[0041] 第十一方面,本申请实施例提供一种软件升级系统,包括第一设备、第二设备和服务器,其中,第一设备可以执行如第一方面或第二方面及其任一种可能的实现方式所述的方法,第二设备可以执行如第一方面或第三方面及其任一种可能的实现方式所述的方法。
[0042] 可选的,上述软件升级系统还可以包括第三设备,第三设备可以执行第一方面或第三方面及其任一种可能的实现方式中与第二设备所涉及的方法类似的方法。

附图说明

[0043] 图1A为本申请实施例提供的一种系统架构示意图;
[0044] 图1B为本申请实施例提供的一种第一设备的示意图;
[0045] 图2A为本申请实施例提供的一种手机的显示示意图;
[0046] 图2B为本申请实施例提供的又一种手机的显示示意图;
[0047] 图2C为本申请实施例提供的又一种手机的显示示意图;
[0048] 图2D为本申请实施例提供的又一种手机的显示示意图;
[0049] 图2E为本申请实施例提供的又一种手机的显示示意图;
[0050] 图2F为本申请实施例提供的又一种手机的显示示意图;
[0051] 图2G为本申请实施例提供的又一种手机的显示示意图;
[0052] 图2H为本申请实施例提供的又一种手机的显示示意图;
[0053] 图2I为本申请实施例提供的又一种手机的显示示意图;
[0054] 图2J为本申请实施例提供的又一种手机的显示示意图;
[0055] 图2K为本申请实施例提供的又一种手机的显示示意图;
[0056] 图2L为本申请实施例提供的又一种手机的显示示意图;
[0057] 图3A为本申请实施例提供的一种升级模块集合的示意图;
[0058] 图3B为本申请实施例提供的又一种升级模块集合的示意图;
[0059] 图4A为本申请实施例提供的一种不同升级业务对应的不同升级模块的示意图;
[0060] 图4B为本申请实施例提供的又一种升级模块集合的示意图;
[0061] 图5A为本申请实施例提供的一种音箱和手机的结构示意图;
[0062] 图5B为本申请实施例提供的一种音箱和手机的升级管理模块和各个升级模块的交互示意图;
[0063] 图6A为本申请实施例提供的一种音箱、手机和服务器的架构示意图;
[0064] 图6B为本申请实施例提供的又一种音箱、手机和服务器的架构示意图;
[0065] 图6C为本申请实施例提供的又一种音箱和手机的架构示意图;
[0066] 图7A为本申请实施例提供的一种音箱和手机的模块交互示意图;
[0067] 图7B为本申请实施例提供的又一种音箱和手机的升级管理模块和各个升级模块的交互示意图;
[0068] 图8A为本申请实施例提供的又一种音箱和手机的模块交互示意图;
[0069] 图8B为本申请实施例提供的又一种音箱和手机的升级管理模块和各个升级模块的交互示意图;
[0070] 图9A为本申请实施例提供的一种音箱和手机的信号交互示意图;
[0071] 图9B为本申请实施例提供的又一种音箱和手机的信号交互示意图;
[0072] 图9C为本申请实施例提供的又一种音箱和手机的信号交互示意图;
[0073] 图10A为本申请实施例提供的一种耳机和手机的信号交互示意图;
[0074] 图10B为本申请实施例提供的又一种耳机和手机的信号交互示意图;
[0075] 图11为本申请实施例提供的一种第一设备、第二设备和第三设备的信号交互示意图;
[0076] 图12为本申请实施例提供的一种芯片系统的结构示意图;
[0077] 图13为本申请实施例提供的一种第二设备的结构示意图。

具体实施方式

[0078] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0079] 为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
[0080] 固件:是指实现设备(例如,IOT设备)的基础功能的(软件)程序,可以安装于设备的芯片中。可以通过空中下载(over the air,OTA)技术对固件进行升级,因此固件升级也可以称为OTA升级,固件升级业务也可以称为OTA升级业务。
[0081] 补丁:是指针对固件存在的问题而发布的程序代码,用于解决固件存在的问题。
[0082] SDK:广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
[0083] KIT(服务):是一种用于向应用层(的应用程序)提供基础服务的SDK,例如,定位服务,“一碰传”服务等。
[0084] 插件:是针对特定应用程序接口编写的程序。插件又称plug‑in、addin、add‑in、addon或add‑on。插件可以用于新增特定应用程序的功能,例如可以在相机应用中安装“夜景模式”的插件,从而可以在相机应用中新增夜景模式的功能。
[0085] 设备参数:可以包括设备的协议类参数、功耗参数、时区参数、性能参数和定制参数等等。本申请实施例中,设备参数可以简称为参数。
[0086] 目前,IOT设备厂商在对IOT设备进行升级时,通常采用手机辅助IOT设备升级的策略。IOT设备可以分为多种类型,IOT设备厂商可以针对每种类型的IOT设备提供一套集成二进制组件,分别在IOT设备侧和手机侧集成,确保手机和IOT设备之间的接口稳定。
[0087] 上述方案具有以下特点:手机侧和IOT设备侧的功能实现都是固定好的,在IOT设备的类型不同的情况下,手机侧实现、手机和IOT设备之间的交互接口都不一样,随着IOT设备的不断增加,如果手机侧要统一控制多种不同类型的IOT设备,则手机侧需要集成很多不同的二进制组件,导致手机侧的存储空间消耗大。且当出现新类型的IOT设备时,需要针对新类型的IOT设备重新设计并集成相应的二进制组件,导致手机难以实现对多种类型IOT设备辅助升级的有效扩展。
[0088] 本申请实施例采用一种公共的升级框架(升级管理机制)来实现设备(例如,IOT设备)的升级,可以通过电子设备(例如,手机)对多种类型IOT设备(例如,音箱和耳机)进行升级,多种类型的IOT设备采用同一套升级框架来升级,存储空间消耗小,且能够实现IOT设备辅助升级的有效扩展。
[0089] 如图1A所示,为本申请实施例提供的一种系统架构示意图。该系统可以包括第一设备、第二设备和服务器。其中,第一设备中安装有应用程序(application,APP)。服务器可以是应用程序的管理服务器。其中,应用程序例如可以是智慧生活APP、运动健康APP等。或者,应用程序可以是第一设备本地的设置APP。
[0090] 其中,第二设备和第一设备之间可以通过无线保真(wireless fidelity,WIFI)、蓝牙、NFC等通信方式进行通信。
[0091] 示例性的,本申请实施例中的第一设备可以是手机、平板电脑、台式机(桌面型电脑)、手持计算机、笔记本电脑(膝上型电脑)、超级移动个人计算机(ultra‑mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等可以安装上述目标应用的设备,本申请实施例对第一设备的具体形态不作特殊限制。
[0092] 其中,第一设备的操作系统可以是安卓(Android)。可选的,在Android平台上可以搭载EMUI系统。可选的,Android平台上还可以集成华为移动服务(huawei mobile service,HMS)引擎(engine)或者谷歌移动服务(google mobile service,GMS)模块。或者第一设备可以是鸿蒙系统、IOS系统或者其他操作系统,本申请实施例对第一设备的操作系统类型不做限定。
[0093] 本申请实施例提供的第二设备可以是指具有WIFI、蓝牙或NFC等通信能力的设备,例如可以是路由器、电视机、音响、摄像头、空调、电冰箱、智能窗帘、台灯、吊灯、电饭煲、安防设备(如智能电子锁)、个人计算机(personal computer,PC)等可以接入家庭无线局域网的设备。或者,本申请实施例中的第二设备可以是智能手表、智能手环、无线定位器、追踪器(Tracker)、电子项圈等穿戴设备,本申请实施例中的第二设备还可以是车载音响、车载空调等设备,本申请实施例对第二设备的具体形态不作特殊限制。
[0094] 其中,第二设备的操作系统可以是鸿蒙系统,轻量级鸿蒙系统,Android系统轻量级物联网操作系统(lite OS),linux系统,双框架系统,或者其他操作系统,本申请实施例不做限定。
[0095] 本申请实施例中以图1A所示的第一设备是电子设备200(如手机)为例,对本申请实施例提供的第一设备的结构进行举例说明。如图1B所示,电子设备200(如手机)可以包括:处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。
[0096] 其中,上述传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。
[0097] 可以理解的是,本实施例示意的结构并不构成对电子设备200的具体限定。在另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0098] 处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural‑network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0099] 控制器可以是电子设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0100] 处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
[0101] 在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter‑integrated circuit,I2C)接口,集成电路内置音频(inter‑integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general‑purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
[0102] 可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备200的结构限定。在另一些实施例中,电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0103] 充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为电子设备供电。
[0104] 电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,外部存储器,显示屏294,摄像头293,和无线通信模块260等供电。在一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
[0105] 电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。在一些实施例中,电子设备200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得电子设备200可以通过无线通信技术与网络以及其他设备通信。
[0106] 天线1和天线2用于发射和接收电磁波信号。电子设备200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0107] 移动通信模块250可以提供应用在电子设备200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
[0108] 移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
[0109] 无线通信模块260可以提供应用在电子设备200上的包括WLAN(如(wireless fidelity,Wi‑Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。例如,本申请实施例中,电子设备200(如第一设备110)可以通过无线通信模块260接入家居设备130提供的临时网络(如Wi‑Fi网络)。
[0110] 无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
[0111] 电子设备200通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0112] 显示屏294用于显示图像,视频等。该显示屏294包括显示面板。例如,本申请实施例中,显示屏294可以用于显示上述第一APP的应用界面,如设备分享界面、设备搜索界面和二维码扫描界面等。
[0113] 电子设备200可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。ISP用于处理摄像头293反馈的数据。摄像头293用于捕获静态图像或视频。在一些实施例中,电子设备200可以包括1个或N个摄像头293,N为大于1的正整数。
[0114] 外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备200的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
[0115] 内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备200的各种功能应用以及数据处理。例如,在本申请实施例中,处理器210可以通过执行存储在内部存储器221中的指令,内部存储器221可以包括存储程序区和存储数据区。
[0116] 其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
[0117] 电子设备200可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0118] 按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和电子设备200的接触和分离。电子设备200可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
[0119] 下面以目标应用是智慧生活APP,第一设备为手机为例,对第一设备辅助第二设备(例如,IOT设备)进行升级的操作过程进行说明。
[0120] 如图2A所示,手机的主界面(即桌面)201中包括智慧生活应用的图标202,手机可以接收用户对智慧生活应用的图标202的点击操作,响应于该点击操作,手机可以打开智慧生活应用。响应于用户在智慧生活应用的界面中打开“设置”选项的操作,手机可以显示如图2B所示的界面203。在界面203中,可以包括多个可设置的选项,例如,可以包括IOT设备升级选项204。可选的,界面203中还可以包括智能按钮音效、智能按钮震动、消息通知、个性化内容推荐等选项,本申请不做限定。响应于用户在界面203选择IOT设备升级选项204的操作,如图2C所示,手机可以显示界面205,界面205中可以包括多个IOT设备的标识,例如可以包括电饭煲、电冰箱、台灯、音箱等等。用户可以在界面205中手动触发某个IOT设备进行升级。示例性的,响应用户在界面205选择音箱的升级按钮206的操作,如图2D所示,音箱的升级按钮206可以提示用户正在加载(正在搜索新版本)。进一步的,如图2E所示,手机可以显示界面209,在界面209中,可以显示提示文字210,提示文字210用于提示用户检查到音箱的固件的新版本,该新版本为11.1.01A。在界面209中,还可以包括提示框211,提示框211中可以包括立即升级、夜间升级、WLAN自动升级等选项供用户选择。响应于用户在提示框211中选择立即升级选项2111的操作,如图2F中的(a)所示,手机可以显示界面212。在界面212中,可以包括提示条213,提示条213用于向用户提示固件下载进度(例如,已下载58%)。固件下载完成后,如图2F中的(b)所示,手机可以显示提示文字214,提示文字214用于提示用户已下载版本11.1.01A,是否安装。响应于用户点击“是”的按钮215,手机可以显示如图2G中的(a)所示的进度条216,进度条216用于向用户提示安装进度(例如,已安装90%)。安装完成后,如图2G中的(b)所示,手机可以显示提示文字217,提示文字217用于提示用户固件已升级到版本11.1.01A。
[0121] 可选的,如图2E所示,若用户在提示框211中选择夜间升级或WLAN自动升级的选项,手机可以在夜间或者在连接到WLAN的情况下将目标版本的升级包下载到本地。当用户想升级IOT设备时,不需要再下载升级包,可以直接安装升级包,缩短了用户的等待时间,提升了用户使用体验,且提升升级率。
[0122] 在一种可能的设计中,手机可以直接向用户提示当前待升级的一个或多个的IOT设备。示例性的,如图2H中的(a)所示,当用户打开智慧生活APP进入到智慧生活APP的家居页面220时,手机可以在提示框(或搜索框)221中显示提示文字“2个设备的固件有更新,快去升级吧”。响应于用户点击提示框221的操作,如图2H中的(b)所示,手机可以显示我的页面222,在我的页面222中可以包括设备固件升级选项223,在固件升级选项223中可以通过提示点(例如,小黑点或小红点)提示设备固件待升级。响应于用户点击固件升级选项223的操作,如图2I中的(a)所示,手机可以显示界面224,在界面224中,包括2个待升级的设备,分别是第一房间(例如,卧室)的电视和第四房间(例如,客厅)的路由器。每个待升级的设备对应一个升级按钮。示例性的,响应于用户点击第一房间的电视的升级按钮225的操作,如图2I中的(b)所示,按钮225上的提示文字可以变为“升级中”,表示第一房间的电视正在升级。
其中,“升级中”可以表示固件正在下载和安装。第一房间的电视升级成功后,如图2I中的(c)所示,界面224中可以不再显示第一房间的电视,仅显示第四房间的路由器,用户可以对第四房间的路由器进行升级,具体过程参考第一房间的电视的升级过程,在此不做赘述。
[0123] 在另一种可能的设计中,如图2I中的(a)所示,手机可以显示界面224,在界面224中,包括2个待升级的设备,分别是第一房间(例如,卧室)的电视和第四房间(例如,客厅)的路由器。每个待升级的设备对应一个升级按钮。示例性的,响应于用户点击第一房间的电视的升级按钮225的操作,如图2J中的(a)所示,按钮225上的提示文字可以变为“下载中”,表示第一房间的电视的固件正在下载。下载完成后,如图2J中的(b)所示,按钮225上的提示文字可以变为“安装中”,表示第一房间的电视的固件正在安装。安装完成后,如图2I中的(c)所示,界面224中可以不再显示第一房间的电视,仅显示第四房间的路由器,用户可以对第四房间的路由器进行升级,具体过程参考第一房间的电视的升级过程,在此不做赘述。
[0124] 在又一种可能的设计中,如图2K中的(a)所示,手机可以显示界面224,在界面224中,包括2个待升级的设备,分别是第一房间(例如,卧室)的电视和第四房间(例如,客厅)的路由器。每个待升级的设备对应一个升级按钮。并且,还可以包括用于升级界面224中的全部待升级的设备的一键升级按钮230。示例性的,响应于用户点击一键升级按钮230的操作,如图2K中的(b)所示,一键升级按钮230上的提示文字可以变为“升级中”,并且,第一房间的电视对应的升级按钮225和第四房间的路由器对应的升级按钮231上的提示文字可以为“升级中”,表示第一房间的电视的软件和第四房间的路由器的软件正在升级(下载和安装)。升级完成后,如图2K中的(c)所示,界面224中可以不再显示第一房间的电视和第四房间的路由器,表示第一房间的电视和第四房间的路由器已升级成功,当前无待升级的设备。
[0125] 又例如,如图2L所示,当用户打开智慧生活APP时,智慧生活APP的界面中可以弹出弹框215,提示用户电视、音箱、路由器等IOT设备检测到新版本,是否进行升级。用户可以选择对其中的一个或多个IOT设备进行升级,或者用户可以选择对检测到新版本的全部IOT设备进行升级。例如,响应于用户在提示框215中选择全部升级选项216的操作,手机可以对检测到新版本的全部IOT设备进行升级。
[0126] 下面对本申请实施例提供的升级方法的流程进行说明,本申请实施例提供的方法可以包括以下流程:(1)建立升级模块集合;(2)升级流程调度执行。
[0127] 下面对流程(1)(即建立升级模块集合)进行说明。
[0128] 如图3A所示,可以在第二设备(例如,音箱)和第一设备(例如,手机)分别建立各自设备所能支持的升级模块集合。其中,升级模块表示用于升级的程序代码。升级模块也可以称为升级能力、升级子能力或升级单元等等,本申请不做限定。多个升级模块可以组成一个集合,可以将一个集合视为一个资源池。
[0129] 由于手机的软硬件功能比较全面,因此可以在手机侧建立一套较为完整的升级模块集合。如图3B中的(a)所示,手机的升级模块集合可以包括用户体验设计(user experience design,UX)模块、升级包搜索模块(可以简称为搜索模块)、升级包下载模块(可以简称为下载模块)、升级包执行模块(或者称为升级包升级执行模块)。可选的,手机侧升级模块集合还可以包括升级包安全校验模块(可以简称为安全校验模块)、升级包差分/压缩还原模块(可以简称为差分/压缩还原模块)等。其中,升级包可以是指固件升级包(或称为OTA包)、补丁升级包、SDK升级包(例如,KIT升级包(简称KIT包))、插件升级包或参数升级包等。
[0130] 由于第二设备包括多种类型,不同类型的第二设备的软硬件功能不同,因此,在第二设备侧,在不同类型的第二设备可以建立不同的升级模块集合。通常,可以根据第二设备的通信模块(蓝牙模块、WIFI模块或NFC模块),处理器运算能力、存储器大小等等因素对第二设备进行分类。例如,根据第二设备具备的不同通信模块可以将第二设备分为WIFI类设备、蓝牙类设备和NFC类设备等等。其中,WIFI类设备例如可以为音箱,蓝牙类设备例如可以为耳机。
[0131] 示例性的,如图3B中的(b)所示,若第二设备为音箱,音箱可以为WIFI类设备,由于WIFI类设备具有连接互联网的功能,因此音箱的升级模块集合可以包括升级包搜索模块和升级包下载模块。可选的,若音箱具有显示屏或触摸屏等用于可以进行用户交互的器件,音箱还可以建立UI模块。可选的,若音箱的处理器功能较强,音箱还可以建立安全校验模块。可选的,若音箱的ROM较大,音箱还可以建立差分/压缩还原模块等。
[0132] 如图3B中的(c)所示,第二设备可以为耳机,耳机可以为蓝牙类设备,由于蓝牙类设备不具有连接互联网的功能,可以不建立升级包搜索模块和升级包下载模块。可选的,若耳机具有显示屏或触摸屏等用于可以进行用户交互的器件,耳机还可以建立UI模块。可选的,若耳机的处理器功能较强,耳机还可以建立安全校验模块。可选的,若耳机的ROM较大,耳机还可以建立差分/压缩还原模块等。
[0133] 需要说明的是,所有类型的第二设备都需要具备升级执行模块。升级执行能力可以是指将升级包写入ROM的能力,是第二设备应该具备的基础模块。可选的,可以在升级包执行模块中集成升级包安全校验模块和升级包差分/压缩还原模块。即升级执行能力不仅是指将升级包写入ROM的能力,还包括安全校验模块、差分/压缩还原模块。
[0134] 在一种可能的设计中,可以按照不同类型的升级业务对每种升级模块进一步进行区分。其中,升级业务的类型可以包括固件升级业务(OTA升级业务)、补丁升级业务、SDK升级业务(KIT升级业务)、插件升级业务、参数升级业务等。
[0135] 示例性的,如图4A所示,固件升级业务可以对应固件搜索模块、固件下载模块、固件升级执行模块等。参数升级业务可以对应参数搜索模块、参数下载模块、参数升级执行模块等。补丁升级业务可以对应补丁搜索模块、补丁下载模块、补丁升级执行模块等。
[0136] 对于第二设备来说,若该第二设备需要支持不同类型的升级业务,该第二设备需要包括不同类型的升级业务对应的升级模块。例如,如图4B所示,对于音箱来说,若需要支持固件升级业务和参数升级业务,则音箱的升级模块集合中的升级包搜索模块可以包括固件搜索模块和参数搜索模块,升级包下载模块可以包括固件下载模块和参数下载模块,升级包安全校验模块可以包括固件安全校验模块和参数安全校验模块,升级包差分/压缩还原模块可以包括固件差分/压缩还原模块和参数差分/压缩还原模块,升级包升级执行模块可以包括固件升级执行模块和参数升级执行模块。其中,固件升级业务可以对应固件升级搜索模块、固件升级下载模块、固件安全校验模块、固件差分/压缩还原模块和固件升级执行模块等。参数升级业务可以对应参数升级搜索模块、参数升级下载模块、参数安全校验模块、参数差分/压缩还原模块和参数升级执行模块等。
[0137] 在一种可能的设计中,部分不同升级业务的升级模块可以共享。例如,采用同样升级包结构、同样升级包签名和同样安全校验机制的不同升级业务,可以共享升级包安全校验模块和升级包差分/压缩还原模块。例如,OTA包升级业务(固件升级业务)和补丁升级业务可以共享升级包安全校验模块和升级包差分/压缩还原模块。
[0138] 需要说明的是,无论在第一设备侧还是在第二设备侧,每个升级模块具有固定的输入接口和输出接口,输入接口可以接收特定的输入参数,输出接口可以输出特定的返回信息,以保证不同升级模块集合的升级模块可以无缝对接。
[0139] 示例性的,升级包搜索模块的定义格式可以包括功能,输入参数和返回信息,其中:
[0140] 功能描述:发起目标版本(新版本)升级包的搜索(检测)。
[0141] 输入参数:第二设备的标识信息,新版本升级包类型(例如固件、补丁、参数、插件或SDK(例如,KIT)等)。
[0142] 返回信息:新版本升级包搜索结果(没有新版本升级包/有新版本升级包)。若有新版本升级包,返回信息还可以包括新版本升级包的版本号信息、URL地址信息、升级包大小信息和更新日志(changelog)信息等。
[0143] 升级包下载模块的定义格式可以包括功能,输入参数和返回信息,其中:
[0144] 功能描述:发起新版本升级包下载,或者取消新版本升级包下载。
[0145] 输入参数:第二设备的标识信息,新版本升级包的URL地址,新版本升级包类型。
[0146] 返回信息:可以包括新版本升级包下载进度、新版本升级包下载结果(下载成功/下载失败)。返回信息还可以包括新版本升级包下载完成后本地缓存地址和新版本升级包版本号信息等。或者返回信息可以包括新版本升级包取消下载结果(取消成功,取消失败)。
[0147] 安全校验模块的定义格式可以包括功能,输入参数和返回信息,其中:
[0148] 功能描述:发起升级包安全校验。
[0149] 输入参数:第二设备的标识信息,新版本升级包存储地址,新版本升级包类型等。
[0150] 返回信息:新版本升级包校验结果(校验成功/校验失败)。
[0151] 差分/压缩还原模块的定义格式可以包括功能,输入参数和返回信息,其中:
[0152] 功能描述:发起升级包差分/压缩还原。
[0153] 输入参数:第二设备的标识信息,新版本升级包存储地址,新版本升级包类型。
[0154] 返回信息:升级包差分/压缩还原结果(差分/压缩还原成功或者差分/压缩还原失败)。
[0155] 升级执行模块的定义格式可以包括功能,输入参数和返回信息,其中:
[0156] 功能描述:发起升级包的升级执行(即安装升级包),或者取消升级包的升级执行。
[0157] 输入参数:第二设备的标识信息,新版本升级包存储地址,新版本升级包类型。
[0158] 返回信息:可以包括新版本升级包升级执行进度(即安装进度)、升级执行结果(安装成功/升级失败),或者取消安装结果(取消安装成功/升级失败)。
[0159] UI模块的定义格式可以包括功能,输入参数和返回信息,其中:
[0160] 功能描述:供用户选择是否发起新版本升级包搜索、下载和安装(即升级执行),或者取消下载、取消安装等过程,并将相应的进度(例如,下载进度、安装进度等)和结果(例如,下载结果、取消下载结果、安装结果、取消安装结果等)显示给用户。
[0161] 输入参数:第二设备的标识信息,新版本升级包类型、新版本升级包的版本号信息(包括ROM版本、补丁版本)以及第二设备的升级状态(包括初始化、检测中、下载中、安装中)等。
[0162] 返回信息:用户UX设置信息,例如确定发起新版本升级包搜索、下载和安装,取消下载、取消安装等。
[0163] 为了将不同设备的升级模块集合中的升级模块汇总成一个完整的升级流程,在第一设备(例如,手机)和第二设备(例如,音箱)之间,可以建立一套升级模块统一协调调度的管理机制(即升级框架/升级管理机制)。
[0164] 如图5A所示,以第一设备为手机,第二设备为音箱为例,可以在音箱上可以建立一个升级管理模块(或称为升级流程调度执行模块),音箱上的升级管理模块可以调度音箱的升级模块集合中的各个升级模块。手机上也可以建立一个升级管理模块,手机上的升级管理模块可以调度手机上的升级模块集合中的各个升级模块。音箱上的升级管理模块和手机的升级管理模块可以进行信令交互。
[0165] 示例性的,如图5B所示,在手机侧,UI模块可以将用户UX设置信息(例如,用户在手机的触摸屏进行的升级设置操作的相关信息,例如,升级设置操作可以是对台灯的固件进行升级)发送给升级管理模块,升级管理模块根据用户UX设置信息确定需要进行升级包升级(例如,对台灯的固件进行升级)。然后,升级管理模块可以调度相应的升级模块,例如升级包搜索模块,升级包下载模块和升级包升级执行模块等。升级管理模块可以向升级包搜索模块的输入接口输入相应的输入参数,升级包搜索模块输出接口可以输出相应的搜索信息(例如升级包的URL地址),升级管理模块在调度升级包下载模块时,可以将升级包搜索模块输出接口输出的搜索信息(例如升级包的URL地址)作为升级包下载模块的输入接口的输入参数,即升级包搜索模块的输出接口可以与升级包下载模块的输入接口对接。升级包下载模块输出接口可以输出相应的下载信息(例如升级包的存储地址),升级管理模块在调度升级包升级执行模块时,可以将升级包下载模块输出接口输出的下载信息(例如升级包的存储地址)作为升级包升级执行模块的输入接口的输入参数,即升级包升级执行模块的输出接口可以与升级包升级执行模块的输入接口对接。
[0166] 类似的,在音箱侧,UI模块可以将用户UX设置信息(例如,用户在音箱的触摸屏进行的升级设置操作的相关信息,例如,升级设置操作可以是对台灯的固件进行升级)发送给升级管理模块,升级管理模块可以根据用户UX设置信息确定需要进行升级包升级(例如,对台灯的固件进行升级)。然后,升级管理模块可以调度相应的升级模块,例如升级包搜索模块,升级包下载模块和升级包升级执行模块等。升级管理模块可以向升级包搜索模块的输入接口输入相应的输入参数,升级包搜索模块输出接口可以输出相应的搜索信息(例如升级包的URL地址),升级管理模块在调度升级包下载模块时,可以将升级包搜索模块输出接口输出的搜索信息(例如升级包的URL地址)作为升级包下载模块的输入接口的输入参数,即升级包搜索模块的输出接口可以与升级包下载模块的输入接口对接。升级包下载模块输出接口可以输出相应的下载信息(例如升级包的存储地址),升级管理模块在调度升级包升级执行模块时,可以将升级包下载模块输出接口输出的下载信息(例如升级包的存储地址)作为升级包升级执行模块的输入接口的输入参数,即升级包升级执行模块的输出接口可以与升级包升级执行模块的输入接口对接。
[0167] 综上可知,无论在手机侧还是在音箱侧,各个升级模块(例如升级包搜索模块、升级包下载模块和升级包升级执行模块)的输入接口和输出接口是固定的,这样,无论升级包搜索模块、升级包下载模块和升级包升级执行模块集成在音箱还是在手机侧,都可以实现无缝对接。
[0168] 可以理解的是,由于音箱和手机的升级模块集合中的升级模块可能有重复(例如,音箱(例如,WIFI类型设备)和手机都可以建立有升级包搜索模块和升级包下载模块),因此需要一套模块选择机制,以明确从哪个设备的升级模块集合中选择哪些模块来完成升级流程。
[0169] 在一种可能的设计中,如图5A所示,可以在音箱上集成配置信息,配置信息可以是音箱厂商指定的。音箱的升级管理模块可以根据配置信息确定从哪个设备的升级模块集合中选择哪些模块来完成升级流程。
[0170] 示例性的,若第二设备为音箱,配置信息可以如表1所示:
[0171] 表1
[0172] 升级模块 音箱侧 手机侧UI模块 ● ●
升级包搜索模块 ●  
升级包下载模块 ●  
升级包安全校验模块   ●
升级包差分/压缩还原模块   ●
升级包升级执行模块 ●  
[0173] 示例性的,若第二设备为耳机,配置信息(list)可以如表2所示:
[0174] 表2
[0175] 升级模块 耳机侧 手机侧UI模块   ●
升级包搜索模块   ●
升级包下载模块   ●
升级包安全校验模块   ●
升级包差分/压缩还原模块   ●
升级包升级执行模块 ●  
[0176] 需要说明的是,配置信息中,UI模块可以并行,即在第一设备侧(例如,手机)和第二设备侧(例如,音箱或耳机)都可以进行UX交互。在不同设备上的UX交互具有相同的效果,即针对升级的用户交互界面可以有多个,每个界面都可以供用户独立操作以便进行升级控制,操作结果在不同的交互界面共享。并且,可以理解的是,对第二设备进行升级时,升级执行模块只能选择第二设备侧的升级执行模块。除UI模块和升级执行模块之外的其余模块(例如,升级包搜索模块、升级包下载模块等)只选择一侧/一端设备的升级模块即可。
[0177] 在另一种可能的设计中,升级管理模块可以根据第二设备侧和第一设备侧的升级模块信息自动编排用于完成升级流程的升级模块。自动编排的策略可以是:优先调度第二设备侧的升级模块,当第二设备缺少必要的升级模块(例如,升级包下载模块)时,从第一设备侧调度相应的升级模块。
[0178] 示例性的,如图6A所示,为本申请实施例提供的一种系统架构示意图,包括音箱、手机和服务器。其中,手机包括应用程序和SDK集合。SDK集合例如可以是HMS模块(或者称为HMS engine))或者GMS模块。其中,应用程序例如可以是智慧生活APP,应用程序中包括升级管理界面。SDK集合中包括第一SDK、第二SDK和近场设备通信协议模块。其中,第一SDK例如可以是KIT框架(framework),第二SDK例如可以是智慧家居工具包(smarthome KIT)。第一SDK中包括升级功能模块,升级功能模块包括如图5A中手机侧的升级管理模块和升级模块集合中除UI模块之外的升级模块。
[0179] 其中,应用程序的升级管理界面可以接收用户的操作,基于用户的操作,应用程序可以调用第一SDK提供的应用程序接口(application programming interface,API)接口,与升级功能模块进行交互。在手机上,第一SDK可以以APP的模式独立存在,或者第一SDK可以集成在应用程序中,或者可以将SDK集合作为一个独立的APP,应用程序和该独立APP可以协同下载安装,应用程序的运行依赖于该独立APP。
[0180] 其中,音箱包括升级相关用户交互应用(即用于进行升级的应用,例如可以是音箱的设置应用)、SDK集合、升级适配层和厂家自有代码。SDK集合例如可以是HMS模块或者GMS模块。其中,SDK集合中包括第一SDK、第二SDK和近场设备通信协议模块。其中第一SDK例如可以是第一SDK,第二SDK例如可以是smarthome KIT。第一SDK中包括升级功能模块,升级功能模块包括如图5A中音箱侧的升级管理模块和升级模块集合中除UI模块之外的升级模块。
[0181] 其中,音箱侧的SDK集合可以是由软件厂商(例如,华为)统一交付的。SDK集合可以脱离音箱独立升级,即SDK集合与音箱厂商的代码是解耦的。音箱的其余软件代码是音箱厂商根据当前音箱的特点进行适配开发的。
[0182] 音箱的厂家自有代码中可以承载音箱的自有升级能力。音箱的自有升级能力可以通过升级适配层和SDK集合建立关联。如图6B所示,音箱可以通过厂家自有代码与服务器(例如,厂家的OTA服务器)进行通信,例如,可以从服务器获取OTA升级包。音箱的自有升级能力可以参考下文的相关描述,在此暂时省略。
[0183] 音箱或手机中的软总线用于提供设备间的通信能力。例如,软总线可以提供近场设备的设备间通信能力,近场设备可以包括通过蓝牙等近场协议连接的设备,或者通过家庭路由器连接的设备。
[0184] 音箱或手机中的第二SDK可以提供远场设备通信能力。其中,远场设备是指通过云服务器(cloud server)完成设备间信息交互的设备。需要注意的是,近场设备和远场设备不是固定的,可以动态切换。例如用户在公司通过手机控制家里的空调时,手机和空调属于远场设备,采用远场设备通信协议。如果用户回到家中,手机和空调都接入到了家庭路由器网络中,此时手机和空调属于近场设备,采用近场设备通信协议。第一SDK可以调用第二SDK提供的远场设备通信能力接口,以完成远场设备之间的信息交互。
[0185] 其中,服务器可以包括OTA服务器和应用市场服务器。其中,OTA服务器可以存放OTA升级包(例如,软件厂家(例如,华为)提供的OTA升级包)和补丁升级包。应用市场服务器中可以存放SDK,例如(KIT升级包)。
[0186] 其中,手机的操作系统可以是安卓系统、鸿蒙系统、IOS系统或者其他操作系统。音箱的操作系统可以是鸿蒙系统,轻量级鸿蒙系统,lite OS,linux系统,双框架系统,或者其他操作系统。
[0187] 其中,手机的第二SDK中可以包括远场设备通信模块,手机的第一SDK中还可以包括远场升级控制接口和近场升级控制接口。第一SDK可以通过远场升级控制接口调用远场设备通信模块的远场设备通信能力接口,以便第一SDK可以与远场设备进行通信。第一SDK可以通过近场升级控制接口调用软总线的近场设备通信能力接口,以便第一SDK可以与近场设备进行通信。
[0188] 类似的,音箱的第二SDK中可以包括远场设备通信模块,音箱的第一SDK中还可以包括远场升级控制接口和近场升级控制接口。第一SDK可以通过远场升级控制接口调用远场设备通信模块的远场设备通信能力接口,以便第一SDK可以与远场设备进行通信。第一SDK可以通过近场升级控制接口调用软总线的近场设备通信能力接口,以便第一SDK可以与近场设备进行通信。
[0189] 示例性的,如图6C所示,在音箱侧,SDK集合的第一SDK中可以包括升级功能模块,升级功能模块中可以包括升级管理模块和升级模块集合中除UI模块之外的升级模块。在手机侧,第一SDK中可以包括升级功能模块,升级功能模块中可以包括升级管理模块和升级模块集合中除UI模块之外的升级模块。
[0190] 音箱的UI模块可以集成在升级相关用户交互应用中,升级相关用户交互应用可以通过升级API接口与升级管理模块进行信息交互。手机的UI模块可以集成在应用程序中,用户可以通过应用程序的升级管理界面进行相应的升级设置,即手机可以通过升级管理界面接收用户的升级设置的相应操作,升级管理界面可以通过升级API接口与升级管理模块进行信息交互。手机的升级管理模块和音箱的升级管理模块可以通过升级控制接口进行交互。
[0191] 其中,音箱厂商指定的升级配置信息是音箱厂商在集成SDK集合的过程中,根据当前音箱的情况以及手机能提供的辅助升级能力(模块)的情况确定的。配置信息经过音箱厂商有效验证测试后,可以固化在音箱中。后续升级模块调度执行过程将按照固化调度顺序和过程执行。这样,可以确保音箱的升级流程都是经过音箱厂商有效验证测试的,确保升级可靠性。
[0192] 在一种可能的设计中,音箱的升级模块可以不集成在SDK集合的第一SDK中,音箱可以具备自有升级能力。其中,音箱的自有升级能力可以承载在音箱厂商的自有代码中,并通过升级适配层和SDK集合建立关联。其中,音箱的自有升级能力是指音箱厂商负责集成开发的内容。在以下两种情况中音箱可以具备自有升级能力。
[0193] 1、部分模块需要由音箱厂商自行开发。例如,升级执行模块可选地由音箱厂商自行开发。升级执行模块例如可以支持AB升级模式、独立模组升级等模式。
[0194] 2、部分音箱厂商的能力较强,可以自行设计升级功能。例如,部分音箱厂商有OTA服务器,可以自行制作并发布OTA升级包。这样,升级包的搜索模块和下载模块,都可以由音箱厂商自行实现。即音箱厂商可以自行构建升级包搜索模块和下载模块。
[0195] 需要说明的是,音箱的自有升级能力的调度仍旧依赖音箱的升级管理模块,这样可以确保目标应用(例如,应用程序)对音箱升级做到有效管理。
[0196] 并且,音箱的升级模块无论是在SDK集合的第一SDK中构建,还是音箱厂商自行构建,其输入接口和输出接口是固定的,这样可以保证音箱的升级模块与手机的升级模块可以无缝对接。
[0197] 下面对流程(2)(即升级流程调度执行)进行说明。
[0198] 示例性的,用户可以在第一设备(例如,手机)上的应用程序上发起对第二设备(例如,音箱)的升级(例如,固件升级)。手机可以将用户UX设置信息发送给音箱,音箱上的升级管理模块可以读取集成在音箱上的配置信息,根据配置信息中的编排结果调度各个升级模块。或者,音箱上升级管理模块可以根据音箱侧和手机侧的升级模块信息确定(即自动编排)用于完成升级流程的升级模块,并调度相应的升级模块。
[0199] 如图7A所示,用户可以通过应用程序的升级管理界面进行升级设置(例如,如图2C所示,用户可以在界面205通过升级按钮206对音箱进行升级),升级管理界面可以通过升级API接口将用户UX设置信息(即用户在升级管理界面进行的升级设置的相关信息)传递给升级管理模块。手机的升级管理模块可以通过升级控制接口向音箱的升级管理模块发送用户UX设置信息,音箱的升级管理模块可以通过升级控制接口接收用户UX设置信息。根据该用户UX设置信息,音箱的升级管理模块确定需要进行升级包(例如,OTA包)升级。音箱的升级管理模块可以读取配置信息,配置信息可以指定采用音箱上的OTA包搜索模块、OTA包下载模块和OTA包升级执行模块。这样,音箱的升级管理模块可以确定升级执行流程为:(1)调用音箱上的OTA包搜索模块;(2)调用音箱上的OTA包下载模块;(3)调用音箱上的OTA包升级执行模块。
[0200] 如图7B所示,在手机侧,UI模块(可以集成在如图7A中的应用程序)可以向升级管理模块发送用户UX设置信息,升级管理模块可以将用户UX设置信息发送给音箱侧的升级管理模块。音箱侧的升级管理模块根据用户UX设置信息确定需要进行OTA包升级。音箱侧的升级管理模块可以根据配置信息确定调用本地(即音箱)的升级包搜索模块、升级包下载模块和升级包升级执行模块。具体调用过程可以参考图5B的相关说明,在此不做赘述。
[0201] 可选的,音箱侧的升级管理模块还可以将相应的搜索信息、下载信息、升级执行信息发送给手机侧的升级管理模块,由手机侧的升级管理模块转发给手机侧的UI模块,以便通过应用程序向用户呈现相应的搜索信息(例如,如图2E所示的新版本的版本号)、下载信息(例如,如图2F中的(a)所示的下载进度或如图2J中的(a)所示的下载进度、如图2F中的(b)所示的下载完成结果)、升级执行信息(例如,如图2G中的(a)所示的安装进度或如图2J中的(b)所示的安装进度、如图2G中的(b)所示的安装完成结果等)。
[0202] 再例如,如图8A所示,用户可以通过应用程序的升级管理界面进行升级设置,升级管理界面可以通过升级API接口将用户UX设置信息传递给升级管理模块。手机的升级管理模块可以通过升级控制接口发送升级设置信息,音箱的升级管理模块可以通过升级控制接口接收升级设置信息。根据该升级设置信息,音箱的升级管理模块确定需要进行OTA包升级。音箱的升级管理模块可以读取配置信息,配置信息可以指定采用手机上的搜索模块和下载模块,以及采用音箱上的升级执行模块。这样,音箱的升级管理模块可以确定升级执行流程为:(1)调用手机上的OTA包搜索模块;(2)调用手机上的OTA包下载模块;(3)调用音箱上的OTA包升级执行模块。
[0203] 如图8B所示,在手机侧,UI模块(可以集成在如图8A中的应用程序)可以向升级管理模块发送用户UX设置信息,升级管理模块可以将用户UX设置信息发送给音箱侧的升级管理模块。音箱侧的升级管理模块根据用户UX设置信息确定需要进行升级包(例如,OTA包)升级。音箱侧的升级管理模块可以根据配置信息确定调用手机侧的升级包搜索模块、升级包下载模块和本地(即音箱侧)的升级包升级执行模块。音箱侧的升级管理模块可以将配置信息发送给手机侧的升级管理模块,以便手机侧的升级管理模块依次调用手机侧的升级包搜索模块和升级包下载模块。手机侧的升级管理模块可以将手机侧的升级包搜索模块和升级包下载模块的返回信息发送给音箱侧的升级管理模块,音箱侧的升级管理模块可以对上述返回信息进行解析,并且音箱调用升级包升级执行模块。具体调用过程可以参考图5B的相关说明,在此不做赘述。
[0204] 可选的,音箱侧的升级管理模块还可以将升级执行信息以及解析后的搜索信息和下载信息发送给手机侧的升级管理模块,由手机侧的升级管理模块将升级执行信息、搜索信息和下载信息转发给手机侧的UI模块,以便通过应用程序向用户呈现相应的搜索信息(例如,如图2E所示的新版本的版本号)、下载信息(例如,如图2F中的(a)所示的下载进度或如图2J中的(a)所示的下载进度、如图2F中的(b)所示的下载结果)、升级执行信息(例如,如图2G中的(a)所示的安装进度或如图2J中的(b)所示的安装进度、如图2G中的(b)所示的安装结果等)。
[0205] 需要说明的是,在图7A、图7B所示的过程中,手机与音箱可以采用远场设备通信或近场设备通信。在图8A、图8B所示的过程中,手机与音箱可以采用近场设备通信。这是由于远场设备通信通常不能传递文件(即手机不能向音箱发送手机下载的升级包)。
[0206] 第一设备(例如,手机)的升级管理模块可以判断当前待升级的第二设备(例如,音箱)是远场设备还是近场设备,进而决定使用近场设备通信接口还是远场设备通信接口完成设备间通信。远场设备和近场设备的判断模式为:软总线提供当前与第一设备连接的全部近场设备的信息,因此可以第一设备可以确定全部近场设备,若当前待升级的第二设备为非近场设备,则认为是远场设备。当然,第二设备也需要判断当前的通信模式是近场设备通信还是远场设备通信,进而决定当前需要使用哪套通信接口。第二设备也可以通过软总线接口确定当前与第二设备连接的全部近场设备的信息,若当前第一设备为非近场设备,则认为是远场设备。
[0207] 示例性的,下面以第一设备为手机,第二设备为音箱,配置信息指定采用音箱上的搜索模块、下载模块和升级执行模块为例,分别对升级包搜索过程、升级包下载过程和升级包执行过程进行说明。
[0208] 以升级业务类型为OTA业务为例,升级包(OTA包)搜索过程如图9A所示,包括:
[0209] 901、手机的UI模块通知手机的升级管理模块用户发起OTA升级包搜索。
[0210] 示例性的,手机的UI模块可以集成在应用程序中,用户可以通过应用程序进行相应的升级设置,手机可以通过应用程序的升级管理界面接收用户的升级设置的相应操作。其中,OTA升级包的版本不同于(例如,高于)当前音箱上的OTA包的版本。
[0211] 902、手机的升级管理模块通知音箱的升级管理模块用户发起OTA升级包搜索。
[0212] 手机的升级管理模块与音箱的升级管理模块可以采用近场设备通信或远场设备通信。
[0213] 903、音箱的升级管理模块启动版本搜索流程。
[0214] 904、音箱的升级管理模块读取设备厂商配置的模块调度配置信息。
[0215] 其中,设备厂商配置的模块调度配置信息可以是音箱厂商固化在音箱中的配置信息。
[0216] 905、音箱的升级管理模块确认使用本设备的搜索模块。
[0217] 即音箱中的配置信息规定使用音箱自身的搜索模块。
[0218] 906、音箱的升级管理模块调用本设备的搜索模块。
[0219] 907、音箱的搜索模块发起OTA新版本搜索。
[0220] 音箱的搜索模块可以从OTA服务器或音箱厂商自有的OTA服务器搜索新版本的OTA包。
[0221] 908、音箱的搜索模块向音箱的升级管理模块发送OTA包新版本信息。
[0222] 909、音箱的升级管理模块将OTA包新版本信息保存在本地。
[0223] 910、音箱的升级管理模块向手机的升级管理模块发送OTA包新版本信息。
[0224] 911、手机的升级管理模块向手机的UI模块发送OTA包新版本信息。
[0225] 912、手机的UI模块进行OTA包新版本信息显示。
[0226] 示例性的,如图2E所示,手机可以显示提示文字210,提示用户检查到新版本11.1.01A。
[0227] 其他类型升级业务的升级包搜索过程与图9A类似,本申请不做赘述。
[0228] OTA业务的升级包下载过程如图9B所示,包括:
[0229] 920、手机的UI模块通知手机的升级管理模块用户发起OTA升级包下载。
[0230] 示例性的,如图2E所示,手机可以接收用户点击立即升级条目2111的操作,响应于该操作,升级管理界面(即界面209)可以通过相应的升级API接口通知手机的升级管理模块用户发起音箱的OTA升级包下载。或者,如图2I中的(a)所示,手机可以接收用户点击第一房间的电视对应的升级按钮225的操作,响应于该操作,升级管理界面(即界面224)可以通过相应的升级API接口通知手机的升级管理模块用户发起第一房间的电视的OTA升级包下载。
[0231] 921、手机的升级管理模块通知音箱的升级管理模块用户发起OTA升级包下载。
[0232] 922、音箱的升级管理模块启动OTA升级包下载流程。
[0233] 923、音箱的升级管理模块读取设备厂商配置的配置信息。
[0234] 924、音箱的升级管理模块确认使用本设备(即音箱)的下载模块。
[0235] 925、音箱的升级管理模块调用本设备的下载模块。
[0236] 926、音箱的下载模块进行OTA升级包下载。
[0237] 927、音箱的下载模块向音箱的升级管理模块发送OTA升级包的本地缓存地址。
[0238] 928、音箱的升级管理模块将OTA升级包保存在本地。
[0239] 音箱的升级管理模块根据OTA升级包的本地缓存地址将OTA升级包保存在本地。
[0240] 929、音箱的下载模块向音箱的升级管理模块反馈升级包的下载进展(也可以称为下载进度)。
[0241] 930、音箱的升级管理模块向手机的升级管理模块反馈下载进展。
[0242] 931、手机的升级管理模块向手机的UI模块反馈下载进展。
[0243] 931a、手机的UI模块进行下载进展显示。
[0244] 示例性的,如图2F中的(a)所示,当前下载进度可以是58%。又例如,如图2J中的(a)所示,手机可以通过按钮225显示“下载中”,无需显示具体下载进度。
[0245] 932、音箱的下载模块向音箱的升级管理模块通知OTA升级包下载完成。
[0246] 933、音箱的升级管理模块向手机的升级管理模块通知OTA升级包下载完成。
[0247] 934、手机的升级管理模块向手机的UI模块通知OTA升级包下载完成。
[0248] 935、手机的UI模块进行OTA升级包下载完成结果显示。
[0249] 示例性的,如图2F中的(b)所示,OTA升级包下载完成后,手机可以通过提示文字214提示用户已下载版本11.1.01A,且可以提示用户是否需要进行安装。
[0250] OTA业务的升级包执行过程如图9C所示,包括:
[0251] 940、手机的UI模块通知手机的升级管理模块用户发起OTA升级包安装。
[0252] 示例性的,如图2F中的(b)所示,手机可以通过提示文字214提示用户已下载版本11.1.01A,且可以提示用户是否需要进行安装。响应于用户点击按钮215的操作,升级管理界面(即界面212)可以通过相应的升级API接口通知手机的升级管理模块用户发起音箱的OTA升级包安装。
[0253] 或者,手机的升级管理模块确定OTA升级包已下载后,可以自动发起OTA升级包安装。
[0254] 941、手机的升级管理模块通知音箱的升级管理模块用户发起OTA升级包安装。
[0255] 942、音箱的升级管理模块启动OTA升级包安装流程。
[0256] 943、音箱的升级管理模块读取设备厂商配置的配置信息。
[0257] 944、音箱的升级管理模块确认使用本设备的升级执行模块。
[0258] 945、音箱的升级管理模块调用本设备的升级执行模块。
[0259] 946、音箱的升级执行模块安装OTA升级包。
[0260] 947、音箱的升级执行模块向音箱的升级管理模块反馈安装进展(也可以称为下载进度)。
[0261] 948、音箱的升级管理模块向手机的升级管理模块反馈安装进展。
[0262] 949、手机的升级管理模块向手机的UI模块反馈安装进展。
[0263] 950、手机的UI模块进行安装进展显示。
[0264] 示例性的,如图2G中的(a)所示,当前安装进度可以是90%。或者,如图2J中的(b)所示,手机可以通过按钮225显示“安装中”,无需显示具体安装进度。
[0265] 951、音箱的升级执行模块向音箱的升级管理模块反馈安装完成。
[0266] 952、音箱的升级管理模块进行安装完成信息记录。
[0267] 953、音箱的升级管理模块向手机的升级管理模块反馈安装完成。
[0268] 954、手机的升级管理模块向手机的UI模块反馈安装完成。
[0269] 955、手机的UI模块进行安装完成结果显示。
[0270] 示例性的,如图2G中的(b)所示,手机可以通过提示文字217提示用户音箱的固件(OTA包)已升级到版本11.1.01A。或者,如图2I中的(c)所示,界面224中可以不再显示第一房间的电视,以表示第一房间的OTA升级包安装完成。
[0271] 下面以第一设备为手机,第二设备为耳机,配置信息指定采用手机上的搜索模块和下载模块,以及耳机上的升级执行模块为例,分别对升级包搜索过程、升级包下载过程和升级包执行过程进行说明。
[0272] 以升级业务类型为OTA业务为例,升级包(OTA包)搜索过程如图10A所示,包括:
[0273] 1001、手机的UI模块向手机的升级管理模块通知用户发起OTA升级包搜索。
[0274] 1002、手机的升级管理模块向耳机的升级管理模块通知用户发起OTA升级包搜索。
[0275] 手机的升级管理模块与耳机的升级管理模块可以采用近场设备通信或远场设备通信。
[0276] 1003、耳机的升级管理模块启动OTA升级包搜索流程。
[0277] 1004、耳机的升级管理模块读取设备厂商配置的配置信息。
[0278] 1005、耳机的升级管理模块确认使用手机的搜索模块。
[0279] 1006、耳机的升级管理模块通过手机的升级管理模块调用手机的搜索模块。
[0280] 1007、手机的升级管理模块调用手机的搜索模块。
[0281] 1008、手机的搜索模块发起OTA升级包搜索。
[0282] 耳机的搜索模块可以从OTA服务器或耳机厂商自有的OTA服务器搜索新版本的OTA包。
[0283] 1009、手机的搜索模块向手机的升级管理模块反馈OTA升级包版本信息。
[0284] 1010、手机的升级管理模块向耳机的升级管理模块反馈OTA升级包版本信息。
[0285] 1011、耳机的升级管理模块将OTA升级包版本信息保存在本地。
[0286] 即耳机的升级管理模块将OTA包版本信息保存在耳机上。
[0287] 1012、耳机的升级管理模块向手机的升级管理模块发送升级包描述文件信息。
[0288] 需要说明的是,手机的搜索模块完成OTA升级包搜索后,不会对OTA升级包版本信息进行处理,由手机的升级管理模块直接传递给耳机的升级管理模块,耳机的升级管理模块可以从OTA升级包版本信息中解析出升级包描述文件信息,再将升级包描述文件信息传递给手机的升级管理模块。
[0289] 1013、手机的升级管理模块向手机的UI模块发送升级包描述文件信息。
[0290] 1014、手机的UI模块进行OTA升级包版本信息显示。
[0291] 手机的UI模块基于升级包描述文件信息显示OTA升级包的版本信息。示例性的,如图2E所示,手机可以显示提示文字210,提示用户检查到新版本11.1.01A。
[0292] OTA业务的升级包下载过程如图10B所示,包括:
[0293] 1021、手机的UI模块向手机的升级管理模块通知用户发起OTA升级包下载。
[0294] 示例性的,如图2E所示,手机可以接收用户点击立即升级条目2111的操作,响应于该操作,升级管理界面(即界面209)可以通过相应的升级API接口通知手机的升级管理模块用户发起音箱的OTA升级包下载。或者,如图2I中的(a)所示,手机可以接收用户点击第一房间的电视对应的升级按钮225的操作,响应于该操作,升级管理界面(即界面224)可以通过相应的升级API接口通知手机的升级管理模块用户发起第一房间的电视的OTA升级包下载。
[0295] 1022、手机的升级管理模块向耳机的升级管理模块通知用户发起OTA升级包下载。
[0296] 1023、耳机的升级管理模块启动OTA升级包搜索流程。
[0297] 1024、耳机的升级管理模块读取设备厂商配置的配置信息。
[0298] 1025、耳机的升级管理模块确认使用手机的下载模块。
[0299] 1026、耳机的升级管理模块通过手机的升级管理模块调用手机的下载模块。
[0300] 1027、手机的升级管理模块调用手机的下载模块。
[0301] 1028、手机的下载模块进行OTA升级包下载。
[0302] 1029、手机的下载模块向手机的升级管理模块发送OTA升级包的缓存地址。
[0303] 1030、手机的升级管理模块将OTA升级包保存在本地。
[0304] 1031、手机的下载模块向手机的升级管理模块反馈下载进度。
[0305] 1032、手机的升级管理模块向耳机的升级管理模块反馈下载进度。
[0306] 1032a、耳机的升级管理模块向手机的升级管理模块反馈下载进度。
[0307] 1033、手机的升级管理模块向手机的UI模块反馈下载进度。
[0308] 1034、手机的UI模块进行下载进度显示。
[0309] 示例性的,如图2F中的(a)所示,当前下载进度可以是58%。又例如,如图2J中的(a)所示,手机可以通过按钮225显示“下载中”,无需显示具体下载进度。
[0310] 1035、手机的下载模块向手机的升级管理模块反馈下载完成。
[0311] 1036、手机的升级管理模块向耳机的升级管理模块发送OTA升级包。
[0312] 1037、耳机的升级管理模块将OTA升级包保存在本地。
[0313] 1037a、耳机的升级管理模块向手机的升级管理模块反馈OTA升级包下载完成。
[0314] 需要说明的是,手机的下载模块完成OTA升级包下载后,不会对OTA升级包进行处理,由手机的升级管理模块将OTA升级包直接传递给耳机的升级管理模块,由耳机的升级管理模块最终确定OTA升级包下载完成,然后,耳机的升级管理模块向手机的升级管理模块反馈OTA升级包下载完成。
[0315] 1038、手机的升级管理模块向手机的UI模块反馈OTA升级包下载完成。
[0316] 1039、手机的UI模块进行OTA升级包下载完成结果显示。
[0317] 示例性的,如图2F中的(b)所示,OTA升级包下载完成后,手机可以通过提示文字214提示用户已下载版本11.1.01A。
[0318] 蓝牙类设备的升级包执行过程可以参考图9C所示的流程,在此不做赘述。
[0319] 基于本申请实施例提供的方法,第一设备(例如,手机)可以采用同一套升级框架对不同类型的第二设备(例如,音箱或耳机)进行升级,手机的存储空间消耗小,并且手机可以通过升级框架对不同类型的第二设备提供不同的能力辅助。例如,针对仅具有蓝牙、NFC等通信能力的耳机,手机可以辅助耳机搜索和下载升级包。又例如,针对不具有触摸屏的设备或者用户交互操作繁琐的设备(例如,电视机通过遥控器操作的过程繁琐),手机可以为电视提供用户交互能力。又例如,针对无法支持差分还原能力和安全校验能力的第二设备,手机可以为第二设备提供安全校验能力,例如手机可以辅助第二设备对升级包进行HTTPS安全协议和PKI认证。这样,能够实现第一设备对第二设备辅助升级的有效扩展。
[0320] 如图11所示,本申请实施例提供一种软件升级方法,应用于包括第一设备、第二设备和服务器的系统,第一设备包括第一模块集合,第一模块集合包括第一模块和第二模块,第二设备包括第二模块集合和第一配置信息,第二模块集合是第一模块集合的子集,包括:
[0321] 1101、第二设备确定第二设备的第一软件待升级,第一软件当前的版本信息为第一版本信息。
[0322] 在步骤1101之前,还可以包括如下步骤:第一设备在应用程序的第一界面显示提示信息,提示信息用于提示第二设备的第一软件待升级;第一设备接收用户的第一操作,第一操作用于升级第二设备的第一软件;第一设备向第二设备发送通知消息,通知消息用于指示第一软件待升级。
[0323] 其中,第一软件的类型包括固件、补丁、软件开发工具包、插件或设备参数中的至少一个。第一配置信息是第二设备的生产厂商提供的。或者,第一配置信息是第二设备根据第二设备的能力信息和第一设备的能力信息确定的;其中,第二设备的能力信息包括第二设备的通信能力、处理能力、显示能力中的至少一种,第一设备的能力信息包括第一设备的通信能力、处理能力、显示能力中的至少一种。
[0324] 1102、第二设备根据第一配置信息确定调度第一设备的第一模块从服务器搜索第一软件的第二版本信息,第二版本信息不同于第一版本信息。
[0325] 其中,第一模块可以是前文所述的升级包搜索模块。
[0326] 1103、第一设备的第一模块从服务器搜索第一软件的第二版本信息。
[0327] 示例性的,可以向第一模块输入第二设备的标识信息和第一软件的类型信息,第一模块输出第二版本信息的搜索结果。
[0328] 可选的,第一模块还输出第二版本信息、第二版本信息对应的升级包的统一资源定位器地址信息、升级包大小信息或更新日志信息中的至少一个。
[0329] 1104、第二设备根据第一配置信息确定调度第一设备的第二模块从服务器下载第二版本信息对应的升级包。
[0330] 其中,第二模块可以是前文所述的升级包下载模块。
[0331] 1105、第一设备的第二模块从服务器下载第二版本信息对应的升级包。
[0332] 示例性的,可以向第二模块输入第二设备的标识信息、第二版本信息、第二版本信息对应的升级包的统一资源定位器地址信息或第一软件的类型信息中的至少一个,第二模块输出第二版本信息对应的升级包的下载结果。
[0333] 可选的,第二模块还输出第二版本信息对应的升级包的缓存地址或第二版本信息对应的升级包的下载进度中的至少一个。
[0334] 可选的,第一设备可以向第二设备发送第二版本信息对应的升级包的下载进度。
[0335] 进一步的,第一模块集合还包括第三模块,第三模块可以是前文所述的升级包安全检验模块。第二设备可以根据第一配置信息确定调度第三模块校验第二版本信息对应的升级包;第一设备的第三模块校验第二版本信息对应的升级包。
[0336] 进一步的,第一模块集合还包括第四模块,第四模块可以是前文所述的升级包差分/压缩还原模块。第二设备可以根据第一配置信息确定调度第四模块对第二版本信息对应的升级包进行差分还原和/或压缩还原;第一设备的第四模块对第二版本信息对应的升级包进行差分还原和/或压缩还原。
[0337] 1106、第一设备向第二设备发送第二版本信息对应的升级包。
[0338] 第一设备基于近场设备通信协议向第二设备发送第二版本信息对应的升级包;其中,近场设备通信协议包括无线保真协议、蓝牙协议或近场通信协议中的至少一个。
[0339] 1107、第二设备从第一设备接收第二版本信息对应的升级包。
[0340] 第二设备可以基于近场设备通信协议从第一设备接收第二版本信息对应的升级包。
[0341] 1108、第二设备安装第二版本信息对应的升级包。
[0342] 可选的,第二设备可以向第一设备发送第二版本信息对应的升级包的安装进度。
[0343] 在一种可能的设计中,上述系统还包括第三设备,第三设备包括第三模块集合和第二配置信息,第三模块集合是第一模块集合的子集,且第三模块集合与第二模块集合不同,上述方法还包括:
[0344] 1109、第三设备确定第三设备的第二软件待升级,第二软件当前的版本信息为第三版本信息。
[0345] 1110、第三设备根据第二配置信息确定调度第一设备的第一模块从服务器搜索第二软件的第四版本信息,第四版本信息不同于第一版本信息。
[0346] 1111、第一设备的第一模块从服务器搜索第二软件的第四版本信息。
[0347] 1112、第三设备根据第二配置信息确定调度第一设备的第二模块从服务器下载第四版本信息对应的升级包;
[0348] 1113、第一设备的第二模块从服务器下载第四版本信息对应的升级包。
[0349] 1114、第一设备向第三设备发送第四版本信息对应的升级包。
[0350] 1115、第三设备从第一设备接收第四版本信息对应的升级包。
[0351] 1116、第三设备安装第四版本信息对应的升级包。
[0352] 其中,步骤1109‑步骤1116的过程可以参考步骤1101‑步骤1118的相关描述,在此不做赘述。
[0353] 需要说明的是,图11所述的实施例中的第一设备可以为前述实施例中的手机,第二设备可以为音箱,第三设备可以为耳机,图11所述的实施例中未详述的部分,可以参考前述实施例,在此不做赘述。
[0354] 基于本申请实施例提供的方法,第一设备(例如,手机)可以采用同一套升级框架对不同类型的第二设备(例如,音箱或耳机)进行升级,手机的存储空间消耗小,并且手机可以通过升级框架对不同类型的第二设备提供不同的能力辅助。例如,针对仅具有蓝牙、NFC等通信能力的耳机,手机可以辅助耳机搜索和下载升级包。又例如,针对不具有触摸屏的设备或者用户交互操作繁琐的设备(例如,电视机通过遥控器操作的过程繁琐),手机可以为电视提供用户交互能力。又例如,针对无法支持差分还原能力和安全校验能力的第二设备,手机可以为第二设备提供安全校验能力,例如手机可以辅助第二设备对升级包进行超文本传输安全协议(hyper text transfer protocol over secure socket,HTTPS)安全协议和公开密钥基础设施(public key infrastructure,PKI)认证。这样,能够实现第一设备对第二设备辅助升级的有效扩展。
[0355] 本申请另一实施例提供一种芯片系统,如图12所示,该芯片系统包括至少一个处理器1201和至少一个接口电路1202。处理器1201和接口电路1202可通过线路互联。例如,接口电路1202可用于从其它装置(例如,第一设备的存储器,第二设备的存储器或第三设备的存储器)接收信号。又例如,接口电路1202可用于向其它装置(例如处理器1201)发送信号。
[0356] 例如,接口电路1202可读取设备中存储器中存储的指令,并将该指令发送给处理器1201。当所述指令被处理器1201执行时,可使得第一设备或第二设备(如图1B所示的电子设备200)执行上述实施例中的各个步骤。
[0357] 当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
[0358] 本申请另一些实施例提供了一种第一设备(如图1B所示的电子设备200),该第一设备可以包括:通信模块、存储器和一个或多个处理器。该通信模块、存储器与处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。
[0359] 本申请另一实施例提供一种第二设备,如图13所示,第二设备1300包括通信模块1303、存储器1302和一个或多个处理器1301。该通信模块1303、存储器1302与处理器1201耦合。其中,存储器1302用于存储计算机程序代码,计算机程序代码包括计算机指令。当计算机指令被处理器1301执行时,使得第二设备1300执行上述各方法实施例中第二设备执行的各个功能或者步骤。
[0360] 本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在第一设备(如图1B所示的电子设备200)上运行时,使得电子设备200执行上述方法实施例中第一设备(例如,手机)执行的各个功能或者步骤。当所述计算机指令在第二设备(如图13所示的第二设备1300)上运行时,使得第二设备1300执行上述方法实施例中第二设备(例如,音箱或耳机)执行的各个功能或者步骤。
[0361] 本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中第一设备(例如,手机)或第二设备(例如,音箱或耳机)执行的各个功能或者步骤。
[0362] 通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0363] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0364] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0365] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0366] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0367] 以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。