Как разблокировать телефон на Android, если вы забыли графический ключ или пароль

screenshot com Новости
Содержание
  1. Что происходит при включении и запуске android?
  2. Dirtycow (cve-2022-5195)
  3. Google pixel и nexus
  4. Hard reset и перепрошивка
  5. Hooks
  6. Huawei и honor
  7. Lenovo
  8. Meizu
  9. Restart
  10. Root, да не тот
  11. Samsung
  12. Uevent_helper
  13. Xiaomi
  14. Включение отладки по usb
  15. Всё-таки отключаем selinux
  16. Если на устройстве 2 учетных записи google, у обеих есть root, а вход заблокирован только для одной
  17. Загрузка fota
  18. Как включить интернет на заблокированном гаджете
  19. Как сбросить графический ключ посредством adb?
  20. Китайские телефоны с чипами mtk
  21. Кнопка «забыли пароль?»
  22. Копаем recovery
  23. Копаем исходники ядра
  24. Лежачий робот при входе в recovery
  25. Патченный adbd
  26. Перезагружаемся в download mode
  27. Пробуем отключить selinux
  28. Разблокировка графического ключа с помощью adb
  29. Разблокировка звонком
  30. Разблокировка с использованием adb
  31. Разблокировка с помощью аккаунта google
  32. Разблокировка с помощью фирменных сервисов и приложений
  33. Разблокировка устройств с правами root
  34. Расшифровка kyocera properties
  35. Сброс настроек через recovery
  36. Сброс пароля или графического узора через twrp
  37. Способ 1
  38. Способ 2
  39. Удаление данных через сервис «найти устройство»
  40. Уязвимость в qsee
  41. Цифровая подпись aboot и boot разделов
  42. Эксперименты с загрузчиками
  43. Узнайте больше о Huawei

Что происходит при включении и запуске android?

android-was-passiert
Что происходит при запуске Android

Перед нами выключенный смартфон под управлением Android. Давайте разберемся, что произойдет, если его включить.

Сначала произойдет запуск BIOS мобильного телефона. ВIOS (Basic Input/Output System ) в переводе с английского означает «Базовая система ввода / вывода». Она постоянно автосохраняется и обеспечивает работу входов и выходов. В частности, эта система также запускает загрузчик (Bootloader).

Как явствует из названия, загрузчик загружает другие части операционной системы, например, ядро. Ядро ​​операционной системы — это основная ее часть. По сути, это нижний уровень системы Android, который отвечает за ход основных процессов и организацию данных.

Затем запускается основная операционная система под названием «ПЗУ/ ROM». ROM означает «Read Only Memory», или «Постоянное запоминающее устройство», используемое для запоминания всего массива неизменяемых данных. Будучи обычным пользователем, вы ничего не можете в ней поменять.

Параллельно загрузчик запускает не только ядро, но и Recovery, или систему восстановления.Если система Android вдруг оказывается повреждена, можно загрузить Recovery и из нее восстановить OS с нуля или с момента сохранения. Также в системе Recovery можно (и нужно) создавать резервные копии.

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

Если загрузчик зашифрован, могут быть установлены лишь самые срочные обновления системы от изготовителя. То же самое относится и к заблокированному загрузчику, но, в отличие от зашифрованного, его можно разблокировать.

Dirtycow (cve-2022-5195)

Простыми словами dirtycow (рабочий эксплойт под Android) позволяет заменить память любого процесса (полезно, если хорошо знаешь ASM) или любой доступный для чтения файл, даже если он находится на readonly файловой системе. Желательно, чтобы подменяемый файл был меньше либо равен по размеру заменяемому.

Основная атака в dirtycow для Android — подмена /system/bin/run-as — подобие sudo для отладки приложений. Начиная с API android-19 (таблица соответствия версий API и Android) /system/bin/run-as имеет CAP_SETUID и CAP_SETGID capabilities флаги (в старых версиях используется обычный suid bit — 6755).

$ getcap bin/run-as 
bin/run-as = cap_setgid,cap_setuid ep

