11 способов восстановить работу Android смартфона.

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

Image result for android fixing problem

Идеальный вариант для описанных в статье рецептов — это телефон с разблокированным загрузчиком, установленным кастомным рекавери TWRP (CWM давно не обновляется), с наличием прав root и галочкой «Отладка по USB» в настройках для разработчиков. Такая мелочь, как эта самая галочка, позволит в случае разбитого экрана не только вытащить данные с карты памяти, но и достать базы контактов или СМС, используя плагин ADB для Total Commander.

Рекомендую проделать эти манипуляции сразу, чтобы не было мучительно больно, когда возникнут проблемы с телефоном. Все примеры будут даны для Nexus 5, как самого распространенного эталонного Android-смартфона.

ПРОБЛЕМА #1. ТЕЛЕФОН НЕ ЗАГРУЖАЕТСЯ

Начнем с наиболее частых проблем. Телефон перестал загружаться. Постоянно висит логотип Google, и дальше дело не идет. Имеем классический бутлуп (bootloop — загрузка по кругу). Может наступить после ежемесячного обновления безопасности устройства даже у пользователей со стоковой прошивкой, которые никогда не лезли в систему. Решений три:

Прошивка полного образа на Nexus 7 через flash-all.bat без параметра -w
  • сделать сброс из стокового рекавери (приведет к потере всех данных) или из TWRP (данные не пропадут);
  • прошить из стокового рекавери через sideload полный ОТА-образ в формате ZIP, который с мая Google начала выкладыватьдля общего пользования, чем очень упростила жизнь многим пользователям (данные не пропадут);
  • прошить полный образ прошивки, предварительно убрав -w из скрипта flash-all.bat, чтобы не потерять данные.

ПРОБЛЕМА #2. ТЕЛЕФОН НЕ ВКЛЮЧАЕТСЯ

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

  • Подключить зарядник от другого устройства с большим током, в идеале 2А.
  • Зайти в загрузчик (обычно громкость вниз + питание), далее кнопкой «Питание» подтверждаем выбранный пункт Start. Если не помогает, то в режиме загрузчика выбирать громкостью Power down, затем подтвердить кнопкой питания. Далее следует отсоединить зарядное устройство и подсоединить его снова в течение десяти секунд. На экране должен появиться значок батареи. После этого можно пробовать включать устройство, предварительно дав ему зарядиться не менее часа. Подробнее можно прочитать на официальной странице поддержки.
  • Запитать смартфон от USB-выхода компа с помощью самопальной лягушки. Для этого достаточно найти любой USB-кабель (подойдет и от мышки), отрезать его, а затем присоединить красный провод к плюсу батареи, а черный — к минусу. Далее батарею следует поставить на место (с присоединенными проводами) и включить смартфон.

ПРОБЛЕМА #3. ТЕЛЕФОН НЕ ЗВОНИТ

Если не удается совершить звонок или смартфон вообще не видит мобильную сеть, то прежде всего следует проверить IMEI. Сделать это можно, набрав *#06#. Если вместо номера высветились нули, то IMEI слетел. Проще всего восстановить его из бэкапа, поэтому рекомендую сделать его после прочтения статьи и закинуть в облако. В Play Market есть очень много программ для создания и восстановления таких бэкапов, поэтому останавливаться на них не буду. Сделать то же самое можно и руками. Например, для Nexus 4 в эмуляторе терминала или из консоли нужно ввести следующие команды:

Бэкап IMEI:

$ adb shell
> su
> dd if=/dev/block/mmcblk0p8 of=/sdcard/m9kefs1.img
> dd if=/dev/block/mmcblk0p9 of=/sdcard/m9kefs2.img

Восстановление IMEI:

$ adb shell
> su
> dd if=/sdcard/m9kefs1.img of=/dev/block/mmcblk0p8
> dd if=/sdcard/m9kefs2.img of=/dev/block/mmcblk0p9

