本發(fā)明涉及移動(dòng)通信技術(shù)領(lǐng)域,尤其涉及一種OTA升級(jí)包的配置方法及裝置。
背景技術(shù):
空中下載(英文:Over the Air,簡(jiǎn)稱:OTA)技術(shù)是一種通過無線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)下載的技術(shù),其通常被應(yīng)用于手機(jī)、平板電腦等終端設(shè)備的系統(tǒng)軟件固定版本的升級(jí)過程中。目前的升級(jí)方法中主要采用的是單包升級(jí)策略,具體為,終端設(shè)備發(fā)起一次軟件版本檢測(cè),服務(wù)器向該終端設(shè)備返回一個(gè)下載路徑,以便終端設(shè)備根據(jù)該下載路徑獲得一個(gè)OTA升級(jí)包,進(jìn)而根據(jù)該OTA升級(jí)包進(jìn)行版本升級(jí)。并且,為了節(jié)省服務(wù)器的存儲(chǔ)資源和終端設(shè)備下載OTA升級(jí)包的時(shí)間,且降低開發(fā)成本,所述的OTA升級(jí)包通常為相鄰兩個(gè)版本之間的差分文件。這樣,當(dāng)采用單包升級(jí)策略進(jìn)行系統(tǒng)軟件升級(jí),且終端設(shè)備安裝的軟件的當(dāng)前版本為Vm,服務(wù)器上發(fā)布的該軟件的最新版本為Vn(其中,m、n均為正整數(shù),且n-m≥2)時(shí),會(huì)由于終端設(shè)備發(fā)起一次軟件版本檢測(cè),僅可以獲得一個(gè)基于當(dāng)前版本的差分文件,導(dǎo)致終端設(shè)備需要發(fā)起多次軟件版本檢測(cè)才能將軟件從當(dāng)前版本升級(jí)到最新版本。
為了能夠減少終端設(shè)備發(fā)起新版本檢測(cè)的次數(shù),現(xiàn)有技術(shù)提出了一種OTA多包連續(xù)升級(jí)的技術(shù),具體方案是,終端設(shè)備發(fā)起一次軟件版本檢測(cè),服務(wù)器可以根據(jù)軟件在終端設(shè)備的當(dāng)前版本以及在本地的最新版本,獲取由當(dāng)前版本升級(jí)到最新版本所需的所有差分文件,并標(biāo)注各個(gè)差分文件的升級(jí)順序和保存路徑,然后將各個(gè)差分文件同時(shí)返回給終端設(shè)備,以便終端設(shè)備根據(jù)各個(gè)差分文件的升級(jí)順序和保存路徑獲得多個(gè)差分文件,進(jìn)而根據(jù)多個(gè)差分文件將軟件從當(dāng)前版本升級(jí)到最新版本。
而在實(shí)際應(yīng)用過程中,出于升級(jí)風(fēng)險(xiǎn)控制的目的,某些OTA升級(jí)包可能具有特殊性。例如,某軟件發(fā)布的所有版本分別為V1、V2、V3、V4,且,服務(wù)器中配置的OTA升級(jí)包分別為差分文件V2-V1、完整包V3、差分文件V4-V3,但是,差分文件V4-V3是針對(duì)北京用戶的升級(jí)包,即僅有北京用戶能夠從V3升級(jí)到V4。在這種情況下,若服務(wù)器 需要配置更高的版本V5,且該版本V5是針對(duì)所有用戶的,那么,為了能夠讓所有用戶(包括北京用戶和非北京用戶)升級(jí)到最高版本,現(xiàn)有的做法是在服務(wù)器中配置兩種升級(jí)文件,如這兩種升級(jí)文件分別為差分文件V5-V4以及差分文件V5-V3。基于以上,假設(shè),某終端設(shè)備發(fā)起了軟件版本檢測(cè),且其安裝的該軟件的當(dāng)前版本為V1,此時(shí)在采用上述OTA多包連續(xù)升級(jí)的技術(shù)時(shí),服務(wù)器會(huì)獲得兩個(gè)升級(jí)文件鏈(升級(jí)文件鏈包括由當(dāng)前版本升級(jí)到最新版本所需的所有升級(jí)文件),分別為:升級(jí)文件鏈1:差分文件V2-V1、完整包V3、差分文件V4-V3以及差分文件V5-V4,升級(jí)文件鏈2:差分文件V2-V1、完整包V3以及差分文件V5-V3,這樣服務(wù)器便無法獲知向終端設(shè)備返回哪個(gè)升級(jí)文件鏈,從而導(dǎo)致無法成功升級(jí)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種OTA升級(jí)包的配置方法及裝置,解決了由于服務(wù)器獲得的由當(dāng)前版本升級(jí)到最新版本所需升級(jí)文件鏈不唯一,導(dǎo)致的終端設(shè)備無法將軟件從當(dāng)前版本成功升級(jí)最新版本的問題。
為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
本發(fā)明的第一方面,提供一種OTA升級(jí)包的配置方法,應(yīng)用于服務(wù)器,所述服務(wù)器配置有至少一個(gè)OTA升級(jí)包,所述方法包括:
檢測(cè)第一OTA升級(jí)包是否為特殊升級(jí)包;其中,所述第一OTA升級(jí)包包括軟件在所述服務(wù)器的當(dāng)前最新版本與第一版本之間的差分文件,或者所述第一OTA升級(jí)包包括所述軟件的所述當(dāng)前最新版本的完整包,所述第一版本比所述當(dāng)前最新版本的低一個(gè)版本;所述特殊升級(jí)包是指用于部分終端設(shè)備將所述軟件升級(jí)到所述當(dāng)前最新版本的OTA升級(jí)包;
當(dāng)所述第一OTA升級(jí)包為所述特殊升級(jí)包時(shí),判斷所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值;
當(dāng)所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)大于或等于所述預(yù)設(shè)閾值時(shí),將所述第一OTA升級(jí)包配置為普通升級(jí)包,以便在所述軟件需要升級(jí)到第二版本時(shí),在所述服務(wù)器上配置第二OTA升級(jí)包;其中,所述普通升級(jí)包是指用于所有終端設(shè)備將所述軟件升級(jí)到所述當(dāng)前最新版本的OTA升級(jí)包;所述第二OTA升級(jí)包包括所述第二版本與所述當(dāng)前最新版本之間的差分文件,或者所述第二OTA升級(jí)包包 括所述軟件的所述第二版本的完整包,所述第二版本為需要配置的最新版本。
結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,還包括:
當(dāng)所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)小于所述預(yù)設(shè)閾值時(shí),判斷是否需要將所述軟件升級(jí)到所述第二版本;
當(dāng)需要將所述軟件升級(jí)到所述第二版本時(shí),將所述第一OTA升級(jí)包配置為所述普通升級(jí)包,以便在所述服務(wù)器上配置所述第二OTA升級(jí)包。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,在所述將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,還包括:
判斷所述至少一個(gè)OTA升級(jí)包中是否包含自動(dòng)升級(jí)包;其中,所述自動(dòng)升級(jí)包是指在未接收到終端設(shè)備的版本檢測(cè)請(qǐng)求時(shí),需將所述軟件進(jìn)行升級(jí)的OTA升級(jí)包;
當(dāng)所述至少一個(gè)OTA升級(jí)包中包含所述自動(dòng)升級(jí)包時(shí),將所述自動(dòng)升級(jí)包和處于所述自動(dòng)升級(jí)包之前的所有OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述自動(dòng)升級(jí)包和處于所述自動(dòng)升級(jí)包之前的所有OTA升級(jí)包。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,在所述將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,還包括:
接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求;其中,所述版本檢測(cè)請(qǐng)求包括所述軟件在所述終端設(shè)備的當(dāng)前版本的版本號(hào);
當(dāng)由所述當(dāng)前版本升級(jí)到所述當(dāng)前最新版本所需的OTA升級(jí)包的個(gè)數(shù)大于預(yù)設(shè)的最大鏈長(zhǎng)時(shí),根據(jù)所述當(dāng)前版本的版本號(hào),從所述至少一個(gè)OTA升級(jí)包中獲取與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包;其中,所述與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中的所有OTA升級(jí)包連續(xù),且第一個(gè)OTA升級(jí)包包括所述當(dāng)前版本與第三版本之間的差分文件,或者所述第一個(gè)OTA升級(jí)包包括所述軟件的所述第三版本的完整包,所述第三版本比所述當(dāng)前版本高一個(gè)版本;
將所述與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中每個(gè)OTA升級(jí) 包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述每個(gè)OTA升級(jí)包。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,在所述將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,還包括:
接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求;其中,所述版本檢測(cè)請(qǐng)求包括所述軟件在所述終端設(shè)備的當(dāng)前版本的版本號(hào)和所述終端設(shè)備的產(chǎn)品型號(hào);
根據(jù)所述產(chǎn)品型號(hào)獲取第三OTA升級(jí)包;其中,所述第三OTA升級(jí)包包括所述當(dāng)前版本與第三版本之間的差分文件,或者所述第三OTA升級(jí)包包括所述軟件的所述第三版本的完整包,所述第三版本比所述當(dāng)前版本高一個(gè)版本;
根據(jù)所述第三OTA升級(jí)包的配置參數(shù),確定所述終端設(shè)備支持多包連續(xù)升級(jí);
獲取OTA升級(jí)包集合,并將所述OTA升級(jí)包集合中所有OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述OTA升級(jí)包集合;其中,所述OTA升級(jí)包集合中包括由所述當(dāng)前版本升級(jí)到所述當(dāng)前最新版本所需的OTA升級(jí)包。
結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述獲取OTA升級(jí)包集合,包括:
獲取由所述當(dāng)前版本到所述當(dāng)前最新版本的所有OTA升級(jí)包,得到OTA升級(jí)包的第一集合;
判斷所述第一集合包含的OTA升級(jí)包中是否存在包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包;
當(dāng)存在所述包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包時(shí),將處于所述包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包之后的所有OTA升級(jí)包和包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包組成所述OTA升級(jí)包集合。
本發(fā)明的第二方面,提供一種OTA升級(jí)包的配置裝置,應(yīng)用于服務(wù)器,所述服務(wù)器配置有至少一個(gè)OTA升級(jí)包,所述裝置包括:
檢測(cè)單元,用于檢測(cè)第一OTA升級(jí)包是否為特殊升級(jí)包;其中, 所述第一OTA升級(jí)包包括軟件在所述服務(wù)器的當(dāng)前最新版本與第一版本之間的差分文件,或者所述第一OTA升級(jí)包包括所述軟件的所述當(dāng)前最新版本的完整包,所述第一版本比所述當(dāng)前最新版本的低一個(gè)版本;所述特殊升級(jí)包是指用于部分終端設(shè)備將所述軟件升級(jí)到所述當(dāng)前最新版本的OTA升級(jí)包;
判斷單元,用于當(dāng)所述檢測(cè)單元檢測(cè)到所述第一OTA升級(jí)包為所述特殊升級(jí)包時(shí),判斷所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值;
配置單元,用于當(dāng)所述判斷單元判斷得到所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)大于或等于所述預(yù)設(shè)閾值時(shí),將所述第一OTA升級(jí)包配置為普通升級(jí)包,以便在所述軟件需要升級(jí)到第二版本時(shí),在所述服務(wù)器上配置第二OTA升級(jí)包;其中,所述普通升級(jí)包是指用于所有終端設(shè)備將所述軟件升級(jí)到所述當(dāng)前最新版本的OTA升級(jí)包;所述第二OTA升級(jí)包包括所述第二版本與所述當(dāng)前最新版本之間的差分文件,或者所述第二OTA升級(jí)包包括所述軟件的所述第二版本的完整包,所述第二版本為需要配置的最新版本。
結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,
所述判斷單元,還用于當(dāng)所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)小于所述預(yù)設(shè)閾值時(shí),判斷是否需要將所述軟件升級(jí)到所述第二版本;
所述配置單元,還用于當(dāng)所述判斷單元判斷得到需要將所述軟件升級(jí)到所述第二版本時(shí),將所述第一OTA升級(jí)包配置為所述普通升級(jí)包,以便在所述服務(wù)器上配置所述第二OTA升級(jí)包。
結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,
所述判斷單元,還用于在所述配置單元將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,判斷所述至少一個(gè)OTA升級(jí)包中是否包含自動(dòng)升級(jí)包;其中,所述自動(dòng)升級(jí)包是指在未接收到終端設(shè)備的版本檢測(cè)請(qǐng)求時(shí),需將所述軟件進(jìn)行升級(jí)的OTA升級(jí)包;
所述裝置還包括:
發(fā)送單元,用于當(dāng)所述判斷單元判斷得到所述至少一個(gè)OTA升級(jí) 包中包含所述自動(dòng)升級(jí)包時(shí),將所述自動(dòng)升級(jí)包和處于所述自動(dòng)升級(jí)包之前的所有OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述自動(dòng)升級(jí)包和處于所述自動(dòng)升級(jí)包之前的所有OTA升級(jí)包。
結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,還包括:
接收單元,用于在所述配置單元將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求;其中,所述版本檢測(cè)請(qǐng)求包括所述軟件在所述終端設(shè)備的當(dāng)前版本的版本號(hào);
獲取單元,用于當(dāng)由所述當(dāng)前版本升級(jí)到所述當(dāng)前最新版本所需的OTA升級(jí)包的個(gè)數(shù)大于預(yù)設(shè)的最大鏈長(zhǎng)時(shí),根據(jù)所述當(dāng)前版本的版本號(hào),從所述至少一個(gè)OTA升級(jí)包中獲取與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包;其中,所述與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中的所有OTA升級(jí)包連續(xù),且第一個(gè)OTA升級(jí)包包括所述當(dāng)前版本與第三版本之間的差分文件,或者所述第一個(gè)OTA升級(jí)包包括所述軟件的所述第三版本的完整包,所述第三版本比所述當(dāng)前版本高一個(gè)版本;
發(fā)送單元,用于將所述獲取單元獲取到的所述與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中每個(gè)OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述每個(gè)OTA升級(jí)包。
結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,還包括:
接收單元,用于在所述配置單元將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求;其中,所述版本檢測(cè)請(qǐng)求包括所述軟件在所述終端設(shè)備的當(dāng)前版本的版本號(hào)和所述終端設(shè)備的產(chǎn)品型號(hào);
獲取單元,用于根據(jù)所述接收單元接收到的所述產(chǎn)品型號(hào)獲取第三OTA升級(jí)包;其中,所述第三OTA升級(jí)包包括所述當(dāng)前版本與第三版本之間的差分文件,或者所述第三OTA升級(jí)包包括所述軟件的所述第三版本的完整包,所述第三版本比所述當(dāng)前版本高一個(gè)版本;
確定單元,用于根據(jù)所述獲取單元獲取到的所述第三OTA升級(jí)包的配置參數(shù),確定所述終端設(shè)備支持多包連續(xù)升級(jí);
所述獲取單元,還用于獲取OTA升級(jí)包集合;其中,所述OTA升級(jí)包集合中包括由所述當(dāng)前版本升級(jí)到所述當(dāng)前最新版本所需的OTA升級(jí)包;
發(fā)送單元,用于將所述獲取單元獲取到的所述OTA升級(jí)包集合中所有OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述OTA升級(jí)包集合。
結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述獲取單元,具體用于:
獲取由所述當(dāng)前版本到所述當(dāng)前最新版本的所有OTA升級(jí)包,得到OTA升級(jí)包的第一集合;
判斷所述第一集合包含的OTA升級(jí)包中是否存在包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包;
當(dāng)存在所述包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包時(shí),將處于所述包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包之后的所有OTA升級(jí)包和包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包組成所述OTA升級(jí)包集合。
本發(fā)明提供的OTA升級(jí)包的配置方法及裝置,服務(wù)器首先檢測(cè)第一OTA升級(jí)包是否為僅能夠用于部分終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的特殊升級(jí)包,并在檢測(cè)到第一OTA升級(jí)包為特殊升級(jí)包時(shí),繼續(xù)判斷該第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值,然后在確定第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),將該第一OTA升級(jí)包配置為能夠用于所有終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的普通升級(jí)包。這樣,相對(duì)于現(xiàn)有技術(shù),服務(wù)器通過在第一OTA升級(jí)包為特殊升級(jí)包,且保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),將該第一OTA升級(jí)包配置為普通升級(jí)包,使得在軟件需要配置高版本時(shí),服務(wù)器無需配置與該需要配置的高版本對(duì)應(yīng)的多種OTA升級(jí)包,進(jìn)而避免了服務(wù)器在接收到終端設(shè)備的軟件版本檢測(cè)時(shí),獲取到的由軟件在終端設(shè)備的當(dāng)前版本升級(jí)到最新版本所需升級(jí)文件鏈不唯一的問題出現(xiàn),從而確保了終端設(shè)備能夠?qū)④浖漠?dāng)前版本升級(jí)到最新版本,提高了用戶體驗(yàn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面 將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實(shí)施例提供的一種OTA升級(jí)包的配置方法流程圖;
圖2為本發(fā)明一實(shí)施例提供的另一種OTA升級(jí)包的配置方法流程圖;
圖3為本發(fā)明一實(shí)施例提供的又一種OTA升級(jí)包的配置方法流程圖;
圖4為本發(fā)明一實(shí)施例提供的再一種OTA升級(jí)包的配置方法流程圖;
圖5為本發(fā)明另一實(shí)施例提供的一種OTA升級(jí)包的配置裝置組成示意圖;
圖6為本發(fā)明另一實(shí)施例提供的另一種OTA升級(jí)包的配置裝置組成示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明一實(shí)施例提供一種OTA升級(jí)包的配置方法,應(yīng)用于服務(wù)器,該服務(wù)器配置有至少一個(gè)OTA升級(jí)包,如圖1所示,該方法可以包括:
101、服務(wù)器檢測(cè)第一OTA升級(jí)包是否為特殊升級(jí)包。
其中,第一OTA升級(jí)包包括軟件在服務(wù)器的當(dāng)前最新版本與第一版本之間的差分文件,或者第一OTA升級(jí)包包括軟件的當(dāng)前最新版本的完整包,第一版本比當(dāng)前最新版本的低一個(gè)版本。所述的特殊升級(jí)包是指用于部分終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的OTA升級(jí)包。
具體的,出于升級(jí)風(fēng)險(xiǎn)控制的目的,在某些應(yīng)用場(chǎng)景下,運(yùn)行維護(hù)人員在服務(wù)器中配置OTA升級(jí)包時(shí),會(huì)將某些OTA升級(jí)包配置為 用于部分終端設(shè)備將軟件升級(jí)到最新版本的特殊升級(jí)包,例如,在按照區(qū)域進(jìn)行升級(jí)的場(chǎng)景下,將某些OTA升級(jí)包配置為用于某一特定地區(qū)的終端設(shè)備將軟件升級(jí)為當(dāng)前最新的版本的升級(jí)包,這樣,在終端設(shè)備發(fā)起軟件版本檢測(cè)時(shí),僅有處于該特定地區(qū)的終端設(shè)備才可以檢測(cè)到該OTA升級(jí)包,而未處于該特定地區(qū)的終端設(shè)備便檢測(cè)不到。但是,為了避免在軟件需要配置高版本時(shí),服務(wù)器配置多種與該需要配置的高版本對(duì)應(yīng)的OTA升級(jí)包,而導(dǎo)致的由軟件在終端設(shè)備的當(dāng)前版本升級(jí)到最新版本所需升級(jí)文件鏈不唯一的情況出現(xiàn),服務(wù)器需要檢測(cè)包括軟件在服務(wù)器的當(dāng)前最新版本與第一版本之間的差分文件,或者包括軟件的當(dāng)前最新版本的完整包的第一OTA升級(jí)包(即服務(wù)器檢測(cè)自身配置的至少一個(gè)OTA升級(jí)包中的最后一個(gè)OTA升級(jí)包)是否為特殊升級(jí)包。
102、當(dāng)?shù)谝籓TA升級(jí)包為特殊升級(jí)包時(shí),服務(wù)器判斷第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值。
其中,當(dāng)服務(wù)器檢測(cè)到第一OTA升級(jí)包為特殊升級(jí)包時(shí),可以繼續(xù)判斷該第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值。示例性的,該預(yù)設(shè)閾值可以是預(yù)先設(shè)定并配置在該第一OTA升級(jí)包中的一個(gè)時(shí)效性屬性。
需要說明的是,本發(fā)明實(shí)施例中所述的預(yù)設(shè)閾值可以根據(jù)實(shí)際應(yīng)用場(chǎng)景的需求進(jìn)行設(shè)置,本發(fā)明實(shí)施例在此對(duì)預(yù)設(shè)閾值的具體取值不做具體限制。
103、當(dāng)?shù)谝籓TA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),服務(wù)器將第一OTA升級(jí)包配置為普通升級(jí)包,以便在軟件需要升級(jí)到第二版本時(shí),在服務(wù)器上配置第二OTA升級(jí)包。
其中,普通升級(jí)包是指用于所有終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的OTA升級(jí)包。第二OTA升級(jí)包包括第二版本與當(dāng)前最新版本之間的差分文件,或者第二OTA升級(jí)包包括軟件的第二版本的完整包,第二版本為需要配置的最新版本。
具體的,為了能夠在軟件需要升級(jí)到第二版本時(shí),無需在服務(wù)器上配置多種與該第二版本對(duì)應(yīng)的OTA升級(jí)包,當(dāng)服務(wù)器確定第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),便可以將該第一OTA升級(jí)包配置為能夠用于所有終端設(shè)備將軟件升級(jí)到當(dāng)前最新版 本的普通升級(jí)包,這樣,在軟件需要升級(jí)到第二版本時(shí),運(yùn)行維護(hù)人員便只需在服務(wù)器上配置一種與該第二版本對(duì)應(yīng)的OTA升級(jí)包,即,在服務(wù)器上配置一個(gè)第二OTA升級(jí)包即可。
示例性的,假設(shè)某軟件發(fā)布的所有版本分別為:V1、V2、V3、V4、V5。相應(yīng)的,服務(wù)器上配置的OTA升級(jí)包分別為差分文件V2-V1、差分文件V3-V2、差分文件V4-V3、差分文件V5-V4,且差分文件V5-V4是只針對(duì)青島用戶的特殊升級(jí)包,也就是說,僅有青島用戶對(duì)應(yīng)的終端設(shè)備在發(fā)起軟件版本檢測(cè)時(shí),才能檢測(cè)到當(dāng)前最新版本V5,對(duì)于非青島用戶對(duì)應(yīng)的終端設(shè)備,只能檢測(cè)到版本V4。此時(shí)服務(wù)器可以檢測(cè)到差分文件V5-V4為特殊升級(jí)包,并繼續(xù)判斷該差分文件V5-V4保持特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值(假設(shè),該差分文件V5-V4中包含時(shí)效性屬性,該時(shí)效性屬性對(duì)應(yīng)的值為1天,即預(yù)設(shè)閾值為1天),假設(shè)該差分文件V5-V4保持特殊升級(jí)包的時(shí)長(zhǎng)為1天零1小時(shí),那么,此時(shí)服務(wù)器可以確定差分文件V5-V4保持特殊升級(jí)包的時(shí)長(zhǎng)已大于預(yù)設(shè)閾值,這樣,服務(wù)器便可以將差分文件V5-V4配置為普通升級(jí)包,進(jìn)而,當(dāng)軟件需要升級(jí)到V6時(shí),運(yùn)行維護(hù)人員便可以直接在服務(wù)器上配置一種與V6對(duì)應(yīng)的OTA升級(jí)包,如配置差分文件V6-V5。
在本發(fā)明實(shí)施例中,進(jìn)一步的,該OTA升級(jí)包的配置方法還可以包括:當(dāng)?shù)谝籓TA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)小于預(yù)設(shè)閾值時(shí),服務(wù)器判斷是否需要將軟件升級(jí)到第二版本。
當(dāng)需要將軟件升級(jí)到第二版本時(shí),服務(wù)器將第一OTA升級(jí)包配置為普通升級(jí)包,以便在服務(wù)器上配置第二OTA升級(jí)包。
其中,為了在僅需配置一種與該第二版本對(duì)應(yīng)的OTA升級(jí)包的情況下,確保所有終端設(shè)備可以檢測(cè)到最高版本,當(dāng)服務(wù)器確定第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)小于預(yù)設(shè)閾值時(shí),服務(wù)器可以繼續(xù)判斷是否有配置高版本的需求,即判斷是否需要將軟件升級(jí)到第二版本(即需要配置的最新版本),并在確定需要將軟件升級(jí)到第二版本時(shí),服務(wù)器便可以將第一OTA升級(jí)包配置為普通升級(jí)包,以便于運(yùn)行維護(hù)人員只需在服務(wù)器上配置一種與該第二版本對(duì)應(yīng)的OTA升級(jí)包,即,在服務(wù)器上配置一個(gè)第二OTA升級(jí)包即可。
在第一種可能的應(yīng)用場(chǎng)景中,當(dāng)軟件出現(xiàn)某些漏洞時(shí),需要在用戶不知情的情況下對(duì)軟件進(jìn)行自動(dòng)升級(jí),因此,在本發(fā)明實(shí)施例中, 進(jìn)一步的,如圖2所示,在步驟103之后,該OTA升級(jí)包的配置方法還可以包括以下步驟104-步驟105:
104、服務(wù)器判斷至少一個(gè)OTA升級(jí)包中是否包含自動(dòng)升級(jí)包。
其中,所述的自動(dòng)升級(jí)包是指在未接收到終端設(shè)備的版本檢測(cè)請(qǐng)求時(shí),需將軟件進(jìn)行升級(jí)的OTA升級(jí)包。
105、當(dāng)至少一個(gè)OTA升級(jí)包中包含自動(dòng)升級(jí)包時(shí),服務(wù)器將自動(dòng)升級(jí)包和處于自動(dòng)升級(jí)包之前的所有OTA升級(jí)包的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備下載自動(dòng)升級(jí)包和處于自動(dòng)升級(jí)包之前的所有OTA升級(jí)包。
其中,對(duì)于需自動(dòng)升級(jí)的場(chǎng)景,服務(wù)器可以判斷自身配置的至少一個(gè)OTA升級(jí)包中是否包含在未接收到終端設(shè)備的版本檢測(cè)請(qǐng)求時(shí),需將軟件進(jìn)行升級(jí)的OTA升級(jí)包,即判斷至少一個(gè)OTA升級(jí)包中是否包含自動(dòng)升級(jí)包,并在確定至少一個(gè)OTA升級(jí)包中包含自動(dòng)升級(jí)包時(shí),將該自動(dòng)升級(jí)包之前的所有OTA升級(jí)包也變?yōu)椤白詣?dòng)升級(jí)包”,對(duì)于該自動(dòng)升級(jí)包之后的OTA升級(jí)包可以不強(qiáng)制終端設(shè)備進(jìn)行升級(jí)。
示例性的,假設(shè)服務(wù)器上配置某軟件的OTA升級(jí)包分別為差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4,并假設(shè)差分文件V4-V3為是為了修復(fù)某些漏洞而配置的自動(dòng)升級(jí)包,那么服務(wù)器在檢測(cè)到差分文件V4-V3為自動(dòng)升級(jí)包之后,將差分文件V2-V1、完整包V3以及差分文件V4-V3的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備可以根據(jù)差分文件V2-V1、完整包V3以及差分文件V4-V3的下載路徑下載差分文件V2-V1、完整包V3以及差分文件V4-V3,進(jìn)而完成自動(dòng)升級(jí)。
并且,當(dāng)至少一個(gè)OTA升級(jí)包中包含多個(gè)自動(dòng)升級(jí)包時(shí),服務(wù)器可以將多個(gè)自動(dòng)升級(jí)包中距離當(dāng)前最新版本最近的自動(dòng)升級(jí)包和該自動(dòng)升級(jí)包之前的所有OTA升級(jí)包的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備下載多個(gè)自動(dòng)升級(jí)包中距離當(dāng)前最新版本最近的自動(dòng)升級(jí)包和處于該自動(dòng)升級(jí)包之前的所有OTA升級(jí)包。
在第二種可能的應(yīng)用場(chǎng)景中,在多包連續(xù)升級(jí)的機(jī)制下,對(duì)于終端設(shè)備上安裝的軟件的當(dāng)前版本較低,而服務(wù)器上發(fā)布的最新版本較高的情況,客戶端檢測(cè)到的OTA升級(jí)包的個(gè)數(shù)可能會(huì)非常多,這樣,若終端設(shè)備的存儲(chǔ)空間不足和/或電量不足時(shí),終端設(shè)備會(huì)出現(xiàn)升級(jí)失 敗的情況,因此,為了能夠避免這種情況的出現(xiàn),在本發(fā)明實(shí)施例中,進(jìn)一步的,如圖3所示,在步驟103之后,該OTA升級(jí)包的配置方法還可以包括以下步驟106-步驟108:
106、服務(wù)器接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求。
其中,所述的版本檢測(cè)請(qǐng)求包括軟件在終端設(shè)備的當(dāng)前版本的版本號(hào)。
107、當(dāng)由當(dāng)前版本升級(jí)到當(dāng)前最新版本所需的OTA升級(jí)包的個(gè)數(shù)大于預(yù)設(shè)的最大鏈長(zhǎng)時(shí),服務(wù)器根據(jù)當(dāng)前版本的版本號(hào),從至少一個(gè)OTA升級(jí)包中獲取與最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包。
其中,所述的與最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中的所有OTA升級(jí)包連續(xù),且第一個(gè)OTA升級(jí)包包括當(dāng)前版本與第三版本之間的差分文件,或者第一個(gè)OTA升級(jí)包包括軟件的第三版本的完整包,第三版本比當(dāng)前版本高一個(gè)版本。
具體的,當(dāng)服務(wù)器接收到終端設(shè)備發(fā)送的包括軟件在終端設(shè)備的當(dāng)前版本的版本號(hào)的版本檢測(cè)請(qǐng)求之后,服務(wù)器可以先根據(jù)軟件在終端設(shè)備的當(dāng)前版本的版本號(hào)和本地的當(dāng)前最新版本的版本號(hào),確定由當(dāng)前版本升級(jí)到最新版本所需的OTA升級(jí)包的個(gè)數(shù)是否大于預(yù)設(shè)的最大鏈長(zhǎng),并在確定由當(dāng)前版本升級(jí)到最新版本所需的OTA升級(jí)包的個(gè)數(shù)大于最大鏈長(zhǎng)時(shí),服務(wù)器可以根據(jù)當(dāng)前版本的版本號(hào),從當(dāng)前版本開始,從至少一個(gè)OTA升級(jí)包中獲取OTA升級(jí)包,直到獲取到的OTA升級(jí)包的個(gè)數(shù)與最大鏈長(zhǎng)相等。
需要說明的是,在本發(fā)明實(shí)施例中,所述的最大鏈長(zhǎng)可以根據(jù)實(shí)際應(yīng)用場(chǎng)景的需求進(jìn)行設(shè)置,本發(fā)明實(shí)施例在此對(duì)最大鏈長(zhǎng)的具體取值并不做具體限制。
108、服務(wù)器將與最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中每個(gè)OTA升級(jí)包的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備下載每個(gè)OTA升級(jí)包。
其中,在服務(wù)器從至少一個(gè)OTA升級(jí)包中獲取到與最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包之后,便可以將與最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中的每個(gè)OTA升級(jí)包的下載路徑發(fā)送至終端設(shè)備,這樣,終端設(shè)備可以根據(jù)接收到的下載路徑,下載與最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中每個(gè)OTA升級(jí)包。進(jìn)一步的,在終端設(shè)備下載到與最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中每個(gè)OTA升級(jí)包,并完成此次升級(jí)之后,終端設(shè) 備可以繼續(xù)向服務(wù)器發(fā)送版本檢測(cè)請(qǐng)求,進(jìn)一步的獲取OTA升級(jí)包,直到將軟件升級(jí)到服務(wù)器上配置的當(dāng)前最新版本為止。
示例性的,假設(shè)服務(wù)器上配置的OTA升級(jí)包的總個(gè)數(shù)為20個(gè),即由最低版本升級(jí)到最高版本所需的OTA升級(jí)包的個(gè)數(shù)為20個(gè),某個(gè)終端設(shè)備安裝的該軟件的當(dāng)前版本為最低版本,且預(yù)設(shè)的最大鏈長(zhǎng)為6,那么當(dāng)該終端設(shè)備向服務(wù)器發(fā)起版本檢測(cè)請(qǐng)求之后,服務(wù)器根據(jù)軟件在該終端設(shè)備的當(dāng)前版本和服務(wù)器上配置的當(dāng)前最新版本,確定的由當(dāng)前版本升級(jí)到當(dāng)前最新版本所需的OTA升級(jí)包的個(gè)數(shù)為20,且大于預(yù)設(shè)的最大鏈長(zhǎng)6,那么服務(wù)器此時(shí)便可以將OTA升級(jí)包中的前6個(gè)OTA升級(jí)包的下載路徑返回給終端設(shè)備,以便終端設(shè)備先根據(jù)該6個(gè)OTA升級(jí)包的下載路徑進(jìn)行升級(jí),并可以繼續(xù)向服務(wù)器發(fā)送版本檢測(cè)請(qǐng)求,知道升級(jí)到最高版本為止。
在第三種可能的應(yīng)用場(chǎng)景中,為了能夠兼容現(xiàn)有技術(shù)中的單包升級(jí)策略,可以將終端設(shè)備分為支持多包連續(xù)升級(jí)的終端設(shè)備和支持單包升級(jí)的終端設(shè)備,那么,在本發(fā)明實(shí)施例中,進(jìn)一步的,如圖4所示,在步驟103之后,該OTA升級(jí)包的配置方法還可以包括以下步驟109-步驟112:
109、服務(wù)器接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求。
其中,所述的版本檢測(cè)請(qǐng)求包括軟件在終端設(shè)備的當(dāng)前版本的版本號(hào)和終端設(shè)備的產(chǎn)品型號(hào)。
110、服務(wù)器根據(jù)產(chǎn)品型號(hào)獲取第三OTA升級(jí)包。
其中,第三OTA升級(jí)包包括當(dāng)前版本與第三版本之間的差分文件,或者第三OTA升級(jí)包包括軟件的第三版本的完整包,第三版本比當(dāng)前版本高一個(gè)版本。
具體的,當(dāng)服務(wù)器接收到終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求時(shí),可以根據(jù)該版本檢測(cè)請(qǐng)求中包含的終端設(shè)備的產(chǎn)品型號(hào),獲取包括當(dāng)前版本與比當(dāng)前版本高一個(gè)版本的第三版本之間的差分文件,或者包括軟件的比當(dāng)前版本高一個(gè)版本的第三版本的完整包的第三OTA升級(jí)包。
111、服務(wù)器根據(jù)第三OTA升級(jí)包的配置參數(shù),確定終端設(shè)備支持多包連續(xù)升級(jí)。
其中,服務(wù)器在獲取到第三OTA升級(jí)包之后,可以根據(jù)該第三 OTA升級(jí)包中的配置參數(shù),確定該終端設(shè)備是支持多包連續(xù)升級(jí)的終端設(shè)備,還是支持單包升級(jí)的終端設(shè)備,并在確定終端設(shè)備支持多包連續(xù)升級(jí),即確定終端設(shè)備是支持多包連續(xù)升級(jí)的終端設(shè)備時(shí),執(zhí)行以下步驟112。若服務(wù)器確定終端設(shè)備支持單包升級(jí),即確定終端設(shè)備是支持單包升級(jí)的終端設(shè)備時(shí),可以直接將第三OTA升級(jí)包的下載路徑返回給終端設(shè)備,以便終端設(shè)備根據(jù)將第三OTA升級(jí)包的下載路徑下載第三OTA升級(jí)包,并進(jìn)行升級(jí)。
示例性的,可以預(yù)先在終端設(shè)備對(duì)應(yīng)的OTA升級(jí)包中配置不同的升級(jí)模式(該升級(jí)模式即為配置參數(shù)),升級(jí)模式可以包括單包升級(jí)和多包連續(xù)升級(jí),并且對(duì)于一個(gè)OTA升級(jí)包,僅能夠支持一種升級(jí)模式,即,對(duì)于終端設(shè)備為支持多包連續(xù)升級(jí)的終端設(shè)備,其對(duì)應(yīng)的OTA升級(jí)包中均包含具體值為多包連續(xù)升級(jí)的配置參數(shù),而對(duì)于終端設(shè)備為支持單包升級(jí)的終端設(shè)備,其對(duì)應(yīng)的OTA升級(jí)包中均包含具體值為單包升級(jí)的配置參數(shù),以便服務(wù)器判斷該終端設(shè)備是支持多包連續(xù)升級(jí)的終端設(shè)備,還是支持單包升級(jí)的終端設(shè)備。
112、服務(wù)器獲取OTA升級(jí)包集合,并將OTA升級(jí)包集合中所有OTA升級(jí)包的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備下載OTA升級(jí)包集合。
其中,OTA升級(jí)包集合中包括由當(dāng)前版本升級(jí)到當(dāng)前最新版本所需的OTA升級(jí)包。在服務(wù)器確定終端設(shè)備支持多包連續(xù)升級(jí)時(shí),便可以繼續(xù)獲取OTA升級(jí)包,以獲得包括由當(dāng)前版本升級(jí)到當(dāng)前最新版本所需的OTA升級(jí)包的OTA升級(jí)包集合,并在獲取到OTA升級(jí)包集合之后,將該OTA升級(jí)包集合中所有OTA升級(jí)包的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備下載OTA升級(jí)包集合,進(jìn)而將軟件從當(dāng)前版本升級(jí)到當(dāng)前最新版本。
在本發(fā)明實(shí)施例中,為了能夠在確保成功升級(jí)的前提下,減少發(fā)送至終端設(shè)備的OTA升級(jí)包的個(gè)數(shù),步驟112中所述的獲取OTA升級(jí)包集合具體的可以包括:
服務(wù)器獲取由當(dāng)前版本到當(dāng)前最新版本的所有OTA升級(jí)包,得到OTA升級(jí)包的第一集合,并判斷第一集合包含的OTA升級(jí)包中是否存在包括軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包;當(dāng)存在包括軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包時(shí),將處于包括軟件的對(duì)應(yīng)版本的完整 包的OTA升級(jí)包之后的所有OTA升級(jí)包和包括軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包組成所述OTA升級(jí)包集合。
并且,針對(duì)第一集合中包含有多個(gè)包括軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包的情況,可以將這多個(gè)包括軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包中距離當(dāng)前最新版本最近的OTA升級(jí)包之后的所有OTA升級(jí)包和該距離當(dāng)前最新版本最近的OTA升級(jí)包組成所述OTA升級(jí)包集合。例如,OTA升級(jí)包分別為差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4、完整包V6、差分文件V7-V6、差分文件V8-V7,那么最終確定的第一集合為完整包V6、差分文件V7-V6、差分文件V8-V7。
示例性的,假設(shè)服務(wù)器上配置某軟件的OTA升級(jí)包分別為差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4,且服務(wù)器接收到的終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求中包括的軟件在終端設(shè)備的當(dāng)前版本的版本號(hào)為V1,那么服務(wù)器可以先獲取由當(dāng)前版本V1到當(dāng)前最新版本V5的所有OTA升級(jí)包,得到OTA升級(jí)包的第一集合,該第一集合包括差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4,然后,判斷該第一集合中是否存在包括軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包,即軟件的某個(gè)版本的全包,可以確定第一集合中存在包括軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包,即完整包V3,那么服務(wù)器便可以僅將完整包V3、差分文件V4-V3、差分文件V5-V4的下載路徑發(fā)送至終端設(shè)備即可。
并且,在一種可能的應(yīng)用場(chǎng)景中,為了避免采用差分文件升級(jí)出現(xiàn)升級(jí)失敗的情況發(fā)生,某些情況下,除了在服務(wù)器中配置差分文件之外,還可能在服務(wù)器中配置軟件對(duì)應(yīng)的某些版本的完整包,此時(shí),在該版本既配置了完整包又配置了差分文件的情況下,優(yōu)先向終端設(shè)備返回包含該版本的差分文件的升級(jí)文件鏈。
為了便于本領(lǐng)域技術(shù)人員的理解,針對(duì)上述所有可能的存在的應(yīng)用場(chǎng)景,對(duì)本發(fā)明實(shí)施例在此對(duì)本發(fā)明的具體實(shí)現(xiàn)過程進(jìn)行舉例說明。
例如,服務(wù)器上發(fā)布的某軟件的所有版本為A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q,且服務(wù)器上配置的OTA升級(jí)包分別為:差分文件A-B、完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H、完整包H、差分文件 H-I、完整包J、差分文件J-K、差分文件K-L、差分文件L-M、差分文件M-N、差分文件N-O、差分文件O-P、差分文件P-Q,該軟件在終端設(shè)備的當(dāng)前版本為A,預(yù)設(shè)的最大鏈長(zhǎng)為7,其中,差分文件P-Q為只針對(duì)上海用戶的特殊升級(jí)包。
服務(wù)器先檢測(cè)差分文件P-Q是否為特殊升級(jí)包,然后,在確定差分文件P-Q為特殊升級(jí)包之后,判斷差分文件P-Q保持特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值,假設(shè),差分文件P-Q保持特殊升級(jí)包的時(shí)長(zhǎng)大于預(yù)設(shè)閾值,那么服務(wù)器便可以將該差分文件P-Q配置為普通升級(jí)包,以便于所有的終端設(shè)備可以升級(jí)到最高版本Q。
進(jìn)一步的,服務(wù)器可以檢測(cè)所有的OTA升級(jí)包中是否存在自動(dòng)升級(jí)包,假設(shè)所有的OTA升級(jí)包中不存在自動(dòng)升級(jí)包,那么此時(shí)服務(wù)器不做任何處理,假設(shè)OTA升級(jí)包中的差分文件F-G為自動(dòng)升級(jí)包,那么此時(shí),服務(wù)器可以將差分文件A-B、完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備將軟件升級(jí)到版本G。當(dāng)然,服務(wù)器還可以進(jìn)一步的確定需返回的OTA升級(jí)包中包含完整包C,此時(shí)可以舍棄完整包之前的OTA升級(jí)包,也就是說,服務(wù)器最終可以向終端設(shè)備返回完整包C、差分文件C-D、差分文件D-E、差分文件E-F以及差分文件F-G的下載路徑即可。
進(jìn)一步的,服務(wù)器接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求,并包含軟件在終端設(shè)備的當(dāng)前版本的版本號(hào)A,此時(shí)服務(wù)器可以先獲取差分文件A-B,并根據(jù)該差分文件A-B的配置參數(shù)判斷該終端設(shè)備是否支持多包連續(xù)升級(jí)。若確定該終端設(shè)備支持多包連續(xù)升級(jí),再判斷由當(dāng)前版本A升級(jí)到最高版本Q所需的OTA升級(jí)包的個(gè)數(shù)是否大于最大鏈長(zhǎng)7,可以確定出由當(dāng)前版本A升級(jí)到最高版本Q所需的OTA升級(jí)包的個(gè)數(shù)17大于最大鏈長(zhǎng)7,那么服務(wù)器可以獲取7個(gè)OTA升級(jí)包,且這7個(gè)OTA升級(jí)包連續(xù),第一個(gè)OTA升級(jí)包必須為差分文件A-B。這樣,獲得的7個(gè)OTA升級(jí)包分別為差分文件A-B、完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H。另外,服務(wù)器還檢測(cè)到服務(wù)器中配置了完整包H,由于差分文件的大小小于完整包,因此,為了減少終端設(shè)備下載升級(jí)包的時(shí)長(zhǎng)并節(jié)省終端設(shè)備的電量,可以優(yōu)先選擇返回差分文件A-B、完整包C、差分文件 C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H。然后服務(wù)器還確定出7個(gè)OTA升級(jí)包中存在完整包C,此時(shí)可以舍棄完整包之前的OTA升級(jí)包,也就是說,最終確定的向終端設(shè)備返回的OTA升級(jí)包包括:完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H。這樣服務(wù)器便可以將完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H的下載路徑發(fā)送至終端設(shè)備,以便終端設(shè)備下載OTA升級(jí)包并完成此次升級(jí)。進(jìn)一步的,終端設(shè)備還可以再次發(fā)起版本檢測(cè)請(qǐng)求,并由服務(wù)器重復(fù)上述過程,以便最終將軟件升級(jí)到最高版本Q。
本發(fā)明提供的OTA升級(jí)包的配置方法,服務(wù)器首先檢測(cè)第一OTA升級(jí)包是否為僅能夠用于部分終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的特殊升級(jí)包,并在檢測(cè)到第一OTA升級(jí)包為特殊升級(jí)包時(shí),繼續(xù)判斷該第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值,然后在確定第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),將該第一OTA升級(jí)包配置為能夠用于所有終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的普通升級(jí)包。這樣,相對(duì)于現(xiàn)有技術(shù),服務(wù)器通過在第一OTA升級(jí)包為特殊升級(jí)包,且保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),將該第一OTA升級(jí)包配置為普通升級(jí)包,使得在軟件需要配置高版本時(shí),服務(wù)器無需配置多種與該需要配置的高版本對(duì)應(yīng)的OTA升級(jí)包,進(jìn)而避免了服務(wù)器在接收到終端設(shè)備的軟件版本檢測(cè)時(shí),獲取到的由軟件在終端設(shè)備的當(dāng)前版本升級(jí)到最新版本所需升級(jí)文件鏈不唯一的問題出現(xiàn),從而確保了終端設(shè)備能夠?qū)④浖漠?dāng)前版本升級(jí)到最新版本,提高了用戶體驗(yàn)。
并且,通過設(shè)置最大鏈長(zhǎng),使得在終端設(shè)備的當(dāng)前版本較低時(shí),可以先從服務(wù)器獲取部分OTA升級(jí)包,避免了一次性獲取所有OTA升級(jí)包可能導(dǎo)致的升級(jí)失敗的情況發(fā)生,從而減小了升級(jí)失敗的風(fēng)險(xiǎn),進(jìn)一步提高了用戶體驗(yàn)。通過在OTA升級(jí)包中配置升級(jí)方式,使得可以對(duì)支持多包連續(xù)升級(jí)的終端設(shè)備返回多個(gè)OTA升級(jí)包,實(shí)現(xiàn)了和現(xiàn)有單包升級(jí)策略的兼容。
本發(fā)明另一實(shí)施例提供一種OTA升級(jí)包的配置裝置,應(yīng)用于服務(wù)器,所述服務(wù)器配置有至少一個(gè)OTA升級(jí)包,如圖5所示,該OTA升級(jí)包的配置裝置可以包括:檢測(cè)單元21、判斷單元22、配置單元23。
檢測(cè)單元21,用于檢測(cè)第一OTA升級(jí)包是否為特殊升級(jí)包;其中,所述第一OTA升級(jí)包包括軟件在所述服務(wù)器的當(dāng)前最新版本與第一版本之間的差分文件,或者所述第一OTA升級(jí)包包括所述軟件的所述當(dāng)前最新版本的完整包,所述第一版本比所述當(dāng)前最新版本的低一個(gè)版本;所述特殊升級(jí)包是指用于部分終端設(shè)備將所述軟件升級(jí)到所述當(dāng)前最新版本的OTA升級(jí)包。
判斷單元22,用于當(dāng)所述檢測(cè)單元21檢測(cè)到所述第一OTA升級(jí)包為所述特殊升級(jí)包時(shí),判斷所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值。
配置單元23,用于當(dāng)所述判斷單元22判斷得到所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)大于或等于所述預(yù)設(shè)閾值時(shí),將所述第一OTA升級(jí)包配置為普通升級(jí)包,以便在所述軟件需要升級(jí)到第二版本時(shí),在所述服務(wù)器上配置第二OTA升級(jí)包;其中,所述普通升級(jí)包是指用于所有終端設(shè)備將所述軟件升級(jí)到所述當(dāng)前最新版本的OTA升級(jí)包;所述第二OTA升級(jí)包包括所述第二版本與所述當(dāng)前最新版本之間的差分文件,或者所述第二OTA升級(jí)包包括所述軟件的所述第二版本的完整包,所述第二版本為需要配置的最新版本。
在本發(fā)明實(shí)施例中,進(jìn)一步的,所述判斷單元22,還用于當(dāng)所述第一OTA升級(jí)包保持所述特殊升級(jí)包的時(shí)長(zhǎng)小于所述預(yù)設(shè)閾值時(shí),判斷是否需要將所述軟件升級(jí)到所述第二版本。
所述配置單元23,還用于當(dāng)所述判斷單元22判斷得到需要將所述軟件升級(jí)到所述第二版本時(shí),將所述第一OTA升級(jí)包配置為所述普通升級(jí)包,以便在所述服務(wù)器上配置所述第二OTA升級(jí)包。
在本發(fā)明實(shí)施例中,進(jìn)一步的,所述判斷單元22,還用于在所述配置單元23將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,判斷所述至少一個(gè)OTA升級(jí)包中是否包含自動(dòng)升級(jí)包;其中,所述自動(dòng)升級(jí)包是指在未接收到終端設(shè)備的版本檢測(cè)請(qǐng)求時(shí),需將所述軟件進(jìn)行升級(jí)的OTA升級(jí)包。
如圖6所示,所述的裝置還可以包括:發(fā)送單元24。
發(fā)送單元24,用于當(dāng)所述判斷單元22判斷得到所述至少一個(gè)OTA升級(jí)包中包含所述自動(dòng)升級(jí)包時(shí),將所述自動(dòng)升級(jí)包和處于所述自動(dòng)升級(jí)包之前的所有OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便 所述終端設(shè)備下載所述自動(dòng)升級(jí)包和處于所述自動(dòng)升級(jí)包之前的所有OTA升級(jí)包。
在本發(fā)明實(shí)施例中,進(jìn)一步的,該裝置還可以包括:接收單元25、獲取單元26。
接收單元25,用于在所述配置單元23將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求;其中,所述版本檢測(cè)請(qǐng)求包括所述軟件在所述終端設(shè)備的當(dāng)前版本的版本號(hào)。
獲取單元26,用于當(dāng)由所述當(dāng)前版本升級(jí)到所述當(dāng)前最新版本所需的OTA升級(jí)包的個(gè)數(shù)大于預(yù)設(shè)的最大鏈長(zhǎng)時(shí),根據(jù)所述當(dāng)前版本的版本號(hào),從所述至少一個(gè)OTA升級(jí)包中獲取與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包;其中,所述與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中的所有OTA升級(jí)包連續(xù),且第一個(gè)OTA升級(jí)包包括所述當(dāng)前版本與第三版本之間的差分文件,或者所述第一個(gè)OTA升級(jí)包包括所述軟件的所述第三版本的完整包,所述第三版本比所述當(dāng)前版本高一個(gè)版本。
發(fā)送單元24,用于將所述獲取單元26獲取到的所述與所述最大鏈長(zhǎng)相等個(gè)數(shù)的OTA升級(jí)包中每個(gè)OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述每個(gè)OTA升級(jí)包。
在本發(fā)明實(shí)施例中,進(jìn)一步的,該裝置還可以包括:確定單元27。
接收單元25,用于在所述配置單元23將所述第一OTA升級(jí)包配置為普通升級(jí)包之后,接收終端設(shè)備發(fā)送的版本檢測(cè)請(qǐng)求;其中,所述版本檢測(cè)請(qǐng)求包括所述軟件在所述終端設(shè)備的當(dāng)前版本的版本號(hào)和所述終端設(shè)備的產(chǎn)品型號(hào)。
獲取單元26,用于根據(jù)所述接收單元25接收到的所述產(chǎn)品型號(hào)獲取第三OTA升級(jí)包;其中,所述第三OTA升級(jí)包包括所述當(dāng)前版本與第三版本之間的差分文件,或者所述第三OTA升級(jí)包包括所述軟件的所述第三版本的完整包,所述第三版本比所述當(dāng)前版本高一個(gè)版本。
確定單元27,用于根據(jù)所述獲取單元26獲取到的所述第三OTA升級(jí)包的配置參數(shù),確定所述終端設(shè)備支持多包連續(xù)升級(jí)。
所述獲取單元26,還用于獲取OTA升級(jí)包集合;其中,所述OTA升級(jí)包集合中包括由所述當(dāng)前版本升級(jí)到所述當(dāng)前最新版本所需的 OTA升級(jí)包。
發(fā)送單元24,用于將所述獲取單元26獲取到的所述OTA升級(jí)包集合中所有OTA升級(jí)包的下載路徑發(fā)送至所述終端設(shè)備,以便所述終端設(shè)備下載所述OTA升級(jí)包集合。
在本發(fā)明實(shí)施例中,進(jìn)一步的,所述獲取單元26,具體用于獲取由所述當(dāng)前版本到所述當(dāng)前最新版本的所有OTA升級(jí)包,得到OTA升級(jí)包的第一集合;判斷所述第一集合包含的OTA升級(jí)包中是否存在包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包;當(dāng)存在所述包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包時(shí),將處于所述包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包之后的所有OTA升級(jí)包和包括所述軟件的對(duì)應(yīng)版本的完整包的OTA升級(jí)包組成所述OTA升級(jí)包集合。
需要說明的是,本發(fā)明實(shí)施例提供的OTA升級(jí)包的配置裝置中各功能模塊的具體工作過程可以參考方法實(shí)施例中對(duì)應(yīng)過程的具體描述,本發(fā)明實(shí)施例在此不再詳細(xì)贅述。
本發(fā)明提供的OTA升級(jí)包的配置裝置,首先檢測(cè)第一OTA升級(jí)包是否為僅能夠用于部分終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的特殊升級(jí)包,并在檢測(cè)到第一OTA升級(jí)包為特殊升級(jí)包時(shí),繼續(xù)判斷該第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)是否大于或等于預(yù)設(shè)閾值,然后在確定第一OTA升級(jí)包保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),將該第一OTA升級(jí)包配置為能夠用于所有終端設(shè)備將軟件升級(jí)到當(dāng)前最新版本的普通升級(jí)包。這樣,相對(duì)于現(xiàn)有技術(shù),服務(wù)器通過在第一OTA升級(jí)包為特殊升級(jí)包,且保持特殊升級(jí)包的時(shí)長(zhǎng)大于或等于預(yù)設(shè)閾值時(shí),將該第一OTA升級(jí)包配置為普通升級(jí)包,使得在軟件需要配置高版本時(shí),服務(wù)器無需配置多種與該需要配置的高版本對(duì)應(yīng)的OTA升級(jí)包,進(jìn)而避免了服務(wù)器在接收到終端設(shè)備的軟件版本檢測(cè)時(shí),獲取到的由軟件在終端設(shè)備的當(dāng)前版本升級(jí)到最新版本所需升級(jí)文件鏈不唯一的問題出現(xiàn),從而確保了終端設(shè)備能夠?qū)④浖漠?dāng)前版本升級(jí)到最新版本,提高了用戶體驗(yàn)。
并且,通過設(shè)置最大鏈長(zhǎng),使得在終端設(shè)備的當(dāng)前版本較低時(shí),可以先從服務(wù)器獲取部分OTA升級(jí)包,避免了一次性獲取所有OTA升級(jí)包可能導(dǎo)致的升級(jí)失敗的情況發(fā)生,從而減小了升級(jí)失敗的風(fēng)險(xiǎn), 進(jìn)一步提高了用戶體驗(yàn)。通過在OTA升級(jí)包中配置升級(jí)方式,使得可以對(duì)支持多包連續(xù)升級(jí)的終端設(shè)備返回多個(gè)OTA升級(jí)包,實(shí)現(xiàn)了和現(xiàn)有單包升級(jí)策略的兼容。
通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)裝置,或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是一個(gè)物理單元或多個(gè)物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)不同地方??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一個(gè)設(shè)備(可以是單片機(jī),芯片等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(英文:Read-Only Memory,簡(jiǎn)稱:ROM)、隨機(jī)存取存儲(chǔ) 器(英文:Random Access Memory,簡(jiǎn)稱:RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(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)。