首頁 收藏 QQ群
 網(wǎng)站導航

ZNDS智能電視網(wǎng) 推薦當貝市場

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網(wǎng)站活動 | Z幣中心

新手入門 / 進階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機救磚 | ROM固件

查看: 269611|回復: 124
上一主題 下一主題
[分享]

【轉(zhuǎn)】Q5 4核通過TTL ROOT(不用刷機)教程

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2014-9-1 14:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式 | 來自江蘇
本帖最后由 彼此的羈絆 于 2014-9-1 15:01 編輯

首先你得有一定的刷機經(jīng)驗,會一些linux基本操作,對安卓系統(tǒng)有一些基本了解。下面開始

首先,你得有一條TTL刷機線,就是那個usb轉(zhuǎn)串口的線,我用的淘寶上面大把的盜版pl2303芯片的,大概10多20元吧,刷機必備。因為是盜版的,所以你不能裝太新的驅(qū)動,否則會檢測出來,驅(qū)動不了,我用的是2007年的驅(qū)動,在win8.1 64下面可以正常使用。設(shè)置成115200 bps,記下相應(yīng)的COM口,一般是COM3。 【轉(zhuǎn)】Q5 4核通過TTL ROOT(不用刷機)教程

打開Q5機器,你可以看到面對顯示面板這邊,左下角有個白色的6pin 插座。從左邊起第一個pin是GND, 第3,4 pin 是RX, TX,至于哪個是rx,tx,我沒有深究,不行就交換一下ok。 【轉(zhuǎn)】Q5 4核通過TTL ROOT(不用刷機)教程

安裝個putty之類的終端軟件,打開相應(yīng)的COM口,然后啟動Q5,你可以在終端上看到大量的輸出,這期間按Ctrl-C,會在停在一個輸入狀態(tài),這就是uboot或者fastboot之類的界面,輸入help,看到一大堆命令有沒有?我們要用到的是setenv, tftp ,bootm。 【轉(zhuǎn)】Q5 4核通過TTL ROOT(不用刷機)教程

待續(xù)。。。
ok,繼續(xù)
如果沒有按Ctrl-C會怎樣呢?當然是繼續(xù)啟動過程,進入系統(tǒng)undefined。好,我們來體驗下
【轉(zhuǎn)】Q5 4核通過TTL ROOT(不用刷機)教程

你會發(fā)現(xiàn),啥也干不了,只能看著。這是因為系統(tǒng)沒有開啟Console,所以沒有進入shell。所以,下面重點來了
待續(xù)。。。

重點就是要讓系統(tǒng)開啟主控臺,這樣我們的TTL終端窗口就可以進入shell,怎么開啟呢?你猜對了,就是修改固件,確切的說就是修改Boot.img。也許你要問,這個文件是干啥用的呢?這個文件包含了 ramdisk 和 系統(tǒng)的linux kernel,當然kernel我們就不用去改了,我們要改的是ramdisk。暈,怎么寫來寫去不怎么“粗略”了undefined,既然這樣,我就不直接給成品了。ok,說說怎么改。這個文件在官網(wǎng)的升級包里面,我的固件是最新的1.0.2,所以先下載這個固件包
http://81jnr2m.cn/tv-90639-1-1.html
然后,我們要用到一個boot.img的打包解包神器,哪里去找,怎么用呢?當然,萬能的百度會告訴你,關(guān)鍵詞“bootimg.exe”。

好了,完事具備。
建個目錄,把bootimg.exe拷貝進去。
首先解包固件update_qualcore_Q5.zip,把boot.img拷貝到剛才的目錄。

  • E:\fw>dir
  • 2014/08/23  14:21    <DIR>          .
  • 2014/08/23  14:21    <DIR>          ..
  • 2014/06/15  15:16         8,175,616 boot.img
  • 2014/08/20  18:06         2,405,677 bootimg.exe




然后
  • E:\fw>bootimg.exe --unpack-bootimg boot.img
  • arguments: [bootimg file]
  • bootimg file: boot.img
  • output: kernel[.gz] ramdisk[.gz] second[.gz]
  • base=0x3000000
  • page_size=16384
  • name=""
  • cmdline=""
  • padding_size=16384


解包出來的base, cmdline, page_size, padding_size幾個值比較重要,需要記住,等下重新打包的時候要用到。
接下來解包ramdisk

  • E:\fw>bootimg.exe --unpack-ramdisk
  • arguments: [ramdisk file] [directory]
  • ramdisk file: ramdisk.gz
  • directory: initrd
  • output: cpiolist.txt


