升級(jí)控制方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供了一種升級(jí)控制方法及裝置,包括:獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表;當(dāng)按照腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),對(duì)與腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份;當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本;將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。本發(fā)明能夠在升級(jí)過程中,在接收到終止升級(jí)命令時(shí),終止升級(jí)安裝過程,并且能夠?qū)⑾到y(tǒng)還原到升級(jí)前的版本,并且通過備份,可以保證終止升級(jí)過程后系統(tǒng)中原始腳本完整、有效。
【專利說明】
升級(jí)控制方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù),尤其涉及一種升級(jí)控制方法及裝置。
【背景技術(shù)】
[0002]智能電視,是指像智能手機(jī)一樣,搭載了操作系統(tǒng),可以由用戶自行安裝和卸載軟件、游戲等第三方服務(wù)商提供的程序,通過此類程序來不斷對(duì)彩電的功能進(jìn)行擴(kuò)充,并可以通過網(wǎng)線、無線網(wǎng)絡(luò)來實(shí)現(xiàn)上網(wǎng)沖浪,觀看視頻等。智能電視系統(tǒng)也像其它設(shè)備系統(tǒng)一樣,具有升級(jí),或者重新安裝系統(tǒng)的功能,用于修復(fù)系統(tǒng)的漏洞,和完善系統(tǒng)功能,為用戶提供更好的體驗(yàn)。
[0003]當(dāng)前,在智能電視系統(tǒng)中,當(dāng)每次進(jìn)行系統(tǒng)升級(jí)時(shí),無論是用戶有意的還是無意的通過遙控器或者按鍵板,點(diǎn)擊了升級(jí)按鈕后,系統(tǒng)即開始自動(dòng)升級(jí),這個(gè)過程將自動(dòng)連續(xù)不間斷的進(jìn)行,直至升級(jí)完成,即使將系統(tǒng)斷電,再次啟動(dòng)系統(tǒng)時(shí),也會(huì)重新進(jìn)行系統(tǒng)升級(jí),直到升級(jí)成功。
[0004]目前,一般的系統(tǒng)在升級(jí)過程中無法強(qiáng)制停止,即使選擇重啟,也仍會(huì)用下載好的更新包,重新升級(jí),直到升級(jí)成功。如果升級(jí)到一半,就算有技術(shù)人員,強(qiáng)制終止繼續(xù)升級(jí),之前升級(jí)覆蓋的部分?jǐn)?shù)據(jù),也將丟失,并且在最終升級(jí)成功后,系統(tǒng)無法還原到上一個(gè)版本。
【發(fā)明內(nèi)容】
[0005]為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種升級(jí)控制方法及裝置。
[0006]根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種升級(jí)控制方法,包括:
[0007]獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表;
[0008]當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份;
[0009]當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本;
[0010]將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。
[0011]可選地,所述對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份,包括:
[0012]按照所述腳本執(zhí)行順序,獲取所述腳本鏈表中每個(gè)所述升級(jí)腳本的腳本信息;
[0013]在升級(jí)前的包含所有原始腳本的原始腳本集合中查找與每個(gè)升級(jí)腳本的腳本信息對(duì)應(yīng)的原始腳本;
[0014]判斷所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本是否不相同;
[0015]當(dāng)所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不相同時(shí),將所述原始腳本備份到預(yù)設(shè)備份區(qū)域。
[0016]可選地,所述將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本,包括:
[0017]按照所述腳本執(zhí)行順序判斷在所述預(yù)設(shè)備份區(qū)域中每個(gè)已安裝的升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本;
[0018]當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),利用所述原始腳本替換掉所述升級(jí)腳本;
[0019]當(dāng)不存在與所述已升級(jí)的升級(jí)腳本對(duì)應(yīng)的原始腳本時(shí),保留所述升級(jí)腳本。
[0020]可選地,所述終止所述安裝過程,包括:
[0021]檢測(cè)當(dāng)前是否存在將原始腳本替換為升級(jí)版本的替換進(jìn)程;
[0022]當(dāng)存在所述替換進(jìn)程時(shí),待所述替換進(jìn)程執(zhí)行完畢后終止所述安裝過程。
[0023]可選地,所述方法還包括:
[0024]按照所述腳本執(zhí)行順序檢測(cè)所述腳本鏈表中是否存在下一個(gè)待安裝的升級(jí)腳本;
[0025]當(dāng)存在下一個(gè)待安裝的升級(jí)腳本時(shí),從所述腳本鏈表中獲取下一個(gè)待安裝的升級(jí)腳本,并在所述腳本鏈表中刪除所述下一個(gè)待安裝的升級(jí)腳本;
[0026]查找與所述下一個(gè)待安裝的升級(jí)腳本對(duì)應(yīng)的原始腳本;
[0027]利用所述下一個(gè)待安裝的升級(jí)腳本替換所述原始腳本。
[0028]根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種升級(jí)控制裝置,包括:
[0029]第一獲取模塊,用于獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表;
[0030]備份模塊,用于當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份;
[0031]終止記錄模塊,用于當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本;
[0032]還原模塊,用于將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。
[0033]可選地,所述備份模塊,包括:
[0034]獲取子模塊,用于按照所述腳本執(zhí)行順序,獲取所述腳本鏈表中每個(gè)所述升級(jí)腳本的腳本信息;
[0035]查找子模塊,用于在升級(jí)前的包含所有原始腳本的原始腳本集合中查找與每個(gè)升級(jí)腳本的腳本信息對(duì)應(yīng)的原始腳本;
[0036]第一判斷子模塊,用于判斷所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本是否不相同;
[0037]備份子模塊,用于當(dāng)所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不相同時(shí),將所述原始腳本備份到預(yù)設(shè)備份區(qū)域。
[0038]可選地,所述還原模塊,包括:
[0039]第二判斷子模塊,用于按照所述腳本執(zhí)行順序判斷在所述預(yù)設(shè)備份區(qū)域中每個(gè)已安裝的升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本;
[0040]替換子模塊,用于當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),利用所述原始腳本替換掉所述升級(jí)腳本;
[0041]保留子模塊,用于當(dāng)不存在與所述已升級(jí)的升級(jí)腳本對(duì)應(yīng)的原始腳本時(shí),保留所述升級(jí)腳本。
[0042]可選地,所述終止記錄模塊,包括:
[0043]檢測(cè)子模塊,用于檢測(cè)當(dāng)前是否存在將原始腳本替換為升級(jí)版本的替換進(jìn)程;
[0044]終止子模塊,用于當(dāng)存在所述替換進(jìn)程時(shí),待所述替換進(jìn)程執(zhí)行完畢后終止所述安裝過程。
[0045]可選地,所述裝置還包括:
[0046]檢測(cè)模塊,按照所述腳本執(zhí)行順序檢測(cè)所述腳本鏈表中是否存在下一個(gè)待安裝的升級(jí)腳本;
[0047]第二獲取模塊,用于當(dāng)存在下一個(gè)待安裝的升級(jí)腳本時(shí),從所述腳本鏈表中獲取下一個(gè)待安裝的升級(jí)腳本,并在所述腳本鏈表中刪除所述下一個(gè)待安裝的升級(jí)腳本;
[0048]查找模塊,用于查找與所述下一個(gè)待安裝的升級(jí)腳本對(duì)應(yīng)的原始腳本;
[0049]替換模塊,用于利用所述下一個(gè)待安裝的升級(jí)腳本替換所述原始腳本。
[0050]本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0051]本發(fā)明可以通過首先獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表,當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),可以對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份,當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本,最后可以將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。
[0052]本發(fā)明提供的該方法,在升級(jí)過程中,能夠在接收到終止升級(jí)命令時(shí),終止升級(jí)安裝過程,并且能夠?qū)⑾到y(tǒng)還原到升級(jí)前的版本,增加有意及無意升級(jí)時(shí)的可控性,并且通過備份的方法,可以保證終止升級(jí)過程后,系統(tǒng)中原始腳本的完整、有效。
[0053]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
【附圖說明】
[0054]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。
[0055]圖1是根據(jù)一示例性實(shí)施例示出的一種升級(jí)控制方法的一種流程圖;
[0056]圖2是圖1中步驟S102的流程圖;
[0057]圖3是圖1中步驟S104的流程圖;
[0058]圖4是圖1中步驟S103的流程圖;
[0059]圖5是根據(jù)一示例性實(shí)施例示出的一種升級(jí)控制方法的另一種流程圖;
[0060]圖6是根據(jù)一示例性實(shí)施例示出的一種升級(jí)控制裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0061]這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0062]如圖1所示,在本發(fā)明的一個(gè)實(shí)施例中,提供一種升級(jí)控制方法,包括以下步驟。
[0063]在步驟SlOl中,獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表。
[0064]在本發(fā)明實(shí)施例中,預(yù)設(shè)升級(jí)數(shù)據(jù)包可以為系統(tǒng)升級(jí)安裝包,也可以為軟件升級(jí)安裝包等,升級(jí)腳本可以為使用一種特定的描述性語言,依據(jù)一定的格式編寫的可執(zhí)行文件,腳本執(zhí)行順序即為腳本鏈表中設(shè)定的升級(jí)腳本的邏輯順序。
[0065]在該步驟之前,可以首先從存儲(chǔ)升級(jí)數(shù)據(jù)包的數(shù)據(jù)庫中獲取預(yù)設(shè)升級(jí)數(shù)據(jù)包,檢查數(shù)據(jù)包完整性,當(dāng)預(yù)設(shè)升級(jí)數(shù)據(jù)包完整時(shí),可以解壓預(yù)設(shè)升級(jí)數(shù)據(jù)包,將預(yù)設(shè)升級(jí)數(shù)據(jù)包中的升級(jí)腳本存儲(chǔ)到腳本鏈表中,并在腳本鏈表中添加升級(jí)腳本之間的腳本執(zhí)行順序。
[0066]在該步驟中,可以首先獲取預(yù)設(shè)升級(jí)數(shù)據(jù)包,然后在根據(jù)預(yù)設(shè)升級(jí)數(shù)據(jù)包查找到與其對(duì)應(yīng)的腳本鏈表。
[0067]在步驟S102中,當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份。
[0068]在本發(fā)明實(shí)施例中,可以根據(jù)獲取的腳本鏈表啟動(dòng)安裝過程,這里的安裝過程可以指軟件升級(jí)過程、系統(tǒng)升級(jí)過程等,一般地,在安裝過程中,會(huì)利用升級(jí)腳本替換掉系統(tǒng)中之前安裝的原始腳本的過程,預(yù)設(shè)備份區(qū)域可以指在系統(tǒng)內(nèi)存區(qū)域中預(yù)先劃分的一塊存儲(chǔ)區(qū)域。
[0069]在該步驟中,可以從腳本鏈表中腳本執(zhí)行順序中的第一個(gè)升級(jí)腳本開始,逐一對(duì)升級(jí)腳本對(duì)應(yīng)的原始腳本進(jìn)行備份,由于在實(shí)際的安裝過程中,也是按照腳本執(zhí)行順序逐一獲取腳本鏈表中的升級(jí)腳本,在獲取到升級(jí)腳本后,可能需要?jiǎng)h除掉腳本鏈表中的該獲取的升級(jí)腳本,例如,當(dāng)需要獲取腳本執(zhí)行順序中的第一個(gè)升級(jí)腳本時(shí),在獲取到該第一個(gè)升級(jí)腳本時(shí),可能需要?jiǎng)h除掉腳本鏈表中存儲(chǔ)的第一個(gè)升級(jí)腳本,所以,可能需要在剛剛啟動(dòng)安裝過程時(shí),也就是還未獲取腳本鏈表中的第一個(gè)升級(jí)腳本時(shí),即可首先根據(jù)該第一個(gè)升級(jí)腳本找到與其對(duì)應(yīng)的原始腳本,并將找到的原始腳本進(jìn)行備份。
[0070]在步驟S103中,當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本。
[0071]在本發(fā)明實(shí)施例中,可以在啟動(dòng)安裝過程時(shí),即可創(chuàng)建一個(gè)用于檢測(cè)是否接收到終止升級(jí)命令的線程,用戶可以通過其它控制終端(例如:遙控器)上的按鍵發(fā)送終止升級(jí)命令,也可以通過終端本地的按鍵發(fā)送終止升級(jí)命令,還可以通過手機(jī)或者平板電腦等可以與終端本地進(jìn)行通信連接的設(shè)備發(fā)送終止升級(jí)命令等。
[0072]在該步驟中,可以在接收到終止升級(jí)命令時(shí),記錄接收到終止升級(jí)命令的接收時(shí)刻,然后根據(jù)在接收時(shí)刻安裝過程正在處于什么階段,例如,在某一接收時(shí)刻時(shí),安裝過程正處于剛剛完成第N個(gè)升級(jí)腳本替換掉原始腳本,而且還未進(jìn)行第N+1個(gè)升級(jí)腳本替換原始腳本的過程,這時(shí),可以記錄第N個(gè)升級(jí)腳本,并將該第N個(gè)升級(jí)腳本確定為終止升級(jí)腳本。
[0073]再例如,當(dāng)另一接收時(shí)刻時(shí),安裝過程證處于正在進(jìn)行第M個(gè)升級(jí)腳本替換原始腳本的過程中,則這時(shí)可以等待第M個(gè)升級(jí)腳本替換完原始腳本后,記錄該第M個(gè)升級(jí)腳本,并將該第M個(gè)升級(jí)腳本確定為終止升級(jí)腳本。
[0074]在步驟S104中,將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。
[0075]在該步驟中,假設(shè)終止升級(jí)腳本為腳本執(zhí)行順序中第M個(gè)升級(jí)腳本,則這時(shí)可以將已經(jīng)安裝的、腳本執(zhí)行順序中從第I個(gè)至第M個(gè)升級(jí)腳本還原到安裝前的原始腳本,也就是利用預(yù)設(shè)備份區(qū)域中已備份的原始腳本替換掉已安裝的第I個(gè)至第M個(gè)升級(jí)腳本。
[0076]本發(fā)明可以通過首先獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表,當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),可以對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份,當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本,最后可以將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。
[0077]本發(fā)明實(shí)施例提供的該方法,在升級(jí)過程中,能夠在接收到終止升級(jí)命令時(shí),終止升級(jí)安裝過程,并且能夠?qū)⑾到y(tǒng)還原到升級(jí)前的版本,增加有意及無意升級(jí)時(shí)的可控性,并且通過備份的方法,可以保證終止升級(jí)過程后,系統(tǒng)中原始腳本的完整、有效。
[0078]如圖2所示,在本發(fā)明的又一實(shí)施例中,所述步驟S102包括以下步驟。
[0079]在步驟S201中,按照所述腳本執(zhí)行順序,獲取所述腳本鏈表中每個(gè)所述升級(jí)腳本的腳本信息。
[0080]在本發(fā)明實(shí)施例中,腳本信息可以為可以包含升級(jí)腳本的名稱、屬性等等。
[0081]在步驟S202中,在升級(jí)前的包含所有原始腳本的原始腳本集合中查找與每個(gè)升級(jí)腳本的腳本信息對(duì)應(yīng)的原始腳本。
[0082]在該步驟中,可以根據(jù)升級(jí)腳本的名稱屬性等查找與升級(jí)腳本對(duì)應(yīng)的原始腳本等。
[0083]在步驟S203中,判斷所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本是否不相同。
[0084]在該步驟中,可以將升級(jí)腳本與原始腳本進(jìn)行對(duì)比,判斷二者的大小、二者中的內(nèi)容等是否相同,當(dāng)相同時(shí),可以確定升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本相同,當(dāng)不同時(shí),可以確定升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不同。
[0085]當(dāng)所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不相同時(shí),在步驟S204中,將所述原始腳本備份到預(yù)設(shè)備份區(qū)域。
[0086]本發(fā)明通過首先按照所述腳本執(zhí)行順序,獲取所述腳本鏈表中每個(gè)所述升級(jí)腳本的腳本信息,然后在升級(jí)前的包含所有原始腳本的原始腳本集合中查找與每個(gè)升級(jí)腳本的腳本信息對(duì)應(yīng)的原始腳本,再判斷所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本是否不相同,最后當(dāng)所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不相同時(shí),可以將所述原始腳本備份到預(yù)設(shè)備份區(qū)域。
[0087]本發(fā)明實(shí)施例提供的該方法,能夠通過僅備份與升級(jí)腳本不同的原始腳本,減少備份的原始腳本占用的存儲(chǔ)空間。
[0088]如圖3所示,所述步驟SI 04包括以下步驟。
[0089]在步驟S301中,按照所述腳本執(zhí)行順序判斷在所述預(yù)設(shè)備份區(qū)域中每個(gè)已安裝的升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本。
[0090]在前述實(shí)施例中,由于僅備份與升級(jí)腳本不同的原始腳本,所以在本發(fā)明實(shí)施例中,可以首先判斷升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本,當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),說明升級(jí)腳本與原始腳本不同,那么在還原時(shí)應(yīng)當(dāng)利用原始腳本再替換掉升級(jí)腳本,當(dāng)不存在對(duì)應(yīng)的原始腳本時(shí),則說明升級(jí)腳本與原始腳本相同,這是只需保留升級(jí)腳本即可。
[0091]當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),在步驟S302中,利用所述原始腳本替換掉所述升級(jí)腳本。
[0092]當(dāng)不存在與所述已升級(jí)的升級(jí)腳本對(duì)應(yīng)的原始腳本時(shí),在步驟S303中,保留所述升級(jí)腳本。
[0093]本發(fā)明通過首先按照所述腳本執(zhí)行順序判斷在所述預(yù)設(shè)備份區(qū)域中每個(gè)已安裝的升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本,當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),可以利用所述原始腳本替換掉所述升級(jí)腳本,當(dāng)不存在與所述已升級(jí)的升級(jí)腳本對(duì)應(yīng)的原始腳本時(shí),可以保留所述升級(jí)腳本。
[0094]本發(fā)明實(shí)施例提供的該方法,能夠僅對(duì)與原始腳本不同的升級(jí)腳本進(jìn)行還原,提尚還原效率。
[0095]如圖4所示,在本發(fā)明的一個(gè)實(shí)施例中,所述步驟S103,包括以下步驟。
[0096]在步驟S401中,檢測(cè)當(dāng)前是否存在將原始腳本替換為升級(jí)版本的替換進(jìn)程。
[0097]當(dāng)在終止安裝過程時(shí),可能會(huì)遇到某一個(gè)替換進(jìn)程正在執(zhí)行的過程,這時(shí),如果直接終止該替換進(jìn)程,則可能會(huì)導(dǎo)致腳本發(fā)生錯(cuò)誤,所以這是可以等待該替換進(jìn)程執(zhí)行完畢后再終止安裝過程。
[0098]當(dāng)存在所述替換進(jìn)程時(shí),在步驟S402中,待所述替換進(jìn)程執(zhí)行完畢后終止所述安裝過程。
[0099]本發(fā)明通過檢測(cè)當(dāng)前是否存在將原始腳本替換為升級(jí)版本的替換進(jìn)程,當(dāng)存在所述替換進(jìn)程時(shí),可以待所述替換進(jìn)程執(zhí)行完畢后終止所述安裝過程。
[0100]本發(fā)明實(shí)施例提供的該方法,能夠等待替換進(jìn)程結(jié)束后,再終止安裝過程,避免發(fā)生數(shù)據(jù)腳本發(fā)生錯(cuò)誤,提高備份及還原效率。
[0101]如圖5所示,在本發(fā)明的又一實(shí)施例中,所述方法還包括以下步驟。
[0102]在步驟S501中,按照所述腳本執(zhí)行順序檢測(cè)所述腳本鏈表中是否存在下一個(gè)待安裝的升級(jí)腳本。
[0103]在本發(fā)明實(shí)施例中,在進(jìn)行升級(jí)腳本的安裝時(shí),可以按照腳本執(zhí)行順序逐一獲取腳本鏈表中的升級(jí)腳本。
[0104]當(dāng)存在下一個(gè)待安裝的升級(jí)腳本時(shí),在步驟S502中,從所述腳本鏈表中獲取下一個(gè)待安裝的升級(jí)腳本,并在所述腳本鏈表中刪除所述下一個(gè)待安裝的升級(jí)腳本。
[0105]在步驟S503中,查找與所述下一個(gè)待安裝的升級(jí)腳本對(duì)應(yīng)的原始腳本。
[0106]在步驟S504中,利用所述下一個(gè)待安裝的升級(jí)腳本替換所述原始腳本。
[0107]本發(fā)明通過按照所述腳本執(zhí)行順序檢測(cè)所述腳本鏈表中是否存在下一個(gè)待安裝的升級(jí)腳本,當(dāng)存在下一個(gè)待安裝的升級(jí)腳本時(shí),可以從所述腳本鏈表中獲取下一個(gè)待安裝的升級(jí)腳本,并在所述腳本鏈表中刪除所述下一個(gè)待安裝的升級(jí)腳本,然后查找與所述下一個(gè)待安裝的升級(jí)腳本對(duì)應(yīng)的原始腳本,最后可以利用所述下一個(gè)待安裝的升級(jí)腳本替換所述原始腳本。
[0108]本發(fā)明實(shí)施例提供的該方法,能夠按照腳本執(zhí)行順序自動(dòng)安裝升級(jí)腳本,提供升級(jí)腳本安裝效率。
[0109]如圖6所示,在本公開的又一實(shí)施例中,提供一種升級(jí)控制裝置,包括:第一獲取模塊601、備份模塊602、終止記錄模塊603和還原模塊604。
[0110]第一獲取模塊601,用于獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表。
[0111]備份模塊602,用于當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份。
[0112]終止記錄模塊603,用于當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本。
[0113]還原模塊604,用于將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。
[0114]在本公開的又一實(shí)施例中,所述備份模塊,包括:獲取子模塊、查找子模塊、第一判斷子模塊和備份子模塊。
[0115]獲取子模塊,用于按照所述腳本執(zhí)行順序,獲取所述腳本鏈表中每個(gè)所述升級(jí)腳本的腳本信息。
[0116]查找子模塊,用于在升級(jí)前的包含所有原始腳本的原始腳本集合中查找與每個(gè)升級(jí)腳本的腳本信息對(duì)應(yīng)的原始腳本。
[0117]第一判斷子模塊,用于判斷所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本是否不相同。
[0118]備份子模塊,用于當(dāng)所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不相同時(shí),將所述原始腳本備份到預(yù)設(shè)備份區(qū)域。
[0119]在本公開的又一實(shí)施例中,所述還原模塊,包括:第二判斷子模塊、替換子模塊和保留子t吳塊。
[0120]第二判斷子模塊,用于按照所述腳本執(zhí)行順序判斷在所述預(yù)設(shè)備份區(qū)域中每個(gè)已安裝的升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本。
[0121]替換子模塊,用于當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),利用所述原始腳本替換掉所述升級(jí)腳本。
[0122]保留子模塊,用于當(dāng)不存在與所述已升級(jí)的升級(jí)腳本對(duì)應(yīng)的原始腳本時(shí),保留所述升級(jí)腳本。
[0123]在本公開的又一實(shí)施例中,所述終止記錄模塊,包括:檢測(cè)子模塊和終止子模塊。
[0124]檢測(cè)子模塊,用于檢測(cè)當(dāng)前是否存在將原始腳本替換為升級(jí)版本的替換進(jìn)程。
[0125]終止子模塊,用于當(dāng)存在所述替換進(jìn)程時(shí),待所述替換進(jìn)程執(zhí)行完畢后終止所述安裝過程。
[0126]在本公開的又一實(shí)施例中,所述裝置還包括:檢測(cè)模塊、第二獲取模塊、查找模塊和替換模塊。
[0127]檢測(cè)模塊,按照所述腳本執(zhí)行順序檢測(cè)所述腳本鏈表中是否存在下一個(gè)待安裝的升級(jí)腳本。
[0128]第二獲取模塊,用于當(dāng)存在下一個(gè)待安裝的升級(jí)腳本時(shí),從所述腳本鏈表中獲取下一個(gè)待安裝的升級(jí)腳本,并在所述腳本鏈表中刪除所述下一個(gè)待安裝的升級(jí)腳本。
[0129]查找模塊,用于查找與所述下一個(gè)待安裝的升級(jí)腳本對(duì)應(yīng)的原始腳本。
[0130]替換模塊,用于利用所述下一個(gè)待安裝的升級(jí)腳本替換所述原始腳本。
[0131]本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由所附的權(quán)利要求指出。
[0132]應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。
【主權(quán)項(xiàng)】
1.一種升級(jí)控制方法,其特征在于,包括: 獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表; 當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份; 當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本; 將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。2.根據(jù)權(quán)利要求1所述的升級(jí)控制方法,其特征在于,所述對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份,包括: 按照所述腳本執(zhí)行順序,獲取所述腳本鏈表中每個(gè)所述升級(jí)腳本的腳本信息; 在升級(jí)前的包含所有原始腳本的原始腳本集合中查找與每個(gè)升級(jí)腳本的腳本信息對(duì)應(yīng)的原始腳本; 判斷所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本是否不相同; 當(dāng)所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不相同時(shí),將所述原始腳本備份到預(yù)設(shè)備份區(qū)域。3.根據(jù)權(quán)利要求2所述的升級(jí)控制方法,其特征在于,所述將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本,包括: 按照所述腳本執(zhí)行順序判斷在所述預(yù)設(shè)備份區(qū)域中每個(gè)已安裝的升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本; 當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),利用所述原始腳本替換掉所述升級(jí)腳本; 當(dāng)不存在與所述已升級(jí)的升級(jí)腳本對(duì)應(yīng)的原始腳本時(shí),保留所述升級(jí)腳本。4.根據(jù)權(quán)利要求1所述的升級(jí)控制方法,其特征在于,所述終止所述安裝過程,包括: 檢測(cè)當(dāng)前是否存在將原始腳本替換為升級(jí)版本的替換進(jìn)程; 當(dāng)存在所述替換進(jìn)程時(shí),待所述替換進(jìn)程執(zhí)行完畢后終止所述安裝過程。5.根據(jù)權(quán)利要求1所述的升級(jí)控制方法,其特征在于,所述方法還包括: 按照所述腳本執(zhí)行順序檢測(cè)所述腳本鏈表中是否存在下一個(gè)待安裝的升級(jí)腳本;當(dāng)存在下一個(gè)待安裝的升級(jí)腳本時(shí),從所述腳本鏈表中獲取下一個(gè)待安裝的升級(jí)腳本,并在所述腳本鏈表中刪除所述下一個(gè)待安裝的升級(jí)腳本; 查找與所述下一個(gè)待安裝的升級(jí)腳本對(duì)應(yīng)的原始腳本; 利用所述下一個(gè)待安裝的升級(jí)腳本替換所述原始腳本。6.一種升級(jí)控制裝置,其特征在于,包括: 第一獲取模塊,用于獲取用于存儲(chǔ)預(yù)設(shè)升級(jí)數(shù)據(jù)包中多個(gè)所述升級(jí)腳本以及腳本執(zhí)行順序的腳本鏈表; 備份模塊,用于當(dāng)按照所述腳本執(zhí)行順序開始利用升級(jí)腳本替換原始腳本的安裝過程時(shí),對(duì)與所述腳本鏈表中每個(gè)升級(jí)腳本對(duì)應(yīng)的升級(jí)前的原始腳本在預(yù)設(shè)備份區(qū)域中進(jìn)行備份; 終止記錄模塊,用于當(dāng)接收到所述終止升級(jí)命令時(shí),終止所述安裝過程,并記錄被終止安裝的終止升級(jí)腳本; 還原模塊,用于將在所述腳本執(zhí)行順序中所述終止升級(jí)腳本之前已安裝的多個(gè)升級(jí)腳本還原為所述預(yù)設(shè)備份區(qū)域中對(duì)應(yīng)的原始腳本。7.根據(jù)權(quán)利要求6所述的升級(jí)控制裝置,其特征在于,所述備份模塊,包括: 獲取子模塊,用于按照所述腳本執(zhí)行順序,獲取所述腳本鏈表中每個(gè)所述升級(jí)腳本的腳本信息; 查找子模塊,用于在升級(jí)前的包含所有原始腳本的原始腳本集合中查找與每個(gè)升級(jí)腳本的腳本信息對(duì)應(yīng)的原始腳本; 第一判斷子模塊,用于判斷所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本是否不相同; 備份子模塊,用于當(dāng)所述升級(jí)腳本和與該升級(jí)腳本對(duì)應(yīng)的原始腳本不相同時(shí),將所述原始腳本備份到預(yù)設(shè)備份區(qū)域。8.根據(jù)權(quán)利要求7所述的升級(jí)控制裝置,其特征在于,所述還原模塊,包括: 第二判斷子模塊,用于按照所述腳本執(zhí)行順序判斷在所述預(yù)設(shè)備份區(qū)域中每個(gè)已安裝的升級(jí)腳本是否存在對(duì)應(yīng)的原始腳本; 替換子模塊,用于當(dāng)存在對(duì)應(yīng)的原始腳本時(shí),利用所述原始腳本替換掉所述升級(jí)腳本;保留子模塊,用于當(dāng)不存在與所述已升級(jí)的升級(jí)腳本對(duì)應(yīng)的原始腳本時(shí),保留所述升級(jí)腳本。9.根據(jù)權(quán)利要求6所述的升級(jí)控制裝置,其特征在于,所述終止記錄模塊,包括: 檢測(cè)子模塊,用于檢測(cè)當(dāng)前是否存在將原始腳本替換為升級(jí)版本的替換進(jìn)程; 終止子模塊,用于當(dāng)存在所述替換進(jìn)程時(shí),待所述替換進(jìn)程執(zhí)行完畢后終止所述安裝過程。10.根據(jù)權(quán)利要求6所述的升級(jí)控制裝置,其特征在于,所述裝置還包括: 檢測(cè)模塊,按照所述腳本執(zhí)行順序檢測(cè)所述腳本鏈表中是否存在下一個(gè)待安裝的升級(jí)腳本; 第二獲取模塊,用于當(dāng)存在下一個(gè)待安裝的升級(jí)腳本時(shí),從所述腳本鏈表中獲取下一個(gè)待安裝的升級(jí)腳本,并在所述腳本鏈表中刪除所述下一個(gè)待安裝的升級(jí)腳本; 查找模塊,用于查找與所述下一個(gè)待安裝的升級(jí)腳本對(duì)應(yīng)的原始腳本; 替換模塊,用于利用所述下一個(gè)待安裝的升級(jí)腳本替換所述原始腳本。
【文檔編號(hào)】H04N21/458GK105872778SQ201610196748
【公開日】2016年8月17日
【申請(qǐng)日】2016年3月31日
【發(fā)明人】胡強(qiáng)
【申請(qǐng)人】樂視控股(北京)有限公司, 樂視致新電子科技(天津)有限公司