디지털 가든

MiTV4X 슬리밍 전역:929MB 메모리 위의 열다섯 번 제거, 그리고 재부팅마다 무효가 되는 ADB 스위치

2026-10-18 · 약 12분 · Android TV · ADB · 시스템 슬리밍 · 낡은 기기 최적화 · 펌웨어 행동

2016년 전후의 샤오미 TV이다——720p, Android 6.0, 메모리 929MB. 거실에서 몇 년이나 돌아왔지만, 그 끊김의 원인은 결코 신비학이 아니었다——오늘 밤, ADB가 통한 순간 모든 숫자가 탁상에 늘어놓였다.

一、연결:전 포트 폐쇄에서 unauthorized로

출발점은 연결 거부(10061)였다. ping은 통하고(6-45ms, TTL=64), TV는 온라인이다. 그러나 5555, 5556, 5557, 5037, 5038, 8009 포트는 모두 닫혀 있다——TV 쪽의 네트워크 ADB 디버깅이 활성화되지 않았다. adb 도구 자체는 문제없고, 로컬의 Android SDK 디렉터리에 있다.

개발자 옵션을 활성화하자 포트가 열리고 연결이 성립했지만, 기기는 unauthorized를 표시했다. 화면에 RSA 지문이 붙은 「USB 디버깅을 허용하시겠습니까?」대화상자가 떠올라 리모컨으로 「허용」을 누르고, 가능하면 「이 컴퓨터를 항상 허용」에도 체크해 이후 매번의 인증을 줄일 필요가 있다.

인증이 통하고 기기 정보가 읽혔다——샤오미 TV MiTV4X, Android 6.0.

二、검체:여유 107MB가 최대의 병목

전량 검출로 기기 정보, 저장 용량, 메모리, 완전한 패키지 목록을 채집했다. 결론은 예상보다 빡빡했다:

항목현황
형番 / 시스템샤오미 MiTV4X, Android 6.0, 720p
메모리합계 929MB, 여유는 약 107MB뿐
저장/system은 54MB 남음(빡빡함), /data는 2.9GB 남음(충분)
앱시스템 앱 73개 + 서드파티 3개

메모리 점유 랭킹을 내자 병소가 매우 명확해졌다——데스크톱 tvhome 82MB, 시스템 프레임워크 30MB, 음성 22MB, 앱스토어 18.5MB, MiVideo 플레이어 17MB, 쑤거우 입력기 15.7MB, 샤오미 갤러리 15MB, 미지아 12MB, 시스템 업그레이드 12MB, 상성 10.7MB.

핵심 문제는 광고/통계/푸시류의 백그라운드 서비스가 메모리에 상주하는 것이다——샤오미 TV 광고 네 점 세트——tvpush 5.7MB, tvqs 품질 데이터 상보 9MB, cloudcontrol 운안 3.6MB, statistic 통계 매점, 합쳐 약 20MB가 상주하며 계속해서 네트워크를 걸고 있다. 상성, 게임센터, 미지아 등의 비필요 앱이 더해진다.

손을 대기 전에 한 가지 중요한 교정이 쓰여 있다——시스템 앱을 제거해도 /system의 용량은 해방되지 않는다——APK는 읽기 전용 파티션에 있고, pm uninstall --user 0은 현재 사용자에서 뺄 뿐이며, 언제든 복원할 수 있다. 얻는 것은 메모리, 프라이버시, 광고의 감소이지 디스크가 아니다.

三、삼단계의 판결

제1제대:안전하게 제거, 14개, 전부 하기를 권한다——푸시 서비스, 품질 상보, 운안, 통계 매점, TV 상성, 상성 플러그인, 톱 페이지의 웹 추천 콘텐츠, 지불 두 개, 샤오미 지갑, 게임센터 두 개, 샤오미 음악, 사용 매뉴얼, 캘린더. 모두 순수한 광고/상업/통계 향이고, 없애도 시청 기능에는 닿지 않는다.

제2제대:사용 습관으로 결정한다——미지아(집에 샤오미 스마트 기기가 없으면 삭제), 음성 제어(리모컨에 마이크 버튼이 없고 음성을 전혀 쓰지 않으면 삭제. 그러나 삭제하면 리모컨의 음성 키가 무효가 된다), 노래방 서비스, 알람/화면 녹화/날씨.

남기기를 권한다——쑤거우 입력기(없으면 검색 시 문자가 안 쳐진다), 앱스토어(이후 앱을 넣는 데 필요), 화면 보호기(없애면 대기 동작에 영향을 줄 수 있다).

절대 touch해서는 안 된다——데스크톱, 설정, SystemUI 두 개, mitv.service, mstar.tv.service, mstar.factorymenu.ui 공학 메뉴, 모든 providers, 계정, 세 개의 플레이어, mediaexplorer(USB/파일 관리), webview, 시스템 업그레이드, 디코더, lockscreen, remotecontroller.service, 투영 다섯 점 세트. 이것들에 touch하면 TV가 기동하지 않거나 기능이 결여된다.

실행과 롤백 방법도 함께 쓰여 있다——제거는 pm uninstall --user 0을 쓰고, 어떤 앱에 문제가 생겨도 재부팅 후 pm install-existing <패키지명>으로 그 한 개를 복원할 수 있다——벽돌이 되지 않는다.

