Мобильные устройства настолько тесно переплелись с повседневной жизнью, что отсутствие смартфона под рукой может вызвать панику. А уж если он сломался, то и говорить нечего. Для многих это грозит потерей тысяч нервных клеток. В этой статье мы рассмотрим как восстановить работу Android устройства при некоторых «поломках», научимся частично восстанавливать его функции до покупки нового и доставать важную информацию из разбитого телефона.
Идеальный вариант для описанных в статье рецептов — это телефон с разблокированным загрузчиком, установленным кастомным рекавери TWRP (CWM давно не обновляется), с наличием прав root и галочкой «Отладка по USB» в настройках для разработчиков. Такая мелочь, как эта самая галочка, позволит в случае разбитого экрана не только вытащить данные с карты памяти, но и достать базы контактов или СМС, используя плагин ADB для Total Commander.
Рекомендую проделать эти манипуляции сразу, чтобы не было мучительно больно, когда возникнут проблемы с телефоном. Все примеры будут даны для Nexus 5, как самого распространенного эталонного Android-смартфона.
Начнем с наиболее частых проблем. Телефон перестал загружаться. Постоянно висит логотип Google, и дальше дело не идет. Имеем классический бутлуп (bootloop — загрузка по кругу). Может наступить после ежемесячного обновления безопасности устройства даже у пользователей со стоковой прошивкой, которые никогда не лезли в систему. Решений три:
При полной разрядке аккумулятора телефон может не включиться даже после подсоединения зарядника: при достижении нескольких процентов заряда смартфон начнет загрузку, во время которой опустошит батарею и вновь отключится. Решений может быть несколько.
Если не удается совершить звонок или смартфон вообще не видит мобильную сеть, то прежде всего следует проверить IMEI. Сделать это можно, набрав *#06#. Если вместо номера высветились нули, то IMEI слетел. Проще всего восстановить его из бэкапа, поэтому рекомендую сделать его после прочтения статьи и закинуть в облако. В Play Market есть очень много программ для создания и восстановления таких бэкапов, поэтому останавливаться на них не буду. Сделать то же самое можно и руками. Например, для Nexus 4 в эмуляторе терминала или из консоли нужно ввести следующие команды:
$ adb shell > su > dd if=/dev/block/mmcblk0p8 of=/sdcard/m9kefs1.img > dd if=/dev/block/mmcblk0p9 of=/sdcard/m9kefs2.img
$ adb shell > su > dd if=/sdcard/m9kefs1.img of=/dev/block/mmcblk0p8 > dd if=/sdcard/m9kefs2.img of=/dev/block/mmcblk0p9
$ 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
где шесть цифр в конце и есть искомый код.
Если неудачно уронить телефон, можно повредить экран и, как следствие, тачскрин. В этом случае поможет мышка, подключенная к смартфону через переходник 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.
Если по USB телефон заряжается, но при подключении комп не видит устройство, можно совершать манипуляции с телефоном через Wi-Fi. Для этого нужны права root и приложение WiFi ADB. Запускаем приложение, жмем кнопку и подключаемся к смартфону с помощью команды connect и показанного приложением IP-адреса:
$ adb connect IP-адрес
Полное руководство по работе с ADB, повторюсь, есть в статье «10 самых нужных команд ADB». В качестве более удобной альтернативы можно использовать AirDroid.
Если в смартфоне сломалась кнопка питания, включить его можно так: зажимаем громкость вниз и подключаем проводом к компу. Попадаем в загрузчик. Из консоли вводим команду для продолжения загрузки (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. Аналогичным образом можно изменить любые другие кнопки, включая кнопки громкости (их настройки могут находиться в другом файле).
Допустим, ты забыл 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';
На всех Нексусах, начиная с 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. Перегружаем устройство.
Если устройство не загружается и не пускает даже в загрузчик, показывая только черный экран, но при этом реагирует звуком на подключение к компу, то это верный признак, что слетела таблица разделов или загрузчик (что по сути одно и то же). Вся прелесть устройств Nexus заключается в том, что у них есть резервный загрузчик, который позволит не только оживить смартфон, но и восстановить основной загрузчик.
Включаем смартфон через резервный загрузчик, удерживая кнопки VolUp + VolDown + Power (сработает, только если убит основной загрузчик). Когда система загрузится, подключаемся по ADB и восстанавливаем основной загрузчик простым копированием резервного:
$ 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
Если телефон не загружается и при подключении к компу в диспетчере устройств определяется как 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 убить практически нереально. Надо очень постараться умышленно прошить файл от другого устройства или выдернуть шнур в момент прошивки. Надеюсь, этой статьей я подвигну тебя к изучению внутренностей и принципов работы устройств и помогу сэкономить нервы при будущих поломках.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…