Если файловая система будет примонтирована в режиме read-write, то всё, что dirtycow подменяет, окажется на файловой системе. Потому необходимо сделать backup оригинального файла и восстановить его после получения доступа, либо не перемонтировать файловую систему в режиме read-write. Как правило раздел /system в Android по умолчанию примонтирован в режиме read-only.

Не зря dirtycow считается одной из серьезнейших уязвимостей, обнаруженных в Linux. И при наличии знаний с помощью dirtycow можно обойти все уровни защиты ядра, в том числе и SELinux.

Google pixel и nexus

На смартфонах Nexus и Pixel сначала придется перевести устройство в режим Fastboot, а уже из меню Fastboot – в режим восстановления. Для этого на выключенном смартфоне одновременно удерживайте кнопку включения и клавишу громкости «Вниз».

С помощью кнопок регулировки громкости установите стрелку на «Recocery mode» и нажмите на кнопку питания, чтобы подтвердить выбор.

Hard reset и перепрошивка

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

При выполнении Hard Reset телефон или планшет вернется в состояние, как после покупки. А перепрошивка равнозначна полной переустановке операционной системы.

Аппаратный сброс выполняется быстро и просто. Используя инструкцию для вашей модели гаджета, войдите в меню Recovery (на скриншоте приведено стандартное меню восстановления, которое установлено на большинстве аппаратов) и выберите опцию Wipe data/Factory reset. Девайс перезагрузится и через несколько минут станет девственно-чистым.

Перепрошивка тоже не представляет собой особых сложностей. Самое трудоемкое в ней — найти подходящий для вашей модели дистрибутив. Дальше просто следуйте инструкциям по установке, которые, как правило, его сопровождают.

Hooks

Kyocera долго не думала, а просто запилила хуки на потенциально опасные операции в Android: mount, umount, insmod (к загрузке разрешен всего один модуль — wlan и только если его загрузит init процесс), и прочее.

Вот где крылась проблема recovery. Он не мог отмонтировать файловую систему /system! Эти операции позволялись только init процессу. В том числе я не мог отключить SELinux потому что эта возможность была отключена при компиляции ядра. Обойти эти хуки можно было только, если ядро загружено с определенными параметрами (kcdroidboot.mode=f-ksg или androidboot.mode=kcfactory, о них чуть позже).

Huawei и honor

На смартфонах Huawei и Honor, для входа в меню Recovery, могут использоваться 2 комбинации клавиш, пробуйте:

  • Зажмите кнопку включения и клавишу понижения громкости.

  • Зажмите кнопку включения и клавишу увеличения громкости.

Lenovo

На смартфонах Lenovo одновременно нажмите и удерживайте 3 кнопки: «ВКЛ» и обе клавиши регулировки громкости.

Meizu

Телефоны Meizu лишены «классического recovery». Здесь в меню присутствуют только два пункта: «System upgrade» (через него выполняется установка обновлений) и «Clear data» (очистка памяти).

Для входа в это меню, зажмите кнопку включения и повышения громкости.

Restart

Тоже интересный для изучения файл. В нем описываются возможные варианты загрузки телефона:

Root, да не тот

Первое, что я сделал это использовал dirtycow по прямому назначению — подменил /system/bin/run-as, который задал UID/GID в 0 (тоже самое делает su). Однако монтировать файловую систему я не мог, даже tmpfs. Загружать модули ядра я тоже не мог.

Просматривать dmesg — нет. Я даже не мог просматривать директории, которые имели права 700 и принадлежали другим системным пользователям. Я мог лишь читать и писать в блочные устройства, а просмотр файлов или директорий был возможен благодаря заданию UID/GID определенного пользователя (написал свой велосипед — аналог su, который мог задавать selinux context и пользователя/группу).

Первым делом я сделал дамп всей прошивки, boot и recovery:

Samsung

На новых телефонах Samsung нажмите и удерживайте 3 кнопки: Bixby, Питание и Громкость « » или Домой, Питание и Громкость « ». На старых смартфонах используется сочетание клавиш Домой и включения. На старых планшетах – включения и повышения громкости.

