- ПК с Windows / Linux / macOS и установленный Android Platform Tools (пакет с утилитой adb — Android Debug Bridge, мост отладки; версию сверьте с документацией производителя инструментов)
- USB-кабель с передачей данных (не «зарядный»)
- Смартфон на MIUI / HyperOS / ColorOS / OriginOS с Android 11+ (точный список поддерживаемых оболочек сверьте с документацией устройства)
- Включённые «Для разработчиков» и «Отладка по USB»
- 200 МБ свободного места под текстовые дампы и apk-бэкапы
Метод: находим системные пакеты рекламы и рекомендаций через pm list packages, отключаем их для текущего пользователя командой pm uninstall --user 0 (root не нужен, действие обратимо), затем гасим ручные переключатели «рекомендаций» в системных приложениях и фильтруем рекламные домены через Private DNS.

adb.C:\platform-tools (Windows) или ~/platform-tools (Linux/macOS).Что сделать: проверить, что ПК видит устройство.
adb devices
Зачем: без статуса device ни одна команда дальше не выполнится — это базовая проверка канала отладки.
Как проверить: на экране смартфона появится запрос «Разрешить отладку по USB?» — нажать «Разрешить» (галочка «Всегда разрешать с этого компьютера»). В терминале должно быть:
List of devices attached
a1b2c3d4 device
Если во второй колонке unauthorized — диалог не подтверждён; если offline — переподключите кабель и выполните adb kill-server && adb start-server.
Пример: на Windows в PowerShell перейдите в папку с утилитой, иначе adb не найдётся:
cd C:\platform-tools
.\adb devices
Если тема с ПК для вас новая и нужен такой же разбор «что отключить в системе», логика та же, что в гайде Как отключить рекламу, телеметрию и ИИ-функции в Windows 11 — сначала инвентаризация, потом отключение, потом проверка.
Что сделать: выгрузить полный список пакетов в файл и отфильтровать подозрительные.
adb shell pm list packages > packages_before.txt
wc -l packages_before.txt
Ожидаемый вывод — число установленных пакетов, например 312 packages_before.txt.
Затем фильтр по ключевым словам:
grep -iE "msa|adsolution|mipicks|analytics|hybrid|fashiongallery|browser" packages_before.txt
Windows-аналог:
Select-String -Path .\packages_before.txt -Pattern "msa|adsolution|mipicks|analytics|hybrid|fashiongallery|browser"
Ожидаемый вывод (пример):
package:com.miui.msa
package:com.miui.systemAdSolution
package:com.xiaomi.mipicks
package:com.miui.analytics
package:com.miui.hybrid
package:com.miui.android.fashiongallery
Зачем: имена системных пакетов отличаются между прошивками и регионами, поэтому список берётся с конкретного устройства, а не из статьи. Так вы не удалите лишнее.
Как проверить: каждая строка начинается с package:, имя после двоеточия — то, что пойдёт в команды шага 2.
Типовые кандидаты (фактические имена сверяйте с выводом pm list packages на своём устройстве):
| Пакет (пример) | Что это | Что даёт отключение |
|---|---|---|
| `com.miui.msa` | MSA — системный модуль рекламных рекомендаций MIUI/HyperOS | Убирает баннеры в системных приложениях |
| `com.miui.systemAdSolution` | Модуль показа рекламных объявлений | Убирает рекламные блоки в «Безопасности», «Проводнике» |
| `com.xiaomi.mipicks` | GetApps — магазин приложений с рекомендациями | Убирает рекомендации и автообновления |
| `com.miui.analytics` | Модуль телеметрии | Снижает фоновый трафик и сбор статистики |
| `com.miui.hybrid` | Quick Apps (мини-приложения) | Убирает ленту «быстрых приложений» |
| `com.miui.android.fashiongallery` | «Карусель обоев» на экране блокировки | Убирает рекламные обои с экрана блокировки |
| `com.miui.browser` | Системный браузер | Убирает новостные подсказки на стартовой |
На ColorOS / OriginOS ищите в списке пакеты со словами browser, heytap, vivo, news — состав и назначение сверяйте с документацией производителя.

