• 刷過機的壇友應該都知道雙wipe這個概念吧,即刷機前一般需要wipe data/ factory reset和wipe cache.這也是幾乎所有的刷機教程所教給大家的,這裡我想和大家說,我們都被騙了。

    細心的網友在wipe的時候可能會觀察到界面的下方會有一些代碼提示。

    當我們wipe data/ factory reset的時候,
    提示是:formatting data.......................................formatting cache.......................
    當我們wipe cache的時候,
    提示是:formatting cache...................................

    我們在wipe data/ factory reset的時候其實已經把cache分區擦除了,即wipe data/ factory reset選項中已經包含了wipe cache,不過僅憑以上的一些提示還是不足以令人信服的。
    於是我到github上查找了ClockworkMod Recovery的源碼,網址:https://github.com/CyanogenMod/android_bootable_recovery,在這裡我找到了進一步的證據(官方wipe無法找到源碼,所以找的是自定義recovery的源碼)點擊進入recovery.c文件,在第78行和79行有如下提示:即wipe data意思是刪除用戶數據(和緩存),然後重啟;wipe cache是刪除緩存(但不刪除用戶數據),然後重啟。
    如果說註釋說服力不足,在往下看具體代碼,從649行開始是wipe data的代碼:紅框畫出的意思是:擦除/data分區數據,然後再擦除/cache分區數據我們再看看wipe cache的代碼,從719行開始:注意723行,意思是擦除/cache分區數據。如此以來,我們就可以看出,wipe data/ factory reset選項包括了擦除/data分區和/cache分區的過程,而wipe cache選項只包括了擦除/cache分區的過程,可以說前者包含後者。這樣大家就知道了,其實我們並不需要雙wipe,只進行wipe data/ factory reset這個過程即可。




    所以真正的雙wipe是指刷前刷後各wipe一次.



    雙wipe的必要性:



    wipe data/ factory reset,會把你的所有配置文件(包括是你的用戶資料,比如郵件、通信錄、data分區下的軟件)全部刪除。但是wipe cache之後,只是把系統啟動後的緩存文件(比如一些加快某些軟件的快速運行的一些副本,一些類似於windows dll的一些有用的lib文件等,這些文件因為高度依存於原來的手機系統而存在,如果手機系統出現一些更改,少些文件或者是地址改變的話,這些緩存文件將失效,所以就會出現運行時缺少庫之類的forceclose現象)system分區下的文件,一般不會改變(這個含有關於手機的主配置文件,一般在system/etc下,有興趣的打開看看)。 大家一定要弄清楚android下的一個配置規則和權限,就拿build.proc文件來說,這個是系統的主配置文件,但是在用戶相關的文件中(比如data下面)就還有local.proc文件,作進一步具體設置。熟悉linux參數的機油應該知道,一個參數在liunx下可能會在多個層次上進行設置,但是用戶下的設置優先權最高。所以system下的主參數只是一個可供系統運行的一個模板,真正的一些細分參數都在用戶相關的配置文件中設定。wipe factory之後,只是把用戶細分的配置文件刪除了,但是原來system下的主參數配置模板不會被刪除。所以wipe factory之後,就又進入系統初始化狀態了。



    如果你運氣好,不wipe刷機可能成功,但是一般來說不wipe刷機,最容易出現的就是無限重啟或者卡在開機畫面~!

arrow
arrow
    全站熱搜

    紫蓮の翼 發表在 痞客邦 留言(0) 人氣()