Uevent_helper

В моём случае, на удивление, была возможность задать /sys/kernel/uevent_helper. Если в этот параметр записать путь до executable файла (shell script тоже сойдёт), то он с определенным интервалом будет запускаться от процесса init в контексте init и что самое важное с full capabilities.

Я написал скрипт:

Xiaomi

Нажмите и удерживайте клавишу увеличения громкости и кнопку питания.

При появлении меню, кликните по предпоследнему пункту справа. Язык изменится на английский.

Теперь, чтобы перевести устройство в режим восстановления, в меню выберите раздел «recovery».

Включение отладки по usb

Следующий шаг — включить отладку по USB на Android. Для этого проделайте следующие действия:

  1. Зайдите в настройки, пролистайте вниз — «О телефоне».
  2. Несколько раз нажмите по «Номер сборки», пока не увидите сообщение о том, что вы стали разработчиком.
  3. Вернитесь к главной странице настроек и откройте пункт «Для разработчиков».
  4. В разделе «Отладка» включите «Отладка по USB». Если в параметрах разработчика присутствует пункт OEM разблокировка, то включите его тоже. Включение отладки по USB на Android

Всё-таки отключаем selinux

Из спортивного интереса я всё-таки решил отключить SELinux. Заменить defined значение selinux_enabled мы не можем, но мы можем разыменовать структуру с hooks функциями security_ops.

Это делается вызовом функции reset_security_ops:

void (*_reset_security_ops)(void) = NULL;
... ... ...
_reset_security_ops = (void (*)(void))kallsyms_lookup_name("reset_security_ops");
if (_reset_security_ops != NULL) {
  _reset_security_ops();
}

После этого защита SELinux работать не будет, но система всё еще будет думать, что она включена. Потому возможны некоторые ошибки в работе системы.

Если на устройстве 2 учетных записи google, у обеих есть root, а вход заблокирован только для одной

Войдите в систему под учетной записью второго пользователя. Используя файловый менеджер Root Explorer, Root Browser или их аналоги, откройте каталог /data/system и удалите следующие файлы:

  • gesture.key;
  • locksettings.db-wal;
  • locksettings.db;
  • locksettings.db-shm.

После этого вход для первого пользователя тоже будет свободен.

Загрузка fota

Почему boot раздел не грузится из раздела fota? Ведь они подписаны одним ключём. Если бы загрузка произошла, то я бы получил разлоченный телефон, в котором не пришлось бы подменять модули.

Как включить интернет на заблокированном гаджете

Основная масса способов разблокировки смартфонов и планшетов эффективна при одном условии — если девайс подключен к Интернету. Включить Интернет без доступа на рабочий стол можно разными способами, но срабатывают они, к сожалению, не всегда.

Вот некоторые из таких способов:

  • Перезагрузите устройство. Ваша задача — уловить момент появления в верхней части экрана панели уведомлений, за которой скрывается шторка, и успеть оттянуть ее вниз, пока не открылся экран блокировки. При этом у вас появится возможность включить Wi-Fi или пакетную передачу данных через 3G/4G. Метод работает на смартфонах и планшетах разных марок — Meizu, Xiaomi, Lenovo, Asus и т. д., но не на всех.
  • На смартфонах Sony Xperia доступ в Интернет включается через сервисное меню, которое открывается звонком на номер *#*#7378423#*#*. Номер можно набрать на клавиатуре экстренного вызова, находясь на экране блокировки. Открыв меню, перейдите в раздел «Service Tests» -> «WLAN», где доступна опция активации Wi-Fi, и включите Интернет. Кстати, не исключено, что способ сработает и на девайсах других марок.
  • На некоторых смартфонах функция пакетной передачи данных 3G/4G активируется через меню копки питания.
  • Иногда помогает замена SIM-карты на другую, на тарифном плане которой есть услуга подключения к Интернету, а на счету достаточно средств.
  • Если ни один из способов не помог подключить мобильное устройство к Интернету, остается последнее — подсоединить его напрямую к LAN-порту роутера, используя переходник LAN-USB и кабель OTG. Положительный результат достигается примерно в половине случаев.