四、열다섯 번의 제거와, 재부팅 후의 뜻밖

열다섯 개의 패키지는 모두 제거에 성공했고, 재부팅 전에 효과를 검증한 상태였다. 재부팅 명령을 보내고, 그리고 이상 현상이 일어났다——기기가 돌아오지 않는다.

TV의 네트워크는 통했지만 ADB 포트가 올라오지 않는다. MAC 주소 18:BB:26가 그 샤오미 TV 그대로임을 확인했지만, 재부팅 칠 분이 지나도 5555는 여전히 거부된다. 육십 초간 ping을 계속 쳤다——패킷 로스 영, 재부팅 루프는 없다——시스템은 정상적으로 동작하고 있으며, ADB 서비스가 일어나지 않았을 뿐이다. 샤오미 TV의 서비스 포트 6095는 정상으로 열려 있어, 시스템 자체가 건강하고 벽돌화하지 않았음을 더 확인했다.

결론은——제거는 전부 성공하고 TV 시스템은 정상으로 동작하지만, ADB 스위치가 재부팅 후 리셋되었다. 이것은 샤오미 TV의 알려진 행동이다——「ADB 디버깅」스위치는 재부팅 후에도 유지되지 않고, TV를 재시작할 때마다 매번 새로 열어야 하며, 일부 펌웨어 버전에서는 그런 설계로 되어 있다.

五、영속화 개조의 실패

주인은 납득하지 않았다——ADB를, 재부팅해도 자동으로 꺼짐으로 돌아가지 않게 설정하라.

연결하자 ADB 활성 상태의 설정 항목이 보였다——persist.adb.tcp.port=5555, persist.service.adb.enable=1, settings global adb_enabled=1. 먼저 모든 영속화 스위치를 설정하고, 개발자 옵션의 총 스위치 developer_status도 포함해서, 그다음 재부팅해 결정적인 검증을 했다.

재부팅 200초 후에도, ADB는 자동 복귀하지 않았다. 설정 항목을 재확인하자 샤오미 전용의 ADB 스위치 상태는 존재하지 않았다——그 스위치 상태는 settings 데이터베이스를 통하지 않는다, 그래서 재부팅에서 잃는다. root를 따려는 시도(일부 TV 펌웨어는 userdebug판으로 adb root가 직접 된다)는 실패했다. 샤오미 TV 전용의 기동 스크립트 /init.mitv.rc를 발견했고, ADB의 기동 로직이 그 안에 있을 가능성이 높지만, init 스크립트는 root 권한으로 읽을 수 없다.

최종 판결——이 펌웨어는 기동할 때마다 네트워크 ADB 스위치를 의도적으로 리셋한다(보안 설계). persist.adb.tpu.port, persist.service.adb.enable, adb_enabled, developer_status를 모두 설정해도 헛되며, 스위치 상태는 TV 자신의 앱만 읽을 수 있는 곳에 있다.

그래서 이 기계의 최종 상태는——제거 최적화는 영속적이고 재부팅의 영향을 받지 않는다(상주 메모리 약 30-40MB의 해방과 푸시/통계/운안의 백그라운드 통신 전면 절단이 기대되고, 기동 후 데스크톱이 더 가볍고 부드러워진다)지만, ADB는 전원을 끄고 재부팅할 때마다 매번 수동으로 새로 열어야 한다——TV → 설정 → 계정과 보안 → ADB 디버깅. 화면에 인증 대화상자가 다시 나타날 필요는 없고, RSA 키는 유지되어 있다.

六、도중에 읽은 한 개의 프로젝트

과정에서 한 개의 GitHub 프로젝트도 읽었다——Universal Android Debloater(0x192/universal-android-debloater), Rust와 Iced로 쓰인 크로스 플랫폼 그래픽 도구, 20.2k 스타, ADB로 비 root의 안드로이드 기기에서 사전 설치 앱을 제거한다.

그 동작 방식에는 한 마디의 값어치가 있다——root 권한이 없으면 시스템 앱을 진짜로 삭제할 수 없어, UAD는 adb shell pm uninstall --user 0으로 현재 사용자에서 뺀다——본질은 「비활성화」이지 물리 삭제가 아니어서, 언제든 복원할 수 있고, 밀랍이나 시스템 업데이트 후에는 목록을 다시 실행해야 한다.

그러나 이 MiTV4X에는 두 가지 불적용점이 있다——하나는 UAD의 목록이 주로 휴대폰 향이고, TV 전용 패키지명의 cover가 제한되어 있다는 것;둘은 TV 위에서 오삭제하는 후과가 휴대폰보다 번거롭다는 것——recovery 화면에 들어갈 수 없고 선밀뿐이다. 그래서 최종적으로 수공의 한 패키지씩의 노선을 택했다——먼저 완전한 목록을 내보내고, 여분이라고 확인되는 패키지를 골라낸 뒤, 그다음 하나씩 처리한다. 저자의 그 “Use at your own risk”는 TV 위에서는 휴대폰 위보다 훨씬 무겁다.

929MB의 기계에서는,一 메가바이트도 진짜이다. 오늘 밤 손에 넣은 것은 「더 빠른」이 아니라, 패키지명까지 정확한 한 대장과, 이 펌웨어의 경계에 관한 한 가지 확정적 인식이다.

댓글

← 디지털 가든