Đang tải bài viết...
Thay giao diện Android TV Box: dọn ứng dụng rác và cài launcher Tivi Home có âm lịch, thời tiết và khoá trẻ em
Màn hình chính của TV box là thứ bạn nhìn thấy nhiều nhất, nhưng thường cũng là thứ tệ nhất: chậm, đầy banner quảng cáo, vài chục ứng dụng chạy ngầm mà bạn chưa từng mở. Bài này mình hướng dẫn chi tiết cách thay toàn bộ giao diện bằng Tivi Home, một launcher nhẹ có đồng hồ lớn, lịch tháng kèm âm lịch, thời tiết theo quận/huyện, dock ứng dụng sắp xếp được, khoá trẻ em hẹn giờ và bàn phím gõ Telex. Đồng thời, mình chỉ cách dọn các ứng dụng hệ thống không dùng đến một cách an toàn, kèm những cảnh báo bắt buộc phải đọc trước khi bắt tay vào làm.









Launcher là gì và vì sao nên thay?
Launcher là ứng dụng đóng vai "màn hình chính": thứ hiện ra khi bạn bật TV hoặc bấm nút Home trên remote. Trên Android, launcher chỉ là một ứng dụng bình thường được đánh dấu là Home, nên hoàn toàn có thể thay bằng ứng dụng khác mà không cần root, không cần flash lại firmware.
Vấn đề là launcher đi kèm TV box giá rẻ thường mang theo nhiều thứ bạn không cần:
• Hàng gợi ý và banner quảng cáo lấy dữ liệu từ máy chủ của hãng, tải chậm và chiếm phần lớn màn hình.
• Dịch vụ chạy ngầm: thu thập thống kê, quảng cáo, đồng bộ, gửi báo lỗi. Trên box chỉ có 1–2 GB RAM, mỗi dịch vụ thừa là một phần tài nguyên bị lấy mất.
• Giao diện cứng nhắc: không đổi được vị trí ứng dụng, không có lịch, thời tiết hay khoá trẻ em.
Thay launcher giải quyết phần giao diện, còn dọn ứng dụng hệ thống (debloat) giải quyết phần chạy ngầm. Bài này làm cả hai, theo thứ tự an toàn: cài launcher mới và kiểm tra trước, chỉ tắt cái cũ khi cái mới đã chạy ổn.
Tivi Home làm được những gì?
Tivi Home là launcher mã nguồn mở viết bằng Java thuần (không thư viện ngoài), file cài đặt chỉ khoảng 120 KB. Giao diện kiểu kính mờ trên nền gradient, điều khiển hoàn toàn bằng remote.
|
Tính năng |
Chi tiết |
|
Đồng hồ và ngày tháng |
Đồng hồ cỡ lớn, thứ, ngày dương và dòng âm lịch (ví dụ "Âm lịch 16/9 · năm Bính Ngọ") |
|
Lịch tháng có âm lịch |
Ngày âm nằm cạnh từng ngày dương, mùng 1 hiện dạng 1/9, đúng cả tháng nhuận. Tính ngay trên TV, không cần mạng |
|
Thời tiết |
Dữ liệu Open-Meteo (miễn phí, không cần API key), nhập tên thành phố hoặc quận/huyện, dự báo 4 ngày, tự cập nhật 30 phút một lần |
|
Dock ứng dụng |
1–6 ô; giữ OK trên một ô để di chuyển, thêm hoặc bỏ ứng dụng |
|
Khoá trẻ em |
Hẹn giờ 15 phút, 30 phút, 1 tiếng, 2 tiếng hoặc tuỳ chỉnh; hết giờ TV khoá mọi ứng dụng, dừng phim, tắt tiếng |
|
Bàn phím Tivi |
Bàn phím QWERTY cùng phong cách, gõ tiếng Việt kiểu Telex, dùng được trong mọi ứng dụng |
|
3 màu nền |
Tím hồng, Đại dương, Hoàng hôn |
Chuẩn bị
|
Cần có |
Ghi chú |
|
TV / TV box chạy Android TV hoặc Google TV, Android 8.0 trở lên |
Không áp dụng cho Samsung Tizen, LG webOS, Fire TV |
|
Máy tính Windows cùng mạng với TV |
Dùng để chạy ADB và build ứng dụng |
|
JDK 17 và Android SDK (platform 34, build-tools 34.0.0, platform-tools) |
Không cần Android Studio hay Gradle |
|
Mã nguồn Tivi Home |
Tải từ repo GitHub của dự án (link ở trong bài) |
|
Khoảng 30–45 phút và remote của TV |
Nên làm liền mạch, không bỏ dở giữa chừng |
Chọn cách làm: A (Promt cho AI) hoặc B (thủ công)
| Cách A: Dán prompt cho AI | Cách B: Làm thủ công | |
|---|---|---|
| Phù hợp với | Người không quen dòng lệnh, muốn làm nhanh | Người muốn hiểu và kiểm soát từng lệnh |
| Cần có | Một AI có quyền chạy lệnh trên máy tính: Claude Code, Codex CLI, Cursor, Gemini CLI… | PowerShell; JDK 17 và Android SDK (nếu tự build) |
| Bạn phải tự làm | Bật gỡ lỗi USB trên TV, bấm "Cho phép", trả lời các câu hỏi của AI | Toàn bộ 12 bước bên dưới |
| Thời gian | 15–30 phút | 30–45 phút |
Cách A: Dán một lần cho AI
Bạn không cần tải gì về trước. Mở AI, dán nguyên khối prompt bên dưới (đã có sẵn link repo) trong một lần, rồi trả lời các câu AI hỏi. AI tự tải mã nguồn, đọc hướng dẫn an toàn trong AGENTS.md của repo, tải công cụ, cài và cấu hình TV.
A1. Việc bạn phải tự làm trước (AI không làm thay được)Trên TV:
Cài đặt → Thiết bị → Giới thiệu, bấm Bản dựng 7 lần, rồi bật Gỡ lỗi USB (và Gỡ lỗi ADB qua mạng nếu có) trong Tuỳ chọn nhà phát triển. Chi tiết ở Bước 1 của cách B.
- Ghi lại IP của TV ở Cài đặt → Mạng.
- Trên máy tính Windows: cài một AI có quyền chạy lệnh, mở nó trong một thư mục trống, máy tính cùng mạng Wi-Fi/LAN với TV. Bật chế độ để AI hỏi trước khi chạy lệnh (đa số công cụ có sẵn) thay vì cho tự chạy toàn bộ.
- Cầm sẵn remote: lần đầu AI kết nối, TV hiện "Cho phép gỡ lỗi USB?", bạn bấm Cho phép.
A2. Prompt dán một lần
Sao chép toàn bộ khối dưới đây, chỉ sửa 3 dòng đầu (IP, lời chào, vị trí thời tiết), rồi dán vào AI một lần:
IP của TV: 192.168.1.50
Lời chào trên màn hình chính: Xin chào cả nhà!
Vị trí thời tiết: Hà Nội
Repo: https://github.com/tuanpa-1702/restore-your-tivi
Bạn là trợ lý cài đặt Tivi Home cho TV box Android của tôi. Máy tính của tôi là Windows (PowerShell).
Tải repo trên về thư mục hiện tại (git clone, hoặc tải file ZIP nếu máy chưa có Git), rồi ĐỌC KỸ AGENTS.md và
README.md trước khi chạy bất kỳ lệnh nào lên TV. Quy tắc an toàn trong AGENTS.md là bắt buộc.
Làm lần lượt các bước sau, xong mỗi bước thì báo ngắn gọn cho tôi:
1. KẾT NỐI: tải Android platform-tools nếu chưa có, adb connect tới TV (báo tôi lúc cần bấm "Cho phép" trên TV). Đọc model và phiên bản Android; nếu SDK dưới 26 thì dừng và nói rõ là không cài được.
2. SAO LƯU vào thư mục backup/: danh sách ứng dụng, ứng dụng đang tắt, settings global/secure/system, bàn phím hiện tại, launcher hiện tại, màn hình chờ hiện tại (screensaver_components, screen_off_timeout).
3. CÀI ĐẶT: dùng APK mới nhất trong mục Releases của repo (kiểm tra mã SHA-256). Nếu không tải được thì tải JDK 17 và Android SDK (platform 34, build-tools 34.0.0) rồi build bằng build.ps1. Cài bằng install.ps1 -Tv <IP> (script cấp quyền khoá trẻ em, đọc ảnh, màn hình chờ). Chụp màn hình TV cho tôi xem.
4. MÀN HÌNH CHÍNH: HỎI TÔI trước khi đặt Tivi Home làm màn hình chính. Đặt xong, bấm Home và kiểm tra mFocusedApp đúng là com.tivibox.home; chỉ khi đúng mới HỎI TÔI có tắt launcher cũ không (tắt bằng pm disable-user).
5. CẤU HÌNH: bật "Bàn phím Tivi" (com.tivibox.home/.KeyboardService) làm bàn phím mặc định. Đặt Tivi Home làm màn hình chờ của TV (screensaver_components = com.tivibox.home/.TiviDream), thời gian chờ 10 phút. Lời chào và vị trí thời tiết nằm trong bộ nhớ riêng của app nên hướng dẫn tôi tự nhập bằng remote trong "Cài đặt giao diện" theo 3 dòng đầu.
6. DỌN ỨNG DỤNG: liệt kê ứng dụng đang bật thành 4 nhóm: (1) rác hệ thống an toàn để tắt, (2) phần mềm nhà sản xuất không rõ chức năng, (3) tính năng có thể đang dùng (Chromecast, trợ lý giọng nói, Miracast, cập nhật firmware…), (4) ứng dụng tôi tự cài. Gói không rõ chỉ xem bằng dumpsys package, KHÔNG mở. Trình bày thành bảng và CHỜ TÔI CHỌN. Sau đó tắt từng gói, theo nhóm nhỏ, chụp màn hình kiểm tra sau mỗi nhóm.
7. KIỂM TRA: khởi động lại TV, xác nhận TV vào Tivi Home, Wi-Fi và ADB vẫn kết nối, các gói đã tắt vẫn tắt.
8. KẾT THÚC: viết file KHOI-PHUC.md gồm lệnh bật lại từng gói đã tắt, quay lại launcher, bàn phím và màn hình chờ cũ. Rồi hướng dẫn tôi tắt Gỡ lỗi USB / Gỡ lỗi ADB qua mạng, thu hồi quyền gỡ lỗi và kiểm tra cổng 5555 đã đóng.
Quy tắc bắt buộc: chỉ tắt bằng pm disable-user --user 0, KHÔNG BAO GIỜ pm uninstall ứng dụng hệ thống; mỗi lệnh pm chạy riêng; không mở bất kỳ ứng dụng factory/test nào; không đụng vào HDMI/tuner, remote/Bluetooth, bàn phím hệ thống, Play Store, Play Services; không hỏi mật khẩu Wi-Fi hay tài khoản Google của tôi. Khi không chắc, hỏi tôi.
AI sẽ dừng lại hỏi bạn ở ba chỗ: bấm "Cho phép" trên TV, đổi màn hình chính / tắt launcher cũ, và chọn ứng dụng để tắt. Đọc kỹ trước khi trả lời "đồng ý".
A3. Sau khi AI làm xong: chỉnh bằng remote
Vào Ứng dụng → Cài đặt giao diện để nhập lời chào, vị trí thời tiết, chọn ảnh nền và mẫu màn hình chờ. Chi tiết ở Bước 10 của cách B.
A4. (Tuỳ chọn) Prompt thiết kế thêm màn hình cùng phong cách
Repo: https://github.com/tuanpa-1702/restore-your-tivi
Đọc design system trong repo (AGENTS.md, design/DESIGN.md, design/tokens/tokens.json, design/reference/,
design/screenshots/). Thiết kế màn hình "Danh sách kênh truyền hình" cho TV đúng design system: sân khấu 960x540,
nền mesh "Tím hồng", thẻ kính, focus nền kem viền xanh, chữ Roboto, điều khiển bằng remote. Xuất một file HTML
độc lập dùng design/tokens/tokens.css.
Khi dùng AI, hãy nhớ
AI có thể hiểu sai hoặc chạy lệnh nhầm. Đọc kỹ mọi câu hỏi trước khi trả lời "đồng ý", nhất là khi AI định tắt ứng dụng, đổi màn hình chính hay khởi động lại TV. Nếu AI đề xuất pm uninstall, mở ứng dụng factory/test, hay tắt Play Services, bàn phím, Bluetooth: từ chối và yêu cầu nó dừng. Đừng dán mật khẩu Wi-Fi, mật khẩu Google hay thông tin cá nhân vào prompt.
Cách B: Làm thủ công
Các bước dưới đây cũng chính là những gì AI làm ở cách A. Đọc qua phần này cũng giúp bạn hiểu AI đang làm gì khi nó hỏi bạn.
Bước 1: Bật chế độ nhà phát triển và gỡ lỗi USB trên TV
- Vào Cài đặt → Thiết bị (Device Preferences) → Giới thiệu (About).
- Chọn mục Bản dựng (Build) và bấm OK liên tục 7 lần cho tới khi hiện thông báo "Bạn đã là nhà phát triển".
- Quay lại, vào Tuỳ chọn nhà phát triển (Developer options), bật Gỡ lỗi USB (USB debugging). Nếu có mục Gỡ lỗi ADB qua mạng thì bật luôn.
- Ghi lại địa chỉ IP của TV ở Cài đặt → Mạng, ví dụ 192.168.1.50.
Lưu ý: một số box cắt nguồn cổng USB khi bật gỡ lỗi USB. Nếu TV vào mạng bằng USB Ethernet (dây LAN qua đầu chuyển USB), hãy chuyển sang Wi-Fi trong lúc làm, nếu không bạn có thể mất kết nối giữa chừng.
Bước 2: Tải mã nguồn và công cụ về máy tính
Có hai lựa chọn. Tự build (2a → 2d) cho bạn đúng mã nguồn mới nhất và khoá ký của riêng bạn. Dùng APK có sẵn (2e) nhanh hơn nhiều, không cần JDK hay Android SDK. Chọn một trong hai.
2a. Tạo thư mục làm việc
Tạo một thư mục ngắn gọn, không dấu, không khoảng trắng, ví dụ C:\tivibox. Sau bước 2 thư mục phải có dạng:
C:\tivibox\
buildtools\
jdk\jdk-17.x.x\ <- JDK 17 (bước 2c)
cmdline-tools\bin\ <- công cụ tải Android SDK (bước 2d)
android-sdk\
platform-tools\ <- adb.exe
platforms\android-34\
build-tools\34.0.0\
tivihome\ <- mã nguồn Tivi Home (bước 2b)
app\ design\ test\ build.ps1 install.ps1 README.md ...
build.ps1 và install.ps1 tự tìm công cụ ở ..\buildtools cạnh thư mục mã nguồn, nên giữ đúng cấu trúc này là không phải cấu hình gì thêm.
2b. Tải mã nguồn Tivi Home từ GitHub
Cách 1, không cần Git: mở github.com/tuanpa-1702/restore-your-tivi, bấm nút xanh Code → Download ZIP. Giải nén vàoC:\tiviboxđược thư mục restore-your-tivi-main; đổi tên thànhtivihome.
Cách 2, đã cài Git (hoặc GitHub Desktop: File → Clone repository):
cd C:\tivibox
git clone https://github.com/tuanpa-1702/restore-your-tivi tivihome
Kiểm tra: trong C:\tivibox\tivihome phải thấy thư mục app và file build.ps1. Nếu có thêm một tầng thư mục (giải nén lồng), chuyển nội dung bên trong ra ngoài.
2c. Tải JDK 17
- Vào adoptium.net/temurin/releases/?version=17, chọn Windows · x64 · JDK, tải bản .zip.
- Giải nén vàoC:\tivibox\buildtools\jdk\,được thư mục kiểu jdk-17.0.x+y.
- Vào developer.android.com/studio, mục Command line tools only, tải commandlinetools-win-..._latest.zip.
- Giải nén vào C:\tivibox\buildtools\, được thư mục cmdline-tools\bin\.
- Mở PowerShell trongC:\tivibox và chạy (bấmykhi được hỏi đồng ý giấy phép):
cd C:\tivibox
$env:JAVA_HOME = (Get-ChildItem .\buildtools\jdk -Directory)[0].FullName
.\buildtools\cmdline-tools\bin\sdkmanager.bat --sdk_root=.\buildtools\android-sdk --licenses
.\buildtools\cmdline-tools\bin\sdkmanager.bat --sdk_root=.\buildtools\android-sdk "platform-tools" "platforms;android-34" "build-tools;34.0.0"
Xong bước này, adb.exe nằm ở C:\tivibox\buildtools\android-sdk\platform-tools\.
2e. Hoặc: chỉ tải APK có sẵn (không cần build)
- Mở mục Releases của repo: github.com/tuanpa-1702/restore-your-tivi/releases, tải fileTiviHome-x.y.apk mới nhất và file.sha256 đi kèm vàoC:\tivibox.
- Tải riêng SDK Platform-Tools for Windows tại developer.android.com/tools/releases/platform-tools, giải nén vào C:\tivibox\buildtools\android-sdk\để cóplatform-tools\adb.exe.
- Kiểm tra file APK không bị sửa: so mã in ra với mã trong file.sha256 (thayx.y bằng số phiên bản bạn tải):
Get-FileHash C:\tivibox\TiviHome-x.y.apk -Algorithm SHA256
Bước 3: Kết nối ADB từ máy tính
Mở PowerShell trongC:\tivibox\buildtools\android-sdk\platform-toolsvà chạy:
# Kết nối tới TV (thay IP bằng IP thật của bạn)
.\adb.exe connect 192.168.1.50:5555
# Kiểm tra: phải thấy dòng "192.168.1.50:5555 device"
.\adb.exe devices
Lần đầu kết nối, TV hiện hộp thoại "Cho phép gỡ lỗi USB?". Dùng remote chọn Cho phép (có thể tick "Luôn cho phép từ máy tính này"). Nếu adb devices báo unauthorized, nghĩa là bạn chưa bấm cho phép.
Kiểm tra phiên bản Android, vì Tivi Home cần SDK 26 trở lên:
.\adb.exe shell getprop ro.product.model
.\adb.exe shell getprop ro.build.version.sdk # phải từ 26 trở lên
Bước 4: Sao lưu trạng thái TV trước khi thay đổi bất cứ thứ gì
Đây là bước nhiều người bỏ qua nhất và cũng là bước cứu bạn khi có sự cố:
mkdir backup
.\adb.exe shell pm list packages -f > backup\packages.txt
.\adb.exe shell pm list packages -d > backup\disabled.txt
.\adb.exe shell settings list global > backup\settings-global.txt
.\adb.exe shell settings list secure > backup\settings-secure.txt
.\adb.exe shell settings list system > backup\settings-system.txt
.\adb.exe shell settings get secure default_input_method > backup\keyboard.txt
.\adb.exe shell settings get secure screensaver_components > backup\screensaver.txt
.\adb.exe shell settings get system screen_off_timeout >> backup\screensaver.txt
Ghi lại tên launcher đang dùng, bạn sẽ cần nó để quay lại:
.\adb.exe shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.HOME
Không đưa thư mục backup lên mạng: các file này chứa số serial, tên thiết bị và tên Wi-Fi của bạn.
Bước 5: Build và cài Tivi Home
Nếu tự build (đã làm 2a → 2d): mở PowerShell trongC:\tivibox\tivihomevà chạy. Script tự chạy bộ kiểm thử (âm lịch, đặt dấu tiếng Việt, Telex) rồi mới đóng gói APK:
cd C:\tivibox\tivihome
powershell -ExecutionPolicy Bypass -File build.ps1
Kết quả làbuild\TiviHome.apk.Lần build đầu tạo khoá kýdebug.keystore.Hãy giữ file này: bản cập nhật sau phải ký bằng đúng khoá này mới cài đè được.
Cài lên TV:
powershell -ExecutionPolicy Bypass -File install.ps1 -Tv 192.168.1.50
Script đẩy APK lên TV, cài bằng pm install (tránh adb install bị treo trên Android 14), cấp quyền cho khoá trẻ em, đọc ảnh và đổi màn hình chờ, rồi mở ứng dụng.
Nếu dùng APK có sẵn (bước 2e): chạy trong C:\tivibox\buildtools\android-sdk\platform-tools, thay x.y bằng số phiên bản bạn tải:
.\adb.exe push C:\tivibox\TiviHome-x.y.apk /data/local/tmp/TiviHome.apk
.\adb.exe shell pm install -r /data/local/tmp/TiviHome.apk
.\adb.exe shell rm /data/local/tmp/TiviHome.apk
# Khoá trẻ em: hiển thị trên ứng dụng khác
.\adb.exe shell appops set com.tivibox.home SYSTEM_ALERT_WINDOW allow
# Ảnh nền và trình chiếu: đọc ảnh (Android 12 trở xuống thay bằng READ_EXTERNAL_STORAGE)
.\adb.exe shell pm grant com.tivibox.home android.permission.READ_MEDIA_IMAGES
# Màn hình chờ: đặt Tivi Home làm màn hình chờ của TV và đổi thời gian chờ
.\adb.exe shell pm grant com.tivibox.home android.permission.WRITE_SECURE_SETTINGS
.\adb.exe shell appops set com.tivibox.home WRITE_SETTINGS allow
# Giữ quyền sau khi khởi động lại
.\adb.exe shell appops write-settings
.\adb.exe shell am start -n com.tivibox.home/.MainActivity
Ở bước này launcher cũ vẫn là màn hình chính, bấm Home là về giao diện cũ. Dùng thử Tivi Home vài phút trước khi đi tiếp.
Bước 6: Đặt Tivi Home làm màn hình chính
.\adb.exe shell cmd package set-home-activity com.tivibox.home/.MainActivity
Lệnh có thể in Success nhưng không đổi gì trên một số firmware. Đừng tin chữ Success: bấm nút Home trên remote, rồi kiểm tra ứng dụng đang ở trên cùng:
.\adb.exe shell "dumpsys activity activities | grep mFocusedApp"
# Kỳ vọng: ...com.tivibox.home/.MainActivity...
Chỉ khi dòng trên ra đúng com.tivibox.home mới chuyển sang bước 7.
Bước 7: Tắt launcher cũ (tắt, không gỡ)
# Thay <launcher-cũ> bằng tên gói bạn đã ghi lại ở bước 4
.\adb.exe shell pm disable-user --user 0 <launcher-cũ>
Khởi động lại TV một lần và xác nhận ba điều: TV vào thẳng Tivi Home, Wi-Fi vẫn kết nối, vàadb connectvẫn vào được.
Google TV: trình thiết lậpcom.google.android.tungsten.setupwraithcó thể giành lại nút Home sau khi tắt launcher gốc. Trước khi tắt nó, chạyadb shell "dumpsys wifi | grep -o 'cname=[^ ]*'": nếu mạng Wi-Fi đang dùng thuộc về setupwraith, tắt nó sẽ làm Android xoá mạng đó và bạn mất ADB. Khi đó hãy quên mạng rồi kết nối lại trong Cài đặt trước.
Board CVTE (có gói com.cvte.*): giữ nguyên launcher gốc, chỉ đặt Tivi Home làm Home và khởi động lại để kiểm tra.
Bước 8: Dọn ứng dụng hệ thống không dùng đến
Cảnh báo khi tắt ứng dụng hệ thống
Đây là bước rủi ro nhất của cả bài. Tắt nhầm một ứng dụng hệ thống có thể làm mất tín hiệu HDMI, mất remote, mất bàn phím, mất Wi-Fi hoặc không vào được Cài đặt. Hãy tuân thủ tuyệt đối các nguyên tắc dưới đây.
Nguyên tắc bắt buộc
- Chỉ tắt, không bao giờ gỡ: dùngpm disable-user --user 0. Tuyệt đối không dùngpm uninstallvới ứng dụng hệ thống, vì trên box không root bạn có thể không cài lại được.
- Mỗi lệnh một gói: gộp nhiều lệnhpmvào một dòng có thể dừng âm thầm sau lệnh đầu tiên mà không báo lỗi.
- Tắt theo nhóm nhỏ, kiểm tra sau mỗi nhóm: mở thử YouTube, HDMI, Cài đặt, bàn phím. Tắt một lúc 20 gói rồi TV lỗi thì bạn không biết gói nào là thủ phạm.
- Không hiểu thì không tắt: xem bằngadb shell dumpsys package <tên-gói>trước, còn mơ hồ thì để nguyên.
- Không bao giờ mở ứng dụng factory/test để xem thử: các gói có tên chứa factory,test, fac menu,mediatek.factorymenu, cvte.tv.hkcfac… Trên một số board, chỉ cần mở ra là TV bật cờ chế độ nhà máy: mất phím Input, mất HDMI-CEC, và lần khởi động sau tự tắt Play Services. Chỉ xem bằngdumpsys, không mở.
- Khởi động lại sau khi dọn xong: một số firmware tự bật lại gói đã tắt ở mỗi lần khởi động. So sánh pm list packages -dtrước và sau khi khởi động lại.
Tuyệt đối không tắt
|
Nhóm |
Ví dụ tên gói |
Tắt thì có thể lỗi |
|
Ứng dụng TV, HDMI, tuner |
com.android.tv, *.tvinput*, com.*.tv.* |
Không xem được HDMI, đầu thu, Live TV |
|
Menu nguồn vào |
*.inputsource*, *.sourcemenu* |
Không chuyển được nguồn HDMI/AV |
|
Remote, Bluetooth |
com.android.bluetooth, *.remote* |
Remote Bluetooth ngừng hoạt động |
|
Bàn phím ảo |
com.android.inputmethod.latin hoặc bàn phím đang dùng |
Không gõ được mật khẩu Wi-Fi |
|
Google Play, Play Services |
com.android.vending, com.google.android.gms, com.google.android.gsf |
Hỏng YouTube, Netflix, đăng nhập, cập nhật |
|
Thành phần lõi |
com.android.systemui, com.android.tv.settings, com.android.webview, com.android.providers.*, com.android.permissioncontroller, com.android.packageinstaller, com.android.networkstack* |
TV treo logo, không vào được Cài đặt, mất mạng |
Thường tắt an toàn (TV không dùng đến)
|
Gói |
Chức năng |
|
com.google.android.tvrecommendations |
Hàng gợi ý cho launcher Google cũ |
|
com.google.android.feedback |
Gửi báo lỗi về Google |
|
com.android.adservices.api, com.android.ext.adservices.api |
Dịch vụ quảng cáo (Privacy Sandbox) |
|
com.android.ondevicepersonalization.services, com.android.federatedcompute.services |
Cá nhân hoá, học máy cho quảng cáo |
|
com.android.healthconnect.controller, com.android.health.connect.backuprestore |
Health Connect, vô nghĩa trên TV |
|
com.android.nearby.halfsheet |
Bảng chia sẻ lân cận |
|
com.android.hotspot2.osulogin |
Đăng nhập Wi-Fi Passpoint |
|
com.android.dynsystem |
Cập nhật hệ thống động cho nhà phát triển |
|
com.google.android.syncadapters.calendar |
Đồng bộ lịch Google |
Ví dụ tắt một gói và kiểm tra:
.\adb.exe shell pm disable-user --user 0 com.google.android.tvrecommendations
# Package com.google.android.tvrecommendations new state: disabled-user
.\adb.exe shell pm list packages -d # danh sách gói đang tắt
Một số gói được firmware bảo vệ và báo SecurityException: Cannot disable a protected package. Đó là bình thường, cứ bỏ qua, đừng tìm cách ép.
Bước 9: Bật Bàn phím Tivi (gõ Telex)
Bàn phím mặc định của nhiều box rất khó gõ tiếng Việt bằng remote. Tivi Home kèm một bàn phím hệ thống cùng phong cách, gõ Telex, dùng được trong mọi ứng dụng (ô tìm kiếm YouTube, mật khẩu Wi-Fi…). Bật trong Cài đặt → Bàn phím, hoặc:
.\adb.exe shell ime enable com.tivibox.home/.KeyboardService
.\adb.exe shell ime set com.tivibox.home/.KeyboardService
Bước 10: Cài đặt giao diện, ảnh nền và màn hình chờ
Mở Ứng dụng → Cài đặt giao diện (có thể thêm ô này vào dock). Các thẻ xếp 2 cột, bấm OK để đổi:
Lời chào và Vị trí thời tiết: gõ bằng Bàn phím Tivi; vị trí nhập tên thành phố hoặc quận/huyện, có dấu hay không dấu đều được.
Ảnh nền màn hình chính: Tivi Home tự quét mọi ảnh trong bộ nhớ trong và USB, hiện thành lưới (mới nhất trước), không cần duyệt thư mục. Chọn ảnh rồi chỉnh:
- Độ mờ: Rõ nét / Mờ nhẹ / Mờ nhiều.
- Cách hiển thị: Lấp đầy (cắt cho kín màn hình) hoặc Vừa khung (hiện trọn ảnh, phần thừa là nền mờ của chính ảnh).
- Bỏ ảnh nền để quay về màu nền gradient (Tím hồng, Đại dương, Hoàng hôn).
- Mẫu: Đồng hồ kính, Lịch âm dương, Thời tiết, Đêm tối giản, Ảnh nền, hoặc Tuỳ chỉnh (trình chiếu tối đa 30 ảnh tự chọn, mỗi ảnh 10 giây – 5 phút, bật/tắt đồng hồ).
- Xem thử: bấm phím bất kỳ để thoát.
- Thời gian chờ: 5 phút – 1 giờ hoặc tắt.
- Dùng làm màn hình chờ của TV: bấm để Tivi Home thay màn hình chờ cũ. Nếu app báo "Cần cấp quyền", chạy lại các lệnh cấp quyền ở bước 5, hoặc chọn "Màn hình chờ Tivi Home" trong cài đặt màn hình chờ của TV.
Nội dung màn hình chờ trôi nhẹ mỗi phút nên không lưu ảnh trên màn hình. Cuối trang Cài đặt giao diện ghi phiên bản đang cài.
Bước 11: Thiết lập khoá trẻ em
Bấm nút ổ khoá ở góc trên bên phải màn hình chính, chọn thời gian cho bé xem: 15 phút, 30 phút, 1 tiếng, 2 tiếng hoặc tuỳ chỉnh từ 1 đến 240 phút. Hết giờ, TV hiện màn hình khoá đè lên mọi ứng dụng (kể cả YouTube), tạm dừng phim và tắt tiếng. Rút điện hay khởi động lại cũng không thoát được khoá.
Mở khoá bằng mã PIN 8 số là ngày giờ hiện tại theo dạngddMMHHmm,ví dụ 25/10 lúc 18:54 thì mã là5101854.
Giới hạn của khoá trẻ em: công thức mã PIN được công bố công khai trong bài này và trong mã nguồn, nên đây là lớp nhắc nhở cho trẻ nhỏ, không phải biện pháp bảo mật. Khoá không chặn được việc chuyển nguồn HDMI, cast từ điện thoại hoặc vào Cài đặt Android buộc dừng ứng dụng. Nếu TV hỗ trợ, hãy đặt mật khẩu cho phần Cài đặt.
Bước 12: Đóng ADB khi đã xong việc
Cổng ADB 5555 truyền dữ liệu không mã hoá. Để mở là để ngỏ cửa: trên một số firmware, bất kỳ thiết bị nào trong mạng nhà bạn đều có thể chiếm quyền điều khiển TV. Khi đã làm xong:
- Vào Tuỳ chọn nhà phát triển, tắt Gỡ lỗi USB và Gỡ lỗi ADB qua mạng.
- Chọn Thu hồi quyền gỡ lỗi USB (Revoke USB debugging authorizations).
- Khởi động lại TV, rồi thửadb connect 192.168.1.50:5555: phải báoConnection refusedmới là đã đóng.
Các quyền đã cấp ở bước 5 vẫn giữ nguyên sau khi đóng ADB.
Khôi phục khi có sự cố
|
Triệu chứng |
Cách xử lý |
|
Bấm Home không vào được màn hình nào |
adb shell pm enable <launcher-cũ> rồi adb shell cmd package set-home-activity <launcher-cũ>/<Activity> |
|
Một ứng dụng không mở được sau khi dọn |
Bật lại từng gói đã tắt: adb shell pm enable <tên-gói>, đối chiếu với backup\disabled.txt |
|
Không gõ được chữ |
adb shell ime set com.android.inputmethod.latin/.LatinIME (hoặc bàn phím cũ trong backup\keyboard.txt) |
|
Mất Wi-Fi, không còn ADB |
Cắm dây LAN hoặc vào Cài đặt kết nối lại Wi-Fi bằng remote |
|
TV kẹt logo khởi động, không vào được Android |
Khôi phục cài đặt gốc từ menu recovery (thường giữ nút reset ở lỗ nhỏ phía sau khi cắm điện). Mất toàn bộ dữ liệu và ứng dụng đã cài |
Gỡ Tivi Home hoàn toàn: bật lại launcher cũ trước, rồi mới adb uninstall com.tivibox.home. Làm ngược lại, TV sẽ không còn màn hình chính nào.
Một số lưu ý khi triển khai
• Làm trong một lần: đừng bỏ dở giữa chừng ở trạng thái đã tắt launcher cũ mà chưa kiểm tra launcher mới.
• Kiểm tra bằng thực tế, không tin thông báo: Success chưa chắc là thành công, luôn bấm thử nút Home và mở thử ứng dụng.
• Ảnh chụp màn hình có thể trống khi đang xem Live TV, HDMI hoặc Netflix. Đó là cơ chế bảo vệ nội dung của TV, không phải lỗi do dọn ứng dụng.
• Firmware khác nhau, kết quả khác nhau: bài này kiểm chứng trên TV box RockChip chạy Android 14. Một số TV Trung Quốc chặn cài ứng dụng ngoài hoặc chặn launcher bên thứ ba; khi đó chỉ làm phần dọn ứng dụng.
• Giữ trình cập nhật firmware: bỏ đi thì mất bản vá bảo mật, cái giá lớn hơn vài MB RAM tiết kiệm được.
• Cập nhật hệ thống có thể bật lại gói đã tắt hoặc đặt lại launcher mặc định. Sau mỗi lần cập nhật firmware, kiểm tra lại.
Miễn trừ trách nhiệm
Nội dung bài viết chỉ nhằm mục đích chia sẻ kiến thức và tham khảo. Mọi thao tác trong bài (bật chế độ nhà phát triển, kết nối ADB, tắt ứng dụng hệ thống, thay launcher, cài bàn phím, cấp quyền hiển thị trên ứng dụng khác) đều do bạn tự quyết định và tự thực hiện trên thiết bị của mình.
ANONYHT và tác giả không chịu trách nhiệm với bất kỳ thiệt hại nào phát sinh, bao gồm nhưng không giới hạn: TV hoạt động sai, mất dữ liệu, mất tài khoản hoặc ứng dụng đã mua, phải khôi phục cài đặt gốc, hỏng phần cứng, gián đoạn dịch vụ, cũng như việc mất quyền bảo hành theo chính sách của nhà sản xuất hoặc nhà cung cấp dịch vụ truyền hình.
Phần mềm Tivi Home được cung cấp theo hiện trạng ("as is"), không kèm bảo đảm dưới bất kỳ hình thức nào. Thời tiết lấy từ dịch vụ bên thứ ba (Open-Meteo) và có thể sai lệch hoặc gián đoạn. Khoá trẻ em là công cụ hỗ trợ, không thay thế sự giám sát của phụ huynh.
Không thực hiện trên thiết bị không thuộc quyền sở hữu của bạn, thiết bị đang cho thuê, thiết bị của nhà mạng/doanh nghiệp, hoặc khi điều khoản sử dụng của nhà cung cấp cấm can thiệp phần mềm. Nếu không chắc chắn, hãy dừng lại và liên hệ đơn vị bảo hành.
Tổng kết
Chỉ với một máy tính, một sợi dây ADB qua mạng và khoảng nửa giờ, chiếc TV box chậm chạp đầy quảng cáo có thể đổi sang một màn hình chính gọn gàng: đồng hồ lớn, lịch âm, thời tiết đúng quận mình ở, dock sắp xếp được, khoá trẻ em và bàn phím gõ tiếng Việt. Toàn bộ quá trình không cần root, không flash firmware, và mọi thay đổi đều đảo ngược được nếu bạn đã sao lưu ở bước 3.
Nguyên tắc cần nhớ: sao lưu trước, tắt chứ không gỡ, kiểm tra Home trước khi tắt launcher cũ, và đóng ADB khi đã xong. Làm đúng bốn điều đó là bạn đã tránh được gần như mọi rủi ro.
Mã nguồn, ảnh giao diện và tài liệu thiết kế xem chi tiết tại: github.com/tuanpa-1702/restore-your-tivi.
Bình luận (0)
Vui lòng để bình luận.