[發(fā)明專利]一種基于特征值查表法的增量升級方法有效
| 申請?zhí)枺?/td> | 201711036946.3 | 申請日: | 2017-10-30 |
| 公開(公告)號: | CN107783778B | 公開(公告)日: | 2020-04-10 |
| 發(fā)明(設(shè)計)人: | 陳智松;馮萬健;曾炳陽;駱昭陽 | 申請(專利權(quán))人: | 廈門億聯(lián)網(wǎng)絡(luò)技術(shù)股份有限公司 |
| 主分類號: | G06F8/658 | 分類號: | G06F8/658 |
| 代理公司: | 廈門市新華專利商標(biāo)代理有限公司 35203 | 代理人: | 李寧 |
| 地址: | 361009 福建省廈門市*** | 國省代碼: | 福建;35 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 特征值 查表法 增量 升級 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及設(shè)備固件升級技術(shù)領(lǐng)域,具體涉及一種基于特征值查表法的增量升級方法。
背景技術(shù)
設(shè)備升級固件的方式主要有兩種,分為全量升級與增量升級。現(xiàn)在很多場景下依舊采用著全量升級的方案,升級速度慢。有時候固件只修改了一點點,卻要重新全部下載升級一遍。當(dāng)固件體積較為龐大的時候,會產(chǎn)生比較差的用戶體驗。
不同版本的固件變化較小時,增量升級相對于全量升級而言速度要快上許多,這對于提高用戶的使用體驗有極大的幫助。特別是在升級方式本身擦寫速度較慢時,比如無線升級,或者固件較大的情況下,體驗上的提升非常顯著。
增量升級的實現(xiàn)方式又有很多種,不同的方法效率跟可靠性都會有所差異。增量升級具體是指在進(jìn)行更新操作時,只更新需要改變的地方,不需要更新或者已經(jīng)更新過的地方則不會重復(fù)更新,增量升級與全量升級相對。這種更新的概念應(yīng)用范圍比較廣泛,凡是需要進(jìn)行數(shù)據(jù)更新的地方都會用到,如軟件更新、數(shù)據(jù)庫更新、殺毒軟件的病毒庫更新、CMS更新和路由表更新等。
現(xiàn)在的安卓Apk越來越大,很多軟件提供商都開始使用增量升級的方,比如谷歌官方,小米等等。具體實現(xiàn)是客戶端與服務(wù)端對比,并生成版本之間的差異包,用戶不用下載整個apk文件,只用下載差異包就可以了,比如用戶微博2.0升級到微博3.0,本來微博3.0版本應(yīng)該是10M,服務(wù)器通過生成差異包4M,用戶直接下載4M文件并在本地進(jìn)行合并生成微博3.0版本。
上述增量升級是采用制作不同版本的差異包的方法來實現(xiàn),因此該方式具有的缺陷是:
(1)對版本存在依賴性,差異包的生成需要依據(jù)當(dāng)前版本號與想要升級的版本號來定。當(dāng)版本號越來越多,需要生成的差異包也就越多,增加了管理的難度,風(fēng)險系數(shù)上升。
(2)并非直接對需要修改的數(shù)據(jù)進(jìn)行操作,而是先經(jīng)過一層后臺的數(shù)據(jù)處理,對數(shù)據(jù)進(jìn)行拼接,再將處理完的數(shù)據(jù)寫入內(nèi)存。相對于直接擦寫而言,效率較低,存在時間浪費。
為此,本發(fā)明人經(jīng)過深入研究,特別提出一種基于特征值查表法的增量升級方法,在可靠性與升級效率上都有較好的表現(xiàn),本案由此產(chǎn)生。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于特征值查表法的增量升級方法,。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:
一種基于特征值查表法的增量升級方法,包括:
一、固件的生成:
a、編譯生成常規(guī)固件,并在固件內(nèi)預(yù)留一塊用于寫入特定信息的空白空間;
b、擬定一個采樣單位大小,依據(jù)此大小將固件除預(yù)留空間以外區(qū)域劃分成多個區(qū)間,且每個區(qū)間大小與采樣單位大小一致;采用CRC32算法計算出每個區(qū)間的值作為特征值,將所有特征值整合成一張?zhí)卣髦当恚洖镃RC_Table[],每個特征值的位置與劃分的內(nèi)存區(qū)間是一一對應(yīng)的;
c、對生成的特征值表CRC_Table[]進(jìn)行一次CRC32運算,將結(jié)果記為CRC_Info1,用于升級時進(jìn)行數(shù)據(jù)校驗;
d、對固件除預(yù)留空間以外的所有數(shù)據(jù)進(jìn)行一次CRC32運算,將結(jié)果記為CRC_Info2,用于升級時進(jìn)行數(shù)據(jù)校驗;
e、將CRC_Table[]、CRC_Info1和CRC_Info2按順序插入到固件之前預(yù)留的空白空間中,生成一個新的固件;
二、固件的寫入:
f、打開升級工具,連接設(shè)備,在升級工具中選擇想要升級的版本;
g、升級工具讀出固件中寫入的CRC_Table[]、CRC_Info1和CRC_Info2數(shù)據(jù);
h、升級工具對固件中的CRC_Table[]進(jìn)行一次CRC32計算,判斷結(jié)果是否與固件中的CRC_Info1一致,如果不一樣則認(rèn)為是固件讀取異常,終止升級過程并彈出警告;
i、升級工具對固件中預(yù)留的空白空間以外的數(shù)據(jù)進(jìn)行一次CRC32計算,判斷結(jié)果是否與固件中的CRC_Info2一致,如果不一致則認(rèn)為是固件讀取異常,終止升級過程并彈出警告;
j、升級工具讀出設(shè)備中寫入的CRC_Table[]、CRC_Info1和CRC_Info2數(shù)據(jù);
k、升級工具對設(shè)備中的CRC_Table[]進(jìn)行一次CRC32計算,判斷結(jié)果是否與設(shè)備1中的CRC_Info1一致,如果不一樣則認(rèn)為是設(shè)備讀取異常,終止升級過程并彈出警告。
l、升級工具對比固件中的CRC_Table[]和設(shè)備中的CRC_Table[],對其存在差異的地方對應(yīng)的內(nèi)存區(qū)間進(jìn)行擦寫,同時自動判斷是要采用整個block擦寫的方式或是采用每個采樣區(qū)間的大小進(jìn)行擦寫的方式處理;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廈門億聯(lián)網(wǎng)絡(luò)技術(shù)股份有限公司,未經(jīng)廈門億聯(lián)網(wǎng)絡(luò)技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711036946.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 可變長碼解碼方法
- 一種CDMA接收機(jī)功率校準(zhǔn)與實時校正裝置及其實現(xiàn)方法
- DSP上用查表法進(jìn)行折反射全景展開的Cache包圍盒加速方法
- 用查表法修正串聯(lián)諧振開關(guān)變換器諧振漂移的裝置及方法
- 用查表法修正串聯(lián)諧振開關(guān)變換器諧振漂移的裝置
- 一種基于查表法的反向色彩空間轉(zhuǎn)換方法
- 一種比相法瞬時測頻編碼方法
- 一種基于查表法的半導(dǎo)體器件的建模方法和系統(tǒng)
- 基于模糊區(qū)間動態(tài)查表法的電網(wǎng)電壓跌落檢測方法及系統(tǒng)
- 使用SIMD指令的向量函數(shù)快速查表法、系統(tǒng)及介質(zhì)





