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

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

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

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測 / 活動(dòng)區(qū)

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

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

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 88622|回復(fù): 55
上一主題 下一主題
[經(jīng)驗(yàn)&教程]

一種老舊安卓電視通用Root與優(yōu)化方案-以創(chuàng)維G7200_8H87為例

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2023-9-20 18:09 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來自上海
本帖最后由 XFY9326 于 2023-9-21 00:00 編輯

  • 前言

眾所周知,國內(nèi)智能電視的各種廣告和安裝限制一直是令人頭疼的問題。  
或許對(duì)于新出的智能電視還可以接受,但是在一些老舊的智能電視上已經(jīng)會(huì)導(dǎo)致嚴(yán)重的卡頓問題。

家里有一臺(tái)2015年的創(chuàng)維G7200的電視,機(jī)芯為8H87。
這臺(tái)機(jī)器的配置在如今2023年已經(jīng)顯得有些捉襟見肘,但是不斷彈出的各類廣告和開機(jī)啟動(dòng)的系統(tǒng)應(yīng)用都進(jìn)一步拖慢了電視的運(yùn)行速度。  
G7200 8H87系列在2018年6月更新了最后一個(gè)酷開6.0版本的系統(tǒng)后就再也沒有提供過系統(tǒng)更新。

由于系統(tǒng)安裝包瞎改容易變磚,所以最好的解決方案就是直接對(duì)當(dāng)前的電視系統(tǒng)Root后再進(jìn)行優(yōu)化。
縱觀常見的Root方案,電視上直接運(yùn)行Root軟件已經(jīng)被證實(shí)操作失敗,而電視也沒有方便的辦法刷boot.img。
于是,能否有方法直接獲取電視的Root權(quán)限?

  • 觀前提示

本人只在創(chuàng)維G7200_8H87上操作成功,但是這個(gè)方案理論上可以推廣到更多舊的電視上。  
這里會(huì)詳細(xì)介紹解決問題的思路,給出需要的工具,但是依然會(huì)涉及到很多Android系統(tǒng)的知識(shí)。  

所有使用的工具都是開源的,但是并不是一鍵解決的方案,需要使用命令行進(jìn)行操作。  
不建議什么都不懂的人直接在本文的給出的操作提示下直接操作電視。  
如果沒有辦法使用ADB或者命令窗口,抱歉到這里就可以結(jié)束了。  

本文主要目的是知識(shí)分享,請(qǐng)尊重知識(shí)版權(quán)謝謝。
對(duì)于任何基于本文嘗試修改電視導(dǎo)致出現(xiàn)任何問題的情況,本人概不負(fù)責(zé)。

由于部分描述容易招致問題并且無法通過,所以換了一種描述方式請(qǐng)諒解。  
如果想直接看未修改的文章可以看底部的原文鏈接。  

  • Root智能電視

尋找方案


對(duì)于智能電視,不想要拆機(jī)的人顯然沒法直接刷寫指定的固件。  
在部分智能電視上,例如“King Root”或“360 Root”都不起效果,因?yàn)橄到y(tǒng)被修改的很徹底。  
所以想要Root就只能另辟蹊徑利用一些公開的系統(tǒng)方案。      
對(duì)于智能電視特別是老舊的智能電視,這就是一個(gè)可以利用的方案。  

以創(chuàng)維G7200_8H87為例,最新的版本是2018年6月發(fā)布的酷開6.0,Android 5.0 (21),arm64-v8a架構(gòu)(64位),Linux內(nèi)核3.10.61。  
這個(gè)系統(tǒng)下的SELinux是關(guān)閉狀態(tài)。

通過搜索和結(jié)合官網(wǎng)安全公告進(jìn)行篩選,最終確定了可用范圍從Linux 2.x到4.8.3的 CVE-2016-5195 方案。  
從描述來看確實(shí)“3.10.61”符合條件,但是實(shí)際使用需要經(jīng)過測試。  
選擇它的另一個(gè)原因是XDA有人提供了預(yù)編譯的文件可以直接使用,這比起自己去研究怎么利用要便捷的多。