У Nexus 5 нет отдельного раздела EFS. Поэтому бэкапить надо целиком разделы 12 и 13:

$ adb shell
> su
> dd if=/dev/block/mmcblk0p12 of=/sdcard/modemst1.img
> dd if=/dev/block/mmcblk0p13 of=/sdcard/modemst2.img

Восстановление проводится так:

$ adb shell
> su
> dd if=/sdcard/modemst1.img of=/dev/block/mmcblk0p12
> dd if=/sdcard/modemst2.img of=/dev/block/mmcblk0p13

Но что же делать, если бэкапа нет? Способ восстановления IMEI найдется и в этом случае. Нужны наборы утилит EFS Professional и QPST, а также драйверы Qualcomm для твоего устройства. Сначала грузится модифицированное ядро, затем телефон перегружается в диагностический режим командами

$ adb shell
> su
> setprop sys.usb.config diag,adb

После этого IMEI можно менять. Подробную инструкцию найдешь тут. Если нет под рукой коробки, то IMEI можно узнать у Гугла в личном кабинете на вкладке Android.

[ad name=»Responbl»]

Дополнительно понадобится узнать SPC code — шестизначное число, необходимое для работы сервисных программ. Сделать это можно следующим образом. Качаем из маркета и запускаем Nexus 5 Field Test Mode, нажимаем три точки, далее Settings (view), потом выбираем LTE, edit, выпрыгнет окно с запросом кода. После этого в консоли надо ввести:

Прошивка полного образа на Nexus 7 через flash-all.bat без параметра -w

Красный — плюс, черный — минус

> adb shell
> logcat -d | grep "commandId 200"

Ответом будут строки вида:

> 08-02 10:16:27.140 14401 14401 D LG_SVC_ITEMS:
    getCommands commandId 200-START
> 08-02 10:16:27.185 14401 14401 D LG_SVC_ITEMS:
    getCommands commandId 200 = 353662-END

где шесть цифр в конце и есть искомый код.

Вкладка Android с IMEI в личном кабинете
Подключение программы EFS Professional
Работа утилиты Qualcomm NV Tools, входящей в комплект EFS Professional

ПРОБЛЕМА #4. НЕ РАБОТАЕТ ТАЧСКРИН

Если неудачно уронить телефон, можно повредить экран и, как следствие, тачскрин. В этом случае поможет мышка, подключенная к смартфону через переходник USBOTG. Можно также подключить устройство к компу и использовать для управления консоль и ADB, о чем я писал в статье «10 самых нужных команд ADB». ADB позволит не только запускать приложения, отправлять СМС и даже совершать звонки, но и эмулировать нажатия на экран. Команды выглядят следующим образом:

• text <строка> — ввести строку;
• keyevent <код_клавиши> — эмулировать нажатиехардварной кнопки;
• tap <x> <y> — тап по указанному месту экрана;
• swipe <x1> <y1> <x2> <y2> — свайп от x1, y1 до x2, y2.

Спомощьютого же QPST можно активировать на Nexus 5 американской модели D820 частоты LTE, пригодные для использования в Европе.

Например, вытянуть шторку с уведомлениями можно так (отсчет координат идет от левого верхнего угла):

$ input swipe 10 10 10 1000

На экране разрешением 1080 х 1920 нажать на кнопку «Меню приложений» стандартного лаунчера от Гугла, которая находится над кнопкой «Домой», можно так:

$ input touchscreen tap 500 1775

Если же не работает только часть экрана, можно произвольно сдвинуть выводимое изображение через консольную команду wm overscan или прогой Screen Shift.

ПРОБЛЕМА #5. НЕ РАБОТАЕТ USB

Если по USB телефон заряжается, но при подключении комп не видит устройство, можно совершать манипуляции с телефоном через Wi-Fi. Для этого нужны права root и приложение WiFi ADB. Запускаем приложение, жмем кнопку и подключаемся к смартфону с помощью команды connect и показанного приложением IP-адреса:

