本發(fā)明涉及Android技術(shù)領(lǐng)域,尤其涉及一種基于定制Android系統(tǒng)的升級方法。
背景技術(shù):
Android系統(tǒng)經(jīng)過Google及開放手持設(shè)備聯(lián)盟多年的開發(fā),早已形成一整套成熟穩(wěn)定的升級流程。現(xiàn)有Android系統(tǒng)標(biāo)準(zhǔn)升級策略有兩種升級方式:完整包升級和差分包升級。
完整包升級基本可以對于同一系列的所有產(chǎn)品進(jìn)行升級,但每一個(gè)完整包都很大,大小為300MB或500MB都很正常。如果每一次升級都使用完整包,不僅會因?yàn)樯墪r(shí)間長而造成糟糕的用戶體驗(yàn),也會對OTA升級服務(wù)器造成巨大的壓力,從而增加OTA服務(wù)器的投入成本。
差分包升級只是對系統(tǒng)中變化的部分進(jìn)行增量升級,在同種條件下對比完整升級包,體量上是顯得非常小了,但其缺點(diǎn)是只能一對一進(jìn)行升級,一個(gè)升級包只能對與其對應(yīng)Android系統(tǒng)的某一個(gè)版本進(jìn)行升級,這導(dǎo)致了多產(chǎn)品線Android設(shè)備的升級管理流程變得相當(dāng)復(fù)雜,必須為每一款不同軟硬件Android系統(tǒng)維持一條系統(tǒng)升級管理線,而這會隨著Android系統(tǒng)版本的更新指數(shù)式增加升級管理難度。
技術(shù)實(shí)現(xiàn)要素:
基于此,本發(fā)明提供了一種基于定制Android系統(tǒng)的升級方法,優(yōu)化了基于同一Android系統(tǒng)源碼多分支固件的升級管理策略,很大程度上減輕了升級管理難度。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:在基于同一系統(tǒng)源碼的定制Android系統(tǒng)上(以下所指定制系統(tǒng)都是指基于同一系統(tǒng)源碼的定制Android系統(tǒng))增設(shè)兩個(gè)獨(dú)立分區(qū):boardInfo分區(qū)和custom分區(qū),將boardInfo分區(qū)和custom分區(qū)以外的分區(qū)(boot、system等)統(tǒng)稱為Android系統(tǒng)原有分區(qū);將Android系統(tǒng)原有分區(qū)中基于客戶定制的所有硬件配置方面差異化內(nèi)容轉(zhuǎn)移到boardInfo分區(qū),所有軟件方面差異化內(nèi)容轉(zhuǎn)移到custom分區(qū),使得Android系統(tǒng)原有分區(qū)在所有不同軟硬件配置的或不同客戶的定制系統(tǒng)系統(tǒng)中保持內(nèi)容一致,boardInfo分區(qū)存放硬件配置信息,custom分區(qū)存放系統(tǒng)配置信息及客戶定制信息;整個(gè)定制系統(tǒng)升級分為:custom分區(qū)升級和Android系統(tǒng)原有分區(qū)升級,兩者互相獨(dú)立,boardInfo分區(qū)內(nèi)容始終不變,無需升級;custom分區(qū),不同配置的定制系統(tǒng)使用不同的升級包,在客戶定制需求改變或者客戶預(yù)裝軟件有升級需求時(shí)可升級,升級包不需基于Android系統(tǒng)源碼,可由客戶自行制作與管理,使用替換系統(tǒng)文件的方式升級;Android系統(tǒng)原有分區(qū),內(nèi)容為Android系統(tǒng)核心內(nèi)容,所有不同軟硬件配置的或不同客戶的定制系統(tǒng),共用同一升級包,使用Android標(biāo)準(zhǔn)系統(tǒng)升級方式升級。
本發(fā)明的有益效果是:優(yōu)化了基于同一Android系統(tǒng)源碼多分支固件的升級管理策略,通過在基于同一系統(tǒng)源碼的Android系統(tǒng)上增加獨(dú)立分區(qū)存放差異化內(nèi)容,使核心內(nèi)容(Android系統(tǒng)原有分區(qū))在不同軟硬件配置的或者不同客戶的定制系統(tǒng)中保持內(nèi)容一致,在此基礎(chǔ)上實(shí)現(xiàn)差異化內(nèi)容和核心內(nèi)容互相獨(dú)立升級,并且核心內(nèi)容升級在不同配置的定制系統(tǒng)中共用一個(gè)升級包,這很大程度上減輕了升級管理難度,而且差異化內(nèi)容升級包還可由客戶自行制作與管理,這也極大地方便了客戶。
附圖說明
下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)一步說明。
圖1為本發(fā)明中定制Android系統(tǒng)的分區(qū)劃分示意圖。
圖2為本發(fā)明中定制Android系統(tǒng)的啟動流程。
圖3為本發(fā)明中定制Android系統(tǒng)的OTA升級流程。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚完整,下面將結(jié)合本發(fā)明實(shí)施例及附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)一步詳細(xì)地說明。很顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例?;诒景l(fā)明的實(shí)施例,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,或者在沒有做出創(chuàng)造性勞動前提下所獲得的其他實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
本發(fā)明實(shí)施例提供一種基于定制Android系統(tǒng)的升級方法,包括:
在基于同一系統(tǒng)源碼的定制Android系統(tǒng)中增設(shè)兩個(gè)獨(dú)立的分區(qū):boardInfo分區(qū)和custom分區(qū),所以定制Android系統(tǒng)現(xiàn)可分為三大分區(qū)(參見圖1):Android系統(tǒng)原有分區(qū)(boardInfo分區(qū)和custom分區(qū)以外的分區(qū)(boot、system等))、boardInfo分區(qū)、custom分區(qū)。boardInfo分區(qū)無需升級;custom分區(qū),不同配置的定制系統(tǒng)使用不同升級包,使用替換系統(tǒng)文件的方式升級;Android系統(tǒng)原有分區(qū),所有不同配置的定制定制系統(tǒng)共用同一個(gè)升級包,使用Android標(biāo)準(zhǔn)系統(tǒng)升級方式升級(參見圖2)。
上述升級方法中,Android系統(tǒng)原有分區(qū),需將基于客戶定制的所有硬件配置方面差異化內(nèi)容轉(zhuǎn)移到boardInfo分區(qū),所有軟件方面差異化內(nèi)容轉(zhuǎn)移到custom分區(qū),使其內(nèi)容在不同軟硬件配置的或不同客戶定制的系統(tǒng)中保持一致,因此在不同配置的定制系統(tǒng)中可共用同一升級包進(jìn)行升級,升級包制作需基于Android源碼進(jìn)行,此升級包為主升級包。
上述升級方法中,boardInfo分區(qū),用于存放不同機(jī)型的硬件配置信息,其內(nèi)容在rom第一次燒寫完成后不再改變,無需升級。
上述升級方法中,custom分區(qū),其內(nèi)容為系統(tǒng)配置信息和客戶定制信息,可升級,不同配置的定制系統(tǒng)在該部分使用不同的升級包,在客戶需求改變或者客戶預(yù)裝軟件有升級需求時(shí)升級,升級包不需基于Android系統(tǒng)源碼,可由客戶自行制作與管理,使用替換系統(tǒng)文件的方式升級,此升級包為副升級包。
上述升級方法中,custom分區(qū)升級和Android系統(tǒng)原有分區(qū)升級,都是各自獨(dú)立的,兩者之間無依賴關(guān)系,也不依賴于boardInfo分區(qū)。
基于上述升級方法,更詳細(xì)的流程說明如下(如圖2):
(1)開始OTA升級;
(2)檢查OTA服務(wù)器上是否存在主升級包,若有則繼續(xù)下一步,若無則跳到第6步;
(3)下載主升級包;
(4)使用Android系統(tǒng)的標(biāo)準(zhǔn)升級方式升級主升級包;
(5)升級完成重啟機(jī)器;
(6)檢查OTA服務(wù)器上是否存在副升級包,若有則繼續(xù)下一步,若無則跳到第10步;
(7)下載副升級包;
(8)使用替換系統(tǒng)文件的方式升級副升級包;
(9)升級完成重啟機(jī)器;
(10)當(dāng)前版本為系統(tǒng)最新版本,退出OTA升級。
本發(fā)明實(shí)施例中,Android增加了兩個(gè)分區(qū),系統(tǒng)啟動較普通Android系統(tǒng)稍有不同,現(xiàn)說明啟動流程(如圖3),步驟如下:
(1)系統(tǒng)啟動;
(2)Bootloader啟動;
(3)讀取boardInfo分區(qū)信息并加載相應(yīng)硬件驅(qū)動;
(4)把boardinfo信息解析并存放到cmdline;
(5)Kernel啟動;
(6)解析cmdline數(shù)據(jù)得到硬件配置信息并加載相應(yīng)硬件驅(qū)動;
(7)Android系統(tǒng)框架啟動;
(8)讀取custom分區(qū)信息加載系統(tǒng)配置信息和客戶定制信息;
(9)加載相應(yīng)的系統(tǒng)配置、配置客戶定制需求和啟動客戶所需應(yīng)用。