看到目錄下多出來一個initrd目錄了吧?目錄下有個文件叫default.prop,好了,就是他了。用寫字板之類的打開,找到ro.debuggable=0這樣的,這就是開啟Console服務(wù)的選項。把0修改成1,然后保存。
下面重新打包ramdisk

  • E:\fw>bootimg.exe --repack-ramdisk
  • arguments: [cpiolist file]
  • cpiolist file: cpiolist.txt
  • output: ramdisk.cpio.gz


重新打包boot.img (看下面命令行,后面的參數(shù)就是剛才提到要記住的字段。這里有點問題,cmdline為空好像不行,所以亂寫個)


  • E:\fw>bootimg.exe --repack-bootimg 0x3000000 "\0" 16384 16384
  • arguments: [base] [cmdline] [page_size] [padding_size]
  • kernel: kernel
  • ramdisk: ramdisk.cpio.gz
  • second:
  • base: 0x3000000
  • cmdline: \0
  • page_size: 16384
  • padding_size: 16384
  • output: boot.img


大功搞成,新的boot.img取代了舊的。


  • E:\fw>dir
  • 2014/08/23  14:30    <DIR>          .
  • 2014/08/23  14:30    <DIR>          ..
  • 2014/08/23  14:32         8,175,616 boot.img
  • 2014/08/20  18:06         2,405,677 bootimg.exe
  • 2014/08/23  14:26               892 cpiolist.txt
  • 2014/08/23  14:26    <DIR>          initrd
  • 2014/08/23  14:23         7,826,184 kernel
  • 2014/08/23  14:30           321,942 ramdisk.cpio.gz
  • 2014/08/23  14:23           322,481 ramdisk.gz



好了,回到最開始,連接TTL,打開putty終端,開機,Ctrl-C,進入fastboot界面

待續(xù)。。。。

繼續(xù)
先看看環(huán)境變量

  • fastboot# pr
  • bootdelay=1
  • baudrate=115200
  • ipaddr=192.168.1.10
  • serverip=192.168.1.1
  • netmask=255.255.255.0
  • bootfile="uImage"
  • phy_intf=mii,rgmii
  • use_mdio=0,1
  • phy_addr=2,1
  • gmac_debug=0
  • bootcmd=mmc read 0 0x1FFFFC0 0x4B000 0x5000; bootm 0x1FFFFC0
  • bootargs=mmz=ddr,0,0,700M mem=2G console=ttyAMA0,115200 blkdevparts=mmcblk0:1M(f                                                                                                                                                             astboot)ro,1M(bootargs)ro,10M(recovery)ro,2M(deviceinfo),8M(baseparam),8M(pqpara                                                                                                                                                             m),20M(logo),20M(logobak),40M(fastplay),40M(fastplaybak),40M(kernel)ro,20M(misc)                                                                                                                                                             ,8M(userapi),8M(qbdrVR),8M(qbflag),300M(qbdata),768M(system),2048M(userdata),100                                                                                                                                                             M(cache),20M(private)ro,-(sdcard)
  • recoverybootargs=mmz=ddr,0,0,700M mem=2G console=ttyAMA0,115200 blkdevparts=mmcb                                                                                                                                                             lk0:1M(fastboot),1M(bootargs),10M(recovery),2M(deviceinfo),8M(baseparam),8M(pqpa                                                                                                                                                             ram),20M(logo),20M(logobak),40M(fastplay),40M(fastplaybak),40M(kernel),20M(misc)                                                                                                                                                             ,8M(userapi),8M(qbdrvr),8M(qbflag),300M(qbdata),768M(system),2048M(userdata),100                                                                                                                                                             M(cache),20M(private),-(sdcard)
  • stdin=serial
  • stdout=serial
  • stderr=serial
  • ethaddr=00:66:cf:00:07:07
  • ver=Fastboot 3.3.0-svn8063 (wukl@ubuntu) (Jul 11 2014 - 17:58:14)
  • Environment size: 1067/65532 bytes
  • fastboot#



重點說下ipaddr, serverip, bootcmd這3個變量因為這個時候,最方便把boot.img傳到機器里面的方法就是通過tftp。所以,我們要先設(shè)置下網(wǎng)絡(luò)環(huán)境

  • ipaddr=192.168.1.10


這個是設(shè)置Q5盒子本身的ip地址

  • serverip=192.168.1.1


這個就是tftp服務(wù)器的ip地址,所以你需要設(shè)置為你的實際的地址,在這里我的機器是192.168.2.163,所以Q5盒子就相應(yīng)設(shè)置到同一個網(wǎng)段,我用的192.168.2.11,于是,執(zhí)行如下命令修改這兩個環(huán)境變量
  • fastboot# set ipaddr 192.168.2.11
  • fastboot# set serverip 192.168.2.163
  • fastboot#




