亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于android系統(tǒng)的OTA升級方法及系統(tǒng)、android終端與流程

文檔序號:11154532閱讀:374來源:國知局
一種基于android系統(tǒng)的OTA升級方法及系統(tǒng)、android終端與制造工藝

本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種基于android系統(tǒng)的OTA升級方法及系統(tǒng)、android終端。



背景技術(shù):

OTA(Over-the-Air Technology,空中下載技術(shù))是通過移動通信(GSM或CDMA)的空中接口對SIM卡數(shù)據(jù)及應(yīng)用進(jìn)行遠(yuǎn)程管理的技術(shù)。

Android系統(tǒng)提供的標(biāo)準(zhǔn)軟件升級方法通常是OTA升級,其將升級內(nèi)容以zip壓縮包的形式通過腳本實現(xiàn)升級,目前OTA升級方式大致有以下幾種:通過打patch方法對特定文件進(jìn)行替換的增量升級;將全盤數(shù)據(jù)解壓出覆蓋的全量升級;基于底層block直接寫入的block-base方法。

目前較常用的一種OTA升級方法為:通過minizip工具將zip壓縮包中的文件依次解壓到磁盤分區(qū)中,并對每個文件賦予相應(yīng)的權(quán)限,但通過minizip工具將升級內(nèi)容解壓出來之后,賦予的時間戳是一個固定的數(shù)值,例如1217592000,換算成年月日的時間就是2008年8月1日,即OTA升級之后所有文件的時間戳均變?yōu)?008年8月1日,而android系統(tǒng)在升級之后判斷應(yīng)用程序是否需要更新的方法是基于時間戳和軟件版本號來確定,只有其中一個條件滿足即可進(jìn)行更新,若按照規(guī)范每次有修改都遞增版本號,按照此方法賦予固定的時間戳不會存在問題,升級后的數(shù)據(jù)會得到及時更新,但如忘記登記版本號或者同一個版本的軟件使用了不同的簽名,而升級的時間戳一樣,這種情況下軟件不能得到真正的更新,導(dǎo)致系統(tǒng)可能無法啟動,進(jìn)而給用戶帶來不便,降低用戶體驗。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供了一種基于android系統(tǒng)的OTA升級方法及系統(tǒng)、、android終端,旨在解決現(xiàn)有技術(shù)中更新效率低給用戶帶來不便的問題。

本發(fā)明實施例是這樣實現(xiàn)的,一種基于android系統(tǒng)的OTA升級方法,包括:

獲取到升級包,所述升級包攜帶時間戳;

對所述升級包進(jìn)行簽名校驗;

當(dāng)校驗合格時,對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳,完成升級。

優(yōu)選地,獲取到升級包具體包括:

獲取所述升級包;

將所獲取的升級包以記錄形式存儲在恢復(fù)系統(tǒng)中。

優(yōu)選地,所述獲取到升級包之后、對所述升級包進(jìn)行簽名校驗之前還包括:

讀取所述升級包的路徑;

掛載所述升級包的路徑。

優(yōu)選地,對所述升級包進(jìn)行簽名校驗具體為:

判斷所述升級包的簽名是否與預(yù)設(shè)簽名一致;

當(dāng)簽名一致時,校驗合格;

當(dāng)簽名不一致時,校驗不合格,停止進(jìn)程。

優(yōu)選地,當(dāng)校驗合格時,對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳,完成升級具體包括:

從所述升級包中獲取二進(jìn)制更新程序;

獲取所述升級包的時間戳;

基于所述二進(jìn)制更新程序及所述升級包的路徑創(chuàng)建對應(yīng)的更新進(jìn)程;

所述更新進(jìn)程對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳;

升級完成,向所述恢復(fù)系統(tǒng)反饋完成信息。

優(yōu)選地,所述更新進(jìn)程對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳具體包括:

所述更新進(jìn)程對所述升級包進(jìn)行解壓,獲得解壓后的一條以上升級腳本;

在執(zhí)行每一條所述升級腳本的預(yù)設(shè)語句時設(shè)置所述時間戳;

確認(rèn)當(dāng)前任一升級腳本已被賦予所述時間戳,退出進(jìn)程。

