惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
月光博客
月光博客
博客园_首页
博客园 - 叶小钗
T
Tailwind CSS Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
量子位
小众软件
小众软件
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
IT之家
IT之家
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Как заставить Xiaomi TV летать: скрытые настройки, которы...
ИИшник · 2026-06-07 · via Все публикации подряд на Хабре

Ультрабюджетные Smart TV на базе Android — это вечный компромисс. Производители отдают железо чуть ли не по себестоимости, а потом отыгрываются на пользователях: пичкают систему агрессивной рекламой, партнерским софтом и сбором телеметрии. Всё это крутится в фоне и душит и без того слабые чипсеты.

Купил я тут Xiaomi Mi TV (модель на платформе hermano под управлением Android 11, с гордыми 1.4 ГБ оперативной памяти на борту). Пользоваться им «из коробки» было больно: реакция на пульт занимала секунды, меню дергалось, а приложения открывались целую вечность. Пришлось расчехлить ноутбук, подключиться по ADB и заглянуть «под капот».

Ниже — подробный разбор того, как я убрал конфликт двух лаунчеров в памяти, заморозил PatchWall без риска окирпичить ТВ, разобрался со странным сетевым поведением YouTube и ByeDPI, а также выяснил, почему после апгрейда локальной сети до гигабита скорость интернета на телевизоре не выросла ни на мегабит.

1. Конфликт двух лаунчеров и дефицит оперативной памяти

Начал я с простого: почему оно так тормозит? Подключился к ТВ по ADB, снял слепок распределения памяти через dumpsys meminfo и увидел занятную картину:

Total PSS by process:
    142,689K: com.mitv.tvhome.atv (pid 1991 / activities)
     95,843K: com.google.android.tvlauncher (pid 9200 / activities)
     ...

В системе параллельно крутились сразу два лаунчера (домашних экрана)! С одной стороны — стандартный Google Android TV Launcher (com.google.android.tvlauncher), с другой — фирменный Xiaomi PatchWall (com.mitv.tvhome.atv), забитый рекламой и рекомендациями.

При включении телевизор принудительно запускал PatchWall (минус 140 МБ RAM). Но стоило нажать кнопку «Домой» на пульте, как поверх открывался гугловский лаунчер (еще минус 95 МБ). На устройстве с 1.4 ГБ оперативки, где под нужды Android TV и графического стека выделено менее половины объема, держать две прожорливые оболочки — это просто приговор производительности. Они постоянно дрались за память и процессорное время.


2. Разборки с сетью: YouTube, ByeDPI и загадка гигабита

После первой настройки телевизора я столкнулся с классическим сетевым багом: после перезагрузки ТВ отвалился YouTube. Подключение по Wi-Fi горит как активное, браузер работает, а YouTube уходит в бесконечную загрузку и пишет «Нет подключения к сети».

Пришлось лезть в консоль и копаться в правилах маршрутизации (ip rule и ip route show table all). Вот что там обнаружилось:

12000:	from all fwmark 0x0/0x20000 iif lo uidrange 10067-10067 lookup 1016 
14000:	from all iif lo oif tun0 uidrange 10067-10067 lookup 1016 
...
default dev tun0 table 1016 proto static scope link 

Разбираем эту схему:

  1. YouTube на телевизоре крутится под UID 10067.

  2. Правила Android принудительно заворачивают весь трафик этого UID в отдельную таблицу 1016.

  3. Эта таблица тупо гонит пакеты в интерфейс tun0.

  4. Виртуальный интерфейс tun0 создается локальной службой ByeDPI (io.github.romanvht.byedpi), которая режет TCP-пакеты, чтобы обходить замедления и DPI-блокировки.

На роутере (IP 192.168.188.1) в это время крутится sing-box с включенным Fake-IP DNS (198.18.0.0/15). Когда ТВ резолвит адрес youtube.com, DNS роутера отдает фейковый IP из диапазона 198.18.x.x.

