今天使用完美刷機工具,將一臺Google Nexus 7(Asus ME370T一代)由Android 4.2.1升級至Android 5.1.1。升級的過程非常順利,但是在開機后發現問題來了,無法跳過Android的開機向導。這個向導一定要連接到谷歌的服務器(http://clients3.google.com/generate_204頁面)。因為在國內的環境下,無法連接至谷歌服務器,甚至使用影梭(shadowsocks)作為代理,也未能成功設置谷歌,因此卡在設置界面無法繼續。此時上網查了各位前輩們使用的方法,不論是拔卡法,還是四角點擊法,都證明是無效的。最后在XDA Develop的網站,看到了一篇如何跳過開機Wifi的方法 (http://forum.xda-developers.com/showthread.php?t=1909602, ;How to skip WiFi configuration during initial setup of Nexus 7),其中提到了使用fastboot工具,對system.img中的build.prop進行修改,將開機設置向導默認為關閉,這樣就可以跳過網絡設置需求。從這個方法來看,值得一試。
下圖中的三個固件分別對應于該機型的4.2.1,4.4.4以及5.1.1版本的Android。我升級時使用的5.1.1版。

首先將該固件壓縮包全面展開到一個叫做N7511的目錄中,列表如下:
其中android-info.txt, recovery.img, system.img, userdata.img 等4個文件是從image-nakasi-lmy47v.zip中再次展開的。因為從前面的文章中已經獲知build.prop是放在system.img中,因此直接使用UltraEdit工具,采用二進制方式打開system.img,然后在其中查找字符串(ASCII字符串)"ro.setupwizard" ,找到后在對該部分做修改。
在system.img的0x0c9ba560處,看到了ro.setupwizard.enterprise_mode=1,使用ASCII修改,將=1修改為=0。這樣就就為了避免在開機時使用開機向導的企業模式(enterprise_mode,這個參數和開始需要查找的setupwizard.mode不對應)。為了穩妥起見,這次僅修改了這一個字節,然后保存,準備寫入Nexus 7中。
在命令行方式下,進入完美刷機軟件的安裝目錄下的tools目錄,里面有基本的fastboot工具和adb工具等。使用fastboot命令行,先擦除system分區,然后再次將修改后的system分區映像寫入,最后發送重啟Reboot命令,重啟Nexus 7。

但本次修改并未獲得成功,開機后依然出現提示連接wifi的需求無法跳過。因此再次回來,對system.img進行再次修改,以便直接獲取root缺陷,修改usb連接等。
使用UltraEdit打開System.img,再次搜索ro.setupwizard,發現除了ro.setupwizard.enterprise_mode屬性外,還有一個 ro.setupwizard.network_required=true,這個寫明了需要網絡連接。因此需要將該屬性修改為false。但是因為true和false的長度不同,需要修改為false時,就需要增加1個字節的存儲空間才行。因此將其上一行的camera.flash_off=0參數進行屏蔽(該機型沒有閃光燈,不在乎閃光燈的開關是否關閉)。將Camera 修改為#amera,最后的=0修改為換行符。然后將ro.setupwizard.network_required=true修改為=false。

再次保存,并燒錄在Nexus7中,重啟機器后,終于在開機的網絡設置界面看到”SKIP“由灰色變成黑色,可以選擇跳過,進行正常啟動。
至此,對于該機型的升級破解已完成。利用完美刷機工具,可以非常方便進行Root,以便做其它操作。
|