本發(fā)明還提供一種基于android系統(tǒng)的OTA升級系統(tǒng),包括:

獲取模塊,用于獲取到升級包,所述升級包攜帶時間戳;

校驗?zāi)K,用于對所述升級包進(jìn)行簽名校驗;

升級模塊,用于當(dāng)校驗合格時,對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳,完成升級。

優(yōu)選地,所述OTA升級系統(tǒng)還包括:

路徑讀取模塊,用于讀取所述升級包的路徑;

掛載模塊,用于掛載所述升級包的路徑。

優(yōu)選地,所述升級模塊具體包括:

程序獲取單元,用于從所述升級包中獲取二進(jìn)制更新程序;

時間戳獲取單元,用于獲取所述升級包的時間戳;

創(chuàng)建單元,用于基于所述二進(jìn)制更新程序及所述升級包的路徑創(chuàng)建對應(yīng)的更新進(jìn)程;

賦予單元,用于對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳;

反饋單元,用于在升級完成時,向所述恢復(fù)系統(tǒng)反饋完成信息。

本發(fā)明還提供一種android終端,包括OTA升級系統(tǒng),所述OTA升級系統(tǒng)包括:

獲取模塊,用于獲取到升級包,所述升級包攜帶時間戳;

校驗?zāi)K,用于對所述升級包進(jìn)行簽名校驗;

升級模塊,用于當(dāng)校驗合格時,對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳,完成升級。

在本發(fā)明實施例中,升級過程中,對升級包進(jìn)行解析,對解析后的每一升級腳本賦予時間戳,保證每次升級之后的文件的時間戳與編譯時的時間戳一致,提供升級效率,給用于帶來便利,提供用戶體驗。

附圖說明

圖1是本發(fā)明第一實施例提供的一種基于android系統(tǒng)的OTA升級方法的流程圖;

圖2是本發(fā)明第一實施例提供的一種基于android系統(tǒng)的OTA升級方法的步驟S3的具體流程圖;

圖3是本發(fā)明第二實施例提供的一種基于android系統(tǒng)的OTA升級系統(tǒng)的結(jié)構(gòu)圖;

圖4是本發(fā)明的第二實施例提供的一種基于android系統(tǒng)的OTA升級系統(tǒng)的升級模塊3的具體結(jié)構(gòu)圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明實施例中,一種基于android系統(tǒng)的OTA升級方法,包括:獲取到升級包,所述升級包攜帶時間戳;對所述升級包進(jìn)行簽名校驗;當(dāng)校驗合格時,對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳,完成升級。

為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進(jìn)行說明。

實施例一:

圖1示出了本發(fā)明第一實施例提供的一種基于android系統(tǒng)的OTA升級方法的流程圖,包括:

步驟S1、獲取到升級包;

其中,該步驟S1包括:獲取升級包,并將該升級包以記錄形式存儲在恢復(fù)系統(tǒng)(recovery)中,該升級包攜帶時間戳。

具體地,android系統(tǒng)中的升級應(yīng)用獲取到升級包后進(jìn)入recovery,以文件記錄的方式存儲在/cache/recovery/command文件里。

步驟S2、對升級包進(jìn)行簽名校驗;

具體地,需要對獲取的升級包進(jìn)行簽名校驗,判斷升級包的簽名與預(yù)設(shè)簽名是否一致,當(dāng)不一致時確認(rèn)為校驗失敗,退出升級,結(jié)束進(jìn)程,當(dāng)一致時確認(rèn)校驗合格,轉(zhuǎn)到步驟S3;

步驟S3,對升級包進(jìn)行解析,對解析后的每一升級腳本賦予時間戳,完成升級。

在本發(fā)明的一個優(yōu)選方案中,所述步驟S1之后,步驟S2之前還可包括:

步驟S4、讀取升級包的路徑;

步驟S5、掛載升級包的路徑;

具體的,對存儲升級包的存放區(qū)或者外設(shè)進(jìn)行掛載操作。

優(yōu)選地,如圖2所示,為本發(fā)明第一實施例提供的一種基于android系統(tǒng)的OTA升級方法的步驟S3的具體流程圖,上述步驟S3具體包括:

步驟S31、從升級包中獲取二進(jìn)制更新程序;

