日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

华为悦盒 EC6108V9U 破解过程全记录(root扫盲) [原创]

發布時間:2023/12/31 综合教程 74 生活家
生活随笔 收集整理的這篇文章主要介紹了 华为悦盒 EC6108V9U 破解过程全记录(root扫盲) [原创] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

電信寬帶送的 IPTV 盒子,型號 EC6108V9U,CPU 為 Hi3798M,1G 內存,8G 存儲,支持 H.265 硬解碼,系統為 Android 4.4.2,卻只能看電視,豈不浪費?好在華為厚道,還是留了后門供 DIY。于是,經歷了10余次刷機之后,終于破解成功,在此記錄,與君分享。(聽說還有個 CA 版的,不過我不是。)

快捷方式

進入 Recovery 模式
按遙控首頁不回桌面
去除系統被篡改的提示
系統預裝應用
允許盒子安裝非官方市場的 App
禁止盒子自動升級系統
備份用戶數據
恢復用戶數據
提取出廠固件
恢復出廠固件
觀看本地視頻

目標

不破壞 IPTV 功能
能自由安裝 App
能播放外接 U 盤 / USB 硬盤上的視頻文件

磨刀篇(掃盲)

關于 root

話說 root 這個詞兒,源自 Unix/Linux。因為在 Unix 的世界里,root 用戶就是超級用戶,是系統管理員,相當于 Windows 系統中的 Administrator,也就是一個 Unix 系統中的 “上帝”!

Android 系統是基于 Linux 的,出于安全考慮,很多系統文件、目錄不允許普通用戶訪問。“破解”Android 的目標,就是為了能自由訪問系統文件,從而實現系統優化,或自行管理 App 的安裝和卸載。所謂“root”一個 Android 系統,真正的含義其實是:讓任意用戶獲取底層 Linux 的 root 用戶權限。

關于 root 的基本原理,比較完整的解釋:Android root 原理,簡化一點的解釋:Android的Root原理。

root 的基本步驟

所有的 root 方法,都不過是想盡一切辦法找到某個廠家 Android 的漏洞,以便能把修改后的 su 放進系統的可執行目錄,獲得 root 權限。
基本步驟如下:

將可被任何用戶執行的 su 可執行文件放入 /system/xbin 目錄;
預裝 Superuser/SuperSU 之類的 root 權限管理 App(放入 /system/app 目錄);
將 Superuser 之類 App 的服務程序做成隨 Linux 自啟動的后臺守護進程(比如寫入 etc/init.d/)。

所有的 root 工具,都不過是將這個過程自動化,以便能自動判斷手機型號、根據 Linux 的不同版本選擇 su,僅此而已。

關于 su

其實 su 是 Unix/Linux 自帶的程序,功能就是讓普通用戶能夠臨時成為 root 用戶干活。但是在運行 Android 的 Linux 中,多半是被拿掉了,或者是被修改成僅供 root 用戶運行的。因為 Linux 是開源的,所以就有好人用源碼編譯出一個帶有正常功能的 su 的可執行文件,只要選對 Linux 的版本即可拿來用了。

關于 Android 系統的目錄結構和配置文件

下面列出最緊要的幾個,其他目錄可參閱 Android 的文件系統結構。

/system/ 基本上所有的 Android 工具和應用程序都在這里。

/system/app/ 系統 App 存放目錄,刪不掉的 App 都在這里。
/system/bin/ 常用的可執行程序存放目錄。
/system/etc/ 系統配置文件存放目錄。
/system/framework/ Java平臺架構核心庫,存放 jar 包和 odex 優化的文件。
/system/lib/ 系統底層共享庫,存放 .so 庫文件。
/system/xbin/ 存放不常用的系統可執行程序,相當于 Linux 的 /sbin。
/system/build.prop 系統設置和變更屬性文件。這是個文件,不是目錄。

/data 存放用戶軟件和數據。

/data/app 普通 App 安裝目錄。

關于 Superuser

Superuser 是一個開源軟件,源碼在此。主要功能是監聽并管理 App 對 su 的調用,給用戶選擇是否授予 root 權限。

主要原理是將 apk 層傳入的本應放在 shell 進程中執行的命令,放到 daemonsu 創建 進程 sush 中執行。 其中 Daemonsu 為開機時啟動的 su 守護進程(user 為 root)。 最重要的過程是 apk、su、daemonsu、sush、superuser 之間的通信。

通信過程大概為:

