Сервисные (они же инженерные, они же секретные) коды используются для быстрого доступа к различным функциям, часто даже скрытым. Есть универсальные коды для Android, а есть те, которые доступны только для определенных моделей устройств.

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

Также рекомендую интересные статьи по теме Android:

Популярные секретные коды для Андроид смартфонов

Почему данные коды называют «секретными»? Просто они не нужны большинству рядовых пользователей, их не публикуют в инструкциях к смартфонам. В первую очередь «secret codes» предназначены для инженеров и разработчиков для проведения различных тестов.

Чтобы использовать любой из сервисных кодов, нужно ввести его в номеронабирателе. На планшетах придется скачать стороннее приложение для осуществления звонков – введите в поиске Google Play запрос «Dialer» и загрузите понравившуюся «звонилку».

  • *#06# — информация об IMEI смартфона
  • *#*#4636#*#* — информация о Wi-Fi, аккумуляторе и статистике использования
  • *#*#3646633#*#* или *#*#83781#*#* — вход в инженерное меню на смартфонах с процессором MTK (через него можно увеличить громкость динамиков и наушников)
  • *#*#8255#*#* — тестирование сервиса Google Talk
  • *#*#7594#*#* — если введете данную комбинацию, после этого, при нажатии кнопки выключения, смартфон будет сразу же выключаться, без предложения меню
  • *#*#44336#*#* — информация о PDA, CSC, времени сборки и прочих данных о смартфоне
  • *#*#232338#*#* — MAC адрес Wi-Fi
  • *#*#7780#*#* — моментальный сброс к заводским настройкам (Hard Reset). Удаляет только приложения
  • *2767*3855# — моментальный сброс настроек до заводских, но в отличии от предыдущего способа Android полностью переустанавливается
  • *#*#1234#*#* или *#12580*369# — информация о прошивке устройства
  • *#*#1111#*#* — информация о FTA софтверной версии
  • *#*#2222#*#* — информация о FTA хардверной версии
  • *#*#0283#*#* — тест Loopback
  • *#*#0*#*#* — тест экрана
  • *#0*# — тестирование различных компонентов: экрана, камеры, динамиков, вибрации, микрофона и прочих
  • *#*#0673#*#* или *#*#0289#*#* — тест аудио
  • *#*#0842#*#* — тест вибрации и подсветки
  • *#*#232339#*#* или *#*#526#*#* — тест беспроводной сети
  • *#*#1472365#*#* — тест GPS
  • *#*#1575#*#* — подробный тест GPS
  • *#*#232331#*#* — тест Bluetooth
  • *#*#232337#*#* — показать Bluetooth-адрес
  • *#*#2663#*#* — версия сенсорного экрана
  • *#*#2664#*#* — тестирование сенсорного экрана
  • *#*#0588#*#* — тестирование датчика движения
  • *#*#7262626#*#* — тест сигнала GSM
  • *#197328640# — переход в сервисный режим
  • *#*#3264#*#* — версия RAM памяти
  • *#*#8351#*#* — активация режима регистрации голосового набора
  • *#*#8350#*#* — выключение режима регистрации голосового набора
  • #*5376# — удаление всех SMS
  • *#2222# — версия прошивки Android
  • #*2562#, #*3851#, #*3876# — перезагрузка смартфона, планшета
  • *#34971539# — полная информация о камерах и обновлении их прошивок
  • *#*#273283*255*663282*#*#* — быстрое создание резервной копии медиафайлов
  • *#*#4636#*#* — секретное меню для устройств Motorola
  • **05***# — разблокировка PUK на Sony
  • *#0011# — сервисное меню на Samsung Galaxy S4
  • ##778 (+кнопка вызова) — выводит на экран EPST-меню (для Samsung)
  • ##3424# — режим диагностики (для HTC)
  • ##3282# — EPST (для HTC)
  • ##8626337# — VOCODER (для HTC)
  • ##33284# — технические данные состояния сети (для HTC)
  • ##7738# — ревизия протокола (для HTC)

