posts projects about

Как получить root-права на Adnroid

22 февраля 2019 г. android

Быстроman как получить root-права на Android смартфоне. Я буду использовать OnePlus 3 и Android 8.0, но инструкция должна подойти и к другим устройствам.

Предисловие

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

Подготовка

Для начала, надо на компьютер установить adb и fastboot. Это утилитки из Android SDK для работы с подключенным по USB телефоном.

Для Windows есть удобный установщик adb, fastboothttps://forum.xda-developers.com/showthread.php?t=2317790

Вот здесь официальные дистрибутивы под все платформы — https://developer.android.com/studio/#downloads

Далее качаем TWRP. Это что-то типа livecd для телефона. Образ некой системы, в которой загрузится телефон, и в ней мы установим приложение Magisk.

TWRP (я брал версию 3.1.0-0-twrp.img) — https://dl.twrp.me/twrp/

Если у вас OnePlus, вот TWRP для них — https://eu.dl.twrp.me/oneplus3/ (надо брать этот twrp если вылетает ошибка dtb not fount)

Magisk — это open source приложение, которое дает рут права на телефон, и позволяет скрывать наличие рута от других приложений, чтобы работал Android Pay. Также, обновления системы, которые прилетают “по воздуху”, не должны сломаться. Лучше использовать Magisk, а не SuperSU.

Magisk - https://github.com/topjohnwu/Magisk/releases

Теперь включим режим разработчика на телефоне. Для этого в настройках, в разделе “О телефоне”, надо несколько раз нажать на “Номер сборки”. После раза 10-го, появится сообщение “Теперь вы разработчик”, и в настройках появится новый пункт “Для разработчиков”.

Разблокировка загрузчика

Разблокировка загрузчика удаляет все данные с телефона и sd-карты

Разблокировка загрузчика без установленного далее Magisk, может сломать Android Pay.

Для разблокировки:

  1. В настройках “Для разработчиков” включаем “Отладка по USB”, “Заводская разблокировка” и “Варианты перезагрузки” Oneplus menu Oneplus menu

  2. Загружаемся в fastboot mode. Для этого зажимаем кнопку выключения, выбираем “Перезагрузка” и далее “Загрузчик” Oneplus reboot mode Второй способ — выключить телефон, зажать клавишу громкости вверх и клавишу включения. Через несколько секунд появится fastboot mode Oneplus fastboot mode

  3. Подключаем телефон по USB-кабелю, и проверяем что устройство доступно в системе. Для этого выполняем:

    $fastboot devices
    fa______d        fastboot
    
    В списке должен быть телефон

  4. ПОСЛЕ ЭТОЙ КОМАНДЫ ТЕЛЕФОН ПЕРЕЗАГРУЗИТСЯ И ВСЕ ДАННЫЕ БУДУТ УДАЛЕНЫ. Делайте бэкапы всех данных до этого шага.

    $fastboot oem unlock
    
    На телефоне выбираем качелькой громкости Yes, подтверждаем клавишей питания. При загрузке появится меню с выбором режима, выбираем качелькой просто Start, и подтверждаем клавишей питания. Телефон долго будет перезагружаться, и загрузится сброшенным в заводское состояние.

Теперь загрузчик разблокирован.

Получение root

  1. Подключаем телефон к компьютеру в режиме передачи файлов MTP
  2. Заливаем на телефон zip-файл Magisk, скачанный выше из github
  3. Загружаемся в TWRP. Для этого перезагружаем телефон в fastboot mode (см. пункт 2 инструкции выше как разблокировать загрузчик) и на компьютере выполняем:
    $fastboot boot twrp.img
    downloading 'boot.img'...
    OKAY [  0.565s]
    booting...
    OKAY [  0.464s]
    finished. total time: 1.044s
    
    Oneplus TWRP
  4. В TWRP выбираем Install, и устанавливаем залитый на телефон zip Magisk. Oneplus TWRP install magisk
  5. После установки TWRP предлагает очистить кэш (wipe). Это не нужно, просто ребутаем
  6. После ребута появляется приложение Magisk Manager. Если этого не произошло, попробуйте взять другую версию TWRP и повторить процесс. Oneplus magisk

Все, теперь с помощью Magisk Manager можно выдавать root-овые права приложениям, которые их запрашивают, а также скрывать от других приложений, что этот девайс рутованный, чтобы не сломать Android pay.