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