Как сбросить графический ключ посредством adb?

Подготовка к сбросу графического ключа:
1.

Данный софт — часть Android SDK, поэтому, если вы решите установить ADB на свой ПК, сначала придется зайти на

официальный сайт

, чтобы скачать

Android Studio

. В случае, если вам требуется только Android Debug Bridge, можно обойтись без установки полноценного Android SDK. Достаточно загрузить архив содержащий

platform-tools

.

2.

Есть резон ознакомиться и с

пошаговой инструкцией

по сбросу блокировки на Android-устройствах — там приведены несколько эффективных методов, позволяющих удалить графический ключ и пароль.

3. Обязательно включите отладку по USB в разделе для разработчиков, как только приобретете устройство. Проблема в том, что активация этого пункта у ряда моделей при подключении планшета или смартфона к домашнему компьютеру невозможна без этого предварительного действия, а значит, сбросить графический ключ с помощью ADB у вас не получится.

Инструкция по сбросу графического ключа:
1. Подключите Android-устройство к компьютеру и в любую из папок разархивируйте архив с platform-tools;

2.

Чтобы начать работу с программой, откройте папку «platform-tools» и с зажатой кнопкой «Shift» кликните на свободное пространство второй кнопкой мыши. Выбираем из появившегося списка пункт «

Открыть окно команд

»;

3.

Далее последовательно вводим указанные ниже команды и подтверждая их нажатием «Enter».

Вариант первый:

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’;
.quit

Вариант второй:

adb shellrm /data/system/gesture.key

Вариант третий:

adb shell
su
rm /data/system/locksettings.db
rm /data/system/locksettings.db-wal
rm /data/system/locksettings.db-shm
reboot

Вариант четвертый:

adb shell
rm /data/system/gesture.key

После ввода команд выполните перезагрузку Android-устройства. Далее можете просто ввести

новый графический ключ

.

Мы не утверждаем со 100%-ной уверенностью, что хотя бы один из способов обязательно поможет, но стоит все-таки испробовать их все. Многое зависит от модели устройства, от прошивки. Но все-таки многим пользователям удавалось именно так сбросить графический ключ и избавиться от блокировки уже с первой попытки. Желаем удачи!

Китайские телефоны с чипами mtk

  1. Удерживайте клавишу увеличения громкости и кнопку питания.

  2. Когда появится меню «Select Boot Mode», при помощи клавиши повышения громкости переместите стрелочку на пункт «Recovery Mode» и выберите его, нажав на кнопку уменьшения громкости.

Кнопка «забыли пароль?»

Первый способ подходит для старых устройств, работающих на Android 4.4 и ниже. Вводите любой неправильный пароль или графический узор до тех пор, пока на экране не всплывет сообщение: «Повторите через 30 секунд». Также в углу появится кнопка «Забыли пароль?».

Подобную функцию редко встретишь в прошивках, основанных на Android 5.0 и новее. Но некоторые производители по-прежнему добавляют ее в систему, так что пробуйте – возможно, это именно ваш случай.

Если вы не помните пароль от аккаунта Google, перейдите по ссылке и пройдите процедуру восстановления учетной записи.

Копаем recovery

Проверяю разницу между boot и recovery разделами. Все идентично кроме initramfs. В initramfs раздела recovery изучаю init.rc, в котором описан лишь один сервис, который запускает /sbin/recovery. Изучаю strings sbin/recovery | less, затем исходники оригинального recovery.

Как видно, по умолчанию recovery просто отображает логотип Android. А если необходимо что-то сделать, то в штатном режиме в раздел /cache записывается файл /cache/recovery/command, который может содержать параметры запуска recovery. Если в этот файл записать –show_text то мы должны увидеть меню.

Запускаю dirtycow exploit, выставляю UID/GID, записываю файл и запускаю adb reboot recovery. Телефон перезагружается и я попадаю в меню стандартного recovery. Уже что-то. Пробую прошить ZIP файл с supersu через adb sideload.