$ adb connect IP-адрес

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

ПРОБЛЕМА #6. НЕ РАБОТАЕТ КНОПКА ПИТАНИЯ

Если в смартфоне сломалась кнопка питания, включить его можно так: зажимаем громкость вниз и подключаем проводом к компу. Попадаем в загрузчик. Из консоли вводим команду для продолжения загрузки (fastboot входит в состав Android SDK, папка platform-tools):

$ fastboot continue

Телефон загрузится. Для обеспечения работоспособности можно поставить модуль GravityBox для Xposed framework и включить опцию «Пробуждение громкостью» или поставить ядро с поддержкой DoubleTap2Wake. Чтобы иметь возможность погасить экран (заблокировать), следует активировать опцию «Двойное нажатие для сна» в GravityBox.

[ad name=»Responbl»]

Другие хардварные кнопки можно переназначить, отредактировав один из файлов /system/usr/keylayout. На Nexus 5 хардварных кнопок немного, поэтому приведу пример со смартфоном Micromax Q415. У него очень неудачное расположение кнопок «Назад» и «Меню», но их легко поменять местами, если отредактировать файл ft5x06_ts.kl:

key 158 BACK
key 139 APP_SWITCH key 172 HOME
key 217 SEARCH
key 249 MENU

Достаточно в первой строке указать кейкод 249, а в последней — 158. Аналогичным образом можно изменить любые другие кнопки, включая кнопки громкости (их настройки могут находиться в другом файле).

ПРОБЛЕМА #7. ЧТО ДЕЛАТЬ ЕСЛИ ЗАБЫЛ PIN-КОД

Допустим, ты забыл PIN или не совсем трезвым поставил графический ключ, ну или друзья пошутили и включили распознавание по лицу. Так вот, если устройство по какой-то причине заблокировано, блокировку можно снять (при условии включенной отладки по USB и прав root) через ту же консоль:

$ adb shell
> su
> cd /data/system
> rm *.key

Команда удалит все пароли и графические ключи. Сами файлы, в зависимости от прошивки и модели устройства могут быть: gesture.key, password.key, cm_ gesture.key, personalpattern.key, personalbackuppin.key. Также за блокировку отвечают файлы locksettings.db, locksettings.db-shm, locksettings.db-wal.

После этого достаточно перегрузить устройство и ввести любой ключ, пароль. Если это не помогает, можно попробовать следующее:

$ adb shell
> cd /data/data/com.android.providers.settings/databases
> sqlite3 settings.db
> update system set value=0
    where name='lock_pattern_autolock';
> update system set value=0
    where name='lockscreen.lockedoutpermanently';

ПРОБЛЕМА #8. ЗАПРОС АККАУНТА GOOGLE ПОСЛЕ СБРОСА ДО ЗАВОДСКИХ НАСТРОЕК

На всех Нексусах, начиная с Nexus 6, а также на многих современных телефонах Google и производители ввели новую систему защиты данных пользователя, получившую название Factory Reset Protection (FRP). Теперь после сброса устройства до заводских настроек, на этапе начальной настройки у пользователя потребуют ввести данные (адрес почты и пароль) от предыдущего аккаунта, к которому привязан телефон.
По мнению Google, такая защита делает бессмысленным воровство телефона: злоумышленник, который не сумеет подобрать пароль, сможет сбросить устройство до заводских настроек через стоковый рекавери, но при загрузке упрется в этот экран.

Но что же делать честным пользователям, которые забыли логин и пароль на устройстве? Настроил ты телефон родителям и благополучно забыл почту с паролем. На выручку придет канал YouTube сайта Rootjunky.com. На канале множество видеоинструкций по обходу защиты на разных устройствах, включая обновление безопасности от 1 июня 2016 года и прошивки Android N developer preview 4.

