本申請屬于軟件升級,尤其涉及一種差分升級方法及終端設(shè)備。
背景技術(shù):
1、隨著用戶設(shè)備的不斷迭代,尤其是用戶設(shè)備的軟件需要進(jìn)行頻繁升級以滿足新的業(yè)務(wù)功能時,需要通過遠(yuǎn)程平臺下發(fā)升級包,而對于linux(linus?benedict?torvalds,林納斯)或安卓系統(tǒng)來說,其完整升級包很大,無形中消耗極大的數(shù)據(jù)流量,所以必須要支持差分升級。即只需要下發(fā)少量變更的內(nèi)容(比如某些so庫、logo文件級別),而不是整個固件包。
2、現(xiàn)有的差分升級方法在應(yīng)用于具有安全啟動功能的系統(tǒng)時,會導(dǎo)致升級失敗,因此,需要一種新的軟件升級方法,可適用于具有安全啟動功能的系統(tǒng)的升級。
技術(shù)實現(xiàn)思路
1、有鑒于此,本申請實施例提供了一種差分升級方法及終端設(shè)備,以解決利用現(xiàn)有的差分升級方法對具有安全啟動功能的系統(tǒng)進(jìn)行軟件升級時,會導(dǎo)致升級失敗的問題。
2、本申請實施例的第一方面提供一種差分升級方法,應(yīng)用于服務(wù)端,所述方法包括:
3、響應(yīng)于用戶的升級指令,生成第二固件,其中,所述第二固件包括引導(dǎo)程序分區(qū)鏡像、第一分區(qū)鏡像~第n分區(qū)鏡像,第i分區(qū)鏡像的尾部包括第i分區(qū)鏡像的摘要計算樹,所述第一分區(qū)鏡像包括所述第i分區(qū)鏡像的摘要根和摘要根的簽名信息,n為整數(shù)且n>1,i為整數(shù)且i∈(1,n];
4、獲取第一固件,并將所述第一固件與所述第二固件進(jìn)行比較,得到差分包;
5、將所述差分包發(fā)送至用戶端,以使所述用戶端完成升級;
6、其中,所述用戶端包括用于存儲分區(qū)鏡像的引導(dǎo)程序分區(qū)、第一分區(qū)~第n分區(qū),所述用戶端用于:
7、基于所述差分包和所述第一固件,還原出與所述第二固件相同的第三固件;
8、將所述第三固件中的各個分區(qū)鏡像分別刷寫至對應(yīng)的分區(qū);
9、響應(yīng)于服務(wù)端的重啟指令,進(jìn)行設(shè)備重啟,以完成升級。
10、本申請實施例的第二方面提供一種差分升級方法,應(yīng)用于用戶端,所述用戶端包括用于存儲分區(qū)鏡像的引導(dǎo)程序分區(qū)、第一分區(qū)~第n分區(qū),所述方法包括:
11、基于第一固件和服務(wù)端發(fā)送的差分包,還原出與所述第二固件相同的第三固件;
12、將所述第三固件中的各個分區(qū)鏡像分別刷寫至對應(yīng)的分區(qū);
13、響應(yīng)于服務(wù)端的重啟指令,進(jìn)行設(shè)備重啟,以完成升級;
14、其中,所述服務(wù)端用于:
15、響應(yīng)于用戶的升級指令,生成第二固件,其中,所述第二固件包括引導(dǎo)程序分區(qū)鏡像、第一分區(qū)鏡像~第n分區(qū)鏡像,第i分區(qū)鏡像的尾部包括第i分區(qū)鏡像的摘要計算樹,所述第一分區(qū)鏡像包括所述第i分區(qū)鏡像的摘要根和摘要根的簽名信息,i取大于1且小于或等于n的任意整數(shù),n為大于1的整數(shù);
16、獲取第一固件,并將所述第一固件與所述第二固件進(jìn)行比較,得到差分包;
17、將所述差分包發(fā)送至用戶端。
18、本申請實施例的第三方面提供了一種終端設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機(jī)程序,所述終端設(shè)備為服務(wù)端時,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)本申請實施例第一方面提供的差分升級方法的步驟;所述終端設(shè)備為用戶端時,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)本申請實施例第二方面提供的差分升級方法的步驟。
19、本申請實施例的第一方面提供的差分升級方法,應(yīng)用于服務(wù)端,所述方法通過響應(yīng)于用戶的升級指令,獲取第一固件和第二固件;將所述第一固件與所述第二固件進(jìn)行比較,得到差分包;將所述差分包發(fā)送至用戶端,以使所述用戶端完成升級;所述用戶端包括用于存儲分區(qū)鏡像的引導(dǎo)程序分區(qū)、第一分區(qū)~第n分區(qū),所述用戶端用于:基于所述差分包和所述第一固件,還原出與所述第二固件相同的第三固件;將所述第三固件中的各個分區(qū)鏡像分別刷寫至對應(yīng)的分區(qū);響應(yīng)于服務(wù)端的重啟指令,進(jìn)行設(shè)備重啟,以完成升級;其中,所述第二固件包括引導(dǎo)程序分區(qū)鏡像、第一分區(qū)鏡像~第n分區(qū)鏡像,第i分區(qū)鏡像的尾部包括第i分區(qū)鏡像的摘要計算樹,所述第一分區(qū)鏡像包括所述第i分區(qū)鏡像的摘要根和摘要根的簽名信息,n為整數(shù)且n>1,i為整數(shù)且i∈(1,n]。本申請實施例提供的方法的升級包數(shù)據(jù)量小,降低了升級時的流量消耗,且本方法在升級時,不會改變原有程序,從而能通過安全啟動的逐級校驗,成功升級。
20、可以理解的是,上述第二、三方面的有益效果可以參見上述第一方面中的相關(guān)描述,在此不再贅述。
1.一種差分升級方法,其特征在于,應(yīng)用于服務(wù)端,所述方法包括:
2.如權(quán)利要求1所述的差分升級方法,其特征在于,所述響應(yīng)于用戶的升級指令,獲取第一固件和第二固件之前,包括:
3.如權(quán)利要求1所述的差分升級方法,其特征在于,所述將所述第一固件與所述第二固件進(jìn)行比較,得到差分包,包括:
4.如權(quán)利要求3所述的差分升級方法,其特征在于,所述將所述第一固件的分區(qū)鏡像與所述第二固件的分區(qū)鏡像進(jìn)行比較,得到所述第二分區(qū)~第n分區(qū)中至少一個分區(qū)的差分文件包,包括:
5.如權(quán)利要求4所述的差分升級方法,其特征在于,所述基于所述差分文件包生成所述第二分區(qū)~第n分區(qū)中至少一個分區(qū)的差分鏡像,包括:
6.如權(quán)利要求3所述的差分升級方法,其特征在于,所述對所述第一固件與所述第二固件分別進(jìn)行解壓,得到所述第一固件的分區(qū)鏡像和所述第二固件的分區(qū)鏡像之后,還包括:
7.一種差分升級方法,其特征在于,應(yīng)用于用戶端,所述用戶端包括用于存儲分區(qū)鏡像的引導(dǎo)程序分區(qū)、第一分區(qū)~第n分區(qū),所述方法包括:
8.如權(quán)利要求7所述的差分升級方法,其特征在于,所述基于第一固件和服務(wù)端發(fā)送的差分包,還原出與所述第二固件相同的第三固件,包括:
9.如權(quán)利要求8所述的差分升級方法,其特征在于,所述對第三固件的所有分區(qū)鏡像進(jìn)行整合,得到第三固件之前,還包括:
10.如權(quán)利要求8所述的差分升級方法,其特征在于,所述利用所述第k分區(qū)的差分文件包對所述第一固件的第k分區(qū)鏡像進(jìn)行還原,得到第三固件的第k分區(qū)鏡像,包括:
11.如權(quán)利要求8所述的差分升級方法,其特征在于,所述將所述差分包中第k分區(qū)的摘要計算樹按照第k分區(qū)的摘要計算樹的位置和大小,存入至第k分區(qū)鏡像的尾部之前,還包括:
12.如權(quán)利要求7所述的差分升級方法,其特征在于,所述響應(yīng)于服務(wù)端的重啟指令,進(jìn)行設(shè)備重啟,以完成升級,包括:
13.一種終端設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機(jī)程序,其特征在于,所述終端設(shè)備為服務(wù)端時,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)如權(quán)利要求1至6中任一項所述的方法的步驟;