Выясняю, что initramfs содержит публичный ключ res/keys в формате minicrypt, которым проверяется цифровая подпись ZIP файла. Оказалось это стандартный тестовый ключ Android, и что я могу подписать этим ключём любой архив. Проверить это можно следующим образом:

java -jar dumpkey.jar android/bootable/recovery/testdata/testkey.x509.pem > mykey
diff -u mykey res/keys

Попробовал установить ZIP напрямую с sdcard, но в recovery при монтировании sdcard возникала ошибка. Изучил etc/recovery.fstab, оказалось что в режиме recovery sdcard монтируется как vfat:

Копаем исходники ядра

Лицензия GPL обязывает производителей смартфонов выкладывать исходники ядра. Спасибо Линусу и Столлману за это. Иногда производители выкладывают что-то левое, иногда правильные исходники, но без defconfig файла, иногда правильные и очень редко с инструкцией как их собирать (например LG).

В моём случае были исходники с правильным defconfig но без инструкции. Немного попотев я смог собрать ядро и убедился, что это не полная липа.

Через продолжительное время я остановился на двух файлах:

Лежачий робот при входе в recovery

Если вместо меню Recovery на экране появляется лежачий Android и надпись «Команды нет» («No command»), нажмите на клавишу повышения громкости и кнопку питания. После этого загрузится Рекавери.

Управление в Recovery осуществляется с помощью аппаратных клавиш. Чтобы перемещаться по пунктам, используйте кнопки громкости: перемещение вверх – это Громкость «Плюс», а вниз, соответственно, – Громкость «Минус». Выбор делается кнопкой питания.

В меню Рекавери выберите пункт, отвечающий за сброс настроек – «Wipe data/factory reset».

Патченный adbd

Т.к. мне надоело иметь доступ к урезанной консоли Android, а патчить бинарник adbd мне лень, то я решил собрать свой adbd

с блэкджеком и шлюхами

Перезагружаемся в download mode

int (*_enable_dload_mode)(char *str) = (int(*)()) 0xc0d0cc18;
... ... ...
_enable_dload_mode("dload_mode");

Та же операция работает и с download_mode, о котором я писал выше. После загрузки модуля телефон перезагружается в спец режим, который работает как usb mass storage device. Т.е. я имею доступ ко всем разделам телефона без защиты от чтения! Попробовал записать свой recovery.

Пришлось ограничить скорость записи, иначе телефон отваливается и запись прекращается. Возможно это результат переполнения кэша mass storage загрузчика. Пришлось написать хак:

Пробуем отключить selinux

На тот момент я думал, что все ошибки об отсутствии привилегий вызваны SELinux (я полностью забыл о том, что могут быть урезаны capabilities). Логов dmesg я не видел, logcat ничего релевантного не показывал. И я начал думать как отключить SELinux.

Первая зацепка, которую я смог найти:

$ grep -A2 reload_policy boot/ramfs/init.rc 
on property:selinux.reload_policy=1
    restart ueventd
    restart installd

Исходники говорят о том, что при изменении этой опции, init перезагружает политики SELinux из файла /sepolicy.

Т.е. я при помощи dirtycow могу перезаписать /sepolicy и командой setprop selinux.reload_policy 1 загрузить обновленную политику.

Для начала нужно выяснить что из себя представляет /sepolicy. Изучить его можно с помощью команды sesearch (пакет setools в Debian).

$ sesearch --allow sepolicy
$ sesearch --neverallow sepolicy
$ sesearch --auditallow sepolicy
$ sesearch --dontaudit sepolicy

В моём случае /sepolicy содержал только allow, что значит — при enforcing режиме SELinux в Android разрешено делать только то, что объявлено в политике. А процессу init разрешалось только загружать политику, но не отключать:

$ sesearch --allow sepolicy | grep 'load_policy'
   allow init kernel : security load_policy ;

Моей задачей было — разрешить init контексту задать selinux->enforce в permissive (setenforce 0).

Первое, что я сделал — собрал стандартную политику стокового Android, подменил оригинальный /sepolicy, загрузил (под root пользователем setprop selinux.reload_policy 1) и получил сообщение в статусной строке, что телефон находится в незащищенном режиме.

