本申請(qǐng)涉及移動(dòng)終端技術(shù)領(lǐng)域,特別是涉及一種Android系統(tǒng)升級(jí)的方法和裝置。
背景技術(shù):
Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),主要支持手機(jī)。隨后Google以Apache開(kāi)源許可證的授權(quán)方式,發(fā)布了Android的源代碼。正是因?yàn)锳ndroid的開(kāi)源,使得Android系統(tǒng)的開(kāi)發(fā)人員越來(lái)越多,Android系統(tǒng)的使用范圍也越來(lái)越廣,從原來(lái)主要支持手機(jī)逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。
隨著科技的不斷進(jìn)步,移動(dòng)設(shè)備的硬件、軟件也都在不斷升級(jí),為了適配更高級(jí)的硬件、軟件,Android系統(tǒng)也需要不斷升級(jí)。在實(shí)際應(yīng)用中,因?yàn)闊o(wú)線網(wǎng)絡(luò)的廣泛使用,絕大部分的Android系統(tǒng)都是通過(guò)OTA(Over the AirTechnology,空間下載技術(shù))進(jìn)行升級(jí)。OTA升級(jí)是Android系統(tǒng)提供的標(biāo)準(zhǔn)軟件升級(jí)方式。它功能強(qiáng)大,可以無(wú)損失升級(jí)系統(tǒng),主要通過(guò)網(wǎng)絡(luò),例如WIFI、3G、4G自動(dòng)下載OTA升級(jí)包,然后進(jìn)行自動(dòng)升級(jí),但是也支持通過(guò)下載OTA升級(jí)包到本地存儲(chǔ)卡進(jìn)行升級(jí)。OTA的升級(jí)包非常的小,一般幾M到十幾M,非常的方便,基本是在系統(tǒng)上點(diǎn)擊幾下就完成了升級(jí),并且,最重要的是,OTA升級(jí)無(wú)需備份數(shù)據(jù),短短幾分鐘就能完成所有升級(jí)工作,所有數(shù)據(jù)都會(huì)完好無(wú)損的保留下來(lái)。
目前,Andorid系統(tǒng)的OTA升級(jí)針對(duì)系統(tǒng)的校驗(yàn)存在升級(jí)前和升級(jí)后兩次校驗(yàn),如果升級(jí)前校驗(yàn)成功,但是升級(jí)后校驗(yàn)失敗,則會(huì)導(dǎo)致系統(tǒng)沒(méi)有被正常升級(jí),并且升級(jí)過(guò)程中,升級(jí)失敗會(huì)進(jìn)入recovery模式,在該模式下如果等待超時(shí)手機(jī)會(huì)自動(dòng)重啟,此時(shí)如果用戶不注意,而且恰好手機(jī)可以開(kāi)機(jī),那么,系統(tǒng)版本信息會(huì)更改為升級(jí)后的高版本信息,所以用戶會(huì)誤認(rèn)為系統(tǒng)升級(jí)成功,即使通過(guò)查看版本信息也會(huì)誤認(rèn)為系統(tǒng)已經(jīng)升級(jí)成功。但實(shí)際上系統(tǒng)并沒(méi)有真正完全升級(jí)成功,還會(huì)導(dǎo)致升級(jí)后的系統(tǒng)無(wú)法進(jìn)一步后續(xù)升級(jí),嚴(yán)重的話,甚至?xí)霈F(xiàn)手機(jī)會(huì)死機(jī)、無(wú)法開(kāi)機(jī)的情況,這樣,用戶只能去售后或者返廠維修,不僅用戶體驗(yàn)差,而且還會(huì)增加維修成本。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述用戶在升級(jí)Andorid系統(tǒng)的過(guò)程中出現(xiàn)升級(jí)失敗的情況,提出了本申請(qǐng)實(shí)施例一種Android系統(tǒng)升級(jí)的方法和相應(yīng)的一種Android系統(tǒng)升級(jí)的裝置。
為了解決上述問(wèn)題,本申請(qǐng)實(shí)施例公開(kāi)了一種Android系統(tǒng)升級(jí)的方法,包括:
當(dāng)接收到針對(duì)所述Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載所述Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,所述差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;
依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊;
計(jì)算所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
判斷所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與,所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致;
若一致,則采用所述差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
可選地,所述的方法還包括:
當(dāng)所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息不一致時(shí),針對(duì)所述升級(jí)請(qǐng)求,獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包;
采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
可選地,在所述采用所述差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)的步驟之后,所述的方法還包括:
校驗(yàn)采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)是否升級(jí)成功;
若否,則獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包,以及,采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
可選地,所述差分升級(jí)數(shù)據(jù)包還具有與所述待升級(jí)數(shù)據(jù)塊的地址相同的已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;所述校驗(yàn)采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)是否升級(jí)成功的步驟包括:
確定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的第二目標(biāo)數(shù)據(jù)塊;
計(jì)算所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
若所述已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息,與所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息一致,則判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android升級(jí)成功,否則,判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)失敗。
可選地,所述確定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的第二目標(biāo)數(shù)據(jù)塊的步驟包括:
依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中已升級(jí)的數(shù)據(jù)塊;
將所述數(shù)據(jù)塊作為第二目標(biāo)數(shù)據(jù)塊。
相應(yīng)的,本申請(qǐng)實(shí)施例公開(kāi)了一種Android系統(tǒng)升級(jí)的裝置,包括:
差分升級(jí)數(shù)據(jù)包下載模塊,用于當(dāng)接收到針對(duì)所述Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載所述Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,所述差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;
第一目標(biāo)數(shù)據(jù)塊確定模塊,用于依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊;
第一目標(biāo)數(shù)據(jù)塊計(jì)算模塊,用于計(jì)算所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
第一目標(biāo)數(shù)據(jù)塊判斷模塊,用于判斷所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與,所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致;
差分升級(jí)數(shù)據(jù)包升級(jí)模塊,用于若一致,則采用所述差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
相應(yīng)的,所述的裝置還包括:
完整升級(jí)數(shù)據(jù)包獲取模塊,用于當(dāng)所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息不一致時(shí),針對(duì)所述升級(jí)請(qǐng)求,獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包;
第一完整升級(jí)數(shù)據(jù)包升級(jí)模塊,用于采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
相應(yīng)的,所述的裝置還包括:
校驗(yàn)?zāi)K,用于校驗(yàn)采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)是否升級(jí)成功;
第二完整升級(jí)數(shù)據(jù)包升級(jí)模塊,用于若否,則獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包,以及,采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
相應(yīng)的,所述差分升級(jí)數(shù)據(jù)包還具有與所述待升級(jí)數(shù)據(jù)塊的地址相同的已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;所述校驗(yàn)?zāi)K包括:
第二目標(biāo)數(shù)據(jù)塊確定子模塊,用于確定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的第二目標(biāo)數(shù)據(jù)塊;
第二目標(biāo)數(shù)據(jù)塊計(jì)算子模塊,用于計(jì)算所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
第二目標(biāo)數(shù)據(jù)塊判斷子模塊,用于若所述已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息,與所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息一致,則判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android升級(jí)成功,否則,判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)失敗。
相應(yīng)的,所述第二目標(biāo)數(shù)據(jù)塊確定子模塊包括:
已升級(jí)數(shù)據(jù)塊確定單元,用于依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中已升級(jí)的數(shù)據(jù)塊;
第二目標(biāo)數(shù)據(jù)塊確定單元,用于將所述數(shù)據(jù)塊作為第二目標(biāo)數(shù)據(jù)塊。
本申請(qǐng)實(shí)施例包括以下優(yōu)點(diǎn):
本申請(qǐng)?jiān)诮邮盏结槍?duì)Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,其中,差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息。然后依據(jù)待升級(jí)數(shù)據(jù)塊的地址確定Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊,并計(jì)算第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,接著判斷第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息與待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致,如果一致,則采用差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。這樣,在安裝升級(jí)包之前通過(guò)對(duì)待升級(jí)數(shù)據(jù)塊、升級(jí)包進(jìn)行校驗(yàn),確定了待升級(jí)數(shù)據(jù)塊與升級(jí)包沒(méi)有問(wèn)題之后再進(jìn)行升級(jí),從而確保升級(jí)可以成功執(zhí)行,保證了系統(tǒng)升級(jí)的成功率。
另外,本申請(qǐng)?jiān)诓捎貌罘稚?jí)數(shù)據(jù)包升級(jí)后,會(huì)校驗(yàn)升級(jí)后的系統(tǒng)是否升級(jí)成功,如果沒(méi)有,會(huì)繼續(xù)采用完整升級(jí)數(shù)據(jù)對(duì)系統(tǒng)進(jìn)行升級(jí),從而確保升級(jí)可以成功執(zhí)行,進(jìn)一步保證了系統(tǒng)升級(jí)的成功率。
附圖說(shuō)明
圖1是本申請(qǐng)的一種Android系統(tǒng)升級(jí)的方法實(shí)施例的步驟流程圖一;
圖2是本申請(qǐng)的一種Android系統(tǒng)升級(jí)的方法實(shí)施例的步驟流程圖二;
圖3是本申請(qǐng)的一種Android系統(tǒng)升級(jí)的裝置實(shí)施例的結(jié)構(gòu)框圖一;
圖4是本申請(qǐng)的一種Android系統(tǒng)升級(jí)的裝置實(shí)施例的結(jié)構(gòu)框圖二。
具體實(shí)施方式
為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說(shuō)明。
本申請(qǐng)實(shí)施例的核心構(gòu)思之一在于,在接收到對(duì)當(dāng)前Android系統(tǒng)進(jìn)行升級(jí)的請(qǐng)求后,首先對(duì)當(dāng)前系統(tǒng)進(jìn)行校驗(yàn),如果校驗(yàn)成功,則采用低版本系統(tǒng)到高版本系統(tǒng)的差分升級(jí)數(shù)據(jù)包對(duì)當(dāng)前低版本系統(tǒng)進(jìn)行升級(jí)。
現(xiàn)有技術(shù)中,Andorid系統(tǒng)的OTA升級(jí)針對(duì)系統(tǒng)的校驗(yàn)存在升級(jí)前和升級(jí)后兩次校驗(yàn),如果升級(jí)前校驗(yàn)成功,但是升級(jí)后校驗(yàn)失敗,則會(huì)導(dǎo)致系統(tǒng)沒(méi)有被正常升級(jí),并且升級(jí)過(guò)程中,升級(jí)失敗會(huì)進(jìn)入recovery模式,在該模式下如果等待超時(shí)手機(jī)會(huì)自動(dòng)重啟,此時(shí)如果用戶不注意,而且恰好手機(jī)可以開(kāi)機(jī),那么,系統(tǒng)版本信息會(huì)更改為升級(jí)后的高版本信息,所以用戶會(huì)誤認(rèn)為系統(tǒng)升級(jí)成功,即使通過(guò)查看版本信息也會(huì)誤認(rèn)為系統(tǒng)已經(jīng)升級(jí)成功。但實(shí)際上系統(tǒng)并沒(méi)有真正完全升級(jí)成功,還會(huì)導(dǎo)致升級(jí)后的系統(tǒng)無(wú)法進(jìn)一步后續(xù)升級(jí),嚴(yán)重的話,甚至?xí)霈F(xiàn)手機(jī)會(huì)死機(jī)、無(wú)法開(kāi)機(jī)的情況。
因此,針對(duì)上述問(wèn)題,本申請(qǐng)?jiān)诮邮盏结槍?duì)Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,其中,差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息。然后依據(jù)待升級(jí)數(shù)據(jù)塊的地址確定Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊,并計(jì)算第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,接著判斷第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息與待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致,如果一致,則采用差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。這樣,在安裝升級(jí)包之前通過(guò)對(duì)待升級(jí)數(shù)據(jù)塊、升級(jí)包進(jìn)行校驗(yàn),確定了待升級(jí)數(shù)據(jù)塊與升級(jí)包沒(méi)有問(wèn)題之后再進(jìn)行升級(jí),從而確保升級(jí)可以成功執(zhí)行,保證了系統(tǒng)升級(jí)的成功率。
另外,本申請(qǐng)?jiān)诓捎貌罘稚?jí)數(shù)據(jù)包升級(jí)后,會(huì)校驗(yàn)升級(jí)后的系統(tǒng)是否升級(jí)成功,如果沒(méi)有,會(huì)繼續(xù)采用完整升級(jí)數(shù)據(jù)對(duì)系統(tǒng)進(jìn)行升級(jí),從而確保升級(jí)可以成功執(zhí)行,進(jìn)一步保證了系統(tǒng)升級(jí)的成功率。
參照?qǐng)D1,示出了本申請(qǐng)的一種Android系統(tǒng)升級(jí)的方法實(shí)施例的步驟流程圖一,具體可以包括如下步驟:
步驟101,當(dāng)接收到針對(duì)所述Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載所述Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,所述差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息。
數(shù)據(jù)塊,是一組按順序連續(xù)排列在一起的幾組記錄,是主存儲(chǔ)器與輸入、輸出設(shè)備或外存儲(chǔ)器之間進(jìn)行傳輸?shù)囊粋€(gè)數(shù)據(jù)單位,是數(shù)據(jù)的物理記錄。數(shù)據(jù)塊的大小可以是固定的或是可變的,塊與塊之間有間隙。主存儲(chǔ)器與cache(Cache Memory,高速緩沖存儲(chǔ)器)都劃分成長(zhǎng)度相等的數(shù)據(jù)塊,每次主存儲(chǔ)器與cache交換數(shù)據(jù)時(shí)都是以數(shù)據(jù)塊為單位進(jìn)行的。
在本申請(qǐng)中,Android系統(tǒng)采用的差分升級(jí)數(shù)據(jù)包需要預(yù)先制作好并存儲(chǔ)在服務(wù)器中。差分升級(jí)的原理,就是將完整高版本系統(tǒng)與完整低版本系統(tǒng)具有差異的數(shù)據(jù)塊制作成差分升級(jí)數(shù)據(jù)包,完整低版本系統(tǒng)通過(guò)安裝差分升級(jí)數(shù)據(jù)包對(duì)那些有差異的數(shù)據(jù)塊里的數(shù)據(jù)進(jìn)行更新,從而實(shí)現(xiàn)了低版本系統(tǒng)到高版本系統(tǒng)的升級(jí)。
具體地,在制作差分升級(jí)數(shù)據(jù)包時(shí),因?yàn)橹懒松?jí)前完整的低版本與升級(jí)后完整的高版本之間的差異,所以可以通過(guò)diff工具對(duì)高、低兩個(gè)版本系統(tǒng)的差異進(jìn)行比較,比較后就可以得知升級(jí)前完整的低版本系統(tǒng)與升級(jí)后完整的高版本系統(tǒng)之間有差異的數(shù)據(jù)塊是哪些。也就是說(shuō),在升級(jí)之前就已經(jīng)知道低版本系統(tǒng)中會(huì)被更新的數(shù)據(jù)塊,也就是待升級(jí)的數(shù)據(jù)塊的地址,此時(shí),針對(duì)所述地址的數(shù)據(jù)塊生成校驗(yàn)信息,并將所述地址與生成的校驗(yàn)信息一起打包封裝在差分升級(jí)數(shù)據(jù)包里。
其中,校驗(yàn)信息可以是HASH值,例如,在制作差分升級(jí)數(shù)據(jù)包時(shí),通過(guò)比較高、低兩個(gè)版本系統(tǒng)的差異可知,完整低版本系統(tǒng)與完整高版本系統(tǒng)之間有92個(gè)數(shù)據(jù)塊是有差異的,此時(shí),將這92個(gè)數(shù)據(jù)塊的地址記錄下來(lái),并計(jì)算這92個(gè)數(shù)據(jù)的HASH值,然后將這92個(gè)數(shù)據(jù)塊的地址、HASH值一起打包封裝在差分升級(jí)數(shù)據(jù)包里。
校驗(yàn)信息也可以是對(duì)各個(gè)數(shù)據(jù)塊的具體操作信息,例如,完整低版本系統(tǒng)與完整高版本系統(tǒng)之間有92個(gè)數(shù)據(jù)塊是有差異的,此時(shí),分別記錄對(duì)每個(gè)數(shù)據(jù)塊的具體操作,涉及到需要修改的具體位置,例如替換哪些塊,移動(dòng)哪些塊等等,然后將這92個(gè)數(shù)據(jù)的地址、對(duì)各個(gè)數(shù)據(jù)塊的具體操作信息一起打包封裝在差分升級(jí)數(shù)據(jù)包里。
當(dāng)然,校驗(yàn)信息還可以是其它信息,可以理解,可以用于校驗(yàn)數(shù)據(jù)的方式都適用于本申請(qǐng),本申請(qǐng)對(duì)此不作限制。
具有Android系統(tǒng)的設(shè)備在接收到針對(duì)所述Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),就會(huì)下載具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息的差分升級(jí)數(shù)據(jù)包。
步驟102,依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊;
具有Android系統(tǒng)的設(shè)備下載完差分升級(jí)數(shù)據(jù)包后,解封該差分升級(jí)數(shù)據(jù)包,獲取其中的待升級(jí)數(shù)據(jù)塊的地址。
因?yàn)楫?dāng)前低版本系統(tǒng)并不知道哪些數(shù)據(jù)塊是需要更新的,所以通過(guò)獲取差分升級(jí)數(shù)據(jù)包中的待升級(jí)數(shù)據(jù)塊的地址,就知道當(dāng)前低版本系統(tǒng)中哪些數(shù)據(jù)塊是需要更新的。從而確定當(dāng)前低版本系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊。
步驟103,計(jì)算所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
確定了當(dāng)前低版本系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊后,計(jì)算所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息。其中,校驗(yàn)信息可以是HASH值,也可以是對(duì)各個(gè)數(shù)據(jù)塊的具體操作信息。
步驟104,判斷所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與,所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致;
具體的,當(dāng)前低版本系統(tǒng)根據(jù)差分升級(jí)數(shù)據(jù)包中待升級(jí)的數(shù)據(jù)塊的地址計(jì)算出所述地址數(shù)據(jù)的HASH值,與差分升級(jí)數(shù)據(jù)包中待升級(jí)的數(shù)據(jù)塊的HASH值進(jìn)行比較,判斷二者是否一致。
還可以判斷對(duì)當(dāng)前低版本中各個(gè)待升級(jí)的數(shù)據(jù)塊的操作與差分升級(jí)數(shù)據(jù)包中記載的對(duì)各個(gè)待升級(jí)的數(shù)據(jù)塊的操作是否是一致的。比如,差分升級(jí)數(shù)據(jù)包中對(duì)某個(gè)數(shù)據(jù)塊的操作方式為刪除,但是校驗(yàn)信息中記載的對(duì)該數(shù)據(jù)塊的操作方式應(yīng)該為移動(dòng),這樣,二者就不是一致了。
步驟105,若一致,則采用所述差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
若當(dāng)前低版本系統(tǒng)根據(jù)差分升級(jí)數(shù)據(jù)包中待升級(jí)的數(shù)據(jù)塊的地址計(jì)算出所述地址數(shù)據(jù)的HASH值,與差分升級(jí)數(shù)據(jù)包中待升級(jí)的數(shù)據(jù)塊的HASH值相同,和/或,對(duì)當(dāng)前低版本中各個(gè)待升級(jí)的數(shù)據(jù)塊的操作與差分升級(jí)數(shù)據(jù)包中記載的對(duì)各個(gè)待升級(jí)的數(shù)據(jù)塊的操作相同,則采用下載的差分升級(jí)數(shù)據(jù)包升級(jí)Android系統(tǒng)。
在本發(fā)明的一些實(shí)施方式中,在采用差分升級(jí)數(shù)據(jù)包升級(jí)Android系統(tǒng)的步驟之后,還可包括:
步驟106,校驗(yàn)采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)是否升級(jí)成功。
具體的,為確保系統(tǒng)正常升級(jí)完成,需要對(duì)升級(jí)后的系統(tǒng)進(jìn)行校驗(yàn),在本發(fā)明一些實(shí)施例中,所述差分升級(jí)數(shù)據(jù)包還具有與所述待升級(jí)數(shù)據(jù)塊的地址相同的已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;所述步驟106包括:
確定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的第二目標(biāo)數(shù)據(jù)塊;
計(jì)算所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
若所述已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息,與所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息一致,則判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)成功,否則,判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)失敗。
基于差分升級(jí)的原理,完整的高版本系統(tǒng)是已知的,所以可以針對(duì)完整高版本系統(tǒng)中已升級(jí)數(shù)據(jù)塊生成校驗(yàn)信息。而完整高版本系統(tǒng)中已升級(jí)數(shù)據(jù)塊的地址與升級(jí)前完整低版本系統(tǒng)中待升級(jí)數(shù)據(jù)塊的地址是完全一樣的,所以,可以根據(jù)所述地址,計(jì)算出完整高版本系統(tǒng)中所述地址數(shù)據(jù)塊的校驗(yàn)信息,并打包封裝在差分升級(jí)數(shù)據(jù)包中。
當(dāng)前低版本系統(tǒng)采用差分升級(jí)數(shù)據(jù)包完成升級(jí)后,繼續(xù)依據(jù)待升級(jí)數(shù)據(jù)塊的地址確定Android系統(tǒng)中已升級(jí)的數(shù)據(jù)塊,并將所述數(shù)據(jù)塊作為第二目標(biāo)數(shù)據(jù)塊,也就是說(shuō),第一目標(biāo)數(shù)據(jù)塊和第二目標(biāo)數(shù)據(jù)塊的存儲(chǔ)地址是一樣的,只不過(guò)第一目標(biāo)數(shù)據(jù)塊里的數(shù)據(jù)是升級(jí)前的系統(tǒng)的數(shù)據(jù),第二目標(biāo)數(shù)據(jù)塊里的數(shù)據(jù)是升級(jí)后的系統(tǒng)的數(shù)據(jù)。然后計(jì)算第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,若計(jì)算出的第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息與差分升級(jí)數(shù)據(jù)包中已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息一致,則判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)成功,否則,判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)失敗。
在本發(fā)明實(shí)施例中,若采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)成功,則表示Android系統(tǒng)所有的分區(qū),包括system分區(qū)、boot分區(qū)、modem等多個(gè)分區(qū)都進(jìn)行了升級(jí),但是采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)失敗,則意味著Android系統(tǒng)僅僅升級(jí)了system分區(qū),其他分區(qū)例如:boot、modem等多個(gè)分區(qū)是沒(méi)有被正常升級(jí)的。
步驟107,當(dāng)采用差分升級(jí)數(shù)據(jù)包升級(jí)當(dāng)前低版本系統(tǒng)失敗時(shí),獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包,以及,采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
在本發(fā)明實(shí)施例中,可以將完整高版本系統(tǒng)制作成一個(gè)升級(jí)包,這樣,低版本系統(tǒng)在安裝完全包升級(jí)數(shù)據(jù)包后,就完成了對(duì)當(dāng)前系統(tǒng)的升級(jí)。
需要說(shuō)明的是,在本發(fā)明實(shí)施例中,獲取全包升級(jí)數(shù)據(jù)包的方式可以是與差分升級(jí)數(shù)據(jù)包封裝在一起下載下來(lái),也可以是在第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息不一致時(shí),重新從服務(wù)器上下載,本發(fā)明實(shí)施例對(duì)獲取完整數(shù)據(jù)包的方式不作限制。
參照?qǐng)D2,示出了本申請(qǐng)的一種Android系統(tǒng)升級(jí)的方法實(shí)施例的步驟流程圖二,具體可以包括如下步驟:
步驟201,當(dāng)接收到針對(duì)所述Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載所述Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,所述差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;
步驟202,依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊;
步驟203,計(jì)算所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
步驟204,判斷所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與,所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致;
步驟205,若一致,則采用所述差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng);
步驟206,當(dāng)所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息不一致時(shí),針對(duì)所述升級(jí)請(qǐng)求,獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包;
采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
具體的,在當(dāng)前低版本系統(tǒng)根據(jù)差分升級(jí)數(shù)據(jù)包中待升級(jí)的數(shù)據(jù)塊的地址計(jì)算出所述地址數(shù)據(jù)的HASH值,與差分升級(jí)數(shù)據(jù)包中待升級(jí)的數(shù)據(jù)塊的HASH值不相同,和/或,對(duì)當(dāng)前低版本中各個(gè)待升級(jí)的數(shù)據(jù)塊的操作與差分升級(jí)數(shù)據(jù)包中記載的對(duì)各個(gè)待升級(jí)的數(shù)據(jù)塊的操作不相同時(shí),則獲取完整高版本的完整升級(jí)數(shù)據(jù)包,然后采用完整升級(jí)數(shù)據(jù)包對(duì)當(dāng)前低版本系統(tǒng)進(jìn)行升級(jí)。
需要說(shuō)明的是,在本發(fā)明實(shí)施例中,獲取完整升級(jí)數(shù)據(jù)包的方式可以是與差分升級(jí)數(shù)據(jù)包封裝在一起下載下來(lái),也可以是在第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息不一致時(shí),重新從服務(wù)器上下載,本發(fā)明實(shí)施例對(duì)獲取完整數(shù)據(jù)包的方式不作限制。
需要說(shuō)明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng)實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于可選實(shí)施例,所涉及的動(dòng)作并不一定是本申請(qǐng)實(shí)施例所必須的。
參照?qǐng)D3,示出了本申請(qǐng)的一種Android系統(tǒng)升級(jí)的裝置實(shí)施例的結(jié)構(gòu)框圖一,具體可以包括如下模塊:
差分升級(jí)數(shù)據(jù)包下載模塊301,用于當(dāng)接收到針對(duì)所述Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載所述Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,所述差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;
第一目標(biāo)數(shù)據(jù)塊確定模塊302,用于依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊;
第一目標(biāo)數(shù)據(jù)塊計(jì)算模塊303,用于計(jì)算所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
第一目標(biāo)數(shù)據(jù)塊判斷模塊304,用于判斷所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與,所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致;
差分升級(jí)數(shù)據(jù)包升級(jí)模塊305,用于若一致,則采用所述差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
在本發(fā)明一種可選實(shí)施例中,所述的裝置還包括:
校驗(yàn)?zāi)K306,用于校驗(yàn)采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)是否升級(jí)成功;
第二完整升級(jí)數(shù)據(jù)包升級(jí)模塊307,用于若否,則獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包,以及,采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
在本發(fā)明一種可選實(shí)施例中,所述差分升級(jí)數(shù)據(jù)包還具有與所述待升級(jí)數(shù)據(jù)塊的地址相同的已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;所述校驗(yàn)?zāi)K包括:
第二目標(biāo)數(shù)據(jù)塊確定子模塊,用于確定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的第二目標(biāo)數(shù)據(jù)塊;
第二目標(biāo)數(shù)據(jù)塊計(jì)算子模塊,用于計(jì)算所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
第二目標(biāo)數(shù)據(jù)塊判斷子模塊,用于若所述已升級(jí)數(shù)據(jù)塊的校驗(yàn)信息,與所述第二目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息一致,則判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android升級(jí)成功,否則,判定采用所述差分升級(jí)數(shù)據(jù)包升級(jí)的Android系統(tǒng)升級(jí)失敗。
在本發(fā)明一種可選實(shí)施例中,所述第二目標(biāo)數(shù)據(jù)塊確定子模塊包括:
已升級(jí)數(shù)據(jù)塊確定單元,用于依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中已升級(jí)的數(shù)據(jù)塊;
第二目標(biāo)數(shù)據(jù)塊確定單元,用于將所述數(shù)據(jù)塊作為第二目標(biāo)數(shù)據(jù)塊。
參照?qǐng)D4,示出了本申請(qǐng)的一種Android系統(tǒng)升級(jí)的裝置實(shí)施例的結(jié)構(gòu)框圖二,具體可以包括如下模塊:
差分升級(jí)數(shù)據(jù)包下載模塊401,用于當(dāng)接收到針對(duì)所述Android系統(tǒng)的升級(jí)請(qǐng)求時(shí),下載所述Android系統(tǒng)的差分升級(jí)數(shù)據(jù)包,所述差分升級(jí)數(shù)據(jù)包具有對(duì)應(yīng)的待升級(jí)數(shù)據(jù)塊的地址及相應(yīng)的待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息;
第一目標(biāo)數(shù)據(jù)塊確定模塊402,用于依據(jù)所述待升級(jí)數(shù)據(jù)塊的地址確定所述Android系統(tǒng)中待升級(jí)的第一目標(biāo)數(shù)據(jù)塊;
第一目標(biāo)數(shù)據(jù)塊計(jì)算模塊403,用于計(jì)算所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息;
第一目標(biāo)數(shù)據(jù)塊判斷模塊404,用于判斷所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與,所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息是否一致;
差分升級(jí)數(shù)據(jù)包升級(jí)模塊405,用于若一致,則采用所述差分升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
在本發(fā)明一種可選實(shí)施例中,所述的裝置還包括:
完整升級(jí)數(shù)據(jù)包獲取模塊406,用于當(dāng)所述第一目標(biāo)數(shù)據(jù)塊的校驗(yàn)信息,與所述待升級(jí)數(shù)據(jù)塊的校驗(yàn)信息不一致時(shí),針對(duì)所述升級(jí)請(qǐng)求,獲取所述Android系統(tǒng)的完整升級(jí)數(shù)據(jù)包;
第一完整升級(jí)數(shù)據(jù)包升級(jí)模塊407,用于采用所述完整升級(jí)數(shù)據(jù)包升級(jí)所述Android系統(tǒng)。
對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請(qǐng)實(shí)施例是參照根據(jù)本申請(qǐng)實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請(qǐng)的實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)實(shí)施例范圍的所有變更和修改。
最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者終端設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對(duì)本申請(qǐng)所提供的Android系統(tǒng)升級(jí)的方法和裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。