某Ghub開源平臺(tái)項(xiàng)目名稱為hyln9/VIKIROOT。
下載`VIKIROOT-v0.1.1.zip`即可(只有64位的版本,文末有網(wǎng)盤下載地址)。  
使用這個(gè)工具有個(gè)好處,就是就算操作失敗,重啟設(shè)備后就會(huì)恢復(fù)原樣(但是不重啟再次執(zhí)行也無法繼續(xù)再次運(yùn)行)。

開啟ADB

這里以使用ADB為例講解如何操作,如果有毅力在電視上運(yùn)行終端APP執(zhí)行命令當(dāng)然也是可以的。  

創(chuàng)維G7200_8H87,保持連接家庭局域網(wǎng)的聯(lián)網(wǎng)狀態(tài)(就是連接到家里WIFI)。
打開設(shè)置,本機(jī)信息,用遙控器按“上上下下,左右左右”,即可進(jìn)入工廠菜單。
工廠菜單中,通用設(shè)置,ADB開關(guān),然后啟用即可。
在設(shè)置,本機(jī)信息中,可以看到電視的IP地址(如果有其他方法找到電視的IP地址也行)。

在電腦上運(yùn)行ADB客戶端需要下載工具(自行下載)。
開啟任意一個(gè)命令窗口,在含有adb.exe的目錄下使用adb命令連接到電視。  

  1. # adb connect "電視IP"
  2. # 部分電視需要指定端口號(hào),默認(rèn)端口5555
  3. # 例如:
  4. adb connect 192.168.1.100
  5. # 出現(xiàn) connected to 192.168.1.100:5555 即連接成功
  6. # 進(jìn)入電視的命令行界面 (這是電視系統(tǒng)的命令行了別搞錯(cuò))
  7. adb shell
復(fù)制代碼

另外附加一些電視系統(tǒng)的命令行下的常用命令:  
(所有命令前使用`adb shell`開頭都可以在自己電腦的命令行環(huán)境下使用)  

  1. # 查看Linux內(nèi)核版本
  2. cat /proc/version
  3. # 查看所有系統(tǒng)信息
  4. getprop
  5. # 查看系統(tǒng)版本名稱
  6. getprop ro.build.version.release
  7. # 查看系統(tǒng)SDK版本
  8. getprop ro.build.version.sdk
  9. # 查看CPU支持的架構(gòu)
  10. getprop ro.product.cpu.abilist
復(fù)制代碼

獲取臨時(shí)Root權(quán)限

確認(rèn)好電視的版本是支持的,就可以進(jìn)一步操作了。  
提前解壓`VIKIROOT-v0.1.1.zip`得到`exploit`文件。  

  1. # 再開一個(gè)自己電腦的命令行窗口用于發(fā)送文件
  2. # 請(qǐng)注意替換exploit文件位自己電腦上它的位置
  3. # 命令含義:將exploit文件推送到/data/local/tmp目錄下
  4. adb push exploit /data/local/tmp
復(fù)制代碼

回到剛才打開的電視系統(tǒng)的命令行窗口:  

  1. # 電視的命令行界面
  2. # 打開/data/local/tmp目錄
  3. cd /data/local/tmp
  4. # 為exploit文件賦予執(zhí)行權(quán)限(否則不能運(yùn)行)
  5. chmod +x exploit

  6. # 執(zhí)行當(dāng)前目錄下的exploit
  7. ./exploit
  8. # 如果一切順利,就可以看到如下提示:
  9. # CVE-2016-5195 POC FOR ANDROID 6.0.1 MARSHMALLOW
  10. # Usage:
  11. # exploit port: use local terminal.
  12. # exploit ip port: use remote terminal.
  13. # 如果執(zhí)行失敗,說明你的電視不是ARM架構(gòu)的64位系統(tǒng),請(qǐng)自行編譯或者尋找其它方案
復(fù)制代碼