Первая же мысль: стоковая политика не подходит этому телефону и он при отсутствии прав начинает тупить.

Я собрал новую политику, в которой просто описал все существующие SELinux context и объявил их permissive. Тоже не помогло.

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

Я нашел статью, в которой говорится как “декомпилировать” политику. Немного повозившись я смог собрать все зависимости и запустить утилиту sedump. На выходе я получил текстовый файл, который я смог собрать обратно (для KitKat checkpolicy -M -c 26 -o sepolicy.new policy.conf) и даже получить файл с точно таким же размером что и оригинальный sepolicy, но разным hex содержимым. Загрузка новой политики вызвала точно такие же результаты, что и ранее — телефон через какое-то время перезагружался.

Я решил собрать две политики: из policy.conf, который я получил и из policy.conf, в котором добавлены все привилегии для allow init kernel : security, в том числе и setenforce. Сравнить файлы в hex и по аналогии заменить байты в оригинальном sepolicy.

Как выяснилось две пересобранные политики отличались всего парой байт. Я начал искать похожие совпадения в оригинальном sepolicy, но не нашёл. Затем я просто написал brute force скрипт, который в заданном диапазоне смещений заменяет два байта на “0xFF,0xFF”, запускает sesearch –allow | grep “нужный результат”.

Чуть позже я нашел утилиту sepolicy-inject, которая добавляет привилегии в уже скомпилированный sepolicy файл. Если правило уже существует, то добавление максимальных привилегий не увеличивает конечный размер политики. К сожалению запуск утилиты добавляет всего одно правило за раз.

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

adb shell run-as /data/local/tmp/run -u system -c u:r:init:s0 load_policy /data/local/tmp/sepolicy.new

Можно было добавить любой permissive домен, загрузить новую политику и работать в контексте этого домена (кстати, supersu от chainfire для новых версий Android так и работает). Но даже это не дало возможности отключить SELinux. Я решил копать в другом направлении.

Разблокировка графического ключа с помощью adb

Следующее решение позаимствовано из топика на форуме 4PDA. Используя этот метод, удастся разблокировать графический ключ, не удаляя данные с телефона. Но для его реализации должна быть включена отладка по USB, и понадобится утилита ADB. Способ подойдет для устройств, работающих на старых версиях Android до 5.0. В новых прошивках используемая уязвимость исправлена.

Разблокировка звонком

Способ снятия блокировки звонком эксплуатирует некую уязвимость в прошивке, поэтому на современных аппаратах он срабатывает крайне редко, практически никогда. Зато основная масса устройств на Андроиде 2.1 и старше разблокируются с его помощью довольно часто.

Метод заключается в звонке на заблокированный телефон. После принятия вызова нажмите кнопку «Home», чтобы перейти на рабочий стол. Не прерывая звонка, откройте приложение «Параметры» и отключите запрос ввода ключа.

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

Разблокировка с использованием adb

ADB (отладочный мост ОС Андроид) — это консольное приложение, которое устанавливается на компьютер в составе пакета Android-SDK и используется для управления подключенными Андроид-девайсами. ADB предназначен для отладки системы, устройств и разработки приложений, но может послужить и нашим задачам.

Для применения перечисленных ниже методик дополнительно нужны права root (поскольку вы пользуетесь ADB, они у вас, скорее всего, уже получены). Если же их нет, инструкция может не сработать.

Разблокировка с помощью аккаунта google

Важно! Прежде чем устанавливать на телефон пароль или графический ключ, необходимо зарегистрировать на нем аккаунт Google, данные которого вы хорошо помните. А лучше — храните в надежном месте. Этим вы застрахуете себя от многих серьезных проблем в будущем!

Разблокировка с помощью фирменных сервисов и приложений

О том, что ваш смартфон однажды окажется намертво заблокированным, лучше помнить до того, как это произошло. И заранее готовить обходные пути, благо такую возможность предоставляют некоторые производители мобильных устройств. Например, у Samsung есть сервис Find my mobile, который позволяет удалить любой пароль, пин-код и отпечаток пальца владельца без прямого доступа к девайсу.

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