再說下環(huán)境變量bootcmd
  • bootcmd=mmc read 0 0x1FFFFC0 0x4B000 0x5000; bootm 0x1FFFFC0


這下知道盒子怎么啟動了吧?就是先從mmc第0x4B000處把內(nèi)核讀到內(nèi)存的0x1FFFFC0地址,然后運行bootm從0x1FFFFC0開始運行,啟動內(nèi)核。

我們這里是要啟動我們修改好的boot.img,沒刷到mmc里面,怎么辦呢?那就是要用到的tftp命令。要用tftp,你首先還得在你的電腦上有個tftp服務(wù)器才行,我用的是廣泛使用的tftpd32.exe,哪里去找呢?還是萬能的百度,關(guān)鍵詞“tftpd32.exe”,網(wǎng)上大把,自己下載裝好,把tftpd32.exe 放到剛才的目錄。
  • E:\fw>dir
  • 2014/08/23  16:40    <DIR>          .
  • 2014/08/23  16:40    <DIR>          ..
  • 2014/08/23  14:32         8,175,616 boot.img
  • 2014/08/20  18:06         2,405,677 bootimg.exe
  • 2014/08/23  14:26               892 cpiolist.txt
  • 2014/08/23  14:26    <DIR>          initrd
  • 2014/08/23  14:23         7,826,184 kernel
  • 2014/08/23  14:30           321,942 ramdisk.cpio.gz
  • 2014/08/23  14:23           322,481 ramdisk.gz
  • 2011/05/08  00:05           205,312 tftpd32.exe



運行tftpd32.exe
【轉(zhuǎn)】Q5 4核通過TTL ROOT(不用刷機)教程

這下可以從tftp獲取boot.img了
  • fastboot# tftp 0x1FFFFC0 boot.img
  • ETH0: PHY(phyaddr=1, rgmii) link UP: DUPLEX=FULL : SPEED=1000M
  • MAC:   00-66-CF-00-07-07
  • TFTP from server 192.168.2.163; our IP address is 192.168.2.11
  • Download Filename 'boot.img'.
  • Download to address: 0x1ffffc0
  • Downloading: #  [ Connected ]
  • ################################        [ 2.888 MB]
  • ################################        [ 5.752 MB]
  • #######################
  • done
  • Bytes transferred = 8175616 (7cc000 hex)




ok,現(xiàn)在我們終于把改好的內(nèi)核放到了盒子內(nèi)存的0x1FFFFC0地址開始處。下面就可以運行了
  • fastboot# bootm 0x1FFFFC0
  • Found Initrd at 0x04000000 (Size 321942 Bytes), align at 16384 Bytes
  • ## Booting kernel from Legacy Image at 02003fc0 ...
  •    Image Name:   Linux-3.10.0_s40
  •    Image Type:   ARM Linux Kernel Image (uncompressed)
  •    Data Size:    7826120 Bytes = 7.5 MiB
  •    Load Address: 02000000
  •    Entry Point:  02000000
  •    Verifying Checksum ... OK
  •    Loading Kernel Image ... OK
  • OK
  • Starting kernel ...
  • Uncompressing Linux... done, booting the kernel.
  • Booting Linux on physical CPU 0x0
  • Linux version 3.10.0_s40 (wukl@ubuntu) (gcc version 4.4.1 (Hisilicon_v200(gcc4.4-290+glibc-2.11+eabi+nptl)) ) #2 SMP Fri Aug 1 20:09:00 CST 2014
  • CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c53c7d
  • CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
  • Machine: bigfish
  • Ignoring unrecognised tag 0x726d6d74
  • Invalid PDM tag, errno:0
  • DSP run memory space at 0x02000000, size: 0x00800000 Bytes.
  • cma: CMA: reserved 700 MiB at 43c00000
  • cma: CMA: reserved 4 MiB at 43800000




啟動完畢,按下回車,看到了shell提示符,有沒有?
  • 130|root@Hi3798CV100:/ #


到這里,基本上就大功告成了,你已經(jīng)獲得了root權(quán)限,可以做事了。我這里并未把改好的boot.img 刷到mmc, 你要有興趣,可以在剛才的fastboot界面,tftp上傳完了boot.img后,用mmc write寫進去,當然你如果搞錯了,把機器寫壞了可別怪我哈。