這個(gè)幫助命令告訴我們有兩種方式啟動(dòng),一種是本地命令窗口,另一種是遠(yuǎn)程命令窗口。  
遠(yuǎn)程命令窗口需要使用`nc`命令在自己電腦上連接,我嘗試了但是沒成功過。  
所以,不如使用本地命令窗口模式方便。  
但是,由于未知原因,直接使用本地命令窗口模式可能會(huì)出現(xiàn)一直卡等待的情況,所以如果出現(xiàn)這個(gè)情況可以先啟動(dòng)遠(yuǎn)程命令窗口等待自動(dòng)30秒關(guān)閉后,再啟動(dòng)本地命令窗口。  

如果想要試試能不能本地命令窗口直接使用:

  1. # 電視的命令行界面
  2. # 在10800端口開啟本地命令窗口
  3. ./exploit 10800
  4. # 如果出現(xiàn):
  5. # >>> Reverse shell target: 127.0.0.1:10800
  6. # >>> Exploit process starts.
  7. # >>> Inject: patch 1/2
  8. # >>> Inject: patch 2/2
  9. # >>> Please wake up you phone now.
  10. # 的輸出提示后不動(dòng)了,可以嘗試打開或者關(guān)閉藍(lán)牙/打開或者關(guān)閉鬧鐘(時(shí)鐘)應(yīng)用
  11. # 如果依然卡在這里,那就只能重啟電視重新?lián)Q下面的方法繼續(xù)了
  12. # 如果成功繼續(xù)執(zhí)行,詳見后面的教程
復(fù)制代碼

先啟動(dòng)遠(yuǎn)程命令窗口等待自動(dòng)30秒關(guān)閉后,再啟動(dòng)本地命令窗口的方法:

  1. # 電視的命令行界面
  2. # 在IP0.0.0.0與10800端口開啟本地命令窗口
  3. ./exploit 0.0.0.0 10800
  4. # >>> Reverse shell target: 0.0.0.0:10800
  5. # >>> Exploit process starts.
  6. # >>> Inject: patch 1/2
  7. # >>> Inject: patch 2/2
  8. # >>> Please wake up you phone now.
  9. # >>> Restore process will start in 30s.
  10. # >>> Restore process starts.
  11. # >>> Remove: patch 2/2
  12. # >>> Remove: patch 1/2
  13. # >>> Removing .x file.
  14. # 等待一次打補(bǔ)丁與反打補(bǔ)丁執(zhí)行完成

  15. # 在10800端口開啟本地命令窗口
  16. ./exploit 10800
  17. # 如果出現(xiàn):
  18. # >>> Reverse shell target: 127.0.0.1:10800
  19. # >>> Exploit process starts.
  20. # >>> Inject: patch 1/2
  21. # >>> Inject: patch 2/2
  22. # >>> Please wake up you phone now.
  23. # >>> Waiting for reverse connect shell.
  24. # >>> Enjoy!
  25. # ====================TERMINAL====================
  26. # 就說明一切順利,完成了打補(bǔ)丁
  27. # 此時(shí)不要退出這個(gè)窗口或者程序,因?yàn)榇蜓a(bǔ)丁得到的權(quán)限只在目前本次啟動(dòng)的命令下時(shí)有用

  28. # 在這里輸入的任何命令都是作為臨時(shí)的Root權(quán)限執(zhí)行的
  29. # 需要注意的是,這個(gè)窗口無法使用左右上下的按鍵,也無法粘貼文本,只能輸入,刪除和回車。

  30. # 查看可用的命令所在位置 $PATH
  31. echo $PATH
  32. # 本人的機(jī)器返回的結(jié)果為 /usr/bin:/bin 意思就是/system/bin與/system/xbin的命令必須指定路徑才能執(zhí)行

  33. # 查看當(dāng)前用戶ID
  34. /system/bin/id
  35. # 如果返回 uid=0(root) gid=0(root) 說明當(dāng)前為root賬戶
復(fù)制代碼

如果想要修改系統(tǒng)文件,則需要掛載分區(qū)為可讀寫,以下命令按需求使用:  

  1. # 掛載根目錄為可讀寫
  2. /system/bin/mount -o remount /

  3. # 掛載/system分區(qū)為可讀寫
  4. /system/bin/mount -o remount /system
復(fù)制代碼

