安卓模擬器手動root

轉載自:http://quantoubao.blog.163.com/blog/static/2083211702013870501987/

安裝Android SDK安卓模擬器的方法很簡單,網上大把,傻瓜式的。不過對其root的方法,網上的版本就不那麼好使了。網上的方法從方向性來說是沒錯的,就是細節沒給講清楚,或者講錯,或者沒提到這樣root方式對高低不同版本API的區別,導致不少人跟着所謂教程去做都root失敗。

  我這裏以Android4.0.4(API15)爲藍本講講適合高版API的Android SDK虛擬機的root方法,很簡單的。

Android SDK root

Android SDK root

  沒有root之前是這樣的,幀緩衝無內容。

Android SDK root

  Root的第一步,準備工具。就兩個文件。①上網搜一個叫做《YAFFS2IMG》的鏡像瀏覽器,暫時建議用1.5版,2.0版我下載幾款(當然不是Z版)似乎都有問題。②上這個網址,就是Superuser設計者的網站androidsu.com,下載對應自己模擬器版本的超級授權用戶文件(該頁面下方有其壓縮包)。所謂對應版本,一方面是對應模擬器模擬的CPU版本,是ARM的還是x86的,不能選錯。如果你模擬時選了MIP的CPU,那就死了root這條心吧。目前互聯網上鋪天蓋地的教程都沒講清楚這點,還在文中引用第三方下載點的文件,是導致新手操作失敗的罪魁禍首!另一方面就是選適合自己模擬器模擬系統的版本,以目前androidsu.com提供的最新正式版破解文件來看,適合Android2.0-4.1的。對於更舊版的(好像沒什麼root的意義了)可找它的歷史版本;對於更新版的可以考慮它的測試版或再等一段時間。下載的話,只要下那個Superuser包即可,已經含有齊全的文件。

  Root的第二步,用《YAFFS2IMG》將虛擬機子目錄“system-images”內對應目標模擬器使用的系統鏡像目錄(我這裏是“android-15\armeabi-v7a”)內的“system.img”打開。將其根目錄下的“build.prop”文件提取到硬盤,用文本編輯工具(如記事本)打開,將其“ro.config.nocheckin=yes”一行刪掉。當然,行頭加“#”號註釋掉也可以,似乎多餘。再把改完的“build.prop”導入回鏡像中的原來位置替換原文件。記住,把文件權限設爲“0644”。必須記住,這裏只能是“0644”,別依據其它教程講的其它權限!

  Root的第三步,把第一步下載的Superuser壓縮包解開,把裏頭的一個叫做“su”(無擴展名)的文件導入第二步打開的鏡像“bin”目錄裏,把權限設爲“6755”。再把這個“su”導到“xbin”目錄中,如果遇到已存在舊文件,直接覆蓋,且把權限設爲“0755”。記住,前一個是“6755”,後一個是“0755”。別弄錯了!網上害人的教程,要麼把權限說錯(可能它設的權限適合舊舊舊版本的SDK模擬器),要麼講漏了“xbin”這個目錄!然後把解壓縮包中的“Superuser.apk”導入到鏡像的“app”目錄中,設權限爲“0644”,也不能錯!

  Root的最後一步,把修改的鏡像保存,選擇“無ECC/沒有FFFF標誌”這組參數組合。

  得了,這就是Root後的景況。一勞永逸。

Android SDK root


  上面提到的文件修改別指望在虛擬機中完成,一重啓虛擬機就沒了。就算用了快照,對其它引用同鏡像的AVD也無效。還是這樣改鏡像最妥當,改一下就全部同鏡像的AVD都生效。本方法對安卓 SDK模擬的4.0/4.1可用,至於4.2/4.3,等有新版su再試吧。

請看後續文段《Android SDK模擬器Root方法進階

 

前文再續,書接上一回(《Android SDK模擬器對4.0.4等高版API的簡易Root方法》)。話說目前講的Android SDK模擬器虛擬機Root的話,大多用androidsu.com的Superuser方案。事實上用其它su也未嘗不可,方法很簡單。

  準備工夫除了前文提到通用的《YAFFS2IMG》瀏覽器外,就是每個權限管理工具的apk文件與對應的su文件。

  通用的處理手法就是(實機同樣Root方法,實機系統用RE工具或連電腦跑adb命令,虛擬機系統用YAFFS2IMG):

  ⑴參照我舊文第2步。

  ⑵將apk文件主文件名改爲其原始完整包名,可用幸運破解器看對應包的“Package name”。

  ⑶將改名後的apk文件塞到目標系統的“system\app”裏,權限取0644。

  ⑷將apk文件用解壓縮工具解包,看裏頭有沒有lib目錄,有的話,將裏頭對應cpu目錄(armeabi或x86或mip)裏的所有文件塞到目標系統的“system\lib”裏,權限全取0644。

  ⑸把su文件放相應位置,並修改權限。根據不同的Root工具,這有幾樣情況——

   ①只放“system\bin”,權限是0755,“system\xbin”不得有su。

   ②只放“system\bin”,權限是6755,“system\xbin”不得有su。

   ③只放“system\xbin”,權限是0755,“system\bin”不得有su。

   ④只放“system\xbin”,權限是6755,“system\bin”不得有su。

   ⑤既放“system\bin”,權限是0755;又放“system\xbin”,權限是0755。

   ⑥既放“system\bin”,權限是6755;又放“system\xbin”,權限是0755。

   ⑦既放“system\bin”,權限是0755;又放“system\xbin”,權限是6755。

   ⑧既放“system\bin”,權限是6755;又放“system\xbin”,權限是6755。

   例如,對於androidsu.com的方案,要採用情況⑥;對於eu.chainfire.supersu的方案,必須採用情況④。其它Root方案類似。上面講的不得有su的狀態是指虛擬機,因爲虛擬機是寫鏡像,與系統虛擬操作無關,而實機會在重啓時自動處理掉這多餘的su。

  ⑹重啓目標系統驗收成果。

 

Android SDK Root

 

 

附上IntelX86的su文件:Superuser-3.1.3-x86-signed.zip

附上yaffs2img瀏覽器:yaffs2img瀏覽器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章