本發(fā)明屬于智能終端技術領域,尤其涉及一種升級異常修復方法、升級異常修復裝置、智能終端及計算機可讀存儲介質。
背景技術:
市面上的基于聯(lián)發(fā)科(mediatek,mtk)平臺的智能終端在使用空中下載技術(overtheair,ota)進行升級時,通常會對分區(qū)表進行寫入操作,寫入一些標志位。但在進行ota升級的過程中,有時會出現對分區(qū)表進行寫入操作后,分區(qū)表被錯誤地寫入了一些隨機數字的情況。在這種情況下,智能終端會因為在開機時無法加載到正確的分區(qū)表而導致無法開機,影響智能終端的正常工作。
技術實現要素:
有鑒于此,本發(fā)明提供了一種升級異常修復方法、升級異常修復裝置、智能終端及計算機可讀存儲介質,旨在解決智能終端在進行升級時發(fā)生的分區(qū)表異常寫入的問題,保護智能終端升級時的分區(qū)表的數據的安全。
本發(fā)明第一方面提供了一種升級異常修復方法,上述升級異常修復方法包括:
當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息,其中,保存的上述升級前分區(qū)信息在升級時不會發(fā)生更改;
在基于上述升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息;
當本次對上述主分區(qū)表進行的寫入操作完成時,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取信息;
檢測上述目標寫入信息及上述目標讀取信息是否存在差異;
若上述目標寫入信息及上述目標讀取信息存在差異,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息。
基于本發(fā)明第一方面,在第一種可能的實現方式中,上述升級異常修復方法還包括:
在智能終端初次啟動時,保存上述主分區(qū)表中的數據,作為原始分區(qū)信息,其中,保存的上述原始分區(qū)信息在升級時不會發(fā)生更改;
上述檢測上述目標寫入信息及上述目標讀取信息是否存在差異,之后還包括:
若上述目標寫入信息及上述目標讀取信息不存在差異,則檢測比對差異是否超出預設的差異范圍,上述比對差異為將上述原始分區(qū)信息及上述目標讀取信息進行比對后所得差異;
若上述比對差異超出上述預設的差異范圍,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息。
基于本發(fā)明第一方面的第一種可能的實現方式,在第二種可能的實現方式中,上述檢測比對差異是否超出上述預設的差異范圍,包括:
將上述原始分區(qū)信息存入第一緩沖區(qū),將上述目標讀取信息存入第二緩沖區(qū);
分別比對上述第一緩沖區(qū)與上述第二緩沖區(qū)的各個相應位置的數據是否存在差異;
若所有存在差異的位置均為預設的差異位置,則確定上述比對差異未超出上述預設的差異范圍;
若出現有存在差異的位置不為預設的差異位置,則確定上述比對差異超出上述預設的差異范圍。
基于本發(fā)明第一方面,或者本發(fā)明第一方面的第一種可能的實現方式,或者本發(fā)明第一方面的第二種可能的實現方式,在第三種可能的實現方式中,上述將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息之后,或者,若上述比對差異未超出上述預設的差異范圍,則上述升級異常修復方法還包括:
基于當前上述主分區(qū)表中的數據觸發(fā)智能終端啟動。
基于本發(fā)明第一方面,或者本發(fā)明第一方面的第一種可能的實現方式,或者本發(fā)明第一方面的第二種可能的實現方式,在第四種可能的實現方式中,上述保存升級前主分區(qū)表中的數據,包括:
獲取升級前上述主分區(qū)表中的數據;
將升級前上述主分區(qū)表中的數據保存至私有分區(qū)表中,其中,上述私有分區(qū)表中的數據在升級時不會發(fā)生更改。
本發(fā)明第二方面提供了一種升級異常修復裝置,上述升級異常修復裝置包括:
升級前分區(qū)信息保存單元,用于當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息,其中,保存的上述升級前分區(qū)信息在升級時不會發(fā)生更改;
目標寫入信息獲取單元,用于在基于上述升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息;
目標讀取信息獲取單元,用于當本次對上述主分區(qū)表進行的寫入操作完成時,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取信息;
第一差異檢測單元,用于檢測上述目標寫入信息獲取單元獲取到的目標寫入信息及上述目標讀取信息獲取單元獲取到的目標讀取信息是否存在差異;
數據修復單元,用于若上述第一差異檢測單元檢測到上述目標寫入信息及上述目標讀取信息存在差異,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息保存單元保存的升級前分區(qū)信息。
基于本發(fā)明第二方面,在第一種可能的實現方式中,上述升級異常修復裝置還包括:
原始分區(qū)信息保存單元,用于在智能終端初次啟動時,保存上述主分區(qū)表中的數據,作為原始分區(qū)信息,其中,保存的上述原始分區(qū)信息在升級時不會發(fā)生更改;
第二差異檢測單元,用于若上述第一差異檢測單元檢測到上述目標寫入信息及上述目標讀取信息不存在差異,則檢測比對差異是否超出預設的差異范圍,上述比對差異為將上述原始分區(qū)信息保存單元保存的原始分區(qū)信息及上述目標讀取信息獲取單元獲取到的目標讀取信息進行比對后所得差異;
上述數據修復單元,還用于若上述第二差異檢測單元檢測到上述比對差異超出上述預設的差異范圍,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息保存單元保存的升級前分區(qū)信息。
基于本發(fā)明第二方面的第一種可能的實現方式,在第二種可能的實現方式中,上述第二差異檢測單元,包括:
信息緩沖子單元,用于將上述原始分區(qū)信息存入第一緩沖區(qū),將上述目標讀取信息存入第二緩沖區(qū);
信息比對子單元,用于分別比對上述第一緩沖區(qū)與上述第二緩沖區(qū)的各個相應位置的數據是否存在差異;
檢測結果確定子單元,用于若所有存在差異的位置均為預設的差異位置,則確定上述比對差異未超出上述預設的差異范圍,若出現有存在差異的位置不為預設的差異位置,則確定上述比對差異超出上述預設的差異范圍。
基于本發(fā)明第二方面,或者本發(fā)明第二方面的第一種可能的實現方式,或者本發(fā)明第二方面的第二種可能的實現方式,在第三種可能的實現方式中,上述升級異常修復裝置還包括:
終端啟動單元,用于在將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息之后,或者,若上述比對差異未超出上述預設的差異范圍,則基于當前上述主分區(qū)表中的數據觸發(fā)智能終端啟動。
基于本發(fā)明第二方面,或者本發(fā)明第二方面的第一種可能的實現方式,或者本發(fā)明第二方面的第二種可能的實現方式,在第四種可能的實現方式中,上述升級前分區(qū)信息保存單元包括:
升級前分區(qū)信息獲取子單元,用于獲取升級前上述主分區(qū)表中的數據;
升級前分區(qū)信息存入子單元,用于將升級前上述主分區(qū)表中的數據保存至私有分區(qū)表中,其中,上述私有分區(qū)表中的數據在升級時不會發(fā)生更改。
本發(fā)明第三方面提供了一種智能終端,包括存儲器,處理器及存儲在存儲器上并可在處理器上運行的計算機程序,上述處理器執(zhí)行上述計算機程序時實現上述第一方面或者上述第一方面的任一可能實現方式中提及的升級異常修復方法。
本發(fā)明第四方面提供一種計算機可讀存儲介質,該計算機可讀存儲介質上存儲有計算機程序,上述計算機程序被處理器執(zhí)行時實現上述第一方面或者上述第一方面的任一可能實現方式中提及的升級異常修復方法。
由上可見,通過本發(fā)明方案,當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息,其中,保存的上述升級前分區(qū)信息在升級時不會發(fā)生更改,在基于上述升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息,并在本次對上述主分區(qū)表進行的寫入操作完成時,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取信息,隨后檢測上述目標寫入信息及上述目標讀取信息是否存在差異,若上述目標寫入信息及上述目標讀取信息存在差異,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息。本發(fā)明方案通過對升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據進行比對及判斷,能夠快速獲知智能終端的主分區(qū)表在升級過程中是否發(fā)生數據異常,并在發(fā)生數據異常時,通過將主分區(qū)表中的數據還原為預先保存的智能終端能夠正常運行時的主分區(qū)表的數據,實現升級異常的快速修復,保護分區(qū)表的數據的安全。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發(fā)明提供的升級異常修復方法一個實施例實現流程示意圖;
圖2是本發(fā)明提供的升級異常修復方法另一個實施例實現流程示意圖;
圖3是本發(fā)明提供的升級異常修復方法步驟s206的具體實現流程示意圖;
圖4是本發(fā)明提供的升級異常修復裝置一個實施例結構示意圖;
圖5是本發(fā)明提供的智能終端一個實施例結構示意圖。
具體實施方式
以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結構、技術之類的具體細節(jié),以便透徹理解本發(fā)明實施例。然而,本領域的技術人員應當清楚,在沒有這些具體細節(jié)的其它實施例中也可以實現本發(fā)明。在其它情況中,省略對眾所周知的系統(tǒng)、裝置、電路以及方法的詳細說明,以免不必要的細節(jié)妨礙本發(fā)明的描述。
為了說明本發(fā)明所述的技術方案,下面通過具體實施例來進行說明。
實施例一
下面對本發(fā)明實施例提供的一種升級異常修復方法進行描述,請參閱圖1,本發(fā)明實施例中的升級異常修復方法包括:
在步驟s101中,當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息;
在本發(fā)明實施例中,基于mtk平臺的智能終端可以在用戶輸入的升級指令的指示下進行升級操作;或者,在步驟s101中,上述升級指令也可以是由智能終端的操作系統(tǒng)周期性生成的,例如,設定每月的一號由上述智能終端的操作系統(tǒng)自動檢測是否能夠進行升級,并在能夠進行升級時生成升級指令并基于上述升級指令進行升級操作;又或者,在步驟s101中,還可以是當智能終端檢測到當前存在用于進行升級的升級文件時,生成升級指令并基于上述升級指令進行升級操作,此處不作限定。當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息,其中,保存的上述升級前分區(qū)信息在升級時不會發(fā)生更改。雖然智能終端會自動將主分區(qū)表中的數據在備份分區(qū)表中進行備份,但在進行升級操作時,主分區(qū)表及備份分區(qū)表均會進行讀寫操作,即備份分區(qū)表中的數據在進行了升級操作后,也可能會發(fā)生數據異常,主分區(qū)表即便基于備份分區(qū)表進行了數據的還原操作,也無法獲得正確的分區(qū)表的數據。因而,為了確保上述升級前分區(qū)信息在升級時不會發(fā)生更改,上述步驟s101可以具體表現為:在接收到升級指令時,獲取升級前上述主分區(qū)表中的數據;將升級前上述主分區(qū)表中的數據保存至私有分區(qū)表中。上述私有分區(qū)表為智能終端的廠商設置的分區(qū)表,可以使得智能終端保存各自廠商的特有參數,例如校準參數等,通常情況下,智能終端的廠商對上述私有分區(qū)表設置了保護機制,使得智能終端在進行升級時不會對上述私有分區(qū)表中的數據進行更改?;蛘?,上述步驟s101還可以具體表現為:在接收到升級指令時,獲取升級前上述主分區(qū)表中的數據;將升級前上述主分區(qū)表中的數據保存至云端服務器中。當然,還可以通過其他方式保存上述升級前分區(qū)信息,此處不作限定。
在步驟s102中,在基于上述升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息;
在本發(fā)明實施例中,在基于步驟s101中獲得的升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息。由于每次升級都必然會對主分區(qū)表進行寫入操作,為了確定上述寫入操作是有效的,在進行上述寫入操作前,可以獲取準備寫入上述主分區(qū)表的數據,即獲取本次待寫入主分區(qū)表的數據。可選地,由于對上述主分區(qū)表進行寫入操作時,通常不會對上述主分區(qū)表的全部位置的數據進行改寫,因而,此處可以是僅獲取主分區(qū)表中,本次實際準備寫入的數據及各實際準備寫入的數據在主分區(qū)表中的對應位置信息,即此時,對主分區(qū)表進行寫入操作的方式為局部覆蓋;或者,在步驟s102中,上述目標寫入信息也可以覆蓋主分區(qū)表的全部位置,即對于主分區(qū)表的全部位置的數據,均有對應的準備寫入的數據,對于那些實際不應該被改寫的位置,該位置的原數據與對應的準備寫入的數據相等。在此過程中,由于主分區(qū)表的各個位置都會進行寫入操作,因而此時不再需要查找實際準備寫入的數據在主分區(qū)表中的對應位置信息,而是直接將整個主分區(qū)表的數據替換為目標寫入信息即可,即此時,對主分區(qū)表進行寫入操作的方式為全部覆蓋。當然,還可以以其它方式獲取本次升級準備寫入上述主分區(qū)表的數據,此處不作限定。
在步驟s103中,當本次對上述主分區(qū)表進行的寫入操作完成時,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取信息;
在本發(fā)明實施例中,當本次對上述主分區(qū)表進行的寫入操作完成時,根據本次升級對主分區(qū)表進行的寫入操作的方式,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取數據??蛇x地,若本次寫入操作為局部覆蓋,則在本次寫入操作完成時,查找上述主分區(qū)表中實際進行了寫入操作的位置,并讀取這些位置的數據,作為目標讀取信息;或者,在步驟s103中,若本次寫入操作為全部覆蓋,則完整讀取上述主分區(qū)表中的所有位置的數據,作為目標讀取信息。當然,還可以以其他方式獲取本次寫入上述主分區(qū)表的數據,此處不作限定。
在步驟s104中,檢測上述目標寫入信息及上述目標讀取信息是否存在差異;
在步驟s105中,若上述目標寫入信息及上述目標讀取信息存在差異,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息。
在本發(fā)明實施例中,檢測上述步驟s102獲得的目標寫入數據及上述步驟s103獲得的目標讀取數據是否存在差異。若對主分區(qū)表進行的寫入操作及讀取操作均未發(fā)生異常,則上述目標寫入信息必然與上述讀取信息相等。因而此處通過檢測上述目標寫入信息及上述目標讀取信息是否存在差異來判斷升級后的主分區(qū)表的數據是否異常。若上述目標寫入信息及上述目標讀取信息存在差異,則表明對上述主分區(qū)表進行的寫入操作和/或讀取操作中,存在誤操作的情況。此時若對主分區(qū)表進行加載,很可能無法加載到正確的主分區(qū)表的數據。為了修復上述主分區(qū)表可能存在的異常情況,將上述主分區(qū)表中的數據替換為升級過程中不會發(fā)生更改的上述升級前分區(qū)信息。若上述目標寫入信息及上述目標讀取信息不存在差異,則此時可以基于當前上述主分區(qū)表中的數據觸發(fā)智能終端啟動。
由上可見,通過本發(fā)明實施例,在智能終端進行了升級后,對升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據進行比對及判斷,能夠快速獲知智能終端的主分區(qū)表在升級過程中是否發(fā)生數據異常,并在發(fā)生數據異常時,通過將主分區(qū)表中的數據還原為預先保存的智能終端能夠正常運行時的主分區(qū)表的數據,實現升級異常的快速修復,保護分區(qū)表的數據的安全。
應理解,上述實施例中各步驟的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應以其功能和內在邏輯確定,而不應對本發(fā)明實施例的實施過程構成任何限定。
實施例二
在上述實施例一的基礎上,下面對本發(fā)明實施例提供的另一升級異常修復方法進行描述,請參閱圖2,本發(fā)明實施例中的升級異常修復方法包括:
在步驟s201中,在智能終端初次啟動時,保存上述主分區(qū)表中的數據,作為原始分區(qū)信息;
在本發(fā)明實施例中,在智能終端初次啟動時,由于上述智能終端中的數據還未被用戶所更改,且智能終端也未進行過升級操作,也即是說,此時智能終端中的數據仍為出廠時由智能終端的廠商設置的原始數據。因此,可以將上述原始分區(qū)信息作為后續(xù)檢驗主分區(qū)表中的數據是否正常的一個參考。需要注意的是,上述保存的上述原始分區(qū)信息在升級時不會發(fā)生更改,具體地,可以參考上述步驟s101的描述,以保存上述升級前分區(qū)信息時采用的類似的方式保存上述原始分區(qū)信息。
在步驟s202中,當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息;
在本發(fā)明實施例中,上述步驟s202與上述步驟s101相同,具體可參見步驟s101的相關描述,在此不再贅述。
在步驟s203中,在基于上述升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息;
在本發(fā)明實施例中,上述步驟s203與上述步驟s102相同,具體可參見步驟s102的相關描述,在此不再贅述。
在步驟s204中,當本次對上述主分區(qū)表進行的寫入操作完成時,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取信息;
在本發(fā)明實施例中,上述步驟s204與上述步驟s103相同,具體可參見步驟s103的相關描述,在此不再贅述。
在步驟s205中,檢測上述目標寫入信息及上述目標讀取信息是否存在差異,若是,則執(zhí)行步驟s207,若否,則執(zhí)行步驟s206;
在本發(fā)明實施例中,檢測上述步驟s203獲得的目標寫入數據及上述步驟s204獲得的目標讀取數據是否存在差異。若對主分區(qū)表進行的寫入操作及讀取操作均未發(fā)生異常,則上述目標寫入信息必然與上述讀取信息相等。因而此處通過當檢測到上述目標寫入信息必然與上述讀取信息存在異常時可以立刻確定升級過程中主分區(qū)表發(fā)生了異常。但實際上,即便上述目標寫入信息與上述目標讀取數據不存在差異,上述主分區(qū)表仍有存在異常寫入的可能性,例如,若在寫入時,主分區(qū)表中的第一位的數據原本為“1”,本不應該被修改,因而準備寫入上述第一位的數據也為“1”,但由于寫入時發(fā)生了錯誤,導致上述第一位的數據被改寫為了“0”,而在讀取上述主分區(qū)表中的數據時,又發(fā)生了讀取錯誤,導致讀取到的上述第一位的數據為“1”。此時,獲取到的上述準備寫入第一位的數據與讀取到的第一位的數據雖然沒有差異,但實際上,主分區(qū)表中已經被改寫為錯誤的數據。為了避免出現上述情況,可以在檢測到上述目標寫入信息及上述目標讀取信息不存在差異時,進行進一步地檢測,以確保主分區(qū)表中的數據準確。
在步驟s206中,檢測比對差異是否超出預設的差異范圍,若是,則執(zhí)行步驟s207,若否,則執(zhí)行步驟s208;
在本發(fā)明實施例中,上述比對差異為將上述原始分區(qū)信息及上述目標讀取信息進行比對后所得差異。由于上述原始分區(qū)信息為智能終端出廠時的原始的數據,在本次進行了升級后,必然會對上述智能終端的主分區(qū)表的數據進行更改,也即是說,上述原始分區(qū)信息必然會與上述目標讀取信息存在差異。因此,在本步驟中,可以檢測上述比對差異是否超出預設的差異范圍,若超過了預設的差異范圍,則確認在本次升級過程中主分區(qū)表的數據很可能存在異常,若未超過預設的差異范圍,則確認主分區(qū)表中的數據是正確的。
在步驟s207中,將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息;
在本發(fā)明實施例中,當步驟s206中檢測到上述比對差異超過了預設的差異范圍時,則確認在本次升級過程中主分區(qū)表的數據存在異常,此時若對主分區(qū)表進行加載,會出現無法加載到正確的主分區(qū)表的數據的情況。為了修復上述主分區(qū)表的異常情況,將當前上述主分區(qū)表中的數據替換為升級過程中不會發(fā)生更改的上述升級前分區(qū)信息。
在步驟s208中,基于當前上述主分區(qū)表中的數據觸發(fā)智能終端啟動。
在本發(fā)明實施例中,若已經通過步驟s205確定了上述目標寫入信息與上述目標讀取信息不存在差異,而且還通過步驟s206確定了上述原始分區(qū)信息及上述目標讀取信息的差異在預設的差異范圍內,則此時可以確認上述主分區(qū)表中的數據是正確的?;蛘?,若已經通過上述步驟s207將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息,則此時也可以確認上述主分區(qū)表中的數據是正確的。至此,本次升級操作或升級時的異常修復操作已全部完成,可以基于當前上述主分區(qū)表中的數據觸發(fā)智能終端啟動。
進一步地,圖3示出了上述步驟s206的具體實現流程,詳述如下:
在步驟s301中,將上述原始分區(qū)信息存入第一緩沖區(qū),將上述目標讀取信息存入第二緩沖區(qū);
在本發(fā)明實施例中,可以將步驟s201獲取到的上述原始分區(qū)信息存入第一緩沖區(qū),將步驟s204獲取到的上述原目標讀取信息存入第二緩沖區(qū),等待進行比對操作。
在步驟s302中,分別比對上述第一緩沖區(qū)與上述第二緩沖區(qū)的各個相應位置的數據是否存在差異;
在步驟s303中,若所有存在差異的位置均為預設的差異位置,則確定上述比對差異未超出上述預設的差異范圍;
在步驟s304中,若出現有存在差異的位置不為預設的差異位置,則確定上述比對差異超出上述預設的差異范圍。
在本發(fā)明實施例中,上述預設的差異位置為開發(fā)人員已知的智能終端的主分區(qū)表在升級時會產生差異的位置,也即是,上述預設的差異位置所發(fā)生的數據改寫是受升級操作控制的正常差異。通過檢驗上述第一緩沖區(qū)與上述第二緩沖區(qū)的各個相應位置的數據是否存在差異,可以獲取到所有存在差異的位置。若所有這些存在差異的位置均為預設的差異位置,則確定上述比對差異未超出上述預設的差異范圍,即上述比對差異在升級時的合理范圍內;反之,若所有存在差異的位置中,一旦出現有一個以上存在差異的位置不為預設的差異位置,則確定上述比對差異超出了預設的差異范圍,即上述比對差異已超出了升級時的合理范圍。
由上可見,通過本發(fā)明實施例,在智能終端進行了升級后,對升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據進行比對及判斷,能夠初步篩選出升級時因讀/寫主分區(qū)表的數據時發(fā)生了誤操作而產生的數據異常情況,進一步地,當升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據完全一致時,本發(fā)明實施例還通過檢測智能終端出廠時的主分區(qū)表數據與升級后從主分區(qū)表讀取到的數據之間的差異是否在合理范圍內,確定是否存在因讀寫主分區(qū)表的數據均發(fā)生了誤操作而導致的初步檢測時沒有檢測到的數據異常情況,提高了升級時對數據異常檢測的準確性,能夠更好的保護分區(qū)表的數據的安全。
應理解,上述實施例中各步驟的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應以其功能和內在邏輯確定,而不應對本發(fā)明實施例的實施過程構成任何限定。
實施例三
本發(fā)明實施例還提供一種升級異常修復裝置,如圖4所示,本發(fā)明實施例中的升級異常處理裝置400包括:
升級前分區(qū)信息保存單元401,用于當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息,其中,保存的上述升級前分區(qū)信息在升級時不會發(fā)生更改;
目標寫入信息獲取單元402,用于在基于上述升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息;
目標讀取信息獲取單元403,用于當本次對上述主分區(qū)表進行的寫入操作完成時,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取信息;
第一差異檢測單元404,用于檢測上述目標寫入信息獲取單元402獲取到的目標寫入信息及上述目標讀取信息獲取單元403獲取到的目標讀取信息是否存在差異;
數據修復單元405,用于若上述第一差異檢測單元404檢測到上述目標寫入信息及上述目標讀取信息存在差異,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息保存單元保存的升級前分區(qū)信息。
可選地,上述升級異常修復裝置400還包括:
原始分區(qū)信息保存單元,用于在智能終端初次啟動時,保存上述主分區(qū)表中的數據,作為原始分區(qū)信息,其中,保存的上述原始分區(qū)信息在升級時不會發(fā)生更改;
第二差異檢測單元,用于若上述第一差異檢測單元404檢測到上述目標寫入信息及上述目標讀取信息不存在差異,則檢測比對差異是否超出預設的差異范圍,上述比對差異為將上述原始分區(qū)信息保存單元保存的原始分區(qū)信息及上述目標讀取信息獲取單元獲取到的目標讀取信息進行比對后所得差異;
上述數據修復單元,還用于若上述第二差異檢測單元檢測到上述比對差異超出上述預設的差異范圍,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息保存單元保存的升級前分區(qū)信息。
可選地,上述第二差異檢測單元,包括:
信息緩沖子單元,用于將上述原始分區(qū)信息存入第一緩沖區(qū),將上述目標讀取信息存入第二緩沖區(qū);
信息比對子單元,用于分別比對上述第一緩沖區(qū)與上述第二緩沖區(qū)的各個相應位置的數據是否存在差異;
檢測結果確定子單元,用于若所有存在差異的位置均為預設的差異位置,則確定上述比對差異未超出上述預設的差異范圍,若出現有存在差異的位置不為預設的差異位置,則確定上述比對差異超出上述預設的差異范圍。
可選地,上述升級前分區(qū)信息保存單元401包括:
升級前分區(qū)信息獲取子單元,用于獲取升級前上述主分區(qū)表中的數據;
升級前分區(qū)信息存入子單元,用于將升級前上述主分區(qū)表中的數據保存至私有分區(qū)表中,其中,上述私有分區(qū)表中的數據在升級時不會發(fā)生更改。
可選地,上述升級異常修復裝置400還包括:
終端啟動單元,用于在將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息之后,或者,若上述比對差異未超出上述預設的差異范圍,則基于當前上述主分區(qū)表中的數據觸發(fā)智能終端啟動。
由上可見,通過本發(fā)明實施例,升級異常修復裝置能夠在智能終端進行了升級后,對升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據進行比對及判斷,能夠初步篩選出升級時因讀/寫主分區(qū)表的數據時發(fā)生了誤操作而產生的數據異常情況,進一步地,當升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據完全一致時,升級異常修復裝置還能通過第二差異檢測單元檢測智能終端出廠時的主分區(qū)表數據與升級后從主分區(qū)表讀取到的數據之間的差異是否在合理范圍內,以此確定是否存在因讀寫主分區(qū)表的數據均發(fā)生了誤操作而導致的初步檢測時沒有檢測到的數據異常情況,提高了升級時對數據異常檢測的準確性,能夠更好的保護分區(qū)表的數據的安全。
實施例四
本發(fā)明實施例提供一種智能終端,請參閱圖5,本發(fā)明實施例中的智能終端包括:存儲器501,一個或多個處理器502(圖5中僅示出一個)及存儲在存儲器501上并可在處理器上運行的計算機程序。其中:存儲器501用于存儲軟件程序以及模塊,處理器502通過運行存儲在存儲器501的軟件程序以及單元,從而執(zhí)行各種功能應用以及數據處理,以獲取上述預設事件對應的資源。具體地,處理器502通過運行存儲在存儲器501的上述計算機程序時實現以下步驟:
當接收到升級指令時,保存升級前主分區(qū)表中的數據,作為升級前分區(qū)信息,其中,保存的上述升級前分區(qū)信息在升級時不會發(fā)生更改;
在基于上述升級指令對上述主分區(qū)表進行寫入操作前,獲取準備寫入上述主分區(qū)表的數據,作為目標寫入信息;
當本次對上述主分區(qū)表進行的寫入操作完成時,獲取本次寫入上述主分區(qū)表中的數據,作為目標讀取信息;
檢測上述目標寫入信息及上述目標讀取信息是否存在差異;
若上述目標寫入信息及上述目標讀取信息存在差異,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息。
假設上述為第一種可能的實施方式,則在第一種可能的實施方式作為基礎而提供的第二種可能的實施方式中,處理器502通過運行存儲在存儲器501的上述計算機程序時還實現以下步驟:
在智能終端初次啟動時,保存上述主分區(qū)表中的數據,作為原始分區(qū)信息,其中,保存的上述原始分區(qū)信息在升級時不會發(fā)生更改;
上述檢測上述目標寫入信息及上述目標讀取信息是否存在差異,之后還包括:
若上述目標寫入信息及上述目標讀取信息不存在差異,則檢測比對差異是否超出預設的差異范圍,上述比對差異為將上述原始分區(qū)信息及上述目標讀取信息進行比對后所得差異;
若上述比對差異超出上述預設的差異范圍,則將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息。
在上述第二種可能的實施方式作為基礎而提供的第三種可能的實施方式中,上述檢測比對差異是否超出上述預設的差異范圍,包括:
將上述原始分區(qū)信息存入第一緩沖區(qū),將上述目標讀取信息存入第二緩沖區(qū);
分別比對上述第一緩沖區(qū)與上述第二緩沖區(qū)的各個相應位置的數據是否存在差異;
若所有存在差異的位置均為預設的差異位置,則確定上述比對差異未超出上述預設的差異范圍;
若出現有存在差異的位置不為預設的差異位置,則確定上述比對差異超出上述預設的差異范圍。
在上述第一種可能的實施方式作為基礎或上述第二種可能的實施方式作為基礎或第三種可能的實施方式作為基礎而提供的第四種可能的實施方式中,上述將當前上述主分區(qū)表中的數據替換為上述升級前分區(qū)信息之后,或者,若上述比對差異未超出上述預設的差異范圍,處理器502通過運行存儲在存儲器501的上述計算機程序時還實現以下步驟:
基于當前上述主分區(qū)表中的數據觸發(fā)智能終端啟動。
在上述第一種可能的實施方式作為基礎或上述第二種可能的實施方式作為基礎或第三種可能的實施方式作為基礎而提供的第五種可能的實施方式中,上述保存升級前主分區(qū)表中的數據,包括:
獲取升級前上述主分區(qū)表中的數據;
將升級前上述主分區(qū)表中的數據保存至私有分區(qū)表中,其中,上述私有分區(qū)表中的數據在升級時不會發(fā)生更改。
進一步,如圖5所示,上述智能終端還可包括:一個或多個輸入設備503(圖5中僅示出一個)和一個或多個輸出設備504(圖4中僅示出一個)。存儲器501、處理器502、輸入設備503和輸出設備504通過總線505連接。
應當理解,在本發(fā)明實施例中,所稱處理器502可以是中央處理單元(centralprocessingunit,cpu),該處理器還可以是其他通用處理器、數字信號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
輸入設備503可以包括鍵盤、觸控板、指紋采傳感器(用于采集用戶的指紋信息和指紋的方向信息)、麥克風等,輸出設備504可以包括顯示器、揚聲器等。
存儲器501可以包括只讀存儲器和隨機存取存儲器,并向處理器502提供指令和數據。存儲器501的一部分或全部還可以包括非易失性隨機存取存儲器。例如,存儲器501還可以存儲設備類型的信息。
由上可見,通過本發(fā)明實施例,智能終端在進行了升級后,將對升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據進行比對及判斷,能夠初步篩選出升級時因讀/寫主分區(qū)表的數據時發(fā)生了誤操作而產生的數據異常情況,進一步地,當升級前待寫入主分區(qū)表的數據及升級后從主分區(qū)表讀取到的數據完全一致時,還能檢測智能終端出廠時的主分區(qū)表數據與升級后從主分區(qū)表讀取到的數據之間的差異是否在合理范圍內,以此確定是否存在因讀寫主分區(qū)表的數據均發(fā)生了誤操作而導致的初步檢測時沒有檢測到的數據異常情況,提高了升級時對數據異常檢測的準確性,能夠更好的保護分區(qū)表的數據的安全。
所屬領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能單元、模塊完成,即將上述裝置的內部結構劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。另外,各功能單元、模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本申請的保護范圍。上述系統(tǒng)中單元、模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述或記載的部分,可以參見其它實施例的相關描述。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發(fā)明的范圍。
在本發(fā)明所提供的實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,上述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
上述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
上述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明實現上述實施例方法中的全部或部分流程,也可以通過計算機程序來指令相關的硬件來完成,上述的計算機程序可存儲于一計算機可讀存儲介質中,該計算機程序在被處理器執(zhí)行時,可實現上述各個方法實施例的步驟。其中,上述計算機程序包括計算機程序代碼,上述計算機程序代碼可以為源代碼形式、對象代碼形式、可執(zhí)行文件或某些中間形式等。上述計算機可讀介質可以包括:能夠攜帶上述計算機程序代碼的任何實體或裝置、記錄介質、u盤、移動硬盤、磁碟、光盤、計算機存儲器、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、電載波信號、電信信號以及軟件分發(fā)介質等。需要說明的是,上述計算機可讀介質包含的內容可以根據司法管轄區(qū)內立法和專利實踐的要求進行適當的增減,例如在某些司法管轄區(qū),根據立法和專利實踐,計算機可讀介質不包括是電載波信號和電信信號。
以上上述實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍,均應包含在本發(fā)明的保護范圍之內。