具體地,從升級包中抽取二進(jìn)制更新程序(update-binary);

步驟S32、獲取升級包的時間戳;

步驟S33、基于二進(jìn)制更新程序及升級包的路徑創(chuàng)建對應(yīng)的更新進(jìn)程;

具體地,通過fork方法創(chuàng)建更新進(jìn)程,通過該更新進(jìn)程將該二進(jìn)制更新程序運(yùn)行起來,并將升級包的路徑作為fork的一個參數(shù)傳遞到所述更新進(jìn)程中,使得恢復(fù)系統(tǒng)監(jiān)聽該更新程序,并于該更新程序進(jìn)行交互,即在恢復(fù)系統(tǒng)下讓該二進(jìn)制更新程序運(yùn)行起來。

步驟S34、更新進(jìn)程對升級包進(jìn)行解析,對解析后的每一升級腳本賦予時間戳;

具體地,對升級包進(jìn)行解壓,獲得解壓后的升級腳本,該升級腳本至少包括一條以上,解壓之后執(zhí)行每一條升級腳本,在執(zhí)行每一條升級腳本時,運(yùn)行到預(yù)設(shè)語句(package_extract_dir)時,設(shè)置上述時間戳,執(zhí)行每一條腳本時都重復(fù)上述步驟,直到每一條升級腳本都被賦予時間戳后,退出進(jìn)程。進(jìn)一步地,更新進(jìn)程會將升級包的升級腳本都解壓出來,一條一條地解析,并執(zhí)行對應(yīng)的動作,在執(zhí)行到腳本語句“package_extract_dir”時,將獲取的時間戳傳遞給minizip,minizip在運(yùn)行該腳本語句時,會將時間戳賦予解壓出來的文件。待所有的升級腳本都執(zhí)行完后,更新進(jìn)程完成升級任務(wù),將資源釋放退出,轉(zhuǎn)到步驟S35。

步驟S35、升級完成,向恢復(fù)系統(tǒng)反饋完成信息;

當(dāng)升級完成后,向恢復(fù)系統(tǒng)反饋完成消息(即升級完成消息),恢復(fù)系統(tǒng)會重啟,進(jìn)入android系統(tǒng),此時每一個文件都被賦予時間戳,實現(xiàn)文件升級。

本實施例中,升級過程中,對升級包進(jìn)行解析,對解析后的每一升級腳本賦予時間戳,保證每次升級之后的文件的時間戳與編譯時的時間戳一致,提供升級效率,給用于帶來便利,提供用戶體驗。

實施例二:

圖3示出了本發(fā)明第二實施例提供的一種基于android系統(tǒng)的OTA升級系統(tǒng)的結(jié)構(gòu)圖,包括:獲取模塊1、與所述獲取模塊1連接的校驗?zāi)K2、與校驗?zāi)K2連接的升級模塊3,其中:

獲取模塊1,用于獲取到升級包,所述升級包攜帶時間戳;

其中,該獲取模塊1包括獲取單元及與其連接的存儲單元:

獲取單元,用于獲取升級包;

存儲單元,用于將所獲取的升級包以記錄形式存儲在恢復(fù)系統(tǒng)中,該升級包攜帶對應(yīng)的時間戳。

具體地,獲取到升級包后進(jìn)入recovery,以文件記錄的方式存儲在/cache/recovery/command文件里。

校驗?zāi)K2,用于對所述升級包進(jìn)行簽名校驗;

具體地,該校驗?zāi)K2需要對獲取的升級包進(jìn)行簽名校驗,判斷升級包的簽名與預(yù)設(shè)簽名是否一致,當(dāng)不一致時確認(rèn)為校驗失敗,退出升級,結(jié)束進(jìn)程,當(dāng)一致時確認(rèn)校驗合格,向升級模塊3反饋。

升級模塊3,用于當(dāng)校驗合格時,對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳,完成升級。

具體地,對升級包進(jìn)行解析,對解析后的每一升級腳本賦予時間戳,完成升級。

在本發(fā)明的一個優(yōu)選方案中,該OTA升級系統(tǒng)還可包括:與獲取模塊1連接的路徑讀取模塊4、與路徑讀取模塊4連接的掛載模塊5,其中:

路徑讀取模塊4,用于讀取升級包的路徑;

掛載模塊5,用于掛載升級包的路徑。

具體的,對存儲升級包的存放區(qū)或者外設(shè)進(jìn)行掛載操作。

如圖4所示,為本發(fā)明的第二實施例提供的一種基于android系統(tǒng)的文件的OTA升級系統(tǒng)的升級模塊3的具體結(jié)構(gòu)圖,該升級模塊3具體包括:程序獲取單元31、與程序獲取單元31連接的時間戳獲取單元32、與時間戳獲取單元32連接的創(chuàng)建單元33、與創(chuàng)建單元連接的賦予單元34、與賦予單元連接的反饋單元35;

程序獲取單元31,用于從所述升級包中獲取二進(jìn)制更新程序;

具體地,從升級包中抽取二進(jìn)制更新程序(update-binary);

時間戳獲取單元32,用于獲取所述升級包的時間戳;

創(chuàng)建單元33,用于基于所述二進(jìn)制更新程序及所述升級包的路徑創(chuàng)建對應(yīng)的更新進(jìn)程;

具體地,通過fork方法創(chuàng)建更新進(jìn)程,通過該更新進(jìn)程將該二進(jìn)制更新程序運(yùn)行起來,并將升級包的路徑作為fork的一個參數(shù)傳遞到所述更新進(jìn)程中,使得恢復(fù)系統(tǒng)監(jiān)聽該更新程序,并于該更新程序進(jìn)行交互,即在恢復(fù)系統(tǒng)下讓該二進(jìn)制更新程序運(yùn)行起來。

賦予單元34,用于對所述升級包進(jìn)行解析,對解析后的每一升級腳本賦予所述時間戳;

具體地,賦予單元34即為更新進(jìn)程,對升級包進(jìn)行解壓,獲得解壓后的升級腳本,該升級腳本至少包括一條以上;解壓之后執(zhí)行每一條升級腳本,在執(zhí)行每一條升級腳本時,運(yùn)行到預(yù)設(shè)語句(package_extract_dir)時,設(shè)置上述時間戳,執(zhí)行每一條腳本時都重復(fù)上述步驟,直到每一條升級腳本都被賦予時間戳后,退出進(jìn)程。進(jìn)一步地,更新進(jìn)程會將升級包的升級腳本都解壓出來,一條一條地解析,并執(zhí)行對應(yīng)的動作,在執(zhí)行到腳本語句“package_extract_dir”時,將獲取的時間戳傳遞給minizip,minizip在運(yùn)行該腳本語句時,會將時間戳賦予解壓出來的文件。待所有的升級腳本都執(zhí)行完后,更新進(jìn)程完成升級任務(wù),將資源釋放退出,并反饋給反饋單元35。

反饋單元35,用于在升級完成時,向所述恢復(fù)系統(tǒng)反饋完成信息。

當(dāng)升級完成后,向恢復(fù)系統(tǒng)反饋完成消息(即升級完成消息),恢復(fù)系統(tǒng)會重啟,進(jìn)入android系統(tǒng),此時每一個文件都被賦予時間戳,實現(xiàn)文件升級。

本實施例中,在升級過程中,對升級包進(jìn)行解析,對解析后的每一升級腳本賦予時間戳,保證每次升級之后的文件的時間戳與編譯時的時間戳一致,提供升級效率,給用于帶來便利,提供用戶體驗。

本發(fā)明還提供一種android終端,該android終端可為任何android移動終端,例如android手機(jī)、android電視等,此處對此不作限制,該android終端具有現(xiàn)有的android終端的基本功能及結(jié)構(gòu),該android終端還包括上述實施例所述的OTA升級系統(tǒng),該OTA升級系統(tǒng)的具體結(jié)構(gòu)及工作原理與上述實施例的描述基本一致,具體可參照上述實施例,此處不再贅述。

本發(fā)明中,升級過程中,對升級包進(jìn)行解析,對解析后的每一升級腳本賦予時間戳,保證每次升級之后的文件的時間戳與編譯時的時間戳一致,提供升級效率,給用于帶來便利,提供用戶體驗。

本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。

專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1