在這個(gè)情況下可以執(zhí)行任何想要的操作了,但是這是一個(gè)臨時(shí)的Root權(quán)限并且啟動(dòng)的操作很復(fù)雜。  
另外,每次執(zhí)行命令無法粘貼,修改,必須指定路徑都非常繁瑣。
因此,我們需要將其變?yōu)橛谰玫腞oot權(quán)限,即加入`su`命令。

獲取永久Root權(quán)限

就本人而言,并沒有在電視上使用Root管理軟件的需求。  
因?yàn)榕f的智能電視本來空間就小,卸載不用的系統(tǒng)軟件后也禁不起折騰了。  
本人希望把電視清理干凈后就基本用不到Root權(quán)限了,知識(shí)作為一種應(yīng)急需求。  
所以,本人使用了一種不使用Root管理軟件,直接使用`su`命令的方案。  

首先,我們需要從下載預(yù)編譯的`su`命令(如果你的電視系統(tǒng)不支持運(yùn)行這個(gè)`su`命令,就需要去尋找其他可用的了)。  
選擇下載SupSU的Flashable文件(文末網(wǎng)盤提供)。  
解壓到本地,根據(jù)CPU架構(gòu)選擇合適的`su`文件(G7200_8H87是arm64架構(gòu))。  

  1. # 在自己電腦的命令行窗口發(fā)送文件
  2. # 請(qǐng)注意替換su文件位自己電腦上它的位置
  3. # 命令含義:將su文件推送到/data/local/tmp目錄下
  4. # 注意,adb依然沒有也不會(huì)有root權(quán)限(后面會(huì)說明),所以只能把文件發(fā)送到這個(gè)臨時(shí)目錄中
  5. adb push su /data/local/tmp
復(fù)制代碼
  1. # 打開剛才的電視的命令行界面(獲得臨時(shí)Root權(quán)限的窗口)
  2. # 掛載/system分區(qū)為可讀寫
  3. /system/bin/mount -o remount /system

  4. # 先把exploit文件自己復(fù)制到系統(tǒng)文件夾,方便以后使用
  5. /system/bin/cp /data/local/tmp/exploit /system/xbin/exploit

  6. # 然后把su文件復(fù)制到系統(tǒng)文件夾
  7. /system/bin/cp /data/local/tmp/su /system/xbin/su

  8. # 使用命令查看其他文件的權(quán)限和擁有者信息
  9. /system/bin/ls -l /system/bin

  10. # 給兩個(gè)文件設(shè)置合適的權(quán)限
  11. /system/bin/chmod 755 /system/xbin/exploit
  12. /system/bin/chmod 755 /system/xbin/su

  13. # 給兩個(gè)文件設(shè)置合適的擁有者
  14. /system/bin/chown root:shell /system/xbin/exploit
  15. /system/bin/chown root:shell /system/xbin/su

  16. # 此時(shí),su命令就可以嘗試使用了,如果輸出一些幫助信息就是執(zhí)行成功
  17. /system/xbin/su
復(fù)制代碼

以下所有的sX都需要替換為shell的前兩個(gè)字母

  1. # 如果想要永久保留效果,就需要修改設(shè)備打開初始化時(shí)的文件
  2. # /system/bin/ 或者 /system/etc/ 的install-recovery.sX文件是普遍可以的
  3. # 如果你的電視不是G7200_8H87并且想要確認(rèn)一下,可以使用如下命令查看
  4. /system/bin/cat /init.rc
  5. # 如果發(fā)現(xiàn)存在這兩個(gè)文件的句子就說明符合需求
  6. # 如果不存在則可以尋找其他的方案,或者先試一試這兩個(gè)文件

  7. # 此處以/system/bin/install-recovery.sX文件為例
  8. # 查看是否存在/system/bin/install-recovery.sX文件
  9. /system/bin/cat /system/bin/install-recovery.sX
  10. # 如果返回No such file or directory則不存在

  11. # 如果/system/bin/install-recovery.sX文件不存在,則執(zhí)行
  12. # 若存在,則忽略這句命令
  13. echo "#!/system/bin/sX" >> /system/bin/install-recovery.sX

  14. # 寫入一個(gè)換行,避免出現(xiàn)問題
  15. echo "" >> /system/bin/install-recovery.sX

  16. # 寫入要執(zhí)行的命令
  17. echo "/system/xbin/su -ad &" >> /system/bin/install-recovery.sX

  18. # 再次查看/system/bin/install-recovery.sX文件中的內(nèi)容
  19. # 此時(shí)文件末尾應(yīng)該就是剛才寫入的內(nèi)容了
  20. /system/bin/cat /system/bin/install-recovery.sX

  21. # 如果/system/bin/install-recovery.sX文件不存在,則需要手動(dòng)設(shè)定權(quán)限和擁有者
  22. /system/bin/chmod 755 /system/bin/install-recovery.sX
  23. /system/bin/chown root:shell /system/bin/install-recovery.sX
復(fù)制代碼

以下所有的sX都需要替換為shell的前兩個(gè)字母

至此,你的電視就已經(jīng)完美的獲得了永久的Root權(quán)限,可以重啟嘗試一下了。  
為了避免其它應(yīng)用直接使用這個(gè)su命令,我們還可以將`/system/bin/install-recovery.sX`文件改名字避免開機(jī)執(zhí)行。
只在需要的使用通過`exploit`將文件名改回來,然后重啟后正常使用`su`命令。

注意:改名字僅限`/system/bin/install-recovery.sX`文件一開始不存在的情況,若是存在就最好只是把開機(jī)執(zhí)行的命令注解了。  
雖然老舊的系統(tǒng)存在如此多的問題,但是能避免直接利用最高權(quán)限的應(yīng)用也是好的。  

使用Root權(quán)限

完成以上的步驟,重啟電視,然后在本機(jī)的命令行窗口像之前一樣連接電視:  

  1. # 連接電視IP的ADB
  2. adb connect 192.168.1.100

  3. # 打開電視的命令行界面
  4. adb shell

  5. # 執(zhí)行root用戶切換
  6. su
  7. # 默認(rèn)用戶前綴一般是 shell@XXXXXX:/ $
  8. # root用戶前綴一般是 root@XXXXXX:/ #
  9. # 如果看到切換為root用戶,并且前綴中以#結(jié)尾,那就要恭喜你成功獲取root權(quán)限了

  10. # 掛載/system分區(qū)為可讀寫
  11. # 然后愉快的精簡系統(tǒng)吧
  12. mount -o remount /system
復(fù)制代碼

關(guān)于ADB Root權(quán)限

有一些人會(huì)奇怪,為什么有Root權(quán)限了,adb依然無法直接寫入系統(tǒng)文件。  
這是因?yàn)閍db默認(rèn)使用的就是最普通的用戶權(quán)限而不是root用戶,沒有寫入系統(tǒng)文件的權(quán)限。  
雖然有adb root命令可以設(shè)置為使用root用戶,但這個(gè)僅在debug的開發(fā)版本的系統(tǒng)中有效。  
就算手動(dòng)在build.prop添加配置,也是無法生效的,因?yàn)檫@個(gè)是寫死在boot分區(qū)中的。  
所以獲得Root權(quán)限后,還是需要在電視的命令行界面使用su命令才能切換root用戶,進(jìn)行高權(quán)限的操作。  

  • 創(chuàng)維G7200_8H87系統(tǒng)精簡優(yōu)化方案

看到這里,如果你成功獲取了Root權(quán)限但是不是創(chuàng)維電視系統(tǒng),就可以退出了。  
如果你是創(chuàng)維G7200_8H87機(jī)芯,那么繼續(xù)跟著操作就好。  
如果你是創(chuàng)維其它型號(hào)或者版本的電視系統(tǒng),那么請(qǐng)務(wù)必**有選擇**地**參考**以下操作。  

以下給出了部分可用的精簡方案,你可以在有Root權(quán)限的基礎(chǔ)上做到更多。

刪除開機(jī)廣告以及卸載無用的系統(tǒng)應(yīng)用

  1. # 在電視命令行窗口,獲取su Root權(quán)限,并掛載/system分區(qū)為可讀寫后執(zhí)行以下命令
  2. # 查看全部安裝的應(yīng)用
  3. pm list packages

  4. # 以下使用的卸載方法是保留原始文件在系統(tǒng)中,但是不讓其繼續(xù)運(yùn)行
  5. # 你也可以使用disable-user的方法禁用這些應(yīng)用
  6. # 但是卸載后應(yīng)用不會(huì)出現(xiàn)在第三方桌面,只是禁用還是可能會(huì)出現(xiàn)的
  7. # 只卸載不刪除的目的是為了萬一出問題還能恢復(fù)
  8. # 當(dāng)然你也可以卸載后再去刪除/system/app或者/system/vendor或者/data/app下的文件

  9. # 卸載廣告服務(wù)
  10. # 只要卸載了就不會(huì)有開機(jī)廣告了
  11. # 有可能導(dǎo)致開機(jī)啟動(dòng)的加載頁面會(huì)黑屏閃1s
  12. pm uninstall -k --user 0 com.tianci.ad

  13. # 以下應(yīng)用按需卸載,或者你可以卸載其它不想要的
  14. # 經(jīng)過測試卸載以下應(yīng)用不會(huì)出現(xiàn)嚴(yán)重系統(tǒng)問題

  15. # 卸載天氣
  16. pm uninstall -k --user 0 com.icoolme.tv.weather

  17. # 卸載小維智聯(lián)
  18. pm uninstall -k --user 0 com.skyworth.smarthome_tv

  19. # 卸載商城
  20. pm uninstall -k --user 0 com.coocaa.mall

  21. # 卸載卡拉OK
  22. pm uninstall -k --user 0 com.bajintech.karaok

  23. # 卸載語音助手
  24. pm uninstall -k --user 0 com.skyworth.lafite.srtnj.speechserver

  25. # 卸載親朋圈
  26. pm uninstall -k --user 0 com.skyworth.voip
復(fù)制代碼

還原卸載的系統(tǒng)應(yīng)用

如果誤操作卸載了某個(gè)應(yīng)用,可以通過這個(gè)方法還原:

  1. # 列出所有已卸載的應(yīng)用所在的位置,例如com.icoolme.tv.weather
  2. pm list packages -u -f | grep com.icoolme.tv.weather

  3. # 返回的結(jié)果為:package:/system/app/ZuiMeiWeather/ZuiMeiWeather.apk=com.icoolme.tv.weather
  4. # 所以我們可以使用以下命令還原
  5. pm install -r --user 0 /system/app/ZuiMeiWeather/ZuiMeiWeather.apk
復(fù)制代碼

替換應(yīng)用市場

如果你提前通過各種方式安裝了其它的應(yīng)用市場,則可以直接卸載自帶的應(yīng)用圈

在電腦本機(jī)的命令窗口執(zhí)行以下命令安裝XXX.apk:

  1. adb shell install -r XXX.apk
復(fù)制代碼

如果你希望安裝其為一個(gè)系統(tǒng)應(yīng)用可以看后面的教程。

在電視命令窗口執(zhí)行以下命令卸載應(yīng)用圈:

  1. pm uninstall -k --user 0 com.tianci.appstore
復(fù)制代碼

注意:如果卸載了“應(yīng)用圈”,信號(hào)源中的“我的應(yīng)用”會(huì)處于點(diǎn)擊無反應(yīng)的情況

修改系統(tǒng)文件

假設(shè)你想修改/system/build.prop文件,則可以執(zhí)行以下命令:  

  1. # 在電視命令行窗口操作

  2. # 命令行中查看文件內(nèi)容(可選)
  3. cat /system/build.prop
  4. # 命令行中查看文件權(quán)限和擁有者
  5. ls -l /system | grep build.prop
  6. # 備份文件
  7. cp -a /system/build.prop /system/build.prop.bak

  8. # 在電腦命令行窗口操作

  9. # 將/system/build.prop文件拉取到當(dāng)前目錄
  10. adb pull /system/build.prop .

  11. # 你可以修改拉取的build.prop文件

  12. # 將build.prop文件推送到/data/local/tmp
  13. adb push build.prop /data/local/tmp/

  14. # 在電視命令行窗口操作
  15. mv /data/local/tmp/build.prop /system/build.prop

  16. # 設(shè)置正確的權(quán)限和擁有者
  17. # 這一步因不同的文件而異,請(qǐng)先確認(rèn)自己修改的文件需要哪些權(quán)限
  18. chmod 644 /system/build.prop
  19. chown root:root /system/build.prop
復(fù)制代碼

安裝一個(gè)應(yīng)用為系統(tǒng)應(yīng)用

假設(shè)你有一個(gè)Launcher.apk想安裝為系統(tǒng)應(yīng)用,則可以執(zhí)行以下命令:

  1. # 在電腦命令行窗口推送APK
  2. adb push Launcher.apk /data/local/tmp

  3. # 接下來在電視命令行窗口操作

  4. # 打開/system/priv-app文件夾
  5. # 雖然放在/system/app也可以,但是/system/priv-app文件夾下的APP權(quán)限更大
  6. cd /system/priv-app

  7. # 新建一個(gè)文件夾Launcher
  8. # 取名隨意,必須英文無空格,不要和其他的文件重復(fù)
  9. mkdir Launcher

  10. # 設(shè)置文件夾權(quán)限
  11. chmod 755 Launcher
  12. chown root:root Launcher

  13. # 將APK移動(dòng)到Launcher/下
  14. mv /data/local/tmp/Launcher.apk Launcher/

  15. # 打開Launcher文件夾
  16. cd Launcher

  17. # 設(shè)置Launcher.apk權(quán)限
  18. chmod 644 Launcher.apk
  19. chown root:root Launcher.apk
復(fù)制代碼

重啟電視,就可以發(fā)現(xiàn)這個(gè)應(yīng)用被安裝為系統(tǒng)應(yīng)用了。

替換默認(rèn)主頁

替換默認(rèn)的主頁,首先需要將一個(gè)主頁APK安裝為系統(tǒng)應(yīng)用。  

但是,在創(chuàng)維G7200_8H87上,就算安裝為系統(tǒng)應(yīng)用也無法通過按主頁鍵回到指定的主頁APP。  
也不會(huì)彈出任何要求選定默認(rèn)主頁APP的選項(xiàng)。  
在此情況下,若是直接禁用或者卸載默認(rèn)的主頁APP則會(huì)導(dǎo)致主頁完全無法打開的問題。  

本人在查看了許多系統(tǒng)文件后,在`/data/data/com.tianci.setting/shared_prefs/tcsetting.xml`文件中找到了解決方案。  
這個(gè)文件定義了系統(tǒng)的配置文件所在的位置,即`<string name="preSavedPcfgPath">/system/pcfg/8H87_G7200/config</string>`。

打開這個(gè)`config`文件夾,就可以發(fā)現(xiàn)許多配置文件了。  
找到`general_config.xml`文件,拉取到本地進(jìn)行修改。  

  1. # 在電腦命令行窗口
  2. # 拉取配置文件到本地的當(dāng)前文件夾
  3. adb pull /system/pcfg/8H87_G7200/config/general_config.xml .
復(fù)制代碼

將其中的:  
  1. <config name="DEFAULT_HOMEPAGE" value="com.tianci.movieplatform/com.coocaa.homepage.vast.HomePageActivity" />
復(fù)制代碼

修改為你想要的主頁的啟動(dòng)包名和Activity名稱。  

本人使用了Emotn UI,所以修改為:  
  1. <config name="DEFAULT_HOMEPAGE" value="com.oversea.aslauncher/com.oversea.aslauncher.ui.main.MainActivity" />
復(fù)制代碼

最后保證有原始文件備份,將這個(gè)文件替換過去,保證權(quán)限和擁有人正確,重啟電視即可生效。

  1. # 在電腦命令行窗口
  2. # 推送本地文件到緩存目錄
  3. adb push general_config.xml /data/local/tmp

  4. # 在電視命令行窗口操作
  5. # 備份并設(shè)置新的配置文件
  6. mv /system/pcfg/8H87_G7200/config/general_config.xml /system/pcfg/8H87_G7200/config/general_config.xml.bak
  7. mv /data/local/tmp/general_config.xml /system/pcfg/8H87_G7200/config/general_config.xml

  8. # 最后設(shè)置權(quán)限和擁有人
  9. chmod 644 general_config.xml
  10. chown root:root general_config.xml

  11. # 重啟電視
  12. reboot
復(fù)制代碼

重啟電視后可以打開任意APP,點(diǎn)擊主頁按鈕,就能返回到自定義的主頁APP了。  
確保生效后就可以卸載原來默認(rèn)的主頁APP了。  

  1. # 在電視命令行窗口操作
  2. # 卸載默認(rèn)主頁
  3. pm uninstall -k --user 0 com.tianci.movieplatform
復(fù)制代碼

目前已知存在的問題:由于第三方主頁沒有緩沖加載界面,開機(jī)后首次打開可能會(huì)黑屏1~2s。

其他創(chuàng)維系統(tǒng)配置

創(chuàng)維電視系統(tǒng)在`/system/pcfg`中存放了許多有用的配置文件。  
這些都可以進(jìn)行修改,并通過重啟測試其是否有效。  

例如,`general_config.xml`文件中還可以直接通過配置關(guān)閉開機(jī)廣告。  
例如,`bootQueue.xml`文件中定義了開機(jī)啟動(dòng)的應(yīng)用隊(duì)列。  

在保證有原始文件備份,權(quán)限和擁有人正確的情況下都可以嘗試修改。

禁用開機(jī)Root權(quán)限

如果電視上所有的操作都完成了,想要關(guān)閉Root權(quán)限也很簡單:

以下所有的sX都需要替換為shell的前兩個(gè)字母
  1. # 在電視命令行窗口操作
  2. # 此處以之前不存在/system/bin/install-recovery.sX為例
  3. # 更改開機(jī)啟動(dòng)的腳本文件名稱,重啟后就沒有Root權(quán)限了
  4. mv /system/bin/install-recovery.sX /system/bin/install-recovery.sX.bak

  5. # 如果想再次開啟su命令,由于我們已經(jīng)保存了一份/system/xbin/exploit
  6. # 再次執(zhí)行教程步驟,然后將文件名改回來或者直接執(zhí)行以下命令就可以使su命令可用
  7. /system/xbin/su -ad &
復(fù)制代碼

  • Extra

如果由于網(wǎng)絡(luò)問題無法下載到部分資源,可以查看:

鏈接:https://pan.baidu.com/s/1uuyeM-UD2nS16kILrYZ7Ig
提取碼:njgk




本文原文發(fā)表于個(gè)人博客: 一種老舊安卓電視通用Root與優(yōu)化方案-以創(chuàng)維G7200_8H87為例

上一篇:天地玄黃,余音繞梁,NANK-OE cc是怎么做到魚與熊掌兼得的?
下一篇:海信海信85e7g在系統(tǒng)界面卡頓其他界面不卡
推薦
發(fā)表于 2023-12-19 16:20 | 只看該作者 | 來自陜西
感謝XFY9326,感謝XDA,愿正義長存。褲=開40K5C,5s58機(jī)芯,希望能成功~~~
沙發(fā)
發(fā)表于 2023-9-20 22:09 | 只看該作者 | 來自浙江
厲害啊
板凳
發(fā)表于 2023-9-20 22:09 | 只看該作者 | 來自江西
很需要這個(gè)內(nèi)容
地板
發(fā)表于 2023-9-28 07:54 | 只看該作者 | 來自重慶
歷害,但我還沒有試
5#
發(fā)表于 2023-11-4 17:56 | 只看該作者 | 來自湖北
先試試看
6#
發(fā)表于 2023-11-18 18:48 | 只看該作者 | 來自新疆
gxfx
7#
發(fā)表于 2023-12-3 17:07 | 只看該作者 | 來自河北
試試看
8#
發(fā)表于 2023-12-11 23:16 | 只看該作者 | 來自江蘇
感謝分享啊,大佬,學(xué)習(xí)一下了,我家也是創(chuàng)維電視啊
9#
發(fā)表于 2023-12-12 09:38 | 只看該作者 | 來自四川
gs

本版積分規(guī)則

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

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

GMT+8, 2024-11-9 20:14 , Processed in 0.087896 second(s), 15 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表