Для гаджетов марки HTC существует фирменная Windows-утилита HTC Sync Manager, дающая возможность устанавливать приложения на телефон через ПК, с которым первый соединен USB-кабелем. С ее помощью нужно залить в мобильный девайс утилиту Screen Lock Bypass (поддерживает версии от 1.5) и выполнить действия по разблокировке. Однако для использования этой возможности на заблокированном гаджете должны быть включены отладка по USB и Интернет.

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

Разблокировка устройств с правами root

Девайсы, чьи владельцы успели получить права root, разблокировать несколько проще, так как для этого есть чуть больше возможностей. Одна из них — мобильное приложение SMS Bypass. Оно платное, стоит около $2, но в ситуации блокировки может оказать вам неоценимую помощь.

Внимание! Если ваше устройство пока не заблокировано, успейте установить приложение до того, как наступит случай его применить! Сделайте это сейчас!

Работает SMS Bypass очень просто. Пока смартфон не заблокирован, приложение никак не беспокоит владельца. Но в случае проблем вам достаточно отправить на свой номер SMS-сообщение с текстом «1234 reset», чтобы блокировка была сброшена. После получения SMS проблемный смартфон перезагрузится.

Кстати, некоторые устройства с правами root поддерживают установку приложений даже в заблокированном состоянии. Естественно, не напрямую, а через компьютер. Для этого понадобится программа синхронизации телефона и ПК, доступ в Интернет и пароль от аккаунта Google.

Расшифровка kyocera properties

Kyocera наряду с android system properties использует свой внутренний механизм properties, который мне тоже не удалось выяснить. Наверняка там хранятся интересные опции, которые могут влиять в том числе и на снятие защиты bootloader’а. В телефоне есть библиотека libkcjprop_jni.so и демон kcjprop_daemon. Библиотеку можно подключить и использовать её функции, но у меня пока не нашлось времени этого сделать.

Опции пишутся на файловую систему, внутри бинарные данные:

$ ls -la /sysprop/kcjprop/rw/8d9d788ddd5fecfdbc6c5f7c5cecfc    
-rw-rw---- root     root           16 1970-01-22 21:01 8d9d788ddd5fecfdbc6c5f7c5cecfc

Сброс настроек через recovery

Второй метод заключается в сбросе настроек из меню Recovery. Рекавери – это режим восстановления, своего рода BIOS для Android-смартфонов и планшетов. С помощью него можно сбросить настройки телефона до заводских, установить новую официальную прошивку, очистить кэш, сделать бэкап и восстановить данные.

После сброса настроек очистится внутренняя память смартфона: будут удалены установленные приложения, добавленные аккаунты, фотографии (если они сохранялись в память устройства, а не на SD). При этом файлы, загруженные на карту памяти, не будут стерты.

Чтобы зайти в Рекавери, выключите устройство, а потом нажмите и удерживайте определенную комбинацию кнопок до появления заставки. В зависимости от производителя устройства, сочетания клавиш для входа в Recovery, отличаются.

Сброс пароля или графического узора через twrp

Предпоследний способ найден на сайте 4idroid. Как пишет автор, с его помощью можно удалить и пароль, и графический ключ, причем данные на телефоне останутся нетронутыми. Суть заключается в том, что на устройство устанавливается TWRP (кастомное Recovery), а потом через встроенный файловый менеджер удаляются файлы, отвечающие за блокировку экрана.

Разумеется, решение подходит не для всех смартфонов, потому что на большинстве устройств, для установки TWRP, сначала необходимо разблокировать загрузчик, а эта процедура сотрет данные с внутренней памяти. Кроме того, на Android 7.0 и выше, сначала понадобится включить опцию «Заводская разблокировка» («OEM Unlock»), которая расположена в настройках в разделе «Для разработчиков».

