LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

В общем всё получилось, напишу краткий гайд для таких же чайников. Это для Xiaomi Mi A2, на других телефонах может быть по-другому.

Использованная информация:

  • Magisk Installation Guide - обязательно прочитайте, там куча вариантов установки, я описываю самый «правильный».

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

Часть нулевая - обновить ОС на телефоне до последней версии стандартными средствами.

Часть первая - настройка компьютера и спаривание с телефоном. Конечная цель - чтобы работал adb.

  1. В андроиде нужно включить Developer Mode: зайти в Settings / About phone / тыкнуть 7 раз в Build number. Порадоваться, что вы теперь Developer.

  2. В андроиде нужно включить Settings / System / Advanced / Developer options / USB debugging / ok.

  3. Теперь про компьютер, к которому нужно будет подключить телефон через USB. Я использую Fedora. Для начала надо установить Android SDK. У меня установлен плагин Android для Idea, через который я установил SDK, но если вам не нужно разрабатывать приложения для Android, проще скачать SDK с сайта без Android Studio и распаковать куда-нибудь. У меня он распакован в ~/apps/android. В репозиториях дистрибутива оно вроде тоже есть, но я ими стараюсь для такого софта не пользоваться, на свой страх и риск используйте, если хотите. Можно добавить ~/apps/android/platform-tools в $PATH, я не добавлял.

  4. Подключить телефон и выполнить ~/apps/android/platform-tools/adb devices. На моём компьютере она не работала: телефон показывался в списке, но не хватало разрешений. Чтобы решить эту проблему, я сделал так:

sudo groupadd adb
sudo usermod -aG adb myuser

Далее нужно подключить устройство и написать lsusb. В выводе будет строчка вида

Bus 001 Device 009: ID 2717:4ee7 Xiaomi Inc. SDM660-MTP _SN:7F20843D

Этой строчке соответствует файл /dev/bus/usb/001/009. Если посмотреть его права, то будет понятно, что прав на запись действительно не хватает.

Далее я создал файл /etc/udev/rules.d/99-adb.rules и в нём написал

SUBSYSTEM=="usb", ATTR{idVendor}=="2717", ATTR{idProduct}=="4ee7", GROUP="adb", MODE="0664"

Все значения из той строчки от lsusb, если что. У вас наверняка будут другие.

После этого лучше всего просто перезагрузить компьютер.

  1. Команда ~/apps/android/platform-tools/adb devices должна показывать подключенное устройство без всяких ошибок. В первый раз телефон потребует подтверждения.

Часть вторая - подготовка патченного boot.img.

  1. На телефоне включить возможность установки apk: Settings / Apps and Notifications / Advanced / Special app access / Install unknown apps / File Manager.

  2. На телефоне зайти по адресу https://github.com/topjohnwu/Magisk/releases и скачать Magisk-v23.0.apk (или какой там последний будет). Ну и установить.

  3. Найти и скачать тот образ, с которого установлен ваш телефон. Для моего это произошло так:

3.1. Зайти на https://xiaomifirmwareupdater.com/

3.2. Выбрать в меню сайта Downloads/MiUI.

3.3. Набрать в поиске «a2»

3.4. Нажать Download в строке Mi A2 Global Fastboot V11.0.28.0.QDIMIXM 10.0 1.7 GB

3.5. На этой странице промотать вниз и найти образ со строчкой Type: Fastboot, его и скачать.

3.6. Скачается файл https://bigota.d.miui.com/V11.0.28.0.QDIMIXM/jasmine_global_images_V11.0.28.0.QDIMIXM_20210702.0000.00_10.0_d88fa668a6.tgz

3.7. Удостовериться, что файл скачивается с домена miui.com.

3.8. Удостовериться, что MD5 на сайте https://xiaomifirmwareupdater.com/ начинается с той же строки, которой кончается имя скачанного файла.

3.9. Проверить MD5 скачанного файла.

  1. Я распаковал этот .tgz файл. Появился каталог, в нём куча файлов, из которых нужен только файл boot.img. Он был в каталоге jasmine_global_images_V11.0.28.0.QDIMIXM_10.0/images.

  2. Засунуть этот файл на телефон:

~/apps/android/platform-tools/adb push ~/Downloads/jasmine_global_images_V11.0.28.0.QDIMIXM_10.0/images/boot.img /storage/self/primary/Download/
  1. Запустить Magisk на телефоне, выбрать там Install, выбрать boot.img в папке с загрузками, нажать Install. Процесс займёт некоторое время. В конце концов в папке с загрузками сгенерируется файл с именем вида magisk_patched-23000_jaofM.img, его вытаскиваем на компьютер:
