Mổ xẻ CleanYourTV: Dùng Claude Code dọn sạch rác Android TV
Khám phá CleanYourTV: cách Claude Code qua Wi-Fi và ADB gỡ sạch quảng cáo Google TV, thu hồi RAM và cài đặt launcher phong cách Apple TV chỉ 526KB.

Bạn chi gần hai mươi triệu đồng rước về một chiếc Smart TV 4K đời mới. Vừa bật nguồn, màn hình chính đập thẳng vào mắt đoạn video quảng cáo xe hơi 15 giây không thể bấm qua, kèm năm hàng banner tin tức giật gân. Bên dưới lớp vỏ nhựa, con chip bốn nhân giá rẻ oằn mình gánh hàng tá dịch vụ chạy ngầm thu thập thói quen bấm remote của bạn để bán cho các sàn quảng cáo.
Ngày 17 tháng 10 năm 2026, lập trình viên Gathin ngồi trước chiếc TV Xiaomi giật lag của bố mẹ mình và quyết định hành động. Thay vì gõ lệnh terminal thủ công hay flash ROM can thiệp sâu, anh mở Claude Code (agent lập trình AI chạy trên terminal của Anthropic), kết nối với TV qua Wi-Fi nội bộ bằng ADB (công cụ dòng lệnh chẩn đoán Android) và đưa ra đúng một yêu cầu: dọn sạch rác, tắt hết theo dõi, và biến giao diện thành Apple TV.
Phiên xử lý đó thu hút 7,4 triệu lượt xem trong 48 giờ và vượt mốc 38.000 sao GitHub sau 9 ngày. Từ bản hack cá nhân, dự án trở thành CleanYourTV (cleanyourtv), hỗ trợ 332 dòng TV thuộc 91 thương hiệu. Dưới đây là phân tích kỹ thuật về cách AI agent can thiệp vào thiết bị gia dụng, cơ chế vô hiệu hóa không cần root, và các cạm bẫy phần cứng thực tế.
TL;DR
Quick Answer Box (Hộp tóm tắt nhanh cho tìm kiếm): CleanYourTV là gì? Bộ công cụ tự động hóa điều khiển các coding agent (như Claude Code) kết nối với Android TV và Google TV qua Wi-Fi bằng giao thức ADB. Công cụ dùng cờ quản lý gói (
pm disable-user) để đóng băng ứng dụng rác và quảng cáo của nhà sản xuất mà không xóa file gốc, rồi thay thế bằng launcher phong cách Apple TV chỉ 526KB.Repository chính thức: Gathin23/cleanyourtv · Giấy phép: MIT · Stars: ~38.900+ · Dòng máy kiểm nghiệm: 332 mẫu
- Nguyên tắc không phá hủy: Không dùng
pm uninstall. CleanYourTV chỉ đóng băng tiến trình bằngpm disable-user --user 0, giữ nguyên file hệ thống và hoàn tác 100% qua file scriptrestore.sh. - Giao diện 526KB: Launcher gốc của Google TV ngốn tới 400MB RAM cho banner quảng cáo. CleanYourTV thay thế bằng launcher Java thuần túy không có quyền Internet, khôi phục tốc độ 60 FPS cho remote.
- Rủi ro mạng LAN: Cổng ADB 5555 không có mật khẩu bảo vệ. CleanYourTV bắt buộc chạy script
adb-closed.pyđể khóa cổng debug trước khi kết thúc phiên làm việc. - Cạm bẫy mất Wi-Fi của Google TV: Không tắt gói
setupwraith. Trên Chromecast, gói này quản lý thông tin đăng nhập Wi-Fi; tắt sai sẽ ngắt mạng TV và làm đứt kết nối ADB ngay giữa chừng.
Bản đồ tư duy (Mô hình trực quan)
Smart TV ngày nay giống như căn hộ bạn mua đứt nhưng chủ thầu ngầm lắp đầy máy bán hàng chiếm hết lối đi. Bạn không cần mang búa tạ đập phá (root máy hay flash ROM). Bạn chỉ cần dán biển ngừng phục vụ lên các máy bán hàng (pm disable-user) và thay toàn bộ hành lang bằng chiếc giá treo đồ thanh lịch (launcher 526KB):
Phần 1: Nền tảng (Nghịch lý phần cứng Smart TV)
Các tập đoàn điện tử ngày nay không còn xem TV là thiết bị hiển thị đơn thuần. Biên lợi nhuận phần cứng rất mỏng. Hãng bán màn hình 4K 55-inch sát giá thành linh kiện, rồi bù đắp lợi nhuận sau bán hàng bằng hai kênh: bán dữ liệu thói quen xem qua ACR (công nghệ tự động nhận diện nội dung trên màn hình) và cho thuê các vị trí đẹp trên màn hình chính cho quảng cáo.
| Thuật ngữ kỹ thuật | Ý nghĩa bỏ túi (3-6 từ) |
|---|---|
| ADB (Android Debug Bridge) | Giao diện dòng lệnh gỡ lỗi Android |
| ACR (Content Recognition) | Dịch vụ quét hành vi xem màn hình |
pm disable-user |
Đóng băng gói, không xóa file gốc |
launcherx |
Màn hình chính mặc định của Google TV |
| Setupwraith | Trình thiết lập ban đầu của Google TV |
Khi khởi động TV mới, hệ thống chạy hàng chục daemon (tiến trình nền không giao diện). Trên TV phổ thông chỉ có 1,5GB RAM (bộ nhớ tạm cực nhanh chia sẻ giữa chip đồ họa và app), màn hình chính ngốn 400MB chỉ để đệm video quảng cáo. Giao diện rớt khung hình, mở app chậm và remote phản hồi trễ hai giây.
Trước đây, người dùng am hiểu kỹ thuật thường mở khóa bootloader (bộ nạp khởi động) hoặc root máy (chiếm quyền quản trị cao nhất). Nhưng trên TV, root máy sẽ vô hiệu hóa Widevine L1 (chứng chỉ bảo mật phần cứng bắt buộc xem phim 4K), dễ làm cháy hỏng bo mạch và mất bảo hành. CleanYourTV giải quyết vấn đề bằng công cụ debug chính thức của Android, can thiệp sâu mà không chạm vào phân vùng hệ thống.
Phần 2: Mổ xẻ cơ chế (Kiến trúc vận hành CleanYourTV)
CleanYourTV là sự phối hợp giữa AI agent, tài liệu an toàn (PROMPT.md) và script shell tự động (tools/).
Giai đoạn 1: Bắt tay qua Wi-Fi và sao lưu toàn diện
Bật Tùy chọn nhà phát triển trên TV (bấm 7 lần vào Số bản dựng), mở Gỡ lỗi USB và Gỡ lỗi mạng. Máy tính kết nối tới TV qua Wi-Fi:
# Kết nối tới Android TV qua mạng Wi-Fi nội bộ
adb connect 192.168.1.145:5555
# Kiểm tra danh sách thiết bị nhận diện
adb devices -l
Prompt CleanYourTV yêu cầu agent chụp ảnh hiện trạng hệ thống vào thư mục backup/:
# Trích xuất danh sách gói, thuộc tính hệ thống và cài đặt toàn cục
adb shell pm list packages -f > backup/packages_full.txt
adb shell pm list packages -d > backup/packages_disabled.txt
adb shell getprop > backup/getprop.txt
adb shell settings list global > backup/settings_global.txt
Bản snapshot này tự sinh file script hoàn tác tools/restore.sh. Khi cần khôi phục tính năng của hãng, người dùng chỉ cần chạy file hoàn tác để mở lại toàn bộ gói trong 30 giây.
Giai đoạn 2: Đóng băng ứng dụng an toàn (pm disable-user)
Lệnh pm disable-user đánh dấu gói phần mềm ngưng hoạt động trên tài khoản người dùng hiện tại (User 0) mà không xóa file APK gốc:
# Lệnh đóng băng ứng dụng an toàn tuyệt đối
pm disable-user --user 0 com.google.android.apps.tv.launcherx
# Lệnh mở lại bất cứ lúc nào nếu muốn
pm enable com.google.android.apps.tv.launcherx
Do ứng dụng hệ thống nằm ở phân vùng chỉ đọc (/system), việc đóng băng sẽ giải phóng RAM và ẩn chúng khỏi màn hình mà không sửa đổi bộ nhớ flash.
CleanYourTV phân loại ứng dụng thành ba nhóm:
- Dịch vụ theo dõi và quảng cáo: Thu thập dữ liệu và nội dung tài trợ (Xiaomi PatchWall, TCL Channel, Samba TV). Nhóm này tắt tự động.
- Thành phần cốt lõi: Chuyển đổi cổng HDMI, kết nối Bluetooth cho remote và bàn phím ảo. Agent bị cấm chạm vào nhóm này.
- Tính năng tùy biến: Chromecast, Miracast và Google Assistant. Agent phải hỏi ý kiến người dùng trước khi can thiệp.
Giai đoạn 3: Hoán đổi giao diện tinh gọn 526KB
CleanYourTV cung cấp launcher nguồn mở com.gathin.tvhome nặng 526KB, viết bằng Java thuần túy với AndroidX RecyclerView:
<!-- launcher/app/src/main/AndroidManifest.xml -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gathin.tvhome">
<!-- Điểm kiến trúc cốt lõi: Hoàn toàn không xin quyền INTERNET -->
<application
android:label="@string/app_name"
android:banner="@drawable/banner"
android:theme="@style/Theme.CleanTVHome">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Đặc điểm kiến trúc quan trọng là không xin quyền truy cập Internet. Launcher không thể gửi dữ liệu ra ngoài hay tải script từ xa. Nó chỉ đọc ảnh đại diện ứng dụng trên máy, xếp thành lưới ngang giống Apple TV và hiển thị mượt mà 60 FPS.
Phần 3: Chẩn đoán góc khuất (Cạm bẫy phần cứng chết người)
Khi triển khai trên hàng nghìn TV thực tế, việc để coding agent can thiệp vào phần cứng làm lộ ra nhiều lỗi phụ thuộc hệ thống nghiêm trọng.
Bài đăng gốc của tác giả tạo nên làn sóng tranh luận trên X:
Bản gốc tiếng Anh (English)
Kỹ sư cộng đồng nhanh chóng cảnh báo về các bẫy phụ thuộc tầng sâu:
Cạm bẫy 1: Ngắt kết nối Wi-Fi vì gói Setupwraith
Trên phần cứng Google TV đời mới (Chromecast with Google TV 4K hoặc TV Hisense), gói thiết lập ban đầu là com.google.android.apps.tv.launcherx.setupwraith. Vì chứa màn hình quảng cáo, các danh sách dọn dẹp thường nhắm vào gói này.
Nhưng trên nhiều bản build, setupwraith là tiến trình quản lý cấu hình Wi-Fi đang hoạt động. Khi agent tắt gói này, TV lập tức rớt mạng Wi-Fi. Kết nối ADB bị đứt giữa chừng, người dùng mất khả năng truy cập từ xa và buộc phải bấm nút cứng khôi phục cài đặt gốc. CleanYourTV bổ sung lệnh kiểm tra trước khi tắt:
# Kiểm tra tiến trình quản lý cấu hình Wi-Fi trước khi can thiệp
dumpsys wifi | grep -o 'cname=[^ ]*'
Cạm bẫy 2: Treo logo TV vì tắt nhầm mô-đun lõi (Sự cố #884)
Trong sự cố #884, người dùng chạy agent trên Mi TV Stick và thiết bị bị treo vĩnh viễn ở logo khởi động. Agent đã áp dụng danh sách trôi nổi trên mạng chứa các gói hạ tầng Android:
com.google.android.ext.servicescom.google.android.ext.sharedcom.android.providers.settingscom.google.android.modulemetadata
Khi khởi động, tiến trình zygote cần khởi tạo hệ thống phân quyền. Thiếu các gói này, hệ thống kích hoạt lỗi Watchdog và khởi động lại liên tục. TV stick bị khóa recovery sẽ thành cục gạch. CleanYourTV đưa danh sách cấm vào tools/disable.sh để chặn agent đụng vào mô-đun lõi.
Cạm bẫy 3: Cờ xuất xưởng của bo mạch CVTE và MediaTek
TV giá rẻ dùng bo mạch CVTE (Haier, JVC, TCL nội địa) có gói chẩn đoán com.cvte.tv.hkcfac hoặc mediatek.factorymenu.ui.
Nếu AI agent chạy lệnh am start để xem thử, chip EEPROM trên bo mạch sẽ bật cờ kiểm tra xuất xưởng. Ở lần khởi động sau, HDMI CEC bị vô hiệu hóa, nút Input mất tác dụng và chứng chỉ Widevine bị thu hồi. Lệnh shell không thể đảo ngược cờ phần cứng này.
Cạm bẫy 4: Mở toang cổng ADB 5555 trên mạng LAN
ADB thiết kế cho việc cắm cáp USB chẩn đoán. Khi mở Gỡ lỗi mạng, cổng 5555 lắng nghe kết nối TCP mà không cần mật khẩu.
Thiết bị thông minh dính mã độc trong cùng mạng Wi-Fi có thể kết nối tới TV với quyền shell, đọc file riêng tư hoặc cài mã độc. CleanYourTV yêu cầu tắt gỡ lỗi mạng sau khi hoàn tất và chạy script tools/adb-closed.py xác minh cổng 5555 đã đóng.
Phần 4: Ma trận quyết định (Triển khai hay bỏ qua?)
Đánh giá hiện trạng phần cứng trước khi để AI agent can thiệp vào TV của bạn:
| Tiêu chí | Triển khai ngay khi… | Bỏ qua hoặc giữ nguyên nếu… |
|---|---|---|
| Hệ điều hành TV | Android TV hoặc Google TV (Sony, TCL, Xiaomi, Hisense, Chromecast) | TV chạy LG webOS, Samsung Tizen hoặc Roku OS (không hỗ trợ ADB) |
| Dung lượng RAM | TV phân khúc 1,5GB đến 2GB RAM đang bị giật lag và rớt khung hình | Dùng đầu thu Nvidia Shield Pro 16GB hoặc đã có Apple TV 4K rời |
| Nhu cầu điều khiển | Dùng phím điều hướng remote và đề cao tính riêng tư | Phụ thuộc vào khẩu lệnh “Hey Google” để tìm kiếm rảnh tay |
| Kỹ năng vận hành | Biết dùng lệnh terminal cơ bản và lưu file sao lưu an toàn | Cần TV tự động cập nhật hệ điều hành từ xa mà không cần kiểm tra |
| Kết nối mạng | Mạng Wi-Fi ổn định trong suốt quá trình chạy lệnh | TV chỉ cắm đầu chuyển USB Ethernet bị mất nguồn khi debug |
Lời kết thực chiến
CleanYourTV là minh chứng thực tế cho khả năng của AI coding agent: bước ra khỏi môi trường đám mây để giải phóng phần cứng đời thực khỏi quảng cáo thương mại, trả lại sự mượt mà cho phòng khách mà không cần đụng đến mã nguồn C phức tạp nào.
Câu hỏi thường gặp (FAQ)
CleanYourTV có chạy được trên TV Samsung Tizen hoặc LG webOS không?
Không. CleanYourTV phụ thuộc vào ADB và công cụ quản lý gói của Android (pm disable-user). TV Samsung dùng Tizen và TV LG dùng webOS, cả hai không chạy nhân Android và không mở cổng ADB. Dự án cung cấp hướng dẫn riêng (cleanyour.tv/not-android) để tắt ACR thủ công bằng remote.
Việc dọn rác này có làm mất bảo hành TV hay kích hoạt cầu chì Knox không?
Không. CleanYourTV không cần root và không can thiệp bootloader hay phân vùng phục hồi. Thao tác chỉ diễn ra ở cờ người dùng. Chạy script tools/restore.sh sẽ mở lại toàn bộ gói, đưa thiết bị về nguyên bản ban đầu.
Điều gì xảy ra khi TV nhận bản cập nhật hệ điều hành từ nhà sản xuất?
Khi TV nhận bản cập nhật lớn qua OTA (nâng cấp phần mềm không dây), nhà sản xuất có thể kích hoạt lại các gói quảng cáo. Giao diện Apple TV vẫn còn nguyên, bạn chỉ cần kết nối lại máy tính qua Wi-Fi và chạy lại danh sách đóng băng trong vài giây.
Bài viết liên quan
- AI & Agents
Agent Vốn Đã Thông Minh. Không Cần Dạy Nó Nghĩ.
Sự thật về các AI Framework: hầu hết là rườm rà. Tìm hiểu learn-claude-code để thấy cốt lõi thực sự của một Autonomous Agent.
5 phút đọcĐọc tiếp → - AI & Agents
Hướng dẫn sinh tồn với Claude Code: Bỏ tay ra khỏi bàn phím
Sổ tay copy-paste biến Claude từ công cụ chat dạo thành đứa thợ code vô tri vô giác cắm mặt vào tự làm sếp thay vì đợi lệnh.
7 phút đọcĐọc tiếp → - AI & Agents
Dàn nhạc Giao hưởng và Chiếc Gậy của Nhạc trưởng: Làm chủ Claude Code
Claude Code rất mạnh, nhưng để nó thực sự 'hiểu ý' bạn, bạn cần một hệ thống điều hành chứ không chỉ là vài ba câu prompt.
8 phút đọcĐọc tiếp → - AI & Agents
Mổ Xẻ GameDev Agent Skills: 76 Kỹ Năng & Router Cho AI Làm Game
Khám phá awesome-gamedev-agent-skills: biến Claude Code và Cursor thành studio làm game với 76 skill, bộ định tuyến thông minh và quy chuẩn tài nguyên.
12 phút đọcĐọc tiếp →