В принципе, это самые основные и универсальные сервисные (секретные) коды для планшетов и смартфонов на Андроид, но все производители добавляют поддержку своих собственных, поэтому, если вас интересуют коды для отдельного аппарата, скачайте приложение Secret Codes. О нем пойдет речь ниже.

Сервисные коды Android в приложении Secret Codes

Приложение Secret Codes просканирует систему на наличие инженерных кодов и выдаст результат в виде списка. Вам достаточно будет только нажать на интересующий код и вы перейдете к нужной опции.

К сожалению, у этого способа есть минус: на некоторых устройствах приложение не находит ни единого сервисного кода, а на некоторых находит не все. Но на протестированных мною девайсах все было отлично, да и отзывы в Google Play практически все положительные.

Автор статьи:Думаю все, у кого есть устройство на базе ОС Android, хотя-бы краем уха слышали о «секретных кодах». Однако поиск по Хабру показал что здесь нет ни одной статьи на данную тему. А ведь некоторые коды довольно могущественные: например один из кодов на моем Samsung Galaxy Tab позволяет настроить GPS что ускоряет поиск спутников, другой — жестко установить режим связи с сетью(GPRS, EDGE, 3G…) что в местах с нестабильной связью позволяет хорошо сэкономить батарею на скачках между режимами. Но повествование я поведу не сколько про возможности кодов а про исследование механизма запуска приложений по кодам в ОС Android, как найти все коды(и приложение в которое это всё вылилось). И еще немного про то, как сделать приложение которое будет отзываться на свой код. Под катом 6 картинок, немного кода и много текста… Самых нетерпеливых прошу сразу в конец статьи помацать результаты а уж потом — читать технологию.

Вступление

Про коды в Android я слышал давно. Наиболее распространённый — *#*#4636#*#* — это информация о телефоне, батарее, состоянии сети и т.д. Но недавно я установил себе программу Autostarts, сделал поиск по установленным приложениям и (О чудо!) увидел странное событие «Secret Code Entered». На него отвечала целая куча приложений! Этот факт подвигнул меня на более глубокий поиск на эту тему. Вот что я выяснил: {Не желая грузить основную часть публики излишними пояснениями торжественно клянусь разжевать подробнее в комментариях непонятные участки, если стану участником уважаемого сообщества.}

Часть первая. События в Android

Как известно, каждое приложение Android содержит в себе манифест. Это специально сформированный XML файл содержащий информацию какая целевая версия ОС, какие возможности разрешения требуются приложению для работы и т.д. Самое интересное в этом манифесте — секции описывающие BroadcastReceiver’ы. Это классы, которые реагируют на наступление определенных событий. Этих событий много, например: совершается исходящий звонок(android.intent.action.NEW_OUTGOING_CALL), изменилось состояние режима «полёт» (android.intent.action.ACTION_AIRPLANE_MODE_CHANGED)… Официальный список можно увидеть на сайте Android. Однако список отнюдь не полон т.к. каждое приложение может создавать своё событие. Это вносит некоторый хаос в документацию при попытке выяснить на что может реагировать приложение. Именно в этом хаосе удачно спряталось событие, которое представляет огромный интерес: android.provider.Telephony.SECRET_CODE Как показало вскрытие исходных кодов штатной звонилки в Андроиде что при вводе чего-либо начинающегося на *#*# и заканчивающегося #*#* в номеронабирателе происходит поиск и передача сообщения тому BroadcastRecever’у который слушает именно этот код(то что между *#*# и #*#*)

Часть вторая. Реагируем на код

Теперь глянем что-же требуется от приложения что-бы среагировать на наступление данного события: ent-filter> где: — начало секции BroadcastReceiver и указание какой именно Receiver должен быть вызван при наступлении данного события. — собственно событие на которое реагирует ресивер, набор кода. — а вот и самое интересное место. Блок data отвечает за дополнительные параметра события и для события секретного кода — обязателен. Поле android:host здесь означает именно тот код, который пробудит нашу спящую красавицу от сна. Т.е. что-бы запустить Receiver «.receivers.DebugReceiver», приложения из манифеста которого этот блок (о нем чуть позже), нужно в звонилке набрать *#*#727#*#* Как видно, добавить скрытые возможности в свои приложения Android очень даже просто. Что делать в Receiver’е я умолчу, там уже ваш собственный путь, лично я — вызываю отладочное Activity.

Часть третья. Ищем партизанов

Теперь перейдем к поиску Receiver’ов, реагирующих на коды. Первой мыслью (и первой реализацией) был вот такой вот код:for(int i=0;i<10000;i++) { Intent = new Intent("android.provider.Telephony.SECRET_CODE", Uri.parse("android_secret_code://"+ i.toString())); ComponentName cn = intent.resolveActivity(pm); .... } В точности код я не помню, он был затёрт за ненадобностью так как было найдено решение лучше. Данное же решение просто перебирает все коды с 0 до 10000, тот диапазон в котором находится значительная часть кодов. Но не все. Именно это «не все» подвигло меня на более детальные поиски и привело к новому решению: 1) Берем список всех установленных приложений через PackageManager:List pil = pm.getInstalledPackageManager.GET_DISABLED_COMPONENTS); 2) Из каждого пакета вытаскиваем его манифест: AssetManager am = context.createPackageContext(p.packageName, 0).getAssets(); xml = assets.openXmlResourceParser("AndroidManifest.xml"); 3) Простая магия с разбором манифеста и поиском нужных Receiver’ов, IntentFilter’ов, Action’ов. 4) Профит. У этого метода есть всего один недостаток: он был замечен на приложении SuperUser от ChainsDD. Дело в том что данное приложение имеет кривой манифест который выглядит как-то так: de> Как видите, в нем не указан код, на который следует реагировать и Receiver вызывается при вводе любого кода. Декомпилировав эту программу я убедился что сделано это по ошибке а не следуя желанию вести лог всех введенных кодов, т.к. в самом Receiver'е происходит проверка на равенство кода заданному значению и если код не равен заданному — то ничего не происходит :( т.е. этот Receiver запускается при каждом вводе кода, чего можно было избежать указав какой именно код должен пробуждать Receiver.

Часть последняя. Для самых терпеливых.

Последнюю часть оставил для презентации результатов. Результатом всех этих расследований стала замечательная(не побоюсь этого слова) программа, аналогов которой на маркете обнаружено не было: Секретные Коды Кроме описанной выше возможности искать секретные коды программа также позволяет: — Запускать найденные коды — Комментировать/читать комментарии других пользователей о кодах. Это сделано что-бы люди которые боятся FactoryFormat'а могли удостоверится что код безопасен до его запуска, а бесшабашные экспериментаторы — написать что делает тот или иной код. Мной лично было запущенны ВСЕ доступные коды на Samsung Galaxy Tab 7" и откомментированны все коды которые выводят хоть какую-то информацию. (Кстати успешно пережил FactoryFormat, т.к. заранее сделал backup всех приложений и данных.) — Назначать кодам значки для большей наглядности списка кодов. На закуску 6 ScreenShot'ов: Главное Activity: Activity поиска кодов: Поиск кодов завершен: Список кодов: Activity кода: Некоторые из доступных значков для обозначения кода: P.S. на SreenShot'ах всего 3 кода т.к. они делались на эмуляторе. На моём Galaxy Tab'е их более 100-а.P.P.S статья опубликована по просьбе Владислава Аксёнова ввиду отсутствия у него аккаунта (кому понравилась статья и не жалко инвайта, вот e-mail, высылайте: grafmailgraf@mail.ru). Написал статью . Спасибо за инвайт! Вот и QR-ка: 28289,9k 282Используемые источники:

  • https://4idroid.com/servisnye-kody-dlya-smartfonov-android/
  • https://m.habr.com/ru/post/141890/

ОСТАВЬТЕ ОТВЕТ

Please enter your name here
Please enter your comment!