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
Đọc trước khi làm: bài này can thiệp vào ứng dụng hệ thống của TV qua ADB. Làm sai bước có thể khiến TV mất màn hình chính, mất kết nối Wi-Fi hoặc phải khôi phục cài đặt gốc. Hãy đọc hết phần Cảnh báo khi tắt ứng dụng hệ thống và Miễn trừ trách nhiệm ở cuối bài. Bạn tự chịu trách nhiệm với thiết bị của mình.

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 AICách B: Làm thủ công
Phù hợp vớiNgười không quen dòng lệnh, muốn làm nhanhNgườ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àmBật gỡ lỗi USB trên TV, bấm "Cho phép", trả lời các câu hỏi của AIToàn bộ 12 bước bên dưới
Thời gian15–30 phút30–45 phút
Dù chọn cách nào, phần Cảnh báo khi tắt ứng dụng hệ thống và Miễn trừ trách nhiệm vẫn áp dụng đầy đủ. AI chỉ chạy hộ lệnh, người quyết định và chịu trách nhiệm vẫn là bạn.

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.

  1. Ghi lại IP của TV ở Cài đặt → Mạng.
  2. 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ộ.
  3. 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:

bash
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

bash
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

  1. Vào Cài đặt → Thiết bị (Device Preferences) → Giới thiệu (About).
  2. 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".
  3. 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.
  4. 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:

bash
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):

bash
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

  1. Vào adoptium.net/temurin/releases/?version=17, chọn Windows · x64 · JDK, tải bản .zip.
  2. Giải nén vàoC:\tivibox\buildtools\jdk\,được thư mục kiểu jdk-17.0.x+y.
2d. Tải Android SDK (chỉ phần dòng lệnh)
  1. Vào developer.android.com/studio, mục Command line tools only, tải commandlinetools-win-..._latest.zip.
  2. Giải nén vào C:\tivibox\buildtools\, được thư mục cmdline-tools\bin\.
  3. Mở PowerShell trongC:\tivibox và chạy (bấmykhi được hỏi đồng ý giấy phép):
bash
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)

  1. 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.
  2. 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.
  3. 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):
bash
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:

bash
# 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:

bash
.\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ố:

bash
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:

bash
.\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:

bash
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:

bash
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:

bash
.\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

bash
.\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:

bash
.\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ỡ)

bash
# 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:

bash
.\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:

bash
.\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àn hình chờ:
  • 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:

  1. Vào Tuỳ chọn nhà phát triển, tắt Gỡ lỗi USB và Gỡ lỗi ADB qua mạng.
  2. Chọn Thu hồi quyền gỡ lỗi USB (Revoke USB debugging authorizations).
  3. 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.

Tags:
Chia sẻ:

Bình luận (0)