什么?你提到adb?好吧,我再啰嗦下。盒子里面本身是帶了一個adbd的,就在固件的sbin目錄下,可惜這個不能用,因為這個是user模式的,不能用root身份運行,只能用shell身份運行。所以,你需要一個不工程模式的adbd,而且不會去檢查系統(tǒng)選項降低權(quán)限的。所以,得需要一個修改過的特別"訂制"的adbd。這就麻煩了,你得搭建一個ubuntu linux的安卓開發(fā)環(huán)境,下載android源代碼,配置選項,修改代碼,編譯,就算你是老手,沒有4,5個小時搞不定(我會告訴你我下載了3個多小時,編譯了2小時嗎)。所以,我還是貢獻一個改好的吧。
adbdz.zip (101.93 KB, 下載次數(shù): 232, 售價: 1 金幣)
名字改成了adbdz,以便和原來的區(qū)分。

接下來就簡單了,通過u盤也好,smb也好,你把這個文件保存到盒子上面。比如我是在電腦上面共享出來,用盒子本身的媒體中心-網(wǎng)上鄰居訪問下,這樣盒子就自動smb mount 了。
我是把adbdz放到了/system/bin/下面,/system本身是只讀的,所以需要重新mount 下

  • mount -o rw,remount /dev/block/platform/hi_mci.1/by-name/system /system


這下可寫了,


  • cp /mnt/smb/mountpoint_01/adbdz /system/bin/



修改下文件權(quán)限
  • chmod 755 /system/bin/adbdz



然后修改/system/etc/init.bigfish.sh,讓adbdz可以開機自動啟動

  • echo "\n/system/bin/adbdz &" >> /system/etc/init.bigfish.sh



/system貌似被加了nosuid選項,su命令可能失效,保險起見,開機的時候再mount 下

  • echo "\n/system/bin/mount -o ro,remount /dev/block/platform/hi_mci.1/by-name/system /system" >> /system/etc/init.bigfish.sh




ok, 重啟

  • adb connect 你的盒子ip
  • adb shell
  • root@Hi3798CV100:/ #




好了,開啟adb到此就結(jié)束。你可以使用壇子里面的那些一鍵root工具之類的了。

既然審核通過了,那我繼續(xù)把root管理器的安裝也講一下吧。
1,下載最新版本supersu,
http://download.chainfire.eu/452/SuperSU/UPDATE-SuperSU-v2.02.zip

2,解壓,把arm目錄下的su拷貝到/system/xbin/,同一目錄再復制一個叫daemonsu的,
chmod 4755 /system/xbin/su
chmod 4755 /system/xbin/daemonsu


3,拷貝common目錄下的Superuser.apk到 /system/app下面,
chmod 644 /system/app/Superuser.apk

4,echo 1 > /system/etc/.installed_su_daemon

5,添加開機啟動daemonsu
echo "/system/xbin/daemonsu --auto-daemon &" >> /system/etc/init.bigfish.sh

6,/system/xbin/su --install

7,reboot


上一篇:芒果嗨Q HD600A升級海思四核,H.265+4K硬解碼,搶券搶購安排
下一篇:芒果嗨Q HD600A四核,4K+H.265硬解,優(yōu)惠券搶購一空,9.2號繼續(xù)
沙發(fā)
發(fā)表于 2014-9-3 02:51 | 只看該作者 | 來自北京
強烈支持樓主ing……
回復 支持 反對

使用道具 舉報

板凳
發(fā)表于 2014-9-16 11:32 | 只看該作者 | 來自廣東
很給力,ZNDS有你更精彩!
回復 支持 反對

使用道具 舉報

地板
發(fā)表于 2014-9-23 11:52 | 只看該作者 | 來自北京
樓主太厲害了
回復 支持 反對

使用道具 舉報

5#
發(fā)表于 2014-9-25 23:51 | 只看該作者 | 來自廣西
Q5 4核通過TTL ROOT(不用刷機)教程
回復 支持 反對

使用道具 舉報

6#
發(fā)表于 2014-9-29 08:10 | 只看該作者 | 來自山東
很給力,ZNDS有你更精彩!
回復 支持 反對

使用道具 舉報

7#
發(fā)表于 2014-9-29 13:48 | 只看該作者 | 來自廣東
頂!!!!!!!!!!
回復 支持 反對

使用道具 舉報

8#
發(fā)表于 2014-10-10 03:34 | 只看該作者 | 來自四川
很給力,ZNDS有你更精彩!
回復 支持 反對

使用道具 舉報

9#
發(fā)表于 2014-11-7 05:40 | 只看該作者 | 來自浙江
精華內(nèi)容,樓主V5!
回復 支持 反對

使用道具 舉報

10#
發(fā)表于 2014-11-11 18:18 | 只看該作者 | 來自陜西
這個真是太給力了
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號 )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號

GMT+8, 2024-10-25 17:20 , Processed in 0.086632 second(s), 15 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2024 ZNDS.Com

快速回復 返回頂部 返回列表