三方進程調用su,su 通過 socket 與 daemonsu 通信,
daemonsu 創建sush,
sush 通過 am 啟動 superuser apk ,讓用戶選擇是否授予其root權限。
superuser 通過 socket 告知 sush 用戶選擇的結果
sush 根據 apk 傳過來的結果,選擇繼續執行或中斷執行

詳見 Superuser root 原理詳細分析。

動手篇

root 方法有以下 2 種:

利用 ADB 模式,執行命令行腳本,分步完成。
進入 Recovery 模式,用別人已經 root 完的 ROM,整個替換掉現有的系統。

Recovery 方式(刷機)

Recovery 模式,顧名思義,是 Android 系統提供的恢復操作系統(ROM)、清除用戶數據、恢復出廠設置的模式。所謂“刷機”,就是在 Recovery 模式下,把已 root 、已修改過的系統 ROM“恢復”到盒子的存儲中去,覆蓋現有系統。

刷機方式的好處是簡單,適合不懂(或不想懂)計算機原理的人操作。但前提是必須找到適合自己盒子的 ROM 版本。因為盒子不像手機,各省、各個運營商都對 ROM 做過定制,IPTV 的配置參數更是各不相同,刷錯了就變磚了。

因此,刷機方式:

必須找到和自己盒子版本完全相同的 ROM;
難以保留 IPTV 功能。

步驟如下(詳見華為悅盒EC6108V9系列-海思芯片通刷固件破解教程):

U 盤格式化為 FAT32,在根目錄建個 upgrade 文件夾(有些盒子是直接放入根目錄),把需要刷入的 ROM(update.zip 文件)拷入;
進入 Recovery 模式。注意 2 種遙控器的進入方式不同。詳見 華為悅盒怎么進入REC模式、升級、雙清、恢復出廠教程。
屏幕上各個選項的含義如下(注意,各個型號的選項次序不一定相同):

