另一種root方法,Android boot.img破解


另一種root方法,Android boot.img破解

一、破解原理

    Android手機獲得Root權限,其實就是讓/system和/data分區獲得讀寫的權限。這兩個分區的權限配置,一般在根分區的init.rc文件中,修改這個文件可永久獲得root權限。

眾所周知,市面上絕大部分的Android手機文件系統有三個分區,分別是/,/system,/data。根分區(/)是打包為ramdisk.img后,再與kernel的zImage打包為boot.img。boot.img在EMMC/NAND中以RAW DATA的形式存在,且除使用燒寫工具外,無法讀寫。正因如此,根分區(/)在每次開機時都會從存儲器中加載到RAM, 所以根分區(/)是難以不刷機破解的。

如何破解呢? 我們推薦的辦法是:獲得boot.img,解壓boot.img得到ramdisk.img, 再由ramdisk.img解壓得到root目錄(/),修改其中的init.rc文件,再打包,最終得到新的boot.img。最后利用燒寫工具將boot.img燒寫到手機即可。

    注: 現在的手機廠商都有提供升級軟件包,獲得boot.img和scatter file不是一件難事,。加之所有MTK手機廠商都采用flash tools工具。此方法具有較高的實戰性。

二、必備工具

   1. linux運行環境。所有破解操作都是在linux下完成的。

   2. split_bootimg.pl。 該工具用來分解boot.img

   3. mkbootfs。 用來生成bootfs

   4. minigzip。 輕量級ZIP壓縮工具。

  5. mkimage。用來生成帶標識頭(512字節)的工具,有些廠家不使用該工具,如高通。

  6. mkbootimg。用來生成boot.img的工具。

三、破解步驟

   1.獲得boot.img.

   2. 執行$./split_bootimg.plboot.img, 將boot.img解壓為zimage和ramdisk.img,  名字分別為boot.img-kernel,  boot.img-ramdisk.gz。請記住這里的Board name,后面打包的時候需要用到。

   3. 執行$dd if=boot.img-ramdisk.gz  skip=1 bs=512of=ramdisk.gz, 該命令從uRamdisk中獲得ramdisk鏡像。

   4. $mkdir root, $cd root, $ gzip -dc ../*-ramdisk.gz| cpio –i, 這三條命令最終將ramdisk.img.gz解壓到 root目錄下。

   5. 修改root目錄下/system,/data分區的權限。 權限破解都在這一步。

   6. $ ./mkbootfsroot | ./minigzip >new_ramdisk.img

   7. $./mkimage new_ramdisk.img ROOTFS>u_new_ramdisk.img

   8. $./mkbootimg  --kernel boot.img -kernel --ramdisku_new_ramdisk.img --board [Board name] --output new_boot.img。注Board name見第2步描述。

   9. 燒寫boot.img到手機。

   10. ok!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM