最近翻開一個開源專案 cleanyourtv(26k+ stars),專門把 Android TV / Google TV 的肥軟「去肥」:遙測、廣告服務、預載垃圾 app 全數 disable,再換上一個乾淨、Apple TV 風格的 launcher。重點是全部走「停用」而非「卸載」,一行 restore.sh 就能完整還原。
這台主角是家裡的 Sony BRAVIA 4K UR3,執行機則是跟電視同一個 LAN 的 Raspberry Pi 4。本文是第一集:把「改裝電視」的三個前置完整走通——Pi4 要裝哪些軟體、電視要開哪些設定、以及 ADB-over-Wi-Fi 連線的完整測試。實際的 debloat 與 launcher 安裝,放第二集。
一、電視資訊(實測)
以下全部是用 ADB getprop 從電視抓回來的,不是翻型錄:
| 項目 | 值 |
|---|---|
| 品牌/型號 | Sony BRAVIA 4K UR3 |
| 裝置代號 | BRAVIA_UR3(MediaTek mt5893) |
| 系統 | Android TV 10(API 29) |
| 韌體 | BRAVIA_UR3_TW-user 10 QTG3.200305.006.S97 662301(台灣版) |
| IP | 192.168.1.115 |
| ADB 埠 | 5555(TCP,走 Wi-Fi) |
兩個對後繼步驟很關鍵的事實:
- 這台型號在 repo 的實測清單裡(
examples/sony-bravia-4k-ur3),連韌體字串(QTG3.200305.006.S97)都吻合,現成有一份為它量身做的 debloat 清單。 - 官方 launcher 的最低系統要求是 Android 8.0(minSdk 26);這台是 SDK 29,裝得上。
二、Pi4 要裝的軟體
Pi4 的角色就是「跟電視同一台交換器的 Linux 電腦」。工具鏈分兩塊:Python 工具(純 Python 的 ADB client,不用裝 adb 二進位)+ Android SDK(build launcher 用)。
| 組件 | 用途 | 我 pi4 的版本 |
|---|---|---|
| git | 抓 repo | 2.43 |
| Python 3 + venv | 官方工具 tools/tv.py 的核心 |
3.13.5 |
| adb-shell / rsa / cryptography | Python 端 ADB 通訊與金鑰 | 0.4.4 / 4.9.1 |
| JDK 17+ | Gradle build launcher | OpenJDK 21 |
| Android platform-tools | adb 協議工具 |
34.0.x |
| Android platform android-34 | launcher compileSdk=34 |
android-34 |
| Android build-tools | aapt2/d8 等 | 34.0.0 |
| Gradle 8.9 | 建構 | 由 gradle wrapper 自動下載 |
空間需求:SDK + Gradle + build cache 約 3–4 GB;我 pi4 有 33 GB 可用、7.6 GB RAM,夠用。
完整安裝指令(全在 pi4 上跑,可複製):
# 1) 抓 repo
git clone https://github.com/Gathin23/cleanyourtv.git ~/cleanyourtv
cd ~/cleanyourtv
# 2) Python 工具鏈(官方工具是純 Python,不用裝 adb)
cd tools
python3 -m venv venv
venv/bin/pip install -r requirements.txt
cd ..
# 3) Android SDK(給 launcher build 用;sdkmanager 需要 Java 17+)
mkdir -p ~/Android/Sdk
curl -sSLo /tmp/cmdtools.zip \
https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
unzip -q /tmp/cmdtools.zip -d /tmp/sdkx
mkdir -p ~/Android/Sdk/cmdline-tools
mv /tmp/sdkx/cmdline-tools ~/Android/Sdk/cmdline-tools/latest
~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager \
--sdk_root=$HOME/Android/Sdk --licenses
~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager \
--sdk_root=$HOME/Android/Sdk \
"platform-tools" "platforms;android-34" "build-tools;34.0.0"
第一次跑 SDK 那兩行會下載 1–2 GB,pi4 這種 100 Mbps LAN 大概五六分鐘。
三、電視端要做的步驟
全部用電視遙控,約三到五分鐘:
- 電視保持在 Wi-Fi(跟 Pi4 同一個 LAN),不要進休眠。
- 設定 → 系統(有的機型叫「裝置偏好」)→ 關於 → 把「Build」連按 7 次,出現「您現在處於開發人員模式」。
- 回上一層 → 開發人員選項 → USB 偵錯 = ON。
- 若看到「ADB over network / 網路偵錯」類型的開關,一併打開。我的 Sony 打開後 5555 埠就一直在監聽。
- 保留電視開著;首次連線時電視畫面會彈「Allow USB debugging?(允許 USB 偵錯?)」→ 按允許。之後同一組金鑰就不會再問。
四、連線測試(實測輸出)
先從 pi4 確認同一網路:ping 192.168.1.115 通,RTT 12 ms。
然後一發 probe:
TV_HOST=192.168.1.115 tools/venv/bin/python -I tools/tv.py --probe
輸出(一次就成功,電視端那下「允許」我按掉了):
ro.product.model = BRAVIA 4K UR3
ro.product.device = BRAVIA_UR3
ro.build.version.release = 10
ro.build.version.sdk = 29
ro.build.display.id = BRAVIA_UR3_TW-user 10 QTG3.200305.006.S97 662301 release-keys
ro.product.manufacturer = Sony
ro.adb.secure = 1
service.adb.tcp.port = 5555
ro.adb.secure = 1 代表這台是「安全模式」的 ADB——每個新機器第一次連都要人在電視上按「允許」,不會被網內任何其他主機直接撳開,算安全的。
tv.py 還內建 --screenshot:直接把電視畫面抓回檔案,做「遠端改裝、人不用站在電視前」的驗證非常方便,第二集會用。
五、注意事項(改裝前務必看完)
- 全部是停用、不是卸載:動到的只有
pm disable-user,tools/restore.sh一行命令全數還原。這台 Sony 的還原指令長這樣:
TV_HOST=192.168.1.115 tools/restore.sh examples/sony-bravia-4k-ur3/debloat.txt - 不要手動 disable 系統核心包:repo 內建保護——任何 list 裡出現
com.android.*、com.google.android.*、com.sony.dtv.tvapi、tvinput*、braviasync、sonysystemservice、update*這類,工具直接拒絕執行。 - 這台 Sony 的官方清單保留項(重點,都是要保命的服務):Chromecast 內嵌、AirPlay、HomeKit、BraviaSync(多裝置 HDMI 聯動)、調頻器(tuner)、Sony 韌體更新(OTA)。
- 系統更新副作用:Sony 推系統更新時,有可能把部分 disable 的包重新啟用。用
tools/check.py定期複查;發現被還原的包,重跑一次disable.sh就好。 - 保固:專案 README 明說軟體改裝可能影響保固。實務上全部是可復原的 disable(不是刷機),風險很低,但仍請自行評估。
- 網路安全:ADB 5555 只該在 LAN 開放,不要對外網曝光。用完想收,回電視開發人員選項把 USB 偵測關掉(注意:部分機型「USB 偵測」一關,5555 也一起關,屬正常行為)。
- 遙控器麥克風:這份清單會把語音助理(
katniss/tv.assistant)也停用,遙控器上的麥克風搜尋隨之失效——想保留的人,把清單裡那三行註解掉再跑。
六、本集到此
前置三件事全部收尾:
| 項 | 狀態 |
|---|---|
| Pi4 工具鏈(Python + JDK + Android SDK) | ✅ 全部裝好 |
| 電視 ADB 開啟 + 允許金鑰 | ✅ 192.168.1.115:5555 一次連通 |
| 型號比對 + 現成清單 | ✅ sony-bravia-4k-ur3,韌體字串吻合 |
下一集:套用 debloat 清單、build 並安裝 Apple TV 風格 launcher、主題挑選,以及「改裝前/改裝後」的截圖對照。
沒有留言:
張貼留言