~/apps/android/platform-tools/adb pull /storage/self/primary/Download/magisk_patched-23000_jaofM.img ~/Downloads/

Часть третья - разблокировка загрузчика.

  1. В андроиде нужно включить возможность разблокировки загрузчика: Settings / System / Advanced / Developer options / OEM unlocking

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

  1. Перезагрузиться в режим fastboot. Проще всего набрать ~/apps/android/platform-tools/adb reboot bootloader но можно и какие-то там кнопочки при перезагрузке зажимать.

  2. USB-устройство будет другое, смотрите часть первую, пункт 4 при необходимости разобраться с правами, делайте всё точно так же, просто в файл 99-adb.rules добавить ещё одну строчку, перезагружаться после этого не надо, только переткнуть устройство. ~/apps/android/platform-tools/fastboot devices должен работать нормально.

  3. Собственно великий и могучий момент - разлочить загрузчик:

~/apps/android/platform-tools/fastboot flashing unlock

На телефоне появится меню, кнопками регулирования громкости выбрать пункт Unlock the bootloader и нажать Power для подтверждения.

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

Во время загрузки телефона у меня снизу появилась надпись «Unlocked».

  1. См. часть первую, пункты 1 и 2.

Часть четвёртая, установка пропатченного boot

  1. Опять перезагрузиться в режим fastboot: ~/apps/android/platform-tools/adb reboot bootloader

  2. Установить пропатченный boot:

~/apps/android/platform-tools/fastboot flash boot ~/Downloads/magisk_patched-23000_jaofM.img
  1. Перезагружаемся: ~/apps/android/platform-tools/fastboot reboot

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

  3. После перезагрузки запускаем опять Magisk, копаемся в настройках, настраиваем что вам надо. Мне, например, root нужен только в adb, что я и настроил. В принципе всё.

Часть пятая, использование root:

  1. Открываем shell: adb shell

  2. Получаем рута: su и сразу на телефоне подтверждаем.

Собственно всё. Также прочитайте, как обновлять ОС, чтобы не потерять рута: OTA Upgrade Guides.

Исходная версия Legioner, :

В общем всё получилось, напишу краткий гайд для таких же чайников. Это для Xiaomi Mi A2, на других телефонах может быть по-другому.

Использованная информация:

  • Magisk Installation Guide - обязательно прочитайте, там куча вариантов установки, я описываю самый «правильный».

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

Часть нулевая - обновить ОС на телефоне до последней версии стандартными средствами.

Часть первая - настройка компьютера и спаривание с телефоном. Конечная цель - чтобы работал adb.

  1. В андроиде нужно включить Developer Mode: зайти в Settings / About phone / тыкнуть 7 раз в Build number. Порадоваться, что вы теперь Developer.

  2. В андроиде нужно включить Settings / System / Advanced / Developer options / USB debugging / ok.

  3. Теперь про компьютер, к которому нужно будет подключить телефон через USB. Я использую Fedora. Для начала надо установить Android SDK. У меня установлен плагин Android для Idea, через который я установил SDK, но если вам не нужно разрабатывать приложения для Android, проще скачать SDK с сайта без Android Studio и распаковать куда-нибудь. У меня он распакован в ~/apps/android. В репозиториях дистрибутива оно вроде тоже есть, но я ими стараюсь для такого софта не пользоваться, на свой страх и риск используйте, если хотите. Можно добавить ~/apps/android/platform-tools в $PATH, я не добавлял.

  4. Подключить телефон и выполнить ~/apps/android/platform-tools/adb devices. На моём компьютере она не работала: телефон показывался в списке, но не хватало разрешений. Чтобы решить эту проблему, я сделал так:

sudo groupadd adb
sudo usermod -aG adb myuser

Далее нужно подключить устройство и написать lsusb. В выводе будет строчка вида

Bus 001 Device 009: ID 2717:4ee7 Xiaomi Inc. SDM660-MTP _SN:7F20843D

Этой строчке соответствует файл /dev/bus/usb/001/009. Если посмотреть его права, то будет понятно, что прав на запись действительно не хватает.

Далее я создал файл /etc/udev/rules.d/99-adb.rules и в нём написал

SUBSYSTEM=="usb", ATTR{idVendor}=="2717", ATTR{idProduct}=="4ee7", GROUP="adb", MODE="0664"

