My parents' TV showed an ad before Netflix, so I fixed it with an AI agent. 4 days later it has 16k GitHub stars
부모님 TV에서 넷플릭스 전에 광고가 나와 AI 에이전트로 고쳤습니다. 나흘 만에 GitHub 스타 1만6천 개를 받았습니다
CleanYourTV는 Android TV와 Google TV에서 제조사 광고·추적 앱을 비활성화하고 기본 홈 화면을 대체하는 오픈소스 도구입니다. ADB와 코딩 에이전트를 이용하며, 변경 전 상태를 기록하고 복구 스크립트로 되돌립니다. 기기별 패키지 목록과 안전 검사를 함께 제공합니다.
- 주제
에디터 노트
되돌릴 수 있는 설계는 가족의 TV에 적용하기 쉽게 만들지만, 복구 가능성이 패키지 목록의 정확성까지 보장하지는 않습니다. 저장 상태를 기록하고 모델별로 목록을 나누며 홈 화면을 보호하는 절차는 문서에 구체적으로 적혀 있습니다. 반면 Reddit 댓글의 기여 목록 검증 우려는 실제 장애 사례로 확인된 내용이 아니라, 규모가 커질 때 점검 기준을 더 명확히 할 필요가 있다는 제안입니다. 이 도구의 적용 범위도 광고 제거 전반이 아니라 Android TV와 Google TV의 시스템 앱 비활성화 및 홈 화면 교체입니다. Fire TV에서는 런처를 바꿀 수 없고 앱 내부 YouTube 광고도 막지 못하며, Samsung과 LG, Roku에는 적용되지 않습니다. 네트워크 ADB를 켜는 과정에는 보안상 별도 조치가 따릅니다. 작업 후 디버깅을 끄고 포트 5555를 확인하라는 안내가 도구 사용 절차의 일부입니다.
AI 요약
부모님 Xiaomi TV에서 Netflix 실행 전 전체 화면 광고가 나온 일을 계기로 만든 CleanYourTV는 Android TV와 Google TV의 제조사 앱을 비활성화하고 홈 화면을 교체하는 오픈소스 프로젝트입니다. 저자는 Claude Code로 작업한 TV 화면을 공개한 뒤 사용자가 늘었고, 기기별 목록을 기여받았다고 설명합니다.
작동 방식
TV 설정에서 개발자 옵션과 USB 또는 네트워크 ADB 디버깅을 켜고, 같은 Wi-Fi에 연결한 컴퓨터에서 Claude Code, Codex 또는 Gemini CLI를 실행합니다. 에이전트는 TV 모델과 설치 패키지를 확인하고, 사용자가 유지할 앱과 음성 비서, Chromecast 등을 묻습니다. 변경 전 패키지와 설정 상태를 기록한 뒤 제조사 광고·분석 앱 등을 pm disable-user로 비활성화하고, 약 470KB 크기의 Java 런처를 설치합니다. 앱을 삭제하거나 루트 권한을 얻지는 않으며, 복구 스크립트가 기존 상태를 되돌립니다.
새 홈 화면은 즐겨찾기 앱 도크와 앱 목록, 입력 전환, 시계 화면 보호기 등을 제공하며 테마와 배치도 설정할 수 있습니다. 런처는 Android 8.0 이상을 대상으로 하고 네트워크 권한이나 백그라운드 서비스를 포함하지 않습니다. 사용자는 에이전트 없이 Python 도구를 직접 실행해 패키지를 확인하거나 목록을 적용할 수도 있습니다.
지원 범위와 안전 장치
Android TV와 Google TV에서는 런처 교체와 앱 비활성화를 지원합니다. Fire TV는 Fire OS 제한으로 런처를 바꿀 수 없어 비활성화 기능만 지원하며, 일부 기기는 이 기능도 작동하지 않습니다. Samsung Tizen과 LG webOS, Roku는 Android ADB를 제공하지 않아 지원 대상이 아닙니다.
기기별 목록은 모델 폴더에 나뉘며, 에이전트는 해당 TV에 패키지가 실제로 있는지 확인하고 보호 대상 패키지를 건너뜁니다. 도구는 홈 화면을 맡은 앱이 사라지지 않도록 확인하고, 복구에 필요한 기록을 보관합니다. 펌웨어 업데이트 뒤 비활성화 목록이 달라졌는지 점검하는 도구도 있습니다. 다만 네트워크 ADB는 평문으로 통신하며 포트 5555가 열릴 수 있으므로, 작업 뒤 디버깅을 끄고 포트가 닫혔는지 확인하라고 안내합니다. 패키지 이름만으로 앱의 녹음 의도를 판정할 수 없다는 한계도 명시합니다.
Reddit 반응
- @ChopSueyYumm — 저장소가 생긴 지 나흘 만에 스타 1만7천 개라니 매우 드뭅니다. 엄청난 바이럴이거나 봇을 쓴 것 같아 의심스럽습니다.
- @Independent_Ad7172 — 앱을 삭제하지 않고 비활성화한 점은 되돌릴 수 있어 좋습니다. 기여자가 늘어나는 만큼 모델별 패키지 목록이 맞는지 어떻게 확인하는지가 궁금합니다. 잘못된 항목이 다른 모델에 적용되는 위험이 가장 커 보입니다.
- @Gathin23 — 목록은 모델별 폴더에 있고 프롬프트가 정확한 모델과 패키지 존재 여부를 확인합니다. 비활성화를 거부하는 보호 목록도 있으며, PR은 테스트와 리뷰를 거칩니다. 잘못된 항목도 한 번의 명령으로 되돌릴 수 있습니다.
- @PBJ_- — 기기별 목록을 추가하는 낯선 기여자들이 패키지 이름을 잘못 판단하면 캐스팅, 리모컨 입력, 업데이트가 멈출 수 있습니다. 모델별 검증 표시와 실행 전 변경 목록을 보여주는 드라이런을 제안합니다.
- @Gathin23 — Fire OS에서는 앱 비활성화만 됩니다. 홈 화면 교체는 불가능하고 YouTube 앱 안의 광고도 이 방법으로 제거할 수 없습니다.
- @sudomatrix — 스마트 TV를 Wi-Fi에 연결하지 않겠다는 입장입니다. 기기에서 나가는 데이터가 걱정된다고 말합니다.
- @Gathin23 — Roku와 Samsung은 Android가 아니라 ADB를 지원하지 않아 이 도구의 대상이 아니라고 답했습니다.
- @QuanTradin — 한 번의 명령으로 원래 상태로 되돌릴 수 있다는 점이 다른 사람들이 부모님 TV에 적용하도록 만든 요소일 것이라고 말합니다.
- @sydpermres — 비슷한 목적이라면 Projectivy Launcher를 쓸 수도 있다고 제안하고, 사용하지 않는 좋은 앱을 지원하지 않으면 사라질 수 있다고 덧붙입니다.
원문: Reddit / 번역·요약: Trawling