Wt secret code manager что это за программа на xiaomi

Обновлено: 06.07.2024

Прошивки Redmi Note 5A , Redmi Note 5A Prime и Redmi 5A не совместимы между собой! Перед прошивкой определите ваше устройство!

Существует 2 версии Redmi 5A:

- Global (в конструкции имеет 2 физических лотка для 2 Sim и 1 MicroSD) - на борту мультиязычная прошивка

Прикрепленное изображение


- China (в конструкции имеет всего один физический лоток для Sim+MicroSD или Sim+Sim) - на борту китайская прошивка, языки: китайский, английский. Либо "Global прошивка от продавца" - русский язык есть, но обновляться не будет, так же не гарантирована корректная работа данной прошивки

Прикрепленное изображение

Способы для China версии RM5A чтобы прошить мультиязычный ROM - Нельзя ставить Global прошивку через testpoint на заблокированный загрузчик! Получите бутлуп.
- Через testpoint ставим China Devoloper или Stable, разблокируем загрузчик. 2 варианта:
- Устанавливаем TWRP, далее устанавливаем мультиязычную прошивку, которую берем под спойлером "Прошивки"
- Прошиваем Global прошивку через MiFlash(fastboot) не блокируя загрузчик при прошивке (Ни в коем случае не ставить режим "clean all and lock")

Прикрепленное изображение

Причина редактирования: MIUI 12 (20.5.21) порт с POCO X2 Кто-то может написать пошаговую инструкцию по разблокировке загрузчика и добавить в шапку?

Для тех кто в теме, краткий вариант по переходу на кастом от xiaomi.eu, применимая ко всем моделям телефонов Сяоми есть тут, на xiaomi.eu
Нам нужен пункт ROMs for devices with locked bootloader, читаем.
Ссылки там же - TWRP Recovery Zip DOWNLOAD or TWRP.ME
Прошивки в начале страницы - я беру в DOWNLOAD STABLES, актуальная на текущий момент xiaomi.eu_multi_HM5A_V9.1.2.0.NCKCNEI_v9-7.1.zip
гиперссылки периодически обновляются и становятся неактуальными, скачать оттуда напрямую не проблема.
Кодовое имя телефона Riva - есть в табличке

Более детально тут, все шаги такие же и для Redmi 5A Комплект инструкций для Redmi 4 Обратите внимание на надпись в начале - это то что нам нужно Последовательность выполнения инструкций при переходе на кастомную прошивку 2 — 5.1.1 — 6.1 Удачи!

Как прошить TWRP
(на примере TWRP 3.1.1-0)

ТОЛЬКО ДЛЯ РАЗБЛОКИРОВАННОГО ЗАГРУЗЧИКА!

1. Установить драйверы
2. Распаковать файлы из архива Platform-tools (adb/fastboot) в папку adb на диск С
3. Скинуть recovery.img в папку C:\adb
4. Запустить командную строку и перейти в ней в папку к adb, командой: cd C:\adb
5. Перевести телефон в режим fastboot (зажать кнопки громкость - и вкл., держать до появления изображения зайца)
Подключить телефон кабелем к компьютеру.
6. Для прошивки TWRP выполнить по очереди следующие команды:

fastboot erase recovery
fastboot flash recovery recovery.img
fastboot boot recovery.img

Телефон сам перезагрузится в TWRP.

На официальных прошивках до перезагрузки в систему не забывайте патчить загрузчик, либо установить root.

Получение ROOT

ТОЛЬКО ДЛЯ РАЗБЛОКИРОВАННОГО ЗАГРУЗЧИКА!