Но при холодной перезагрузке ТВ служба ByeDPI (ByeDpiVpnService) по какой-то причине не запустилась автоматически. В итоге интерфейс tun0 просто не создался. А правила маршрутизации в системе остались! Трафик от YouTube (UID 10067) честно пытался уйти в несуществующий tun0 и падал в бездну. Стоило вручную запустить ByeDPI, как туннель поднялся и видео завелось.

Загадка: гигабит есть, а скорости нет

Вторая сетевая байка произошла во время глобального апгрейда домашней сети. Я заменил старые стомегабитные свитчи на управляемые гигабитные UniFi USW-Lite. Казалось бы, теперь-то Wi-Fi должен летать! Но замер скорости на телевизоре упрямо показывал те же ~60 Мбит/с, что и раньше.

Чтобы локализовать узкое место, я зашел по SSH прямо на роутер OpenWrt и запустил скачивание тестового файла с быстрого зеркала Яндекса:

wget -O /dev/null http://mirror.yandex.ru/debian/ls-lR.gz

И получил скорость ровно 7.87 МБ/с (около 63 Мбит/с). Это расставило все точки над i. Оказалось, что роутер подключен к провайдеру через беспроводной мост AirMax (точка-точка), реальная пропускная способность которого как раз упирается в эти 63 Мбит/с. Замена свитчей ускорила только локальный трафик внутри дома, а интернет-канал остался прежним. Мораль: всегда проверяйте скорость напрямую с WAN-порта роутера, прежде чем грешить на кабели или точки доступа.


3. Хирургическая заморозка: убираем PatchWall и системный софт

Чтобы вернуть телевизору отзывчивость, нужно избавить его от фонового мусора.

⚠️ Важное предупреждение: В интернете полно инструкций, где советуют удалять системные пакеты через команду pm uninstall. Не делайте так! Без root-прав вы удалите приложение только для текущего пользователя (user 0), но если сделать сброс ТВ до заводских настроек (Factory Reset), система попытается восстановить удаленные хвосты, не найдет их и намертво зависнет в вечном циклическом ребуте (bootloop). Наш выбор — безопасное и обратимое отключение через pm disable-user.

Подключаемся к телевизору по сети с компьютера (adb connect <IP-телевизора>:5555) и тушим PatchWall вместе с его рекламными сервисами:

Команды для отключения PatchWall
# Выключаем PatchWall и рекомендательные каналы Xiaomi
adb shell pm disable-user --user 0 com.mitv.tvhome.atv
adb shell pm disable-user --user 0 com.mitv.tvhome.mitvplus
adb shell pm disable-user --user 0 com.mitv.tvhome.michannel

# Принудительно выгружаем их из оперативной памяти
adb shell am force-stop com.mitv.tvhome.atv
adb shell am force-stop com.mitv.tvhome.mitvplus
adb shell am force-stop com.mitv.tvhome.michannel

После этого единственным живым лаунчером останется стандартный com.google.android.tvlauncher. Кнопка «PatchWall» / «Mi» на пульте просто перестанет открывать рекламу, избавляя вас от случайных нажатий.

Дальше отправляем в спячку остальные ненужные фоновые процессы:

Команды для отключения системного мусора
# Избавляемся от мертвого магазина Google Play Фильмы
adb shell pm disable-user --user 0 com.google.android.videos

# Блокируем промо-рекомендации на домашнем экране
adb shell pm disable-user --user 0 com.google.android.tvrecommendations

# Отключаем Live TV (если не используете обычную комнатную антенну)
adb shell pm disable-user --user 0 com.mitv.livetv
adb shell pm disable-user --user 0 com.mitv.livetv.ci_mediatek

# Убираем бесполезные на ТВ игровые сервисы Google Play Games
adb shell pm disable-user --user 0 com.google.android.play.games

# Запрещаем фоновой службе обновлений Xiaomi будить телевизор по ночам
adb shell pm disable-user --user 0 com.xiaomi.mitv.updateservice

Совет: Пакет голосового поиска Google Assistant (com.google.android.katniss) не трогайте. Если его отключить, микрофон на пульте перестанет реагировать на нажатия.


4. Как убрать пустые серые плашки с главного экрана

После заморозки Google Play Фильмов на домашнем экране часто остаются «призраки» — пустые рекламные строки вроде «Топ продаж» или «Рекомендуемое». В настройках каналов тумблеры для них пропадают, и обычным способом их не убрать.

Решается это банальным сбросом кэша лаунчера. Выполняем в консоли:

adb shell pm clear com.google.android.tvlauncher

Экран телевизора на секунду погаснет, лаунчер перезапустится и перестроит свою базу данных с чистого листа. Увидев, что источник рекомендаций отключен, он навсегда сотрет эти рекламные строки.

(Маленький нюанс: порядок иконок в строке быстрого запуска вернется к стандартному. Придется потратить полминуты и заново набрать любимые приложения через кнопку «+»).


5. Борьба за ресурсы: как нас грабило приложение Zona

Даже после заморозки PatchWall телевизор продолжал шуметь и греться как утюг. Я зашел в консоль, ввел uptime и опешил: средняя нагрузка (load average) перевалила за 76 при норме около 1-2!

Запускаем просмотр активных процессов (top -b -n 1) и смотрим на топ пожирателей:

   PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS
  4582 u0_a102      20   0 1.3G 144M  72M S 64.2  10.2   0:08.56 mobi.zona
    61 root         20   0    0    0    0 R 57.1   0.0   0:18.79 [kswapd0]
  4314 50053        30  10 1.2G  69M  31M S 21.4   4.9   0:13.87 dex2oat32 ...

Пазл сложился моментально. Вот три виновника тормозов:

  1. mobi.zona (клиент онлайн-кинотеатра Zona) — виновник торжества. Приложение стартовало вместе с системой и запускало фоновую службу, которая отжирала 64% процессора и 144 МБ оперативки (видимо, фоном раздавала торренты или опрашивала сервера обновлений).

  2. [kswapd0] — системный процесс ядра Linux. Из-за дикого дефицита свободной памяти он тратил 57% процессора на постоянный сброс страниц памяти в ZRAM/Swap (так называемый memory thrashing).

  3. dex2oat32 — фоновый компилятор Android, оптимизирующий байт-код приложений после ОТА-обновления. Процедура штатная, грузит систему первые 10 минут после включения, а потом засыпает.

Тушим Zona одной короткой командой:

adb shell am force-stop mobi.zona

Нагрузка на процессор моментально упала до ~12%, thrashing прекратился, а телевизор выдохнул и стал плавно реагировать на пульт.

Вывод: Для слабых Android-устройств с малым объемом оперативной памяти автозапуск стороннего софта — смерть. Если пользуетесь Zona, не забывайте закрывать её. А еще лучше — перейдите на связку Lampa + TorrServe (ru.yourok.torrserve). TorrServe запускается только тогда, когда вы непосредственно смотрите торрент, и не висит в фоне без вашего ведома.


6. Что получили в итоге

После зачистки фонового мусора и настройки лаунчера телевизор буквально преобразился. Вот сухие цифры замеров:

Параметр

Как было

Как стало

Свободная память (MemAvailable)

~450 МБ

~530+ МБ (высвободили ~80-100 МБ чистой RAM)

Активные лаунчеры в памяти

PatchWall + Android TV Home

Только Android TV Home

Свободный ресурс CPU в простое (Idle)

~10-15% (из-за фоновой Zona улетал в 0%)

~88-91%

Рекламные каналы на домашнем экране

«Топ продаж», рекомендации Xiaomi

Полностью отсутствуют

Мы не просто убрали раздражающую рекламу, а спасли устройство от постоянного свопинга в ZRAM и перегрева процессора. Теперь телевизор реагирует на пульт без задержек и без проблем тянет 4K-видео через торрент-стриминг.