本公開涉及計(jì)算機(jī),尤其涉及一種固件回滾方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、固件空中升級(firmware?over?the?air,fota)是一種通過空中下載的方式更新終端設(shè)備固件的技術(shù),在需要對終端設(shè)備的固件進(jìn)行升級時(shí),可以基于fota技術(shù)將升級包發(fā)送到終端設(shè)備中進(jìn)行升級。
2、相關(guān)技術(shù)中,在終端設(shè)備基于fota技術(shù)進(jìn)行固件升級過程中,可以將終端設(shè)備的flash存儲器中運(yùn)行區(qū)的原始版本固件文件備份到備份區(qū),在升級失敗時(shí),可以從備份區(qū)將原始版本固件文件恢復(fù)到運(yùn)行區(qū),以實(shí)現(xiàn)固件升級失敗后的回滾操作。
3、但是,相關(guān)技術(shù)中提供的固件回滾方案,在固件升級失敗時(shí),通過完整的原始版本固件文件進(jìn)行固件回滾,會增加固件回滾過程中的處理時(shí)長,導(dǎo)致固件回滾效率低下。
技術(shù)實(shí)現(xiàn)思路
1、本公開提供一種固件回滾方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品,可以降低固件回滾過程中的存儲空間需求量,提升固件的回滾效率。本公開的技術(shù)方案如下:
2、根據(jù)本公開的第一方面,提供了一種固件回滾方法,所述方法應(yīng)用于終端設(shè)備中,包括:
3、在檢測到固件升級包的情況下,解析所述固件升級包,得到固件升級信息,其中,所述固件升級信息包括所述終端設(shè)備的存儲器中包含的多個(gè)存儲塊的升級順序,以及,與每個(gè)所述存儲塊關(guān)聯(lián)的差分信息,所述差分信息用于表征新版固件數(shù)據(jù)相對于原始固件數(shù)據(jù)的差異信息和依賴信息中的至少一種;
4、根據(jù)所述升級順序確定當(dāng)前正在升級的存儲塊,并將所述當(dāng)前正在升級的存儲塊中存儲的第一原始固件數(shù)據(jù)存儲至備份區(qū);
5、基于與所述當(dāng)前正在升級的存儲塊關(guān)聯(lián)的差分信息,生成與所述當(dāng)前正在升級的存儲塊關(guān)聯(lián)的第一新版固件數(shù)據(jù),并將所述第一新版固件數(shù)據(jù)寫入所述當(dāng)前正在升級的存儲塊;
6、若確定所述第一新版固件數(shù)據(jù)生成失敗,或者,所述第一新版固件數(shù)據(jù)寫入失敗,則基于所述備份區(qū)中存儲的第一原始固件數(shù)據(jù)進(jìn)行固件回滾。
7、根據(jù)本公開的第二方面,提供了一種固件回滾裝置,其特征在于,所述裝置為終端設(shè)備,包括:
8、解析模塊,被配置為在檢測到固件升級包的情況下,解析所述固件升級包,得到固件升級信息,其中,所述固件升級信息包括所述終端設(shè)備的存儲器中包含的多個(gè)存儲塊的升級順序,以及,與每個(gè)所述存儲塊關(guān)聯(lián)的差分信息,所述差分信息用于表征新版固件數(shù)據(jù)相對于原始固件數(shù)據(jù)的差異信息和依賴信息中的至少一種;
9、備份模塊,被配置為根據(jù)所述升級順序確定當(dāng)前正在升級的存儲塊,并將所述當(dāng)前正在升級的存儲塊中存儲的第一原始固件數(shù)據(jù)存儲至備份區(qū);
10、數(shù)據(jù)生成模塊,被配置為基于與所述當(dāng)前正在升級的存儲塊關(guān)聯(lián)的差分信息,生成與所述當(dāng)前正在升級的存儲塊關(guān)聯(lián)的第一新版固件數(shù)據(jù),并將所述第一新版固件數(shù)據(jù)寫入所述當(dāng)前正在升級的存儲塊;
11、數(shù)據(jù)回滾模塊,被配置為若確定所述第一新版固件數(shù)據(jù)生成失敗,或者,所述第一新版固件數(shù)據(jù)寫入失敗,則基于所述備份區(qū)中存儲的第一原始固件數(shù)據(jù)進(jìn)行固件回滾。
12、根據(jù)本公開的第三方面,提供了一種電子設(shè)備,包括:
13、處理器;以及
14、存儲程序的存儲器,
15、其中,所述程序包括指令,所述指令在由所述處理器執(zhí)行時(shí)使所述處理器執(zhí)行如第一方面所述的方法。
16、根據(jù)本公開的第四方面,提供了一種存儲有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行如第一方面所述的方法。
17、根據(jù)本公開的第五方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如第一方面所述的方法。
18、本公開提供的固件回滾方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品,可以對固件進(jìn)行分塊升級,并在當(dāng)前正在升級的存儲塊升級失敗的情況下,根據(jù)當(dāng)前正在升級的存儲塊的原始固件數(shù)據(jù)進(jìn)行固件回滾,一方面,固件回滾過程中無需處理原始固件數(shù)據(jù)的全部數(shù)據(jù),可以提升固件的回滾效率;另一方面,在備份區(qū)存儲當(dāng)前正在升級的存儲塊的原始固件數(shù)據(jù)的情況下,就可以實(shí)現(xiàn)固件回滾,可以降低固件回滾過程中的存儲資源需求量。
1.一種固件回滾方法,其特征在于,所述方法應(yīng)用于終端設(shè)備中,包括:
2.如權(quán)利要求1所述的固件回滾方法,其特征在于,所述基于所述備份區(qū)中存儲的第一原始固件數(shù)據(jù)進(jìn)行固件回滾,包括:
3.如權(quán)利要求2所述的固件回滾方法,其特征在于,所述方法還包括:
4.如權(quán)利要求3所述的固件回滾方法,其特征在于,所述根據(jù)差分信息集和所述當(dāng)前回滾存儲塊中存儲的第二新版固件數(shù)據(jù),生成與所述當(dāng)前回滾存儲塊關(guān)聯(lián)的第二原始固件數(shù)據(jù),包括:
5.如權(quán)利要求4所述的固件回滾方法,其特征在于,所述根據(jù)所述差分信息集、所述第二新版固件數(shù)據(jù)和所述第二刪除代碼數(shù)據(jù),確定所述第二原始固件數(shù)據(jù),包括:
6.如權(quán)利要求5所述的固件回滾方法,其特征在于,在根據(jù)所述差分信息集、所述第二新版固件數(shù)據(jù)和所述第二刪除代碼數(shù)據(jù),確定所述第二原始固件數(shù)據(jù)之前,所述方法還包括:
7.一種固件回滾裝置,其特征在于,所述裝置為終端設(shè)備,包括:
8.一種電子設(shè)備,其特征在于,包括:
9.一種存儲有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行如權(quán)利要求1-6中任一項(xiàng)所述的方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-6中任一項(xiàng)所述的方法。