Все значения из той строчки от lsusb, если что. У вас наверняка будут другие.

После этого лучше всего просто перезагрузить компьютер.

  1. Команда ~/apps/android/platform-tools/adb devices должна показывать подключенное устройство без всяких ошибок. В первый раз телефон потребует подтверждения.

Часть вторая - подготовка патченного boot.img.

  1. На телефоне включить возможность установки apk: Settings / Apps and Notifications / Advanced / Special app access / Install unknown apps / File Manager.

  2. На телефоне зайти по адресу https://github.com/topjohnwu/Magisk/releases и скачать Magisk-v23.0.apk (или какой там последний будет). Ну и установить.

  3. Найти и скачать тот образ, с которого установлен ваш телефон. Для моего это произошло так:

3.1. Зайти на https://xiaomifirmwareupdater.com/

3.2. Выбрать в меню сайта Downloads/MiUI.

3.3. Набрать в поиске «a2»

3.4. Нажать Download в строке Mi A2 Global Fastboot V11.0.28.0.QDIMIXM 10.0 1.7 GB

3.5. На этой странице промотать вниз и найти образ со строчкой Type: Fastboot, его и скачать.

3.6. Скачается файл https://bigota.d.miui.com/V11.0.28.0.QDIMIXM/jasmine_global_images_V11.0.28.0.QDIMIXM_20210702.0000.00_10.0_d88fa668a6.tgz

3.7. Удостовериться, что файл скачивается с домена miui.com.

3.8. Удостовериться, что MD5 на сайте https://xiaomifirmwareupdater.com/ начинается с той же строки, которой кончается имя скачанного файла.

3.9. Проверить MD5 скачанного файла.

  1. Я распаковал этот .tgz файл. Появился каталог, в нём куча файлов, из которых нужен только файл boot.img. Он был в каталоге jasmine_global_images_V11.0.28.0.QDIMIXM_10.0/images.

  2. Засунуть этот файл на телефон:

~/apps/android/platform-tools/adb push ~/Downloads/jasmine_global_images_V11.0.28.0.QDIMIXM_10.0/images/boot.img /storage/self/primary/Download/
  1. Запустить Magisk на телефоне, выбрать там Install, выбрать boot.img в папке с загрузками, нажать Install. Процесс займёт некоторое время. В конце концов в папке с загрузками сгенерируется файл с именем вида magisk_patched-23000_jaofM.img, его вытаскиваем на компьютер:
~/apps/android/platform-tools/adb pull /storage/self/primary/Download/magisk_patched-23000_jaofM.img ~/Downloads/

Часть третья - разблокировка загрузчика.

  1. В андроиде нужно включить возможность разблокировки загрузчика: Settings / Developer Mode / ???

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

  1. Перезагрузиться в режим fastboot. Проще всего набрать ~/apps/android/platform-tools/adb reboot bootloader но можно и какие-то там кнопочки при перезагрузке зажимать.

  2. USB-устройство будет другое, смотрите часть первую, пункт 4 при необходимости разобраться с правами, делайте всё точно так же, просто в файл 99-adb.rules добавить ещё одну строчку, перезагружаться после этого не надо, только переткнуть устройство. ~/apps/android/platform-tools/fastboot devices должен работать нормально.

  3. Собственно великий и могучий момент - разлочить загрузчик:

~/apps/android/platform-tools/fastboot flashing unlock

На телефоне появится меню, кнопками регулирования громкости выбрать пункт Unlock the bootloader и нажать Power для подтверждения.

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

Во время загрузки телефона у меня снизу появилась надпись «Unlocked».

  1. См. часть первую, пункты 1 и 2.

Часть четвёртая, установка пропатченного boot

  1. Опять перезагрузиться в режим fastboot: ~/apps/android/platform-tools/adb reboot bootloader

  2. Установить пропатченный boot:

~/apps/android/platform-tools/fastboot flash boot ~/Downloads/magisk_patched-23000_jaofM.img
  1. Перезагружаемся: ~/apps/android/platform-tools/fastboot reboot

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

  3. После перезагрузки запускаем опять Magisk, копаемся в настройках, настраиваем что вам надо. Мне, например, root нужен только в adb, что я и настроил. В принципе всё.

Часть пятая, использование root:

  1. Открываем shell: adb shell

  2. Получаем рута: su и сразу на телефоне подтверждаем.

Собственно всё. Также прочитайте, как обновлять ОС, чтобы не потерять рута: OTA Upgrade Guides.