Сводятся они к тому, что необходимо добраться до браузера, скачать и установить прогу QuickShortcutMaker, найти в ней Google Account Manager, выбрать Type Email and Password, нажать Try, три точки, далее Browser sign-in. После чего можно вводить данные любого аккаунта и перегружать устройство. Запустившийся мастер настройки уже не будет требовать Verify your account.

ПРОБЛЕМА #9. НЕ РАБОТАЕТ МОБИЛЬНАЯ СВЯЗЬ, WI-FI, ОТВАЛИВАЕТСЯ КАРТА ПАМЯТИ

Если телефон начинает дико глючить с постоянным отваливанием различных приложений, с последующим бутлупом и возможностью прошивки только 4.4.4 (все, что выше, не загружается), то, скорее всего, на устройстве слетел раздел /persist. Для Nexus 5 это раздел 16, у Nexus 9 — 11, у Nexus 6 — 26.

Чтобы вернуть смартфон в нормальное состояние, необходимо отформатировать раздел командой (на примере Nexus 5)

$ adb shell make_ext4fs /dev/block/mmcblk0p16

После этого аппарат должен заработать нормально. Единственный минус — каталог /persist окажется пустым, и при каждой перезагрузке будут меняться MAC-адреса на Wi-Fi и Bluetooth. Если это критично, то можно предпринять дополнительные шаги:

1. Скачиваем файлы.
2. Устанавливаем HexEditor.
3. Произвольно меняем значения у двух файлов в архиве.
4. Внутри /persist создаем папку bluetooth.
5. С помощью проводника, например ES File Explorer, меняем свойства папки (нужен рут и показ скрытых файлов в настройках): owner — bluetooth, group — system, permissions — -rwxrwx—.
6. Внутри /persist создаем папку wifi и аналогично выставляем свойства:
owner — wifi, group — system, permissions — -rwxrwx—.
7. Закидываем файлы из архива в созданные папки: .bdaddr в bluetooth и .macaddr в wifi.
8. Меняем разрешения у файлов на 660 (-rw-rw—). 9. Перегружаем устройство.

ПРОБЛЕМА #10. ЧЕРНЫЙ ЭКРАН ПРИ ВКЛЮЧЕНИИ

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

Включаем смартфон через резервный загрузчик, удерживая кнопки VolUp + VolDown + Power (сработает, только если убит основной загрузчик). Когда система загрузится, подключаемся по ADB и восстанавливаем основной загрузчик простым копированием резервного:

восстановить работу Android
Вывод разделов Nexus 5 с помощью эмулятора терминала на прошивке ниже 6.0
$ adb shell
> su
> dd if="/dev/block/mmcblk0p15" of="/dev/block/mmcblk0p12" // Nexus 4
> dd if="/dev/block/mmcblk0p11" of="/dev/block/mmcblk0p6" // Nexus 5
> dd if="/dev/block/mmcblk0p13" of="/dev/block/mmcblk0p7" // Nexus 6

ПРОБЛЕМА #11. QHSUSB_BULK

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

Чтобы выдернуть из устройства данные, необходимо первым делом скачать актуальную версию Ext2fsd, установить ее и перегрузить комп. После последующего запуска проги в открывшемся окне находим диск, соответствующий объему телефона. На этом диске нажимаем правой кнопкой и выбираем ext2 Management. В открывшемся меню ставим галочки: Mount volume in readonly mode и Autonatically mount via Ext2Mgr (напротив выбираем букву диска). После чего можно нажать Apply и вытаскивать информацию через проводник или Total Commander.

[ad name=»Responbl»]

Чтобы восстановить работоспособность телефона, необходимо скачать и установить QHSUSB_Driver, после чего телефон должен определиться как Qualcomm HS-USB QDLoader 9008. Далее понадобятся специфические файлы для устройства и утилиты BoardDiag и LG Flashtool. Полную инструкцию можно найти на форуме 4PDA.

ВЫВОДЫ

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

Click to rate this post!
[Total: 16 Average: 2.8]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Leave a reply:

Your email address will not be published.