本發(fā)明涉及通信技術(shù),尤其涉及一種安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法及終端。
背景技術(shù):
安卓操作系統(tǒng)是以Linux為基礎(chǔ)的開源操作系統(tǒng),可以應(yīng)用于手機、電視、機頂盒等終端中。在基于安卓操作系統(tǒng)的終端中包括一個應(yīng)用分區(qū),該應(yīng)用分區(qū)用于存儲終端廠家所預(yù)裝的系統(tǒng)應(yīng)用程序、定制軟件等。應(yīng)用分區(qū)一般都設(shè)置為只讀分區(qū),用以保證終端廠商預(yù)裝的軟件不被修改。但是部分用戶可以通過獲取系統(tǒng)的Root權(quán)限,即超級管理員權(quán)限來對應(yīng)用分區(qū)的內(nèi)容進(jìn)行刪除、替換等操作,導(dǎo)致終端廠商的利益被損害。
現(xiàn)有技術(shù)中,安卓操作系統(tǒng)內(nèi)部會通過設(shè)置盡量多的門檻來盡量避免用戶獲取Root權(quán)限,進(jìn)而避免基于安卓操作系統(tǒng)的終端的應(yīng)用分區(qū)中的所保存的內(nèi)容不被修改。
但是,由于安卓操作系統(tǒng)為開源操作系統(tǒng),部分用戶可以通過分析源代碼得到獲取Root權(quán)限的方法,因此,現(xiàn)有技術(shù)并不能完全避免用戶獲取Root權(quán)限,無法保證終端的應(yīng)用分區(qū)中的文件不被修改。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法及終端,用于解決現(xiàn)有技術(shù)中無法保證終端的應(yīng)用分區(qū)中的文件不被修改的問題。
本發(fā)明第一方面提供一種安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法,包括:
獲取終端的應(yīng)用分區(qū)中的第一文件,其中,所述第一文件為所述終端的應(yīng)用分區(qū)中的任一文件,所述終端為基于安卓操作系統(tǒng)的終端,所述終端的應(yīng)用分區(qū)為安卓操作系統(tǒng)中的系統(tǒng)System分區(qū);
對所述第一文件進(jìn)行校驗處理,獲取所述第一文件對應(yīng)的校驗結(jié)果;
判斷所述第一文件對應(yīng)的校驗結(jié)果是否與所述終端中預(yù)存的原始應(yīng)用分區(qū)文件校驗結(jié)果不一致,若是,則對所述終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理;其中,所述原始應(yīng)用分區(qū)文件校驗結(jié)果為生成所述終端的軟件系統(tǒng)時,對寫入所述終端的應(yīng)用分區(qū)中的文件進(jìn)行校驗處理所獲得的。
本發(fā)明第二方面提供一種終端,包括:
獲取模塊,用于獲取終端的應(yīng)用分區(qū)中的第一文件,其中,所述第一文件為所述終端的應(yīng)用分區(qū)中的任一文件,所述終端為基于安卓操作系統(tǒng)的終端,所述終端的應(yīng)用分區(qū)為安卓操作系統(tǒng)中的系統(tǒng)System分區(qū);
第一處理模塊,用于對所述第一文件進(jìn)行校驗處理,獲取所述第一文件對應(yīng)的校驗結(jié)果;第二處理模塊,用于判斷所述第一文件對應(yīng)的校驗結(jié)果是否與所述終端中預(yù)存的原始應(yīng)用分區(qū)文件校驗結(jié)果不一致,若是,則對所述終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理;其中,所述原始應(yīng)用分區(qū)文件校驗結(jié)果為生成所述終端的軟件系統(tǒng)時,對寫入所述終端的應(yīng)用分區(qū)中的文件進(jìn)行校驗處理所獲得的。
本發(fā)明所提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法及終端,終端在生成軟件系統(tǒng)時首先使用特定的校驗算法對需要寫入應(yīng)用分區(qū)的文件進(jìn)行校驗處理,獲取并保存校驗結(jié)果作為標(biāo)準(zhǔn)校驗結(jié)果。后續(xù)當(dāng)終端開機啟動時,終端使用同樣的校驗算法對應(yīng)用分區(qū)中的文件進(jìn)行校驗處理,并判斷本次的校驗結(jié)果與標(biāo)準(zhǔn)校驗結(jié)果是否一致,如果不一致,則說明應(yīng)用分區(qū)中的文件被修改,終端會據(jù)此結(jié)果對應(yīng)用分區(qū)的文件進(jìn)行恢復(fù),從而保證應(yīng)用分區(qū)中的文件不被修改。
附圖說明
為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例一的流程示意圖;
圖2為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例二的流程示意圖;
圖3為原始應(yīng)用分區(qū)文件校驗結(jié)果的示例圖;
圖4為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例三的流程示意圖;
圖5為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例四的流程示意圖;
圖6為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法的完整流程示意圖;
圖7為本發(fā)明提供的終端實施例一的模塊結(jié)構(gòu)圖;
圖8為本發(fā)明提供的終端實施例二的模塊結(jié)構(gòu)圖;
圖9為本發(fā)明提供的終端實施例三的模塊結(jié)構(gòu)圖;
圖10為本發(fā)明提供的終端實施例四的模塊結(jié)構(gòu)圖;
圖11為本發(fā)明提供的終端實施例五的模塊結(jié)構(gòu)圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明所提供的方法一般在終端開機啟動過程中執(zhí)行,在終端啟動過程中,一旦確定出應(yīng)用分區(qū)文件被修改,則可以及時對應(yīng)用分區(qū)進(jìn)行恢復(fù)。
圖1為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例一的流程示意圖,該方法的執(zhí)行主體為基于安卓操作系統(tǒng)的終端,例如手機、電視、機頂盒等。如圖1所示,該方法包括:
S101、獲取終端的應(yīng)用分區(qū)中的第一文件,其中,該第一文件為終端的應(yīng)用分區(qū)中的任一文件。
其中,終端的應(yīng)用分區(qū)為安卓操作系統(tǒng)中的系統(tǒng)(System)分區(qū)。
在安卓操作系統(tǒng)中,包括System分區(qū)、數(shù)據(jù)(Data)分區(qū)、緩存(Catch)分區(qū)以及SD卡分區(qū)等,不同的分區(qū)所需要的操作權(quán)限不同,System分區(qū)的權(quán)限要求最嚴(yán)格,只有具有Root權(quán)限才可以來操作該分區(qū),而其他分區(qū)的權(quán)限限制相對寬松。因此,System分區(qū)一般會用來存儲終端廠商所預(yù)裝的系統(tǒng)應(yīng)用程序、定制軟件等,即存儲上述第一文件,以盡量避免用戶對預(yù)裝和定制軟件進(jìn)行改動。
本步驟中,首先讀取System分區(qū)中的文件,以用于后續(xù)的校驗及判斷處理。
S102、對第一文件進(jìn)行校驗處理,獲取第一文件對應(yīng)的校驗結(jié)果。
具體地,對第一文件進(jìn)行校驗處理時,可以使用安全哈希校驗算法(Secure Hash Algorithm,簡稱SHA1)、循環(huán)冗余校驗(Cyclic Redundancy Check,簡稱CRC)校驗方法等。對第一文件按照特定的校驗算法進(jìn)行校驗處理之后,會得到校驗結(jié)果。例如,如果使用SHA1算法對第一文件進(jìn)行校驗處理之后,會得到一個SHA1值。
S103、判斷第一文件對應(yīng)的校驗結(jié)果是否與終端中預(yù)存的原始應(yīng)用分區(qū)文件校驗結(jié)果不一致,若是,則對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。其中,原始應(yīng)用分區(qū)文件校驗結(jié)果為生成終端的軟件系統(tǒng)時,對寫入終端的應(yīng)用分區(qū)中的文件進(jìn)行校驗處理所獲得的。
當(dāng)獲取到第一文件的校驗結(jié)果之后,終端會將該校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果進(jìn)行比較。其中,原始應(yīng)用分區(qū)文件校驗結(jié)果是在生成終端的軟件系統(tǒng)時生成的。具體地,在終端的軟件系統(tǒng)編譯完成之后就會生成需要寫入應(yīng)用分區(qū)的多個文件,在將這些文件寫入應(yīng)用分區(qū)之前,終端首先會使用特定的校驗算法對這些文件進(jìn)行校驗處理,每個文件都會生成一個校驗碼,終端將這些校驗碼都記入同一個文件中,從而形成原始應(yīng)用分區(qū)文件校驗結(jié)果。
由于原始應(yīng)用分區(qū)文件校驗結(jié)果是在生成軟件系統(tǒng)時對寫入應(yīng)用分區(qū)的文件進(jìn)行校驗而生成的,因此,原始應(yīng)用分區(qū)文件校驗結(jié)果是原始應(yīng)用分區(qū)的文件校驗結(jié)果,因此,可以將原始應(yīng)用分區(qū)文件校驗結(jié)果作為基準(zhǔn)來判斷應(yīng)用分區(qū)的文件是否被修改。
需要說明的是,終端在生成原始應(yīng)用分區(qū)文件校驗結(jié)果時所使用的校驗算法與對第一文件進(jìn)行校驗的校驗算法應(yīng)保持一致,以保證未被修改的文件驗證的正確性。
在終端對校驗結(jié)果進(jìn)行比較時,如果應(yīng)用分區(qū)中的某個文件沒有被修改過,那么無論進(jìn)行多少次校驗,其校驗結(jié)果都應(yīng)該是一致的,而如果應(yīng)用分區(qū)中的某個文件被修改或刪除了,則本次校驗的結(jié)果就會與原始應(yīng)用分區(qū)文件校驗結(jié)果不同,即可以通過兩次校驗來確定出應(yīng)用分區(qū)中的文件是否被修改。
本實施例中,終端在生成軟件系統(tǒng)時首先使用特定的校驗算法對需要寫入應(yīng)用分區(qū)的文件進(jìn)行校驗處理,獲取并保存校驗結(jié)果作為標(biāo)準(zhǔn)校驗結(jié)果。后續(xù)當(dāng)終端開機啟動時,終端使用同樣的校驗算法對應(yīng)用分區(qū)中的文件進(jìn)行校驗處理,并判斷本次的校驗結(jié)果與標(biāo)準(zhǔn)校驗結(jié)果是否一致,如果不一致,則說明應(yīng)用分區(qū)中的文件被修改,終端會據(jù)此結(jié)果對應(yīng)用分區(qū)的文件進(jìn)行恢復(fù),從而保證應(yīng)用分區(qū)中的文件不被修改。
在上述實施例的基礎(chǔ)上,本實施例涉及生成原始應(yīng)用分區(qū)文件校驗結(jié)果的過程,即,圖2為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例二的流程示意圖,如圖2所示,在上述步驟S101之前,還包括:
S201、對寫入終端的應(yīng)用分區(qū)中的文件進(jìn)行校驗處理,獲取校驗結(jié)果。
如前所述,原始應(yīng)用分區(qū)文件校驗結(jié)果是在生成終端的軟件系統(tǒng)時生成的,因此,本實施例所涉及的操作都在生成終端的軟件系統(tǒng)時進(jìn)行。
具體地,在終端的軟件系統(tǒng)編譯完成之后就會生成需要寫入應(yīng)用分區(qū)的多個文件,在將這些文件寫入應(yīng)用分區(qū)之前,終端會對這些文件使用特定的校驗算法逐一進(jìn)行校驗處理,進(jìn)而,針對每個文件終端都會獲取到一個校驗結(jié)果。
S202、根據(jù)終端的應(yīng)用分區(qū)中的文件的路徑信息、文件名稱以及校驗結(jié)果,生成原始應(yīng)用分區(qū)文件校驗結(jié)果。
原始應(yīng)用分區(qū)文件校驗結(jié)果中記錄了終端的應(yīng)用分區(qū)中所有文件的路徑信息、文件名稱,以及每個文件對應(yīng)的校驗結(jié)果,每個文件的路徑信息、文件名稱以及校驗結(jié)果在原始應(yīng)用分區(qū)文件校驗結(jié)果中對應(yīng)一條記錄。因此,原始應(yīng)用分區(qū)文件校驗結(jié)果可以看作是文件路徑和文件名稱與校驗結(jié)果的映射關(guān)系表。圖3為原始應(yīng)用分區(qū)文件校驗結(jié)果的示例圖,如圖3所示,終端的應(yīng)用分區(qū)中的每個文件都對應(yīng)一條記錄,這條記錄中包括文件路徑信息以及文件名稱,并包括其所對應(yīng)的校驗結(jié)果,圖3所示的校驗結(jié)果是通過SHA1校驗算法所獲得的校驗結(jié)果,但本發(fā)明并不以此為限。
S203、對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行加密處理。
當(dāng)根據(jù)上述步驟得到原始應(yīng)用分區(qū)文件校驗結(jié)果后,終端會形成該結(jié)果對應(yīng)的文件,并對該文件進(jìn)行加密處理。由于原始應(yīng)用分區(qū)文件校驗結(jié)果是后續(xù)進(jìn)行應(yīng)用分區(qū)是否被修改的判斷中的重要依據(jù),因此,終端對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行加密處理,能夠防止原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件被手動修改,保證后續(xù)的判斷結(jié)果的準(zhǔn)確和有效性。
可選地,終端可以使用RSA2048+SHA256算法對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行加密,該加密算法對應(yīng)一個特定的加密密鑰,終端會將該加密密鑰進(jìn)行保存,以用于后續(xù)的解密過程中。
本實施例中,終端在生成軟件系統(tǒng)時對寫入應(yīng)用分區(qū)的文件進(jìn)行校驗處理,從而形成標(biāo)識文件目錄和名稱與校驗結(jié)果映射關(guān)系的原始應(yīng)用分區(qū)文件校驗結(jié)果,由于該原始應(yīng)用分區(qū)文件校驗結(jié)果中記錄了文件目錄和名稱與校驗結(jié)果的映射關(guān)系,因此,能夠使得后續(xù)可以根據(jù)這些映射關(guān)系來判斷應(yīng)用分區(qū)中的文件是否被修改,從而保證判斷結(jié)果的準(zhǔn)確性。
另外,終端還對原始應(yīng)用分區(qū)文件校驗結(jié)果所對應(yīng)的文件進(jìn)行加密,從而保證該文件不被手動修改,進(jìn)一步保證后續(xù)的判斷結(jié)果的準(zhǔn)確和有效性。
在上述實施例的基礎(chǔ)上,本實施例涉及對應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行解密處理的具體過程,即,圖4為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例三的流程示意圖,如圖4所示,在上述步驟S101之前,還包括:
S301、對應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行解密處理。
如前所述,在終端生成軟件系統(tǒng)時,會對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行加密處理,終端會將本次加密的加密密鑰保存在終端系統(tǒng)中。
本步驟中,終端會基于該加密密鑰對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行解密處理。
以上述RSA2048+SHA256算法為例,終端在解密過程中,首先獲取該算法對應(yīng)的加密密鑰,再使用該加密密鑰對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行解密處理。
S302、若解密處理的結(jié)果為解密成功,則獲取終端的應(yīng)用分區(qū)中的第一文件,若解密處理的結(jié)果為解密失敗,則對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。
如果原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件被修改過,則使用加密密鑰進(jìn)行解密時就會解密失敗,因此,當(dāng)解密失敗,終端就會對應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。
本實施例中,在對第一文件進(jìn)行校驗處理之前首先對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行解密處理,如果解密失敗,則可以確定原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件被修改,進(jìn)而可以確定應(yīng)用分區(qū)中的文件可能被修改,此時,終端不再繼續(xù)對應(yīng)用分區(qū)的文件進(jìn)行校驗處理,而是直接對應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理,這樣的處理不僅能夠保證應(yīng)用分區(qū)得到恢復(fù),同時,又避免了繼續(xù)進(jìn)行后續(xù)處理,因此節(jié)省了處理時間,提高了處理效率。
在上述實施例的基礎(chǔ)上,本實施例涉及判斷應(yīng)用分區(qū)的文件,即第一文件校驗結(jié)果的具體地方法,即,上述步驟S103具體為:
判斷原始應(yīng)用分區(qū)文件校驗結(jié)果中是否存在第一文件對應(yīng)的路徑、文件名稱以及第一文件對應(yīng)的校驗結(jié)果,若否,則確定第一文件對應(yīng)的校驗結(jié)果與終端中預(yù)存的原始應(yīng)用分區(qū)文件校驗結(jié)果不一致。
如前所述,原始應(yīng)用分區(qū)文件校驗結(jié)果中記錄了文件路徑和文件名稱與校驗結(jié)果之間的映射關(guān)系,本實施例在判斷原始應(yīng)用分區(qū)文件校驗結(jié)果中是否存在第一文件對應(yīng)的路徑、文件名稱以及第一文件對應(yīng)的校驗結(jié)果時,可以分為兩步進(jìn)行判斷,首先,針對第一文件,在原始應(yīng)用分區(qū)文件校驗結(jié)果中進(jìn)行查找,查找與第一文件的路徑和文件名稱完全一致的路徑和文件名稱,如果查找不到,則可以確定第一文件的校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果不一致,不再需要進(jìn)行后續(xù)判斷;如果能夠查找到,則繼續(xù)判斷第一文件的校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果中所查找到的文件名稱對應(yīng)的校驗結(jié)果是否一致,如果不一致,則確定第一文件的校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果不一致。此處需要說明的是,和第一文件的校驗結(jié)果進(jìn)行比較的校驗結(jié)果,必須是原始應(yīng)用分區(qū)文件校驗結(jié)果中查找到的文件名稱對應(yīng)的校驗結(jié)果,即同一條記錄中的校驗結(jié)果,而不能是其他校驗結(jié)果。以下舉例進(jìn)行說明。
一示例中,假設(shè):
第一文件A的路徑和文件名稱為:/system/priv-app/MediaProvider.apk
第一文件A的校驗結(jié)果為:8a 1b e4 0e 07 1a 63 19 e2 ae e1 20 d0 e6 02 06 c5 74 55 99
原始應(yīng)用分區(qū)文件校驗結(jié)果如圖3所示。
具體判斷時,首先在原始應(yīng)用分區(qū)文件校驗結(jié)果中查找第一文件A的路徑和文件名稱,根據(jù)圖3可知,圖3的第一條記錄中的路徑與文件名稱與第一文件A完全一致,因此,查找成功。進(jìn)而,對圖3的第一條記錄中的校驗結(jié)果和第一文件A的校驗結(jié)果進(jìn)行比對,顯然,圖3第一條記錄中的校驗結(jié)果和第一文件A的校驗結(jié)果不一致,因此,可以確定第一A的校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果不一致,需要對應(yīng)用分區(qū)進(jìn)行恢復(fù)處理。
另一示例中,假設(shè):
第一文件A的路徑和文件名稱為:/system/priv-app/SettingsProvider.apk
第一文件A的校驗結(jié)果為:f4 40 55 d2 52 9d 1d b9 a6 60 28 66 2c e6 8e c9 b6 f9 50 25
原始應(yīng)用分區(qū)文件校驗結(jié)果如圖3所示。
具體判斷時,首先在原始應(yīng)用分區(qū)文件校驗結(jié)果中查找第一文件A的路徑和文件名稱,根據(jù)圖3可知,圖3的第三條記錄中的路徑與文件名稱與第一文件A完全一致,因此,查找成功。進(jìn)而,對圖3的第三條記錄中的校驗結(jié)果和第一文件A的校驗結(jié)果進(jìn)行比對,經(jīng)過比對,可以確定圖3第三條記錄中的校驗結(jié)果和第一文件A的校驗結(jié)果一致,因此,可以確定第一A的校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果一致,不需要進(jìn)行后續(xù)的應(yīng)用分區(qū)的恢復(fù)處理。
又一示例中,假設(shè):
第一文件A的路徑和文件名稱為:/system/priv-app/Contacts.apk
第一文件A的校驗結(jié)果為:43 0d c2 44 08 51 b2 cf 18 aa 5d 45 3e 00 3c 9f9e d6 58 ba
原始應(yīng)用分區(qū)文件校驗結(jié)果如圖3所示。
具體判斷時,首先在原始應(yīng)用分區(qū)文件校驗結(jié)果中查找第一文件A的路徑和文件名稱,根據(jù)圖3可知,圖3的第二條記錄中的路徑與文件名稱與第一文件A完全一致,因此,查找成功。進(jìn)而,對圖3的第二條記錄中的校驗結(jié)果和第一文件A的校驗結(jié)果進(jìn)行比對,經(jīng)過比對,可以確定圖3第三條記錄中的校驗結(jié)果和第一文件A的校驗結(jié)果不一致,因此,可以確定第一A的校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果不一致。雖然第一文件A的校驗結(jié)果與圖3中第五條記錄中的校驗結(jié)果一致,但是,由于第五條記錄中的路徑和文件名稱與第一文件A并不符合,因此,并不能改變第一A的校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果不一致的結(jié)論。
本實施例中,通過將第一文件的路徑、文件名稱和校驗結(jié)果與原始應(yīng)用分區(qū)文件校驗結(jié)果進(jìn)行統(tǒng)一比對,能夠保證判斷結(jié)果的準(zhǔn)確性。
在上述實施例的基礎(chǔ)上,本實施例涉及判斷應(yīng)用分區(qū)的文件校驗結(jié)果的另一種方法,具體為:
判斷終端的應(yīng)用分區(qū)中的文件數(shù)量是否與原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件中所記錄的文件數(shù)量一致,若否,則對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。
當(dāng)某些用戶利用Root權(quán)限修改應(yīng)用分區(qū)時,可能會對應(yīng)用分區(qū)的文件進(jìn)行修改或刪除,或者在應(yīng)用分區(qū)中新增新的文件,在進(jìn)行這些操作時,應(yīng)用分區(qū)的文件數(shù)量相比于原始狀態(tài)可能會發(fā)生變化,因此,本實施例中,通過“數(shù)量”這個參數(shù)來判斷應(yīng)用分區(qū)是否被修改。具體地,終端會首先統(tǒng)計引用分區(qū)中的文件數(shù)量,統(tǒng)計的方法可以參照現(xiàn)有技術(shù),進(jìn)而,終端獲取原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件中所記錄的文件數(shù)量,當(dāng)獲取到這兩個數(shù)量之后,終端對這兩個數(shù)量進(jìn)行比較,如果應(yīng)用分區(qū)沒有被更改過,則這兩個數(shù)量應(yīng)該保持一致,反之,就可以確定應(yīng)用分區(qū)被修改,此時,就可以直接對應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。
相比于對應(yīng)用分區(qū)的文件進(jìn)行校驗處理以及對校驗結(jié)果進(jìn)行判斷,本實施例中這種比較數(shù)量的方式更加簡單易行,可以作為校驗處理及判斷之前的初步篩選,如果數(shù)量不一致,則無疑可以確定應(yīng)用分區(qū)被修改,如果數(shù)量一致,則繼續(xù)根據(jù)校驗結(jié)果進(jìn)行更精確的判斷,從而提升處理的速度和效率。
可選地,本實施例的操作過程可以在上述步驟S102之前執(zhí)行,具體可以在解密原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件之前或之后執(zhí)行。
在前述各實施例的基礎(chǔ)上,本實施例涉及對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理的具體方法,即,圖5為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法實施例四的流程示意圖,如圖5所示,對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理的具體方法為:
S401、刪除終端的應(yīng)用分區(qū)中的文件。
S402、將終端中預(yù)存的備份應(yīng)用分區(qū)文件添加到終端的應(yīng)用分區(qū)中,其中,該備份應(yīng)用分區(qū)文件為生成終端的軟件系統(tǒng)時,對終端的應(yīng)用分區(qū)中的文件進(jìn)行備份所獲得的。
具體地,終端在生成軟件系統(tǒng)時,在向應(yīng)用分區(qū)寫入文件時,會將這些寫入的文件統(tǒng)一進(jìn)行備份,形成備份應(yīng)用分區(qū)文件,這些備份應(yīng)用分區(qū)文件對所有用戶不可見,即使擁有Root權(quán)限的用戶也無法對這些備份應(yīng)用分區(qū)文件進(jìn)行修改,因此,在進(jìn)行應(yīng)用分區(qū)恢復(fù)時,使用備份應(yīng)用分區(qū)文件能夠保證所恢復(fù)的應(yīng)用分區(qū)的文件是原始應(yīng)用分區(qū)的文件。
圖6為本發(fā)明提供的安卓系統(tǒng)應(yīng)用分區(qū)文件保護方法的完整流程示意圖,如圖6所示,該方法的完整過程為:
S501、對寫入終端的應(yīng)用分區(qū)中的文件進(jìn)行校驗處理,獲取校驗結(jié)果。
S502、根據(jù)終端的應(yīng)用分區(qū)中的文件的路徑信息、文件名稱以及校驗結(jié)果,生成原始應(yīng)用分區(qū)文件校驗結(jié)果。
S503、對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行加密處理。
上述三個步驟在生成終端的軟件系統(tǒng)時進(jìn)行。
S504、對應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行解密處理。
S505、判斷解密處理的結(jié)果是否為解密失敗,若是,則執(zhí)行S5010,否則執(zhí)行S506。
S506、判斷終端的應(yīng)用分區(qū)中的文件數(shù)量是否與原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件中所記錄的文件數(shù)量一致,若否,則執(zhí)行S5010,否則執(zhí)行S507。
其中,上述S506也可以在S504之前執(zhí)行。
S507、獲取終端的應(yīng)用分區(qū)中的第一文件。
S508、對第一文件進(jìn)行校驗處理,獲取第一文件對應(yīng)的校驗結(jié)果。
S509、判斷所述第一文件對應(yīng)的校驗結(jié)果是否與所述終端中預(yù)存的原始應(yīng)用分區(qū)文件校驗結(jié)果不一致,若是,則執(zhí)行S5010。
S5010、對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。
上述各步驟的具體執(zhí)行方法可以參照前述實施例,此處不再贅述。
圖7為本發(fā)明提供的終端實施例一的模塊結(jié)構(gòu)圖,如圖7所示,該終端包括:
獲取模塊701,用于獲取終端的應(yīng)用分區(qū)中的第一文件,其中,該第一文件為終端的應(yīng)用分區(qū)中的任一文件。
第一處理模塊702,用于對第一文件進(jìn)行校驗處理,獲取第一文件對應(yīng)的校驗結(jié)果。
第二處理模塊703,用于判斷第一文件對應(yīng)的校驗結(jié)果是否與終端中預(yù)存的原始應(yīng)用分區(qū)文件校驗結(jié)果不一致,若是,則對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理;其中,原始應(yīng)用分區(qū)文件校驗結(jié)果為生成終端的軟件系統(tǒng)時,對寫入終端的應(yīng)用分區(qū)中的文件進(jìn)行校驗處理所獲得的。
圖8為本發(fā)明提供的終端實施例二的模塊結(jié)構(gòu)圖,如圖8所示,在圖7的基礎(chǔ)上,該終端還包括:
第三處理模塊704,用于對寫入終端的應(yīng)用分區(qū)中的文件進(jìn)行校驗處理,獲取校驗結(jié)果。
生成模塊705,用于根據(jù)終端的應(yīng)用分區(qū)中的文件的路徑信息、文件名稱以及校驗結(jié)果,生成原始應(yīng)用分區(qū)文件校驗結(jié)果。
第四處理模塊706,用于對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行加密處理。
圖9為本發(fā)明提供的終端實施例三的模塊結(jié)構(gòu)圖,如圖9所示,在圖8的基礎(chǔ)上,該終端還包括:
第五處理模塊707,用于對原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件進(jìn)行解密處理。
第六處理模塊708,用于在解密處理的結(jié)果為解密成功時,獲取終端的應(yīng)用分區(qū)中的第一文件,以及,在解密處理的結(jié)果為解密失敗時,對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。
另一實施例中,第二處理模塊703具體用于:
判斷原始應(yīng)用分區(qū)文件校驗結(jié)果中是否存在第一文件對應(yīng)的路徑、文件名稱以及第一文件對應(yīng)的校驗結(jié)果,若否,則確定第一文件對應(yīng)的校驗結(jié)果與終端中預(yù)存的原始應(yīng)用分區(qū)文件校驗結(jié)果不一致。
圖10為本發(fā)明提供的終端實施例四的模塊結(jié)構(gòu)圖,如圖10所示,在圖9的基礎(chǔ)上,該終端還包括:
第七處理模塊709,用于判斷終端的應(yīng)用分區(qū)中的文件數(shù)量是否與原始應(yīng)用分區(qū)文件校驗結(jié)果對應(yīng)的文件中所記錄的文件數(shù)量一致,若否,則對終端的應(yīng)用分區(qū)進(jìn)行文件恢復(fù)處理。
圖11為本發(fā)明提供的終端實施例五的模塊結(jié)構(gòu)圖,如圖11所示,第二處理模塊703包括:
刪除單元7031,用于刪除終端的應(yīng)用分區(qū)中的文件。
添加單元7032,用于將終端中預(yù)存的備份應(yīng)用分區(qū)文件添加到終端的應(yīng)用分區(qū)中,其中,備份應(yīng)用分區(qū)文件為生成終端的軟件系統(tǒng)時,對終端的應(yīng)用分區(qū)中的文件進(jìn)行備份所獲得的。
另一實施例中,第一處理模塊702具體用于:
使用安全哈希校驗算法對第一文件進(jìn)行校驗處理,獲取第一文件對應(yīng)的校驗結(jié)果。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。