Почему обновления OTA не играют хорошо с корневыми телефонами
Android основан на Linux, поэтому устройства Android оснащены «корневым» пользователем, который функционирует как учетная запись пользователя «Администратор» в Windows. По умолчанию Android не дает вам доступа к учетной записи root. Rooting - это процесс включения доступа к учетной записи root, устанавливающий su-бинарный файл. Приложения могут называть su для получения повышенных привилегий, чтобы они могли освободиться от изолированной программной среды Android и сделать более мощные вещи. Android не возникает из-за проблем безопасности, к которым это может привести, особенно для менее технически настроенных пользователей.
Корневой процесс также устанавливает приложение, такое как SuperSU, которое контролирует доступ к двоичному файлу su, поэтому вы можете выбрать, какие приложения могут иметь корневой доступ.
Обычно вы теряете свой корневой доступ при установке обновления операционной системы. На Lollipop и более ранних версиях Android обновление по эфиру (OTA) устанавливает ваш системный раздел Android обратно в заводское состояние, удаляя su-файл. На новых устройствах без системного корня он перезаписывает загрузочный образ. И если у вас есть собственное восстановление, обновление OTA, возможно, не сможет установить себя вообще.
Когда-то в SuperSU был «Режим выживания», который позволял вам обновлять обновления, но это уже не так. Введите FlashFire.
Что такое FlashFire?
FlashFire - мощный инструмент от Chainfire, производителя SuperSU, который позволяет корневым пользователям выполнять множество действий, таких как мигающие обновления OTA и полные zip-файлы, создавать и восстанавливать резервные копии, стирать данные и многое другое. Это эффективно устраняет необходимость использования восстановления для ручного резервного копирования или восстановления и автоматически обрабатывает неуправляемость и повторное укоренение при мигании файлов обновлений.
Теоретически, он должен работать на многих, если не на большинстве, мобильных телефонах Android 4.2+. Однако есть оговорки.
На многих устройствах наличие корня предотвратит загрузку и мигание OTA. На некоторых устройствах он будет загружаться, но вам понадобится такой инструмент, как FlashFire, чтобы успешно его запустить. На других устройствах он фактически не загружается, поэтому вам придется получить OTA-файл каким-либо другим способом (их часто размещают на таких сайтах, как XDA Developers), а затем, возможно, вы можете запустить его с помощью инструмента, такого как FlashFire. Если вы не можете получить файл OTA, вам может быть не повезло.
Кроме того, если вы используете укороченное устройство, которое получает полное обновление версии, например, от Lollipop до Marshmallow, все становится мутнее. Поскольку невозможно запустить Marshmallow без разблокированного загрузчика, вы полностью потеряете root-доступ, если ваш загрузчик будет заблокирован. Это неизбежно. Однако, если вы разблокировали загрузчик, FlashFire должен иметь возможность сохранять (или, по крайней мере, восстанавливать) корневой доступ после завершения обновления.
Итак: в то время как FlashFire не гарантированно работает на каждом устройстве, если вы отправили «официальный» маршрут, чтобы укоренить свой телефон, он, вероятно, сработает.
Если вы хотите узнать больше, я рекомендую всем, кто хочет проверить этот поток на XDA, прежде чем начать. Когда вы будете готовы, вы можете установить FlashFire из Play Маркета.
Как использовать FlashFire для Flash-обновления OTA без потери корня
Когда вы получите уведомление о наличии обновления для вашего устройства, первое, что вам нужно сделать, это продолжить и загрузить его, но не устанавливайте его. Если вы сообщите, что обновление будет продолжено и установлено, оно скорее всего потерпит неудачу, так как вы используете внедренное устройство.
Если у вас есть пользовательское восстановление, такое как TWRP, FlashFire вернет его перед запуском процесса и затем восстановит его.
После этого FlashFire перезагрузится, и вы увидите кучу прокручиваемого текста на дисплее. Оставьте устройство в покое, чтобы выполнить свою задачу - это просто FlashFire, в котором выполняются необходимые команды. Когда он будет завершен, он перезагрузится, и обновление обновится, а root восстановится. Boom. Так просто.
Что делать, если мигание OTA не работает
Если вы изменили свое устройство таким образом, чтобы FlashFire не применял обновление, возможно, вы используете собственное ядро или, к примеру, системный раздел был изменен Xposed Framework, то обновление будет «сбой». «В настоящее время нет уведомлений о том, что обновление не было применено, поэтому вам нужно перейти в меню« Настройки »>« О телефоне »и посмотреть, изменился ли номер сборки. Если нет, то вы знаете, что обновление не было применено (есть также хорошая вероятность, что Android уведомит вас о том, что обновление все еще необходимо установить).
Когда это произойдет, самое лучшее, что нужно сделать, это загрузить заводское изображение для вашего устройства, если оно доступно. В этом примере я буду обновлять новейшее обновление (исправления безопасности в апреле 2016 года) на своем Nexus 7.
После загрузки скопируйте файл.tgz фабричного образа на внутреннее хранилище вашего телефона или на SD-карту.
Откройте FlashFire и нажмите кнопку плавающего действия (красная кнопка с плюсом) в нижнем правом углу. Выберите «Flash firmware package».
Это просто царапает поверхность того, что в настоящее время может делать FlashFire, и это не упоминает, на что он способен в будущем. У нас, несомненно, будет больше возможностей сказать об этом, если мы потратим больше времени на предстоящие обновления для приложения.