一種基于智能終端的分區保護方法及系統的制作方法
【技術領域】
[0001]本發明涉及智能終端領域,尤其涉及一種基于智能終端的分區保護方法及系統。
【背景技術】
[0002]目前智能終端例如手機的EMMC(內嵌式存儲器)一般會按照功能使用的不同劃分成若干個分區。其中某些分區十分重要,比如uboot分區,kernel分區,system分區。這些分區一旦被破壞,往往是會出現無法正常開機或手機使用過程中系統崩潰。現實中會有部分用戶root手機(刷機),root成功后常常有意無意地破壞了手機上這些重要分區中的數據,導致手機無法正常使用,退回廠家售后網點維修,所以分區保護十分重要。
[0003]目前一般的寫保護方案只是通過軟件方式進行分區寫保護,即簡單地通過把分區加載為ReadOnly (只讀)分區。但該方法很容易被破解,并不能做到真正意義上的寫保護。
[0004]因此,現有技術還有待于改進和發展。
【發明內容】
[0005]鑒于上述現有技術的不足,本發明的目的在于提供一種基于智能終端的分區保護方法及系統,旨在解決現有的智能終端寫保護方案容易被破解、安全性不高的問題。
[0006]本發明的技術方案如下:
一種基于智能終端的分區保護方法,其中,包括步驟:
A、選擇需保護的分區,對分區的排列順序、起始地址和大小進行調整;
B、調整完畢后,在智能終端啟動時的LK階段對分區添加EMMC上電寫保護機制,以對分區進行寫保護。
[0007]所述的基于智能終端的分區保護方法,其中,所述步驟A包括:
對需保護的分區進行對齊操作;
將需保護的分區進行分組,使每組大小為寫保護組的整數倍。
[0008]所述的基于智能終端的分區保護方法,其中,將EMMC的硬件復位引腳設置為禁能狀態,以避免在EMMC出錯時復位EMMC。
[0009]所述的基于智能終端的分區保護方法,其中,在智能終端進行fota升級時,通過設置E麗C的P頂C,使E麗C掉電。
[0010]所述的基于智能終端的分區保護方法,其中,寫保護組write_protect_group_size的大小為:
write_protect_group_size=512KB*HC_ERASE_GRP_SIZE* HC_ffP_GRP_SIZE其中 HC_ERASE_GRP_SIZE 和 HC_WP_GRP_SIZE 為 EMMC 器件固有參數。
[0011]所述的基于智能終端的分區保護方法,其中,EMMC上電寫保護機制有三種:永久保護、上電保護及臨時保護。
[0012]一種基于智能終端的分區保護系統,其中,包括:
調整模塊,用于選擇需保護的分區,對分區的排列順序、起始地址和大小進行調整; 保護模塊,用于調整完畢后,在智能終端啟動時的LK階段對分區添加EMMC上電寫保護機制,以對分區進行寫保護。
[0013]所述的基于智能終端的分區保護系統,其中,所述調整模塊具體包括:
對齊單元,用于對需保護的分區進行對齊操作;
分組單元,用于將需保護的分區進行分組,使每組大小為寫保護組的整數倍。
[0014]所述的基于智能終端的分區保護系統,其中,寫保護組write_protect_group_size的大小為:
write_protect_group_size=512KB*HC_ERASE_GRP_SIZE* HC_ffP_GRP_SIZE其中 HC_ERASE_GRP_SIZE 和 HC_WP_GRP_SIZE 為 EMMC 器件固有參數。
[0015]所述的基于智能終端的分區保護系統,其中,EMMC上電寫保護機制有三種:永久保護、上電保護及臨時保護。
[0016]有益效果:本發明根據EMMC 特性,采用 EMMC Power On Write Protect1n (EMMC上電寫保護)機制對重要分區進行EMMC上電寫保護。而EMMC Power On Write Protect1n機制屬于硬件級別的寫保護,可以從根本上防止用戶root行為和某些程序上的錯誤帶來的對分區的破壞。其難以被破解,安全性高。
【附圖說明】
[0017]圖1為本發明一種基于智能終端的分區保護方法較佳實施例的流程圖。
[0018]圖2為采用本發明的方法對system分區進行寫保護時的結構框圖。
[0019]圖3為采用本發明的方法對分區進行分組的結構示意圖。
[0020]圖4為本發明一種基于智能終端的分區保護系統較佳實施例的結構框圖。
【具體實施方式】
[0021]本發明提供一種基于智能終端的分區保護方法及系統,為使本發明的目的、技術方案及效果更加清楚、明確,以下對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0022]請參閱圖1,圖1為本發明一種基于智能終端的分區保護方法較佳實施例的流程圖,如圖所示,其包括步驟:
5101、選擇需保護的分區,對分區的排列順序、起始地址和大小進行調整;
5102、調整完畢后,在智能終端啟動時的LK階段對分區添加EMMC上電寫保護機制,以對分區進行寫保護。
[0023]本發明中,采用EMMC上電寫保護機制對分區進行寫保護,在智能終端啟動后,使EMMC上的某塊或多塊區域處于寫保護狀態,保證智能終端重要數據的完整性,防止數據被刪除改寫。例如圖2中的system分區,添加EMMC上電寫保護機制進行寫保護后,則Host(主機)可以對該分區進行讀操作,但寫操作是無效的。
[0024]EMMC存在Write Protect Group (寫保護組)的概念,即可以將EMMC的存儲區域作為一個個的Write Protect Group (寫保護組)組成。對于每個Write Protect Group,提供三種寫保護機制,每種機制對于上電/復位又有不同的反應。三種寫保護機制包括:永久保護(Permanent)、上電保護(Power-on )及臨時保護(Temporary )。
[0025]對于永久保護,寫保護一旦設置會一直生效,無法撤銷,并且在復位后寫保護仍然有效,也無法撤銷;對于上電保護,其在設置后生效,無法撤銷,但在復位后失效;對于臨時保護,在設置后生效,可以隨時撤銷或再次設置生效,復位不影響臨時寫保護的狀態。
[0026]每個寫保護組Write Protect Group 的大小 write_protect_group_size 可由如下公式得出:
write_protect_group_size=512KB*HC_ERASE_GRP_SIZE* HC_ffP_GRP_SIZE其中HC_ERASE_GRP_SIZE和HC_WP_GRP_SIZE為EMMC器件固有參數,可以通過查詢EMMC spec 得到。
[0027]所述步驟SlOl中,先選擇需保護的分區,例如選擇Preloader、MBR、EBRl、UB00T,EBR2等分區。然后進行布局調整操作,具體包括如下步驟:
S201、對需保護的分區進行對齊操作;
首先需要確定分區的alignment_size,并讓需要寫保護的分區的起始地址和大小等于alignment_size的整數倍,此即為對齊。alignment_size —般選擇為主流使用的EMMC的write_protect_group_size 的整數倍。
[0028]S202、將需保護的分區進行分組,使每組大小為寫保護組的整數倍。
[0029]為避免由于分區對齊帶來空間浪費,可以將多個分區組合成一組占用一個或多個Write Protect1n Group。如圖3所示,將各個分區進行分組,組合成一個組,按組的形式進行同時保護。
[0030]其中,Preloader分區雖然需要寫保護,但屬于EMMC的Bootl區域,不需要設置大小為對齊。
[0031]其他的如MBR, EBR1, UB00T, EBR2, LOGO分區組成一個組,避免每個分區設成Alignment_size大小帶來空間浪費。該組起始地址為0,大小為8M,即符合“讓分區的起始地址和分區的大小等于Alignment_size的整數倍”的原則。
[0032]另外,智能終端的啟動模式有多種,不同模式下對各個分區的寫操作需求是不一致的。所以先確定在各種模式下哪些分區應該并且可以寫保護,哪些分區不可以寫保護。
[0033]例如在N0RMAL_B00T 啟動模式下,Preloader、LK、boot、secro 及 system 分區需要寫保護,recovery、seccfg及nvram分區不需要寫保護。
[0034]在ΜΕΤΑ_Β00Τ 啟動模式下,Preloader、LK、recovery、boot、secro 及 system 分區需要寫保護,seccfg及nvram分區不需要寫保護。
[0035]在SW_REB00T 啟動模式下,Preloader、LK、recovery、boot、secro 及 system 分區需要寫保護,s