원문 캡처 · xydac.com
원문 캡처 · xydac.com

한 사용자가 광고와 원치 않는 추천으로 채워진 TCL Google TV의 홈 화면을 정리하고, 시간대별 배경 화면과 아이폰용 AirPlay 수신 기능을 추가했다. 네트워크 디버깅과 Claude Code를 활용해 작업했으며, 전체 백업 후 설정을 나눠 적용하고 매번 TV 기능을 확인했다.

CleanYourTV의 절차를 참고해 TCL G03 보드용 목록에서 패키지 25개를 비활성화했다. 패키지를 삭제하지는 않았다. 기존 런처는 소형 오픈소스 런처로 바꿨고, 새 런처는 인터넷 접근 권한을 요구하지 않는다.

작업 중 TCL TV에서 확인한 주의점도 있다. 초기 설정 마법사인 setupwraith를 비활성화하면 최초 설정 때 저장된 Wi-Fi 네트워크가 삭제돼 TV 연결이 끊길 수 있다. 따라서 먼저 설정에서 네트워크를 삭제하고 다시 연결해야 한다. 리모컨의 앱 버튼은 Google 홈 화면에서만 작동해, getevent -lt로 버튼 코드를 확인한 뒤 런처 테마의 app_keys에 매핑했다. 기어 버튼 코드는 4077이다.

런처에서 글꼴을 테마로 바꿀 수 없어 Google Fonts의 오픈 라이선스 글꼴을 실제 배경 화면 위에 렌더링해 비교한 뒤 Josefin Sans를 선택했다. res/font/outfit.ttf 파일을 교체하고 다시 빌드했다.

배경 화면은 Apple macOS Tahoe의 레이크 타호 장면에서 가져온 새벽·낮·해질녘·밤 이미지로 구성했다. 기존 런처는 배경을 무작위로 고르거나 순환할 수 있었지만, Claude Code로 시간대별 순서를 지원하는 time_of_day 기능을 추가했다. 파일명은 적용 시작 시간을 표시하도록 06-dawn, 10-day, 17-dusk, 21-night로 지정했다. 런처는 1분마다 현재 시간에 적용되는 이미지를 표시하고, 오전 6시 전에는 밤 이미지로 돌아간다. 테마 키 두 개를 추가해 선택된 앱 이름을 더 크게 표시하고 산 위쪽으로 옮겼다. TV 시간을 7시, 12시, 18시, 22시로 바꿔 화면을 확인했을 때 각 시간대 이미지와 인사말이 표시됐다. 배경 이미지 출처는 Basic Apple Guy다.

아이폰에서 별도 앱을 열지 않고 TV에 AirPlay로 연결하기 위해 android-airplay-server를 TV의 32비트 ARM 칩용으로 소스에서 빌드했다. 이 오픈소스 수신기는 UxPlay를 기반으로 한다. 부팅할 때 자동 실행되고 휴대전화에 ‘Hall TV’로 표시된다. 처음에는 주변 아이폰이 AirPlay 기기 목록을 조회하기만 해도 TV 화면 앞으로 나와 계속 머물렀지만, 25줄 패치를 적용해 실제 재생이 시작될 때만 앞으로 나오고 스트림이 끝나면 물러나도록 바꿨다.

작업에는 CleanYourTV, android-airplay-server, Claude Code를 사용했다.