Установить TWRP, когда нет доступа к настройкам устройства, удастся на:

  • Китайских смартфонах с процессорами MediaTek – они прошиваются через утилиту SP Flash Tool.

  • Устройствах Samsung, которые «шьются» через программу Odin.

  • Других телефонах с разблокированным загрузчиком, которые прошиваются с помощью утилиты Fastboot.

Для прошивки Recovery на устройствах под управлением Android 7.0 и выше, также придется активировать функцию «Заводская разблокировка», но попасть в настройки на заблокированном телефоне никак не удастся. Поэтому, если вы пользуетесь смартфоном Samsung, работающим на Android 7.0 и новее, или устройством с чипом MTK на той же версии Android, этот способ вам тоже не подойдет.

После установки TWRP, зайдите в него и в главном меню выберите раздел «Advanced».

В меню «Advanced» нажмите на кнопку «File Manager».

С помощью файлового менеджера зайдите в каталог «data/system» и удалите такие файлы (могут присутствовать не все):

  • «gatekeeper.password.key» («password.key» в старых версиях Android);

  • «gatekeeper.pattern.key» («gesture.key» в старых версиях Android);

  • «locksettings.db»;

  • «locksettings.db-wal»;

  • «locksettings.db-shm».

Чтобы удалить файл, щелкните по нему, нажмите «Delete» и сделайте свайп для подтверждения.

Затем выберите «Reboot System» и нажмите «Do Not Install», если не хотите устанавливать официальное приложение TWRP.

Способ 1

  • Подключите заблокированный телефон к ПК с помощью USB-кабеля.
  • Запустите командную строку с правами администратора (если вы работаете под Windows) и поочередно выполните в ней следующие команды:

cd [каталог с ADB]
adb shell
su [при отсутствии прав рут пропустите]
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';
.quit

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

Способ 2

  • Запустите командную строку от имени администратора.
  • Выполните в ней следующие инструкции:

cd [каталог с ADB]
adb shell
su [при отсутствии прав рут пропустите]
rm /data/system/gesture.key
rm /data/system/locksettings.db
rm /data/system/locksettings.db-wal
rm /data/system/locksettings.db-shm
reboot

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

Если на устройстве не включена отладка по USB, выполняйте приведенные выше команды в среде CWM.

Оригинальное описание этих способов разблокировки на английском языке приведено здесь.

Удаление данных через сервис «найти устройство»

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

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

Дважды нажмите «Очистить устройство» и подтвердите удаление, выбрав «Очистить».

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

Автор выражает благодарность Егору Плотницкому за помощь в написании данной статьи.

Уязвимость в qsee

QSEE — защита в процессорах Qualcomm, в которой

недавно

уже достаточно давно

. Суть уязвимости — полный доступ к выполнению команд на уровне Trust Zone. Вплоть до загрузки любого ядра.

Цифровая подпись aboot и boot разделов

Я пытался выяснить каким публичным ключём подписаны boot образы. Распаковал ключи из aboot (binwalk -e aboot), извлек подписи из образов и прошелся всеми публичными ключами по ним. Выяснил, что все образы подписаны одни ключём. С ходу не разобрался как вычислить смещение подписи у boot разделов, потому я просто перепаковываю образ и использую его размер как смещение.

Эксперименты с загрузчиками

Для проведения экспериментов я заказал из штатов за символическую сумму Kyocera Brigadier с разбитым экраном.

Я проверил цифровые подписи aboot загрузчиков. Subject’ы сертификатов оказались идентичными, следовательно они могут быть взаимозаменяемыми. Решился на эксперимент: прошить aboot от KC-S701 в Brigadier. Загрузчик заработал. На удивление, защита emmc от записи с этим загрузчиком не включилась и я смог спокойно восстановить загрузчик от Brigadier.

Тут история могла бы закончиться, но “телефон не загрузился” — это черный экран. И на моё счастье это был черный экран не Qualcomm QHSUSB__BULK, который требует специального подписанного загрузчика для восстановления телефона, а тот самый download mode, который представляет телефон как USB mass storage. Телефон был восстановлен. На сегодняшний день это последнее, что я предпринял.

Оцените статью
Huawei Devices
Добавить комментарий