本帖最后由 idsl2008 于 2021-10-18 17:50 編輯
丈人家有臺華為悅盒,型號EC6108V9_pub_ahwdx,配置方面和中興B860AV1.1相比,除了存儲空間大4GB,其它硬件相差無幾。該臺盒子無法通過優(yōu)盤安裝軟件(apk文件被系統(tǒng)屏蔽),國慶期間閑來無事,決定將其破解。
備注:盒子底部標(biāo)注的型號不一定準(zhǔn)確,需要通過設(shè)置--關(guān)于本機,確定盒子最終型號。
參考:華為悅盒EC6108V9_pub安裝教程卡刷,刷機過程如下:
1.將優(yōu)盤格式化成FAT32格式(無隱藏分區(qū)和啟動分區(qū)),卡刷包update_liweier.zip重命名為update.zip復(fù)制到優(yōu)盤根目錄;
2.優(yōu)盤插入盒子內(nèi)側(cè)USB接口,拔掉網(wǎng)線。關(guān)機狀態(tài),啟動機頂盒,通過來回交替不停按遙控器的【左】【右】方向鍵,進入recovery模式;
3.選擇“Apply update from external storage”(從外部存儲設(shè)備應(yīng)用更新),開始刷機,幾秒鐘結(jié)束后盒子會自動重啟,拔掉優(yōu)盤;
4.進入當(dāng)貝桌面,彈出警告:“系統(tǒng)已被篡改,繼續(xù)使用存在安全風(fēng)險,請確認(rèn)”,使用RE管理器發(fā)現(xiàn)系統(tǒng)并未獲取root權(quán)限。
備注:篡改警告可通過進recovery模式選擇“Apply update from backup”(從系統(tǒng)備份應(yīng)用更新)清除,當(dāng)然系統(tǒng)分區(qū)新安裝的軟件也會消失
既然當(dāng)前系統(tǒng)未root,還會彈出篡改警告,那就DIY一個卡刷包吧。
操作系統(tǒng): Windows 10 Home Basic 64bit
應(yīng)用軟件: WinRAR
Notepad2
Java
signapk
apk軟件: 當(dāng)貝桌面(版本:3.3.6)、當(dāng)貝市場(版本:4.3.3)、RE(版本:3.3.7)
下面通過分析update_liweier.zip的文件結(jié)構(gòu)和信息,逐步講解卡刷包的制作流程:
一、確定卡刷包目錄及文件
WinRAR解壓縮update_liweier.zip,顯示的文件結(jié)構(gòu)如下:
[update_liweier] └─META-INF └--CERT.RSA #簽名生成文件(可刪除) └--CERT.SF #簽名生成文件(可刪除) └--MANIFEST.MF #簽名生成文件(可刪除) └─com └─android └─google └─android └--update-binary #升級用二進制文件,相當(dāng)于一個腳本解釋器 └--updater-script #升級用腳本文件,描述了具體更新過程 └─data #用戶分區(qū) └─app └--dangbeimarket.apk #當(dāng)貝市場 └─system #系統(tǒng)分區(qū) └─app └--com.dangbei.tvlauncher.apk #當(dāng)貝桌面 └--RootExplorer.apk #RE管理器 └--SuperSU.apk #超級授權(quán)工具(可刪除)
#以下為設(shè)備root文件(可刪除) └─bin └─.ext └--.su └─etc └--.installed_su_daemon └--install-recovery.sh └--install-recovery-2.sh └─init.d └--99adbd └--99SuperSUDaemon └─lib └--libsupol.so └─xbin └--daemonsu └--su └--supolicy
根據(jù)上述說明,我們來制作一個卡刷包:首先保留update-binary和updater-script,然后將當(dāng)貝2in1放入data/app,RootExplorer放入system/app,最后刪除其他文件,形成的文件結(jié)構(gòu)如下:
[update_liweier]
└─META-INF
└─com
└─google
└─android
└--update-binary
└--updater-script
└─data
└─app
└--com.dangbei.tvlauncher.apk
└--dangbeimarket.apk
└─system
└─app
└--RootExplorer.apk
二、修改刷機腳本文件
notepad2打開updater-script文件(#后內(nèi)容為筆者添加的注釋):
- getprop("ro.product.device") == "Hi3798MV100" || abort("This package is for "Hi3798MV100" devices; this is a "" + getprop("ro.product.device") + "".");
- #查詢設(shè)備信息,校驗設(shè)備芯片是否為Hi3798MV100,校驗成功的話繼續(xù)刷機操作,失敗的話終止刷機
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/system", "/system");
- #掛載system分區(qū),設(shè)置返回指針”/system”,方便后續(xù)讀寫
- package_extract_dir("system", "/system");
- #提取壓縮包system文件夾下所有內(nèi)容至手機的"/system"
- set_perm(0, 0, 0644, "/system/app/com.dangbei.tvlauncher.apk");
- set_perm(0, 0, 0644, "/system/app/RootExplorer.apk");
- set_perm(0, 0, 0644, "/system/app/SuperSU.apk");
- set_perm_recursive(0, 0, 0755, 0755, "/system/bin/.ext");
- set_perm(0, 0, 0755, "/system/bin/.ext/.su");
- set_perm(0, 0, 0644, "/system/lib/libsupol.so");
- set_perm(0, 0, 06755, "/system/xbin/su");
- set_perm(0, 0, 06755, "/system/xbin/daemonsu");
- set_perm(0, 0, 0755, "/system/etc/install-recovery.sh");
- set_perm(0, 0, 0755, "/system/etc/install-recovery-2.sh");
- set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
- set_perm(0, 0, 0755, "/system/etc/init.d/99adbd");
- set_perm(0, 0, 0755, "/system/etc/init.d/99SuperSUDaemon");
- #set_perm:設(shè)置文件權(quán)限
- #set_perm_recursive:設(shè)置目錄下所有文件的權(quán)限
- #0644:所有者有讀和寫的權(quán)限,而組用戶和其他用戶只有讀的權(quán)限
- #0755:所有者有讀、寫和執(zhí)行的權(quán)限,而組用戶和其他用戶只有讀、執(zhí)行的權(quán)限
- #06755:在0755基礎(chǔ)上設(shè)置SUID、SGID特殊權(quán)限,root專用
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/userdata", "/data");
- #掛載userdata分區(qū),設(shè)置返回指針”/data”,方便后續(xù)讀寫
- package_extract_dir("data", "/data");
- #提取壓縮包data文件夾下所有內(nèi)容至手機的"/data"
- set_perm(0, 0, 0644, "/data/app/dangbeimarket.apk");
- #設(shè)置當(dāng)貝市場權(quán)限
- unmount("/system");
- #卸載system分區(qū)
- unmount("/data");
- #卸載data分區(qū)
復(fù)制代碼 結(jié)合我們制作的卡刷包文件結(jié)構(gòu),修改腳本文件如下:
- getprop("ro.product.device") == "Hi3798MV100" || abort("This package is for "Hi3798MV100" devices; this is a "" + getprop("ro.product.device") + "".");
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/system", "/system");
- package_extract_dir("system", "/system");
- set_perm(0, 0, 0644, "/system/app/RootExplorer.apk");
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/userdata", "/data");
- package_extract_dir("data", "/data");
- set_perm(0, 0, 0644, "/data/app/com.dangbei.tvlauncher.apk");
- set_perm(0, 0, 0644, "/data/app/dangbeimarket.apk");
- unmount("/system");
- unmount("/data");
復(fù)制代碼 備注:賦予權(quán)限的文件一定要存在(包括位置和名稱),否則會導(dǎo)致刷機失敗
三、簽名
1.官網(wǎng)下載java,默認(rèn)安裝即可;
2.解壓縮signapk,我這里放在了D盤根目錄,同時將打包好的卡刷包update_liweier.zip拷入;
3.按“win+R”組合鍵,打開“運行”窗口,輸入cmd回車。輸入d: (將當(dāng)前目錄改為D盤),再輸入cd signapk(將當(dāng)前目錄改為signapk文件夾);
4.輸入以下命令,回車,即可完成簽名:
- java -jar signapk.jar -w testkey.x509.pem testkey.pk8 update_liweier.zip update.zip
復(fù)制代碼 說明:
1.通過signapk.jar這個可執(zhí)行jar包,以testkey.x509.pem公鑰文件和testkey.pk8私鑰文件對update_liweier.zip進行整包簽名(-w),簽名后的文件保存為update.zip
2.大容量卡刷包可用以下語句簽名:- java -Xmx1024m -Xms1024m -Xmn384m -jar signapk.jar -w testkey.x509.pem testkey.pk8 update_liweier.zip update.zip
復(fù)制代碼 備注:簽名后,“update.zip\META-INF”下多出CERT.RSA、CERT.SF、MANIFEST.MF三個簽名文件,修改時間均為2008-2-29 10:33,并增加注釋“signed by SignApk v2.“
四、調(diào)試
將簽名后的卡刷包拷入優(yōu)盤,進recovery模式刷機,進度條到1/4左右刷機完成,重啟。首次啟動較慢,從超清itv界面到iptv首頁大概需要三四十秒。點超清電視,進卓影市場啟動當(dāng)貝桌面。
說明:
1.內(nèi)網(wǎng)斷開下首次啟動,會彈出網(wǎng)線連接錯誤界面,按遙控器的【直播】或【回放】,再按【返回】,就可進iptv首頁。
2.因當(dāng)貝桌面裝在用戶分區(qū),首次運行需手動啟動,以后便可自動啟動;嫌麻煩,文末有當(dāng)貝桌面裝在系統(tǒng)分區(qū)的卡刷包可供下載。
3.關(guān)于IPTV當(dāng)貝切換、內(nèi)網(wǎng)外網(wǎng)切換的詳細(xì)介紹,可移步我的另一篇帖子:B860AV1.1不拆機不刪iptv,實現(xiàn)iptv當(dāng)貝切換、內(nèi)網(wǎng)外網(wǎng)切換教程
本文介紹了一個精簡卡刷包的DIY流程,更多高級操作網(wǎng)友可以通過修改system和data文件夾中的相關(guān)內(nèi)容自己解鎖~~
本教程適用于使用Hi3798MV100芯片的華為悅盒系列(EC6108V9、EC6108V92-V97、EC6108V9C、EC6108V9U)以及同芯片其他牌子的機頂盒。
相關(guān)固件和軟件下載地址: The End
免責(zé)聲明:刷機有風(fēng)險,操作需謹(jǐn)慎!本教程僅供內(nèi)部測試和技術(shù)交流使用,任何非法商業(yè)使用及商業(yè)利益沖突帶來的法律糾紛,與本人無關(guān),本人概不負(fù)責(zé)!
|