SuperSU - только рут доступ ( не актуален ).
Magisk - помимо предоставления рут доступа, умеет скрывать себя от приложений (напр. банковских, Play Market'а и др.), а т.ж. имеет множество полезных модулей.

Если устанавливаете SuperSU и после загрузки в систему рут так и не появился, зайдите в TWRP и прошейте SuperSU еще раз. С Magisk'ом таких проблем не наблюдается, но иногда после загрузки в систему Magisk Manager (apk) не устанавливается автоматически, если это ваш случай - установите вручную.

1. Установить драйверы
2. Распаковать файлы из архива Platform-tools (adb/fastboot) в папку adb на диск С
3. Перевести телефон в режим fastboot (зажать кнопки громкость - и вкл., держать до появления изображения зайца)
4. Подключить телефон кабелем к компьютеру
5. Зайти в командную строку и перейти в ней в папку командой cd C:\adb
6. Прошить любой TWRP из шапки (образ TWRP должен лежать в папке C:\adb):

fastboot erase recovery
fastboot flash recovery название-тврп.img
fastboot boot название-тврп.img

( название-тврп .img заменить на реальное имя образа TWRP который вы скачали )
7. Телефон сам перезагрузится в TWRP
8. TWRP будет на английском, нажать на экране кнопку справа, выбрать русский язык, сделать свайп
9. Если устанавливаете Magisk, попустите данный пункт.
Пропатчить загрузчик (только для SuperSU). Если в TWRP встроена такая опция, то зайти в Дополнительно - Инструменты - Пропатчить Boot, если нет, то прошить ЭТО. (данный пункт не обязателен, но все же желательно его выполнить, т.к. по каким-то непонятным причинам SuperSU не всегда патчит загрузчик, из-за чего система не может загрузиться).
10. В TWRP по умолчанию включен MTP, т.ч. скинуть zip архив ® Magisk - The Universal Systemless Interface или ® SuperSU в память телефона или на флешку.
11. Нажать кнопку Установить и выбрать архив, сделать свайп.
12. После прошивки нажать кнопку Перезагрузка в ОС. Загрузка в систему займет около 5 минут.

Secret Сodes - доступ к секретным кодам и скрытым функциям Android-устройств и приложений

Так выглядит программа Secret Codes

Что такое Secret Codes на Android? Это – приложение, которое сканирует устройство в поисках установленных программ и служб, для которых имеются секретные возможности, а также скрытых функций вашего мобильного устройства, после чего выдает “сотканный” из них список. А пользователь, в свою очередь, может посмотреть, какие скрытые функции есть у этих приложений, и при желании включить или отключить их. Приложение также позволяет запускать секретные коды на планшетах, где нет установленной "звонилки".

Напоминаем, что сервисные коды присутствуют в любом устройстве на Android. Изначально главная их цель - тестирование устройств перед продажей или во время производства, но с помощью их также можно получить доступ к различным полезным функциям - сделать сброс до заводских настроек, узнать IMEI и т.п. Список основных сервисных кодов мы уже ранее публиковали в нашей инструкции - Секретные сервисные коды Android -устройств - большая подборка. Приложение Secret Codes на Android, кроме доступа к этим кодам также помогает найти скрытые возможности установленных приложений.

Рекомендуем также почитать:

Актуально для любителей ВК

Открыв Secret Codes , первым в своем списке я обнаружил клиент ВКонтакте. И, конечно же, решил проверить, что здесь можно найти. Как оказалось, тут есть несколько интересных функций. Например, включение режима невидимки. Если вы откроете клиент и будете искать “невидимку” в настройках, то не найдете.

При помощи Secret Codes активируем невидимку ВК

Возможно, уже сейчас кто-нибудь попытается активировать этот режим на своем смартфоне при помощи Secret Codes . В таком случае хочу сделать небольшое примечание: для начала зайдите в ВК, перейдите в настройки и выберите пункт “О программе”. Теперь нажмите на разноцветную иконку 10-15 раз. После таких “махинаций” Secret Codes сможет запустить меню дополнительных функций ВК.

Одними соцсетями сыт не будешь

Информация о батарее

Как я уже говорил, программа сама сканирует систему, после чего выдает список приложений и служб, у которых есть скрытые функции. Активировать функции можно прямо из приложения, что даст возможность запускать секретные коды на устройствах без диалера.

И мне стало интересно, что же такого покажут “Настройки”. Оказалось, что есть парочка вещей. Например, информация о батарее смартфона или об использовании установленных приложений.

Заключение

Приложение позволяет открыть доступ к секретным функциям приложений, а также дает доступ к секретным кодам вашего устройства. А вот тем, кто любит экспериментировать или просто хочет активировать “невидимку” ВК, программа должна понравиться.

Какое приложение на Xiaomi можно безболезненно удалить

Как удалить ненужные приложения на Xiaomi

Через настройки Xiaomi

Если по умолчанию такая опция доступна на вашем устройстве, то просто перейдите в «Настройки», выберите «Приложения и уведомления», далее «Показать все приложения». В появившемся окне найдите нужное. В качестве примера мы будем отключать встроенный сервис «Google Play Музыка». Просто нажмите «Отключить приложение».

Какие приложения на Xiaomi можно безболезненно удалить

На некоторых Xiaomi кнопка отключения отсутствует. В таком случае попробуйте запустить «Настройки» и в поле «Поиск настроек» введите «Изменение системных настроек». Выберите раздел с одноименным названием, а далее «Все приложения», затем в списке отключите ненужные.

Какие приложения на Xiaomi можно безболезненно удалить

С помощью Xiaomi ADB Fastboot Tools

По факту не удаляет, приложения остаются в системных папках (файлы apk).

    Потребуется:
  1. персональный компьютер или ноутбук;
  2. USB-кабель (поддерживающий передачу данных);
  3. программа Xiaomi ADB Fastboot Tools
    (cкачать можно по этой ссылке).

На смартфоне включите опцию «Отладка по USB». Если до этого времени вы еще ни разу не пользовались этим системным инструментом, то для включения необходимо сначала активировать «Режим разработчика». Перейдите в «Настройки», далее откройте раздел «О телефоне», несколько раз подряд нажмите на пункт «Версия MIUI» или «Номер сборки». Система сообщит о том, что «Вы стали разработчиком».

Теперь в «Настройках» найдите новый пункт меню «Для разработчиков». Как правило, он находится в разделе «Система» или «Расширенные настройки».

Удаление предустановленных приложений на любом Xiaomi

Пролистайте список к разделу «Отладка». Здесь включите режим отладки при подключении Xiaomi к ПК по USB.

Удаление предустановленных приложений на любом Xiaomi

Подключите устройство к компьютеру и откройте шторку уведомлений. Вместо «Зарядка по USB» (или на некоторых моделях «Без передачи данных»), выберите режим работы «Передача файлов».

Удаление предустановленных приложений на любом Xiaomi

Теперь перейдем к действиям на ПК. Запустите ADB Fastboot Tools. Нажмите «Debloater». Через несколько секунд в окне «Status» отобразится информация о вашем мобильном устройстве. После этого на телефоне автоматически появится окошко с предложением разрешить отладку по USB. Поставьте галочку «Всегда разрешать этому компьютеру» и нажмите «ОК».

Удаление предустановленных приложений на любом Xiaomi

После этого опять нажмите кнопку «Debloater». Появится список системных Mi и Google программ, которые потенциально могут присутствовать в памяти смартфона Xiaomi. Например, выберем для удаления сразу несколько — Compass, Downloads, Google Maps, Scanner, Yellow Pages.

Удаление предустановленных приложений на любом Xiaomi

Далее нажмите кнопку «Uninstall». В окошке «Status» можете наблюдать за процессом удаления.

Удаление предустановленных приложений на любом Xiaomi

Если нужного приложения нет в программе, то можно нажать на кнопку Add custom apps и ввести название которое указано в скобках.

По окончанию нажмите «Reboot into System».

Удаление предустановленных приложений на любом Xiaomi

Теперь можно отключить Xiaomi от компьютера.

Какие приложения можно безболезненно удалить на Xiaomi

    Все удалять нет смысла, лично я удалил:
  1. Все что следит за нами от Сяоми и подсовывает рекламу:
    Analytics (com.miui.analytics);
    Aura (com.aura.oobe.xiaomi);
    Joyose (com.xiaomi.joyose);
    Справочник Желтые страницы (com.miui.yellowpage);
    MSA (com.miui.msa.global);
    MAB (com.xiaomi.ab).
  2. Приложения Xiaomi:
    Маркет приложений от Xiaomi (com.xiaomi.mipicks);
    Games, игры от Xiaomi (com.xiaomi.glgm);
    роуминг от Сяоми (com.miui.virtualsim);
    электронный кошелёк от Сяоми (com.xiaomi.payment, com.mipay.wallet.in).
  3. Все что связано с Facebook:
    com.facebook.system;
    com.facebook.appmanager;
    com.facebook.services.
  4. Приложения от Гугл:
    отзывы о Маркете (com.google.android.feedback);
    Google Play Игры (com.google.android.play.games);
    Google Play Музыка (com.google.android.music);
    Google Play Фильмы (com.google.android.videos).
Полный список приложений которые можно удалить/заморозить:

Браузер (com.android.browser). Стоковый (браузер MIUI), не критично, но крайне советую оставить. Он лучше дружит с сервисами MIUI. Да и в целом есть не просит. При удалении, соответственно нужен заменитель. Если конечно вам вообще не нужен браузер, то не нужен и заменитель.

Данные для экстренных случаев (com.android.emergency). Предупреждения от экстренных служб. Никогда не видел, чтобы работало. Видимо не для России.

Диктофон (com.android.soundrecorder) Кто не пользуется, удаляем. Только вот не уверен, что он не используется при записи звонков. Я оставил, искать заменитель не вижу смысла.

Диск (Google) (com.google.android.apps.docs) Облако гугл, в топку. Лучше потом установить, так как потом, можно будет контролировать автозапуск и работу в фоне.

Загрузки (com.android.providers.downloads.ui) Диспетчер загрузок. Дополнение к основному приложению Загрузки, которое удалять нельзя.

Заметки (com.miui.notes). Заметки MIUI.

Заставки (com.android.dreams.phototable). И с этим думаю понятно. Красивость на экран блокировки, в режиме ожидания. На IPS экранах, бесполезная и прожорливая вещь.

Календарь (com.android.calendar). Как хотите, лично я оставил и забил туда дни рождения. Можно поискать более функциональный аналог.

Калькулятор (com.miui.calculator). Аналогично варианту выше, я оставил.

Карты (com.google.android.apps.maps). Собственно гугл карты. Лучше потом установить из маркета.

Карусель обоев (com.miui.android.fashiongallery). Динамическая смена обоев на экране блокировки. Грузит их из интернета. Бестолковая и прожорливая, до трафика и энергии, балалайка. Снести и забыть.

Каталог живых обоев (com.android.wallpaper.livepicker). Кто не пользуется, сносим. А кто любит эти штучки, то оставить, иначе могут возникнуть проблемы с установкой тех или иных обоин.

Лента виджетов / App in value (com.mi.android.personalassistant). Меньше народу, больше кислороду ОЗУ свободно, трафика и заряда сэкономлено.

Обновление компонентов (com.xiaomi.discover). Штуковина, для обновления, в первую очередь приложений MIUI: браузер, загрузки, заметки и т.д., и т.п. Но может зацепить и другие приложения. Сами решайте. Я не удаляю, а замораживаю. Периодически включая, для проверки обновлений.

Оповещение населения (com.android.cellbroadcastreceiver). Как и приложение экстренных служб, не видел чтобы это работало. Вероятно тоже не для России.

Отзывы о Маркете (com.google.android.feedback). Бесполезный засранец от Гугла.

Отчеты (com.miui.bugreport). Собственно служба, отправки отчетов о сбоях в прошивке. Кто-то пользуется, кто-то нет. Вообще, не мешало бы приучить себя использовать сервис.

Погода (com.miui.weather2). Есть варианты получше. Но пропадет погода в шторке и на экране блокировки.

Почта (com.android.email). Почтовый клиент, можно. Начиная, примерно с версии глобальных прошивок 9.6 он пропал. А так, довольно неплохо было с ним.

Приложения (com.xiaomi.mipicks). Маркет приложений от Xiaomi.

Проводник (com.mi.android.fileexplorer). Файловый менеджер MIUI. Но, без него нельзя будет применить сторонние темы.

Просмотр HTML (com.android.htmlviewer). Что-то вроде плагина, для открытия PDF файлов, только это для html (например сохраненные страницы из интернета). Я оставил и вам советую.

Радио (com.miui.fm). Оболочка радио.

Радио (com.miui.fmservice). Сервис радио.

Резервирование (com.miui.backup). Можно, но советую оставить. Особенно, если удаляете облачные сервисы в т.ч. и облачный бэкап. Пользовательские приложения, бэкапит хреново, но в отличие от облачного бэкапа, сохраняет данные приложений (тех которые попали в бэкап). А вот остальное (настройки, звонки, смс, пароли Wi-Fi) бэкапит отлично. Сэкономите кучу времени после сброса настроек.

Резервирование (com.miui.backup). Локальный бэкап. В отличие от облачных бэкапов Google и Mi Cloud, умеет сохранять данные приложений. Правда далеко не у всех приложений. Но без рут прав, альтернативы и нет.

Сделать вырез на экране выше (com.android.internal.display.cutout.emulation.tall). Странная лабуда как и пункт выше.

Сенсорный помощник (com.miui.touchassistant). Та самая плавающая точка, с быстрым доступом к функциям / приложениям. Как по мне, так бесполезная, а порой и вовсе мешающая вещь.

Синхронизация контактов Google (com.google.android.syncadapters.contacts). Пользуемся? Оставляем. Нет? Удаляем.

Синхронизация Google Календаря (com.google.android.syncadapters.calendar). Аналогично предыдущему приложению.

Сканер (com.xiaomi.scanner). Сканер, не только QR-кодов, как многие считают. А еще документов, визиток и всё, что можно сканировать. Я оставил.

Служба печати по умолчанию (com.android.bips). Печатаем с телефона? Оставляем. Нет? Удаляем.

Спулер печати (com.android.printspooler). Ещё один компонент, для оправки документов на печать. Выбор по потребностям.

Стандартные заставки (com.android.dreams.basic). Одна из заставок.

Темный (com.android.systemui.theme.dark). Темная тема интерфейса, до 9 андроида бесполезное приложение. А начиная с 9 андроида систему наконец-то начали учить работать в темном режиме. В общем по нужде.

Увеличить вырез на экране вдвое (com.android.internal.display.cutout.emulation.tall). Помните две странных лабуды выше (про вырез в настройках разработчика). Ну вот это третья строчка оттуда.

Установщик пакетов (com.miui.global.packageinstaller). Визуальный компонент установки приложении от оболочки MIUI. Фактически, никак не отвечает за установку приложений, ибо работает основной установщик.

Часы (com.android.deskclock). Ну если вы совсем экстремал, то можно и часы казнить. Только с ними уйдет и будильник, таймер и секундомер. Хотя можно и заменить. Но надо ли так жестко?

Analytics (com.miui.analytics). Не больше, не меньше, шпион. Собирает и отправляет по сто раз в день, аналитический доклад, о всех ваших действиях с телефоном, в компанию Xiaomi. Не церемонимся с ним, это зло.

Android Easter Egg (com.android.egg). Пасхалка андроида. Если даже не поняли о чем речь, тогда точно сносите.

ANT HAL SERVICE (com.dsi.ant.server). Отвечает за радиосвязь с гаджетами, использующими технологию ANT+, например фитнес браслет или шагометр. Можно удалить, если не пользуетесь такими вещами.

AudioEffect (com.miui.audioeffect). Эквалайзер, можно, если не пользуетесь улучшением звука или есть заменитель. Например ViperFX.

Bookmark Provider (com.android.bookmarkprovider). Менеджер закладок сток браузера.

Cit_QR (com.miui.qr). Тест сканера QR-кодов. Часть тестового меню. Мне лично, жить не мешает.

com.android.providers.partnerbookmarks
Закладки в стоковом браузере от партнеров (рекламных спонсоров).

com.android.sharedstoragebackup
Резевное копирование гугл. Т.е. синхронизация. Лично я пользуюсь, а вы как хотите.

com.android.wallpaperbackup
Загадочная штука, связанная с бэкапом изображений (то ли в галерее, то ли обоев). Но бед от удаления/заморозки, не замечено.

com.android.wallpapercropper
Обрезка (подгонка) обоев под экран. Можно. Но стоит ли так сильно выпиливать всё?

com.miui.antispam
Спам фильтр (черный список) в стоковой звонилке. Мне лично нужен. Да еще и часто.

com.miui.translation.kingsoft
com.miui.translation.xmcloud
com.miui.translation.youdao
com.miui.translationservice
Явно связанно с переводом, онлайн переводом текста. Только я не понял, чем оно используется. В MIUI отродясь не было собственного переводчика. Сторонним переводчикам, это тоже не надо. Эти три приложения, ни разу не запускались с момента включения телефона. Но оставил, просто ради интереса. Вдруг найду, кому они нужны.

com.qti.dpmserviceapp
Сервис для воспроизведения контента с DRM защитой.

com.qualcomm.embms eMBMS
(Evolved Multimedia Broadcast and Multicast Service) представляет собой технологию широковещательной/многоадресной передачи. Только вот в мире, LTE-B всего 5 операторов запустили в своих сетях. Еще 30+ только инвестируют. И России среди них нет. Короче бесполезное приложение для странг СНГ. Но, я и его оставил. Мало ли, как оно влияет на обычный LTE.

Duo (com.google.android.apps.tachyon). Видеосвязь от Гугл (аналог скайпа).

Facebook App Installer (com.facebook.system). Менеджер установки приложений Фейсбука. Удалить.

Facebook App Manager (com.facebook.appmanager). Менеджер установленных приложений Фейсбука. Под снос.

GBoard (com.google.android.inputmethod.latin). Клавиатура от корпорации зла. Только не забудьте предварительно установить заменитель.

Gmail (com.google.android.gm). Почтовый клиент от Гугла.

Google Фото (com.google.android.apps.photos). И так понятно. Удаляем.

Google Play Игры (com.google.android.play.games). Если не играете, то точно не нужен. А если играете, то все равно лучше удалить и поставить уже как пользовательское приложение. Появится контроль автозапуска и работы в фоне.

Google Play Маркет (com.android.vending). Маркет приложений от гугла.

Google Play Музыка (com.google.android.music). Музыкальный плеер и сервис от Гугла.

Google Play Фильмы (com.google.android.videos). Видео сервис от Гугла.

Hardware Test (com.xiaomi.mirecycle). Очередной тест железа, на этот раз от Xiaomi.

HybridAccessory (com.miui.hybrid.accessory). Великий и могучий тырнет, утверждает, что это связанно с кроссплатфоменными приложениями. Я же вслед за парой источников, склоняюсь, что это связанно с аксессуарами для смартфонов, от Xiaomi или наоборот не от Xiaomi.

MF_TEST (com.caf.fmradio). Тест ФМ-радио.

Mi Пульт (com.duokan.phone.remotecontroller). Пульт управления техникой, через инфракрасный передатчик. Но как по мне, то лучше удалить и использовать Universal Remote for HTC one. Тут больше шансов найти пульт и поможет в этом, автопоиск.

Mi Роуминг (com.miui.virtualsim). Не поверите, но есть такая фигня, как виртуальные сим карты. Да-да, оно самое. Только работает малого где. На скорую руку гугленья, я засек только случаи в Китае и Индии. В России можно удалять (не зря оно отключено по умолчанию).

Mi Credit (com.xiaomi.payment). Электронный кошелёк от Сяоми и для сервисов Сяоми (например для покупки места в Mi Cloud). В России бесполезно, да и думаю, что оно в целом только для Китая.

Mi Drop или ShareME (com.xiaomi.midrop). Приблуда для передачи файлов, взамен использования Bluetooth. Тут конечно в корне, примитивно используется по FTP передача файлов, но где скорость Bluetooth и где WiFi. Разница в сотню раз по скорости. Причём приложение, работает не только на сяоми. Его можно скачать в маркете на любом андроид смартфоне и даже использовать для передачи файлов на, или, с компьютера. Надо лишь скачать клиент для ПК.

Mi Pay (com.mipay.wallet.in). Основной компонент для Mi Credit.

Сервисы и обратная связь (com.miui.miservice). Можно смело удалять если не используете.

Peel Mi Remote (com.duokan.phone.remotecontroller.peel.plugin). Плагин для Mi Remote (Mi Пульт). Партнерский видеосервис, с трансляцией на ТВ по WiFi. Дичь какая-то. Снёс нафиг.

Sensor Test Tool (com.fingerprints.sensortesttool). Тест меню сканера отпечатков пальцев. У меня выбивает ошибку при запуске.

image

Честно признаться, у меня не было планов писать и публиковать эту статью, но, после того, как за два месяца увидел в ближнем кругу коллег 5 штук свежеприобретённых телефонов от Xiaomi, и недавнюю статью на Geektimes, рекламирующую управление умным домом от Xiaomi, ко мне пришла совесть и, сцуко, потребовала поделиться знанием с остальными.

Для начала небольшая вводная часть для тех кто не в теме. Есть такая компания Xiaomi, которая делает неплохие по начинке телефоны и заливает в них кастомизированный Android. Бизнес модель, как недавно официально было заявлено — «По сути мы раздаём наши смартфоны, не зарабатывая на этом денег. Нас больше заботят долгосрочные источники дохода. Мы могли бы продать 10 миллиардов смартфонов и не заработать на них ни цента». Источник раз и два.

Заглянув в сентябрьскую статью на Security lab и ещё вот в эту жалобу, у меня лично возникло ощущение, что телефон Xiaomi это что-то типа поводка на котором владельца водит Большой брат (утрирую, конечно же).

Это и стало основным мотивом проведения исследования поведения телефона Xiaomi redmi 3S
с прошивкой MIUI Global 8.1 Стабильная 8.1.1.0 (MALMIDI)

Исследование подопытного кролика и обнаружение проблемы
Беру новенький телефон из коробки. Включаю его и прохожу через мастера начальной настройки, предварительно включив запись трафика на Wi-Fi роутере. Ровно через две секунды, после того как телефон подключился к точке доступа, началось скачивание файла размером около 8Мбайт с одного из серверов Xiaomi. Это был обычный zip архив, внутри которого лежала куча всего и, в том числе, файл AnalyticsCore.apk, упомянутый в статье на SecurityLab.

Дальше — больше. В общей сложности, за всё время наблюдения, я насчитал чуть меньше восьми десятков имён серверов в разных доменах. Сразу оговорюсь, что в этом числе нет серверов Google и Facebook, приложения которых также предустановлены. Просто потому что я их считал отдельно. С ними тоже всё «весело».

Дополнительно смущало то, что большей частью запросы были небольшими (объём принятого переданного трафика TCP сессий не превышал 1-2Кб), но, т.к. наши сотовые операторы округляют объём трафика вверх (Например, Tele2 до 150Кб), то, при неудачном совпадении, можно «накачать» таким образом существенные объёмы трафика, а в роуминге неожиданно попасть на деньги.

Тех, кого сей факт не смущает могут дальше не читать, т.к. дальше будет описание конкретики изоляции трафика от приложений, вшитых в заводскую прошивку.

Предварительные условия

Первое что необходимо — это рутовать телефон. Как это делается в случае Xiaomi я здесь описывать не буду, отсылаю желающих пройти этот путь к полной версии этой статьи (ссылка в конце).
Второе — это влить в телефон прошивку через кабель и стереть ВСЕ пользовательские данные.
Третье — телефон НЕ ДОЛЖЕН иметь доступа в интернет после залива свежей прошивки.
Update. До момента установки нижеописываемых ограничений, разумеется.

Disclamier. Все дальнейшие манипуляции над телефоном Вы делаете на свой страх и риск.
Ответственность за любой результат лежит на том, кто именно делал описываемые ниже действия.

Небольшая техническая вводная часть

Серверы, к которым обращается телефон, в большинстве своём расположены в облаке Amazon, поэтому обращения к ним происходит по именам, которые ресолвятся через round-robin DNS в разные IP адреса из разных подсетей /16. Блокировать их все по подсетям смысла особого нет — так можно половину интернета отфильтровать, что не есть хорошо. Блокировать по именам — хорошо, но не факт, что имена хостов из L3 доменов не генерируются динамически. Идеально было бы прибить все приложения, которые обращаются к серверам Xiaomi, но, как показала практика, глубина их интеграции в Android такова, что после удаления некоторых из них телефон может просто отказаться загружаться.

Далее. К внешним серверам обращается не один процесс, а многие, при этом задачу усложняет наличие в Android UID sharing, когда под одним UID могут генерировать сетевой трафик разные процессы (приложения). Более того, один из полезных процессов (отвечающий за GPS) надо выпускать во внешний мир, чтобы скачивать небольшие обновления, но при этом он сидел под тем же UID, что и восемь штук процессов, рвущихся к серверам Xiaomi.

Также надо упомянуть про ограниченность инструментария, доступного для решения вышеописанных задач, т.к. большая часть приложений имеющих в названии firewall доступных на Play Market работают через т.н. VPN, т.е. от сливов информации до запуска приложения они не защищают.

Большая часть того, что будет рассказано дальше для профессиональных разработчиков Android есть банальная истина, но всем остальным это позволит понять почему фильтрация построена именно таким образом.

В отличие от обычного Linux, где есть файлы конфигурации и стартовые скрипты, лежащие в /etc, в Android всё сделано несколько иначе. Общее управление сетью осуществляет Connection Manager, который дёргает системный демон netd, который, в свою очередь, вызывает iptables с определёнными параметрами командной строки. Соответственно, вызывать IPtables из скрипта начальной загрузки (init и прочих) особого смысла нет — netd при старте всё равно вызовет iptables, очистит правила и зальёт свои.

Единственный выход оставленный Google — писать необходимые команды конфигурации iptables в скрипте /system/bin/oem-iptables-init.sh. Путь к этому скрипту и его имя жёстко прописаны внутри исходного кода демона netd.

Для фильтрации статических имён хостов можно редактировать файл /etc/hosts, но при этом надо помнить про их количество и возможность их динамической генерации.
Дальше будет рассказ как это всё делалось.

Удаление и заморозка (если нет уверенности) ненужных программ

При помощи бесплатной версии Titanium Backup можно посмотреть соответствие между именем программы, показываемое в системе (Play Market), её кодовым именем (com.google.vending) и, при необходимости, удалить то, что явно не нужно.

Недостаток бесплатной версии — не умеет делать заморозку программ, посему заморозку делаем через ADB shell при помощи package manager. Пример:

Фильтрация сетевых запросов

Disclamier 2.В данной статье описано КАК можно фильтровать «левую» сетевую активность телефона. Что конкретно фильтровать — каждый волен решать сам.

Как это можно делать.

1. Cамое простое — заполнение файла /etc/hosts записями имён серверов c IP адресом 127.0.0.1. Мой набор серверов лежит на Google Drive в папке Files.
Недостаток варианта — невозможность блокировки неизвестных и динамически генерируемых имён хостов и доменов L3/L4.

Update. Несколько раз обнаруживал странное поведение Netfilter/IPtables. После загрузки телефона в таблице действующих правил оказывались не все правила, перечисленные в скрипте. Если перезагрузить телефон ещё раз — все правила оказывались на месте. Прям шайтан-машина, а не телефон.
В документации нашёл описание параметра --wait, который вроде бы должен решать эту проблему. Но, для гарантированного решения проблемы, сделал ещё вызов IPtables из скрипта не напрямую, а через несложную функцию, которая проверяет код завершения и, при необходимости, повторно выполняет команду с небольшой задержкой, опять же проверяя результат.

2. пишем команды фильтрация отправки пакетов на подсети /16 и /24 стандартными правилами Netfilter/IPtables в файл oem-iptables-init.sh. Здесь их не описываю, желающие напишут их сами, либо найдут в полной версии статьи.
Update. Недостаток варианта — большая часть серверов расположена в облаке Amazon и имеет переменные (round-robin DNS) IP адреса. Для гарантированной их фильтрации придётся закрыть не один десяток подсетей /16, что не есть хорошо. Можно ненароком забанить и полезные сайты. Но для статичных хостов (если их немного) это решение вполне подходит.

3. Фильтруем DNS запросы к ненужным нам доменам. Это несколько сложнее, поэтому опишу подробнее.

Updated.В составе IPtables, штатно идущем в Android есть модули расширения функционала, которыми мы дальше и воспользуемся. Помня, что DNS запросы отправляет система (UID 0) пишем правило:

Вторая строчка пропустит все остальные DNS запросы. Комментарии я указал для удобства, чтобы команда iptables -L -v показывала результаты блокировок нагляднее.


5. Фильтруем доступ в интернет по приложениям (у меня Google Chrome имел UID 10060). Разрешаем выход в интернет Google Chrome и запрещаем всем остальным приложениям.


Слабым местом этого способа фильтрации является его опора на наличие отметки UID на каждом конкретном пакете при прохождении его через Netfilter/IPtables. Обнаружилось это по непонятным TCP соединениям к серверам Google, пакеты которых не содержали UID. Исследование показало, что эти пакеты инициированы процессом Google Captive portal login. Я решил эту проблему обходным путём — просто выключив эти запросы командами в ADB shell:


Радует, что (судя по накопленной статистике за несколько суток перехвата Wi-Fi трафика), никаких иных системных процессов отсылающих пакеты без UID в исследовавшемся телефоне нет.

Update. Дальнейшее наблюдение показало как я ошибался. Такие «тихие» процессы есть, но часть из них невинно общается друг с другом через адрес 127.0.0.1, что ненаказуемо.
Всё остальное надо банить.
Поэтому, для их правильной фильтрации, надо добавить в самое начало скрипта ещё две строчки:

Update. Уже после опубликования статьи для меня окончательно стало ясно, что UID приложений, задаваемый системой при установке приложения, при обновлении и/или переустановке приложений может непредсказуемым образомменяться. Следовательно, доступ в интернет для приложения тоже отвалится и надо будет переписывать правило Netfilter/IPtables заново.
Для решения этой проблемы набросал небольшой кусок скрипта, который читает из хвоста файла наименования приложений, проверяет их наличие в системной базе приложений, и, при наличии, берёт оттуда же UID приложения и динамически (в процессе работы скрипта) формирует правило Netfilter/IPtables.
Строго говоря — чтение параметров из тела скрипта — это тоже костыль. Но меня оправдывает то, что на момент работы скрипта, подмонтировать файловую систему доступную снаружи при обычной работе телефона — невозможно. В папке /dev нет соответствующих файлов устройств. Допускаю, что это может быть особенность прошивки конкретного телефона.
Текст специально сделал максимально подробным, для лучшего понимания.


После переустановки/обновления приложения нужно всего лишь перезагрузить телефон.

6. Для целей мониторинга работы правил Netfilter/IPtables можно добавить ещё вот такую строчку:


Параметр IP адрес отправителя (--source 10.1.30.42) можно опустить, но в этом случае лог будет завален записями сетевой активности процессов, завёрнутых на адрес 127.0.0.1 файлом hosts. Лог можно читать через команду dmesg (dmesg | grep IPtables) в ADB Shell.

Версию статьи, которая писалась как полная инструкция по решению этой проблемы с Xioami Redmi 3S я выложил на Google Drive. Сюда её выкладывать не рискнул именно из-за объёма.

Читайте также: