|
本帖最后由 zhafaq 于 2021-7-6 21:21 編輯
創(chuàng)維E900v21E S905L2 emuelec 提取DTB 編輯DTS 以及手動ROOT的方法(IPTV共存)
全程使用自帶的原始固件。
進(jìn)入系統(tǒng)按設(shè)置鍵,密碼0,確認(rèn)
第一步,連接到wifi,與pc使用同一個wifi局域網(wǎng)
第二步,選擇其他設(shè)置,光標(biāo)移動到管理應(yīng)用程序上,不停的按遙控器右按鈕,打開usb調(diào)試,一定要確認(rèn)
第三步,返回系統(tǒng)信息,查看網(wǎng)絡(luò)信息,找到盒子ip 192.168.x.xxx
第四步,到pc上使用adb.exe做連接 adb connect 192.168.x.xxx 成功后輸入adb shell 如果ok可以看到root@p201_iptv:/ #表示已經(jīng)進(jìn)入adb
的最高權(quán)限模式 此時只有adb有root權(quán)限并不是system有su的root權(quán)限
注意:如果無法看到root@p201_iptv:/ #而是xxxx@p201_iptv:/ $ 那么問題出在system/build.prop這個文件里面其中少了一條
ro.adb.secure=0 如果是1 那就拿不到adb的root權(quán)限 如果是這樣 最好嘗試用s905x的twrp不刷機(jī)啟動U盤上的twrp-recovery.img來做文件的
修改和替換。
dtb 查看命令
cat /proc/device-tree/amlogic-dt-id
gxlx2_p291_1g
新版本的E900v21E如果要使用TTL那么
串口TTL缺少3個電阻 分別是100歐姆2個 10k歐1個 0402貼片電阻
方向:vcc-10k-100ohm-RX TX-10k-100ohm-vcc
查看分區(qū):
root@p201_iptv:/proc # cat ntd
inand01: 400000 80000 "bootloader"
inand02: 4000000 80000 "reserved"
inand03: 30000000 80000 "cache"
inand04: 800000 80000 "env"
inand05: 2000000 80000 "logo"
inand06: 2000000 80000 "recovery"
inand07: 400000 80000 "rsv"
inand08: 800000 80000 "tee"
inand09: 2000000 80000 "crypt"
inand10: 400000 80000 "misc"
inand11: 400000 80000 "instaboot"
inand12: 2000000 80000 "boot"
inand13: 4000000 80000 "params"
inand14: 400000 80000 "skmac"
inand15: 4000000 80000 "skparam"
inand16: 30000000 80000 "skbackup"
查看block映射關(guān)系:
root@p201_iptv:/dev/block/platform/d0074000.emmc # ls -l
ls -l
lrwxrwxrwx root root 2015-01-01 08:00 boot -> /dev/block/boot
lrwxrwxrwx root root 2015-01-01 08:00 bootloader -> /dev/block/bootloader
drwxr-xr-x root root 2015-01-01 08:00 by-num
lrwxrwxrwx root root 2015-01-01 08:00 cache -> /dev/block/cache
lrwxrwxrwx root root 2015-01-01 08:00 cobargs -> /dev/block/cobargs
lrwxrwxrwx root root 2015-01-01 08:00 crypt -> /dev/block/crypt
lrwxrwxrwx root root 2015-01-01 08:00 ctc -> /dev/block/ctc
lrwxrwxrwx root root 2015-01-01 08:00 data -> /dev/block/data
lrwxrwxrwx root root 2015-01-01 08:00 env -> /dev/block/env
lrwxrwxrwx root root 2015-01-01 08:00 instaboot -> /dev/block/instaboot
lrwxrwxrwx root root 2015-01-01 08:00 logo -> /dev/block/logo
lrwxrwxrwx root root 2015-01-01 08:00 misc -> /dev/block/misc
lrwxrwxrwx root root 2015-01-01 08:00 mmcblk0 -> /dev/block/mmcblk0
lrwxrwxrwx root root 2015-01-01 08:00 mmcblk0boot0 -> /dev/block/mmcblk0boot0
lrwxrwxrwx root root 2015-01-01 08:00 mmcblk0boot1 -> /dev/block/mmcblk0boot1
lrwxrwxrwx root root 2015-01-01 08:00 mmcblk0rpmb -> /dev/block/mmcblk0rpmb
lrwxrwxrwx root root 2015-01-01 08:00 params -> /dev/block/params
lrwxrwxrwx root root 2015-01-01 08:00 recovery -> /dev/block/recovery
lrwxrwxrwx root root 2015-01-01 08:00 reserved -> /dev/block/reserved
lrwxrwxrwx root root 2015-01-01 08:00 rsv -> /dev/block/rsv
lrwxrwxrwx root root 2015-01-01 08:00 skbackup -> /dev/block/skbackup
lrwxrwxrwx root root 2015-01-01 08:00 skmac -> /dev/block/skmac
lrwxrwxrwx root root 2015-01-01 08:00 skparam -> /dev/block/skparam
lrwxrwxrwx root root 2015-01-01 08:00 system -> /dev/block/system
lrwxrwxrwx root root 2015-01-01 08:00 tee -> /dev/block/tee
得到所有block名稱:
root@p201_iptv:/dev/block/platform/d0074000.emmc # ls
boot
bootloader
by-num
cache
cobargs
crypt
ctc
data
env
instaboot
logo
misc
mmcblk0
mmcblk0boot0
mmcblk0boot1
mmcblk0rpmb
params
recovery
reserved
rsv
skbackup
skmac
skparam
system
tee
獲得block的num:
root@p201_iptv:/dev/block/platform/d0074000.emmc/by-num # ls -l
ls -l
lrwxrwxrwx root root 2015-01-01 08:00 p1 -> /dev/block/bootloader
lrwxrwxrwx root root 2015-01-01 08:00 p10 -> /dev/block/misc
lrwxrwxrwx root root 2015-01-01 08:00 p11 -> /dev/block/instaboot
lrwxrwxrwx root root 2015-01-01 08:00 p12 -> /dev/block/boot
lrwxrwxrwx root root 2015-01-01 08:00 p13 -> /dev/block/params
lrwxrwxrwx root root 2015-01-01 08:00 p14 -> /dev/block/skmac
lrwxrwxrwx root root 2015-01-01 08:00 p15 -> /dev/block/skparam
lrwxrwxrwx root root 2015-01-01 08:00 p16 -> /dev/block/skbackup
lrwxrwxrwx root root 2015-01-01 08:00 p17 -> /dev/block/system
lrwxrwxrwx root root 2015-01-01 08:00 p18 -> /dev/block/cobargs
lrwxrwxrwx root root 2015-01-01 08:00 p19 -> /dev/block/ctc
lrwxrwxrwx root root 2015-01-01 08:00 p2 -> /dev/block/reserved
lrwxrwxrwx root root 2015-01-01 08:00 p20 -> /dev/block/data
lrwxrwxrwx root root 2015-01-01 08:00 p3 -> /dev/block/cache
lrwxrwxrwx root root 2015-01-01 08:00 p4 -> /dev/block/env
lrwxrwxrwx root root 2015-01-01 08:00 p5 -> /dev/block/logo
lrwxrwxrwx root root 2015-01-01 08:00 p6 -> /dev/block/recovery
lrwxrwxrwx root root 2015-01-01 08:00 p7 -> /dev/block/rsv
lrwxrwxrwx root root 2015-01-01 08:00 p8 -> /dev/block/tee
lrwxrwxrwx root root 2015-01-01 08:00 p9 -> /dev/block/crypt
開始,本機(jī)原始固件備份。
通過掛載skbackup分區(qū) 可以直接訪問skbackup分區(qū)內(nèi)容 里面已經(jīng)有本機(jī)的updata.zip
mkdir /sdcard/skbackup
mount -t ext4 -o rw /dev/block/skbackup /mnt/sdcard/skbackup
掛載skbackup分區(qū)到sd卡的skbackup文件夾下面然后插上一個ntfs的移動硬盤可以進(jìn)行如下復(fù)制備份
cp -r /mnt/sdcard/skbackup /storage/external_storage/sda1/skbackup
想要速度快,做個excel表就可以開始以下的dd備份了。
dd打包重要的啟動分區(qū)用來提取dtb
dtb包含在boot分區(qū)和reserved分區(qū)
備份路徑到本機(jī)
dd if=/dev/block/boot | gzip > /sdcard/boot.gz
dd if=/dev/block/bootloader | gzip > /sdcard/bootloader.gz
dd if=/dev/block/instaboot | gzip > /sdcard/instaboot.gz
dd if=/dev/block/recovery | gzip > /sdcard/recovery.gz
dd if=/dev/block/reserved | gzip > /sdcard/reserved.gz
dd if=/dev/block/skmac | gzip > /sdcard/skmac.gz
dd if=/dev/block/tee | gzip > /sdcard/tee.gz
由于本機(jī)容量不夠
dd備份分區(qū)到外置的移動硬盤上的skbackup文件夾中
dd if=/dev/block/boot of=/storage/external_storage/sda1/skbackup/boot
dd if=/dev/block/bootloader of=/storage/external_storage/sda1/skbackup/bootloader
dd if=/dev/block/cache of=/storage/external_storage/sda1/skbackup/cache
dd if=/dev/block/cobargs of=/storage/external_storage/sda1/skbackup/cobargs
dd if=/dev/block/crypt of=/storage/external_storage/sda1/skbackup/crypt
dd if=/dev/block/ctc of=/storage/external_storage/sda1/skbackup/ctc
dd if=/dev/block/env of=/storage/external_storage/sda1/skbackup/env
dd if=/dev/block/instaboot of=/storage/external_storage/sda1/skbackup/instaboot
dd if=/dev/block/logo of=/storage/external_storage/sda1/skbackup/logo
dd if=/dev/block/misc of=/storage/external_storage/sda1/skbackup/misc
dd if=/dev/block/mmcblk0boot0 of=/storage/external_storage/sda1/skbackup/mmcblk0boot0
dd if=/dev/block/mmcblk0boot1 of=/storage/external_storage/sda1/skbackup/mmcblk0boot1
dd if=/dev/block/mmcblk0rpmb of=/storage/external_storage/sda1/skbackup/mmcblk0rpmb
dd if=/dev/block/params of=/storage/external_storage/sda1/skbackup/params
dd if=/dev/block/recovery of=/storage/external_storage/sda1/skbackup/recovery
dd if=/dev/block/reserved of=/storage/external_storage/sda1/skbackup/reserved
dd if=/dev/block/rsv of=/storage/external_storage/sda1/skbackup/rsv
dd if=/dev/block/skmac of=/storage/external_storage/sda1/skbackup/skmac
dd if=/dev/block/skparam of=/storage/external_storage/sda1/skbackup/skparam
dd if=/dev/block/tee of=/storage/external_storage/sda1/skbackup/tee
dd if=/dev/block/skbackup of=/storage/external_storage/sda1/skbackup/skbackup
dd if=/dev/block/system of=/storage/external_storage/sda1/skbackup/system
dd if=/dev/block/mmcblk0 of=/storage/external_storage/sda1/skbackup/mmcblk0
dd if=/dev/block/data of=/storage/external_storage/sda1/skbackup/data
獲得以及編輯dtb文件適合本機(jī)emuelec
通過7z可以解壓reserved.gz得到dt.img
或者通過skbackup分區(qū)內(nèi)updata.zip解壓得到dt.img
dt.img 在解壓完全狀態(tài) 可以用WinHex 對 S905L2 使用的的 gxlx2_p291_1g 進(jìn)行單獨(dú)提取
可以拿一個已有的gxl_p281_1g.dtb或者gxl_p212_2g_slowemmc.dtb 做對比
網(wǎng)上有個個人提取的gxlx_p261_1g_e900v21e.dtb可供WinHex對比學(xué)習(xí)
然后下載AMLogicTools_V6.0.0
用bin里面的dtc.exe 做dtb-dts的反編譯
之后就可以用Notepad++做gxlx2_p291_1g的修改了,具體修改依舊可以參照:gxl_p281_1g.dtb或者gxl_p212_2g_slowemmc.dtb
最后用dtc 對 dts回編譯到dtb就可以用了
DTC用法進(jìn)入cmd到目標(biāo)AMLogicTools_V6.0.0目錄bin下面
DTB --》 DTS
dtc.exe -I dtb -O dts testx.dtb -o testx1.dts
DTS -》 DTB
dtc.exe -I dts -O dtb -o testx1.dtb testx1.dts
可以使用S905X的TWRP作為S905L2的recovery(并沒有測試,沒太多時間)
https://g---i---t---h---u---b.com/botfap/A95X-Linux-BuildEnv/tree/master/recovery得到的recovery 改名twrp-recovery.img 然后復(fù)制到AMLogicTools_V6.0.0目錄bin下面
打開cmd進(jìn)入AMLogicTools_V6.0.0目錄bin下面
建立文件夾twrp-recovery
通過img2simg.exe twrp-recovery.img twrp-recovery1.img轉(zhuǎn)換img到可以解壓狀態(tài)
在通過unpackbootimg.exe twrp-recovery1.img twrp-recovery 把轉(zhuǎn)碼后的img解壓到twrp-recovery文件內(nèi)
最后可以通過7z打開twrp.img-ramdisk.gz 加壓里面的文件,加壓出來再用7z打開就能看到原始的twrp文件。
這里要用到的是supersu文件里面的su 99SuperSUDaemon install-recovery.sh復(fù)制出來
把su 單獨(dú)復(fù)制一個出來 重命名為daemonsu
建立一個文件夾為root名字,讓文件夾里面包含su daemonsu 99SuperSUDaemon install-recovery.sh四個文件
此時,還缺少一個Superuser.apk,這里可以向“ZTE破解工具箱測試版”root文件夾里面借一個過來。自行百度。到處都是可以下載的。
準(zhǔn)備好移動硬盤(ntfs文件系統(tǒng)),放入root文件夾
root文件夾里面包含su daemonsu 99SuperSUDaemon install-recovery.sh Superuser.apk五個文件
以下是純手動root命令在adb shell下面的操作配合一個拷貝了root文件夾的移動硬盤
拷貝 root文件
cp -rf /storage/external_storage/sda1/root /sdcard/
root手動過程逐條復(fù)制到adb shell命令并回車
mount -o remount,rw /system
mount -o remount,rw /dev/block/system /system
cp -rf /sdcard/root/daemonsu /system/xbin/daemonsu
chmod 0755 /system/xbin/daemonsu
cp -rf /sdcard/root/su /system/xbin/su
chmod 06755 /system/xbin/su
mkdir /system/etc/init.d
chmod 0755 /system/etc/init.d
cp -rf /sdcard/root/99SuperSUDaemon /system/etc/init.d/99SuperSUDaemon
chmod 0755 /system/etc/init.d/99SuperSUDaemon
cp -rf /sdcard/root/install-recovery.sh /system/etc/install-recovery.sh
chmod 0755 /system/etc/install-recovery.sh
/system/xbin/daemonsu --auto-daemon &
以上過程結(jié)束后
reboot
安裝superSU
正常重啟后不會卡畫面此時再次激活usb調(diào)試模式
可以通過TvBox(舊)版本3.0.42.1 安裝 superSU.apk
也可以adb shell 命令安裝。
一旦安裝了非認(rèn)證的apk,此時原始設(shè)置里面的usb調(diào)試(adb shell再下一次啟動的時候失效)
所以一定要在安裝superSU.apk 的同時把 wifiadb.apk給安裝了 最好附帶一個 RE管理器 xxx.桌面.apk 下載市場.apk 之類的方便一點(diǎn)。
wifiadb.apk在TvBox里面可以下載到。
error: device offline 的 解決 方法
安裝wifiadb.apk 可以通過TVbox TV助手下載區(qū)獲得 解決adb連接error: device offline問題
關(guān)于error: device offline 是由于效驗(yàn)了安裝文件不是原始文件造成的 如果想保留原始的iptv功能只能按照上面的方法拿到root才能解決
adb連接問題 中興adb error: device offline 創(chuàng)維adb error: device offline 華為adb error: device offline都可以如此解決。
E900v21E的adb手動開啟命令(提取自boot。boot.img和twrp-recovery.img的解包方法是一樣的本來就是一個性質(zhì)的東西,方法見上面)
setprop sys.start.adb 1
建立兩個文件99adbd和install-recovery-2.sh
復(fù)制setprop sys.start.adb 1這句話到兩個文件中可以實(shí)現(xiàn)
開機(jī)自動啟動adb手動過程逐條復(fù)制到adb shell命令并回車
但是測試后會開機(jī)卡!??!是卡到重啟不是卡死不能進(jìn)系統(tǒng)!估計是循環(huán)沖突了。具體問題還沒有分析
手動adb命令的添加
cp -rf /sdcard/root/99adbd /system/etc/init.d/99adbd
chmod 0755 /system/etc/init.d/99adbd
cp -rf /sdcard/root/install-recovery.sh /system/etc/install-recovery-2.sh
chmod 0755 /system/etc/install-recovery-2.sh
遇到卡死或者卡畫面不要慌
開機(jī)后馬上按遙控器左鍵,不停的按。然后選擇鏡像還原即可,返回初始狀態(tài)。
軟件總結(jié):
AMLogicTools_V6.0.0
Notepad++
7-zip
WinHex
E900v21E S905L2 root 手動文件 打包 下載(專治懶人,辛苦了半天,不想被人盜用,所以不做一鍵root,手動root也是樂趣多多,學(xué)習(xí)也是
一種樂趣,要做一鍵的自己做也不難,找個現(xiàn)成的自己復(fù)制粘貼就行了)
E900v21E S905L2 dtb 下載(有能力的看到上文已經(jīng)可以自己改了,等我改現(xiàn)成的,還得等等等等)
https://wwe.lanzoux.com/ijrKNr33qaj
密碼:1hxw
|
上一篇: 哪位大神幫忙修改下MAC地址,主要是checksum校驗(yàn)碼不會計算下一篇: 聯(lián)通IPTV創(chuàng)維E910能否刷機(jī)?換了電信的寬帶,盒子沒用...
|