Что сделать: отключить найденные пакеты для текущего пользователя. Данные сохраняются, root не требуется, действие обратимо.
adb shell pm uninstall -k --user 0 com.miui.msa
adb shell pm uninstall -k --user 0 com.miui.systemAdSolution
adb shell pm uninstall -k --user 0 com.xiaomi.mipicks
adb shell pm uninstall -k --user 0 com.miui.analytics
Ожидаемый вывод на каждую строку — Success. Ключ -k оставляет данные приложения, --user 0 отключает пакет только для основного пользователя, не трогая системный раздел.
Ведите журнал удалённого, чтобы вернуть всё назад:
echo com.miui.msa >> removed.txt
echo com.miui.systemAdSolution >> removed.txt
Откат одной командой:
adb shell cmd package install-existing com.miui.msa
Ожидаемый вывод: Package com.miui.msa installed for user: 0.
Зачем: отключение пакета убирает источник рекламы целиком, а не только скрывает один экран. Ручные переключатели ниже добивают то, что живёт внутри оставшихся приложений.
Ручные переключатели (названия пунктов зависят от версии прошивки — сверьтесь с документацией производителя):
Дополнительно — блокировка всплывающих уведомлений у оставшихся системных приложений:
adb shell pm revoke com.miui.browser android.permission.POST_NOTIFICATIONS
Если команда возвращает Exception occurred while executing 'revoke', значит разрешение на этом пакете отсутствует или версия Android ниже 13 — тогда отзовите его вручную: Настройки → Приложения → <приложение> → Уведомления.
Фильтрация рекламных доменов на уровне DNS (Private DNS — шифрованный DNS, работает без root):
Настройки → Сеть и интернет → Частный DNS-сервер → Имя хоста провайдера → например dns.adguard.com (публичный фильтрующий DNS; свой хост сверьте с документацией провайдера). Сохранить.
Как проверить: после сохранения откройте любой сайт в браузере — страницы должны грузиться; в строке состояния рядом с Wi-Fi не должно появляться предупреждений. Ограничение: DNS-фильтр не убирает рекламу, отдаваемую с того же домена, что и контент приложения.

Что сделать: перезагрузить смартфон и убедиться, что пакеты не вернулись.
adb reboot
adb wait-for-device
adb shell pm list packages com.miui.msa
Зачем: часть прошивок восстанавливает системные пакеты после обновления или сброса, поэтому проверка выполняется на «холодной» системе.
Как проверить: команда pm list packages com.miui.msa должна вернуть пустой вывод — пакет отключён. Чтобы увидеть, что он физически на месте (для отката), используйте флаг -u:
adb shell pm list packages -u com.miui.msa
Ожидаемый вывод: package:com.miui.msa.
Визуальный чек-лист успеха:
adb shell pm list packages com.miui.msa — пусто.removed.txt содержит все отключённые пакеты.Пример: если после перезагрузки в «Проводнике» снова появилась полоса «Скачайте приложение», вернитесь к шагу 1: скорее всего реклама идёт из пакета, которого не было в вашем фильтре — отфильтруйте packages_before.txt по слову recommend или ads.
Проблема. ПК не видит смартфон
error: no devices/emulators foundadb kill-server
adb start-server
adb devices
unauthorized — на экране телефона нажмите «Разрешить» и повторите adb devices.Проблема. Пакет не отключается
Failure [DELETE_FAILED_INTERNAL_ERROR] или Failure [DELETE_FAILED_USER_RESTRICTED]adb shell pm uninstall -k --user 0 <имя-пакета>
pm revoke.Проблема. Реклама вернулась после обновления прошивки
Success при отключении, но после adb reboot в pm list packages снова package:com.miui.msaremoved.txt:while read p; do adb shell pm uninstall -k --user 0 "$p"; done < removed.txt
Отключение сводится к трём действиям: инвентаризация пакетов через pm list packages, отключение найденного через pm uninstall --user 0 с журналом для отката и ручная зачистка переключателей «рекомендаций». После каждой OTA-прошивки повторяйте шаг 3 — журнал removed.txt делает повторение одной командой.
Нужен ли root, чтобы отключить рекламу на Xiaomi?
Нет. pm uninstall --user 0 работает через ADB от имени оболочки и отключает пакет только для текущего пользователя; системный раздел не изменяется, откат — cmd package install-existing.
Это безопасно, телефон не превратится в «кирпич»?
Отключение пользовательских пакетов обратимо и не затрагивает загрузчик. Риск — потеря функциональности конкретного приложения: например, после отключения GetApps перестанут автоматически обновляться программы из магазина Xiaomi.
Можно ли сделать всё без ПК?
Да, со второго Android-устройства: в Termux ставится пакет с ADB-инструментами, и команды выполняются по Wi-Fi. Порядок работы с терминалом на Android разобран в гайде Как запустить Linux на Android без root: Termux, PRoot и ИИ-инструменты; точные имена пакетов Termux сверьте с его документацией.
Почему после Private DNS реклама в приложениях осталась?
DNS-фильтр блокирует запросы к сторонним рекламным доменам, но баннер, загружаемый с основного домена приложения, он не отличит от полезного контента. Поэтому DNS — дополнение к отключению пакетов, а не замена.