Apply update from external storage 從外部存儲中更新系統(刷機用)
Apply update from backup 從自帶備份中更新系統(恢復出廠固件
Wipe dalvik-cache partition 清除 Dalvik 緩存數據
Wipe data/factory reset 清除系統數據 / 恢復出廠設置
Wipe userdata partition 清除用戶數據
Reboot 重啟

選擇 Apply update from external storage,開刷。
等待完成,重啟盒子。

不過我得保留IPTV功能,所以選擇下一種方案。

ADB方式(執行腳本)

華為悅盒 EC6108V9U 的 ADB 模式,天然就是帶 root 權限的,這就是華為為我們開的 backdoor,不需要再費心費力去找 Linux 的漏洞了。這和一些 Android 手機不同。

判斷 ADB 是否已經獲到了 root 權限,只要看 shell 的提示符即可。“#”是 root 用戶的專屬提示符。

> adb shell
$                // 普通用戶權限
#                // root 權限

基本步驟:

保證電腦和盒子的 IP 在同一個網段(子網)內。如果都是用 DHCP 獲取 IP 的,默認就是同一網段。Wifi 或 有線網絡均可,只是盒子優先認網線,想用 Wifi 就必須拔下網線。
開啟盒子的“遠程維護連接”,(設置--更多(或高級)--遠程連接控制,設為允許),左下角會出現“DEBUG模式”。并記錄本次連接的密碼(每次開啟都會生成新的密碼,可以隨時進來查看當前密碼);
運行華為 STB 管理工具,導入同一目錄下的許可證文件(*.dat);連接盒子,輸入IP、連接密碼;開啟遠程登錄(ADB模式),提交。
運行破解腳本(*.bat),可能會有多個。
重啟盒子。

詳見華為悅盒電腦破解教程。

關于同一個 IP 網段

盒子和電腦都設置為同一段 IP,才能從電腦上連接到盒子去。“同網段”由 IP 地址和掩碼共同決定的,可參閱 IP地址的定義和含義。
簡單來說,就是掩碼(mask)的每個字節(8 個二進制位)控制著對應 IP 字節是屬于主機(Host)地址,還是屬于網段地址,同一網段的掩碼必定相同。IPv4 的地址由 4 個字節構成,相應的掩碼也是 4 個字節。一般地,可以如下設置:

盒子 IP:192.168.0.1
盒子掩碼:255.255.255.0

電腦 IP:192.168.0.2
電腦掩碼:255.255.255.0

掩碼為 255.255.255.0,表示 IP 地址的前 3 個字節(192.168.0.X)均為網段地址,用于識別網段,不用作識別主機。這時 IP 地址中的最后 1 個字節才是標識主機用的。各個主機必須設為不同的數字,總共有 256 (2 的 8 次方)種可能,再去掉第 1 個可用數字 0(固定用于代表本網段)和最后 1 個可用數字 255(固定表示本網段的廣播地址),剩下 254 個可用數字(1-254)。也就是說,當掩碼字節為 0 時,同網段最多可以接入 254 個主機。

當然,掩碼可以是任意值,不一定非得是 0 或 255。這樣 IP 拆分為網段和主機部分就得用二進制計算了,有專門的網站提供了方便,比如網絡和IP地址計算器。

詳細解析破解腳本

一般會有一個或多個 .bat 文件供運行。.bat 文件是普通的文本文件,只是后綴改成 .bat 而已,用記事本打開就行了,里面都是 windows/DOS 能夠運行的命令。下面逐條解釋一下幾條主要命令:

.ootadb kill-server

運行 root 目錄下的 adb 程序,參數為 kill-server。作用是關閉已經在運行的 adb 進程。

set /p ip=請輸入盒子的IP地址,然后按回車鍵:

獲取用戶鍵盤錄入,賦值給變量 ip。這里務必準確輸入盒子的 IP,比如 192.168.0.1。

.ootadb connect %ip%:5555

運行 root 目錄下的 adb 程序,參數為 connect %ip%:5555。作用是連接 ip 指定的盒子 IP 地址,端口為 5555。ADB 默認服務端口即為 5555,因此可省略為 adb connect 192.168.0.1。

 .ootadb shell mount -o remount,rw /system

運行 adb 程序,參數為 shell mount -o remount,rw /system,也即通過 ADB 在盒子上執行 mount -o remount,rw /system 命令。作用是將 /system 目錄重新掛載為可讀寫模式,便于下面的寫入操作,默認是只讀的。

.ootadb push .ootsu /system/xbin/su

運行 adb 程序,參數為 push .ootsu /system/xbin/su。作用是推送本地 root 目錄下的 su 文件到盒子上的 /system/xbin/ 目錄下,文件名仍然為 su。既然文件名不變,其實可以簡寫為 adb push .ootsu /system/xbin/。

.ootadb shell "chmod 06755 /system/xbin/su"

運行 adb 程序,參數為 shell "chmod 06755 /system/xbin/su",即通過 ADB 在盒子上執行 chmod 06755 /system/xbin/su 命令。作用是將 /system/xbin/ 目錄下的 su 文件的訪問權限修改為 06755,也就是允許任意用戶執行 su,詳見 UNIX 文件權限。

.ootadb push .ootShafa.apk /system/app/Shafa.apk.apk

運行 adb 程序,參數為 shell .ootShafa.apk /system/app/Shafa.apk.apk。作用是推送本地 root 目錄下的 Shafa.apk 文件到盒子上的 /system/app/ 目錄下,文件名為 Shafa.apk.apk,使得沙發桌面應用成為系統預裝應用

.ootadb shell "settings put secure install_non_market_apps 1" 

運行 adb 程序,參數為 shell "settings put secure install_non_market_apps 1",即通過 ADB 在盒子上執行 settings put secure install_non_market_apps 1 命令。作用是允許盒子安裝非官方市場的 App

.ootadb shell "chmod 0000 /system/app/UpgradeOnline.apk"

運行 adb 程序,參數為 shell "chmod 0000 /system/app/UpgradeOnline.apk",即通過 ADB 在盒子上執行 chmod 0000 /system/app/UpgradeOnline.apk 命令。作用是將 /system/app/ 目錄下的 UpgradeOnline.apk 文件訪問權限該為 0000,也即禁止任何用戶訪問,以禁止盒子自動升級系統

.ootadb shell "echo 1 > /system/etc/.installed_su_daemon"

運行 adb 程序,參數為 shell "echo 1 > /system/etc/.installed_su_daemon",即通過 ADB 在盒子上執行 echo 1 > /system/etc/.installed_su_daemon 命令。作用是在 /system/etc/ 目錄下生成 .installed_su_daemon 文件(如果已存在則覆蓋),文件內容為一個字符“1”,啟用 su 的守護(常駐內存)標志。

.ootadb shell mkdir /system/etc/init.d

運行 adb 程序,參數為 shell mkdir /system/etc/init.d,即通過 ADB 在盒子上執行 mkdir /system/etc/init.d 命令。作用是在 /system/etc/ 目錄下新建 init.d 目錄。該目錄下的所有文件都被 Linux 視為系統啟動時自動執行的腳本。

.ootadb push .ootandroid /system/framework/android.policy.jar

運行 adb 程序,將本地 root 目錄下的 android 文件推送到盒子的 /system/framework 目錄下,文件名變為 android.policy.jar,如有同名文件則覆蓋。作用是解決按遙控首頁不回桌面的問題。

.ootadb shell "> /system/checksum.img"

運行 adb 程序,將盒子 /system/ 目錄下的 checksum.img 清為 0 個字節的文件。作用是去除系統被篡改的提示。盒子在啟動時,會對幾個關鍵文件進行校驗,校驗數據保存在 checksum.img 文件中,將其內容清為 0 就取不到校驗數據了,也就不提示了。其實盒子提示被篡改也沒啥關系,多點擊一次確定罷了,繼續用就是了。

adb pull /data/data/com.huawei.iptv.stb.stbconfig .ak

運行 adb 程序,將盒子 /data/data/ 目錄下的 com.huawei.iptv.stb.stbconfig 文件復制到本地的 bak 目錄下。作用是備份用戶數據

adb push .akcom.huawei.iptv.stb.stbconfig /data/data/

運行 adb 程序,將本地 bak 目錄下的 com.huawei.iptv.stb.stbconfig 文件復制到盒子的 /data/data/ 下。作用是恢復用戶數據

提取出廠固件

出廠時的固件,可以通過 Recovery 模式的 Apply update from backup 菜單進行恢復。出廠固件位于盒子存儲的特定分區中,一般不會被覆蓋,所以提取出來主要是為了修改里面的內容,比如制作已經 root 的 ROM。完整的命令如下(前面 2條是連接盒子和修改 /system 為讀寫模式):

adb connect 192.168.0.1
adb shell mount -o remount,rw /system
adb shell mkdir /tmp/bak
adb shell mount -t ext3 /dev/block/platform/hi_mci.1/by-name/backup /tmp/bak
adb pull /tmp/bak/update.zip ./update.zip

下面逐條解釋一下這幾條命令:

adb connect 192.168.0.1

運行 adb 程序,參數為 connect 192.168.0.1。作用是連接 192.168.0.1(盒子 IP 地址),端口用默認的(5555)。如接著前面的操作,則無需再執行了。

adb shell mount -o remount,rw /system

同上所述,將 /system 目錄重新掛載為可讀寫模式。如接著前面的操作,則無需再執行了。

adb shell mkdir /tmp/bak

運行 adb 程序,在盒子上執行 mkdir /tmp/bak 命令。作用是在盒子的 /tmp/ 目錄下新建一個名為 bak 的目錄,用于掛載備份文件所在的分區。Unix 系統下要訪問設備(存儲設備分區也被視為一種設備),得先掛到某個目錄下面,以便像訪問文件一樣訪問設備。

adb shell mount -t ext3 /dev/block/platform/hi_mci.1/by-name/backup /tmp/bak

運行 adb 程序,在盒子上執行 mount -t ext3 /dev/block/platform/hi_mci.1/by-name/backup /tmp/bak 命令。作用是將 /dev/block/platform/hi_mci.1/by-name/backup 設備掛載為 /tmp/bak 目錄,存儲格式是 ext3。

adb pull /tmp/bak/update.zip

運行 adb 程序,從盒子的 /tmp/bak/ 目錄下拉取 update.zip 文件,保存到當前目錄下。這個就是盒子自帶的 ROM 備份。

在拉取文件之前,還可以用以下命令查看一下掛載成功的分區(即 /tmp/bak 目錄),我是看到里面只有一個 update.zip 文件的。

adb shell ls -l /tmp/bak

運行 adb 程序,列出盒子 /tmp/bak/ 目錄下的文件。關于 ls 命令的詳細信息,可參考 ls命令詳解。

觀看本地視頻

要不怎么說華為厚道呢,內置的媒體中心 App 天然就能播放本地視頻,根本不需要安裝什么暴風影音之類的!進入第三方桌面,就能打開媒體中心看視頻了,簡單吧。

結束語

在此感謝沙發網和當貝網,在里面學習了很多知識。智能電視/盒子已經是電腦、手機之外的第三大陣地了,門戶之爭,山雨欲來。

“天下武功,唯快不破”。只要抓住 root 的本質,略懂一點 Android 和 Linux,root 還是很容易的吧!

總結

以上是生活随笔為你收集整理的华为悦盒 EC6108V9U 破解过程全记录(root扫盲) [原创]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。