Magisk теперь поддерживает Google Pixel 3 и Pixel 3a на Android Q.

Разработчик Magisk совершил два больших прорыва: поддержку корневой системы и логических разделов для Google Pixel 3 и Pixel 3a на Android Q.

Google выпустила первую бета-версию Android Q еще в марте, и root-доступ через Magisk быстро стал доступен для Google Pixel и Google Pixel 2. Однако Google Pixel 3 не удалось получить root права на Android Q, поскольку разработчик Magisk, признанный разработчик XDA топджонву, нужно было разобраться, как работать с новой структурой логических разделов. После новой стажировки в Apple у топджонву стало меньше времени на работу над Magisk, но это не помешало ему совершить два больших прорыва в разработке. В последней версии Canary Magisk теперь поддерживает систему с правами root, что усложняет приложениям обнаружение root. доступ, а также поддерживает устройства с логическими разделами, такие как серии Pixel 3 и Pixel 3a XL на Андроид Кью.

Форумы Google Pixel 3Форумы Google Pixel 3 XL

Форумы Google Pixel 3aФорумы Google Pixel 3a XL

Поддержка логических разделов Google Pixel 3 и Pixel 3a на Android Q

Чтобы помочь разработчикам тестировать AOSP-версии Android на существующих устройствах, Google выпускает универсальные образы системы (GSI), которые можно загружать на устройства, совместимые с Project Treble (любое устройство, запускается с Android 9 Pie или более поздней версии.) Для установки GSI требуется разблокировать загрузчик, что может быть невозможно на всех устройствах, и прошить образ системы через fastboot после очистки данных пользователя. данные. В Android Q Google представляет новую функцию под названием Динамические обновления системы что позволяет разработчикам загружать GSI без разблокировки загрузчика или удаления данных. Для поддержки динамических обновлений системы устройство должно иметь логические разделы, размер которых можно динамически изменять, чтобы освободить место для установки GSI. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a и Google Pixel 3a XL имеют логические разделы в бета-версиях Android Q, хотя только Pixel 3 и Pixel 3 XL поддерживают DSU. Тем не менее, именно из-за этого радикального изменения в структуре разделов Magisk не работал.

Когда topjohnwu определен, ничто не мешает ему получить root-доступ. Буквально на днях он объявил, что успешно рутировал свой Pixel 3 XL на Android Q beta 4. Описание его коммита здесь объясняет технические детали того, как он добился поддержки логических разделов, но важно то, что Magisk теперь можно устанавливать на устройства с логическими разделами или без них.

Поддержка системы как root

Для устройств с Двойные перегородки A/B, системный раздел монтируется как корневой каталог (/), но на устройствах без двойных разделов A/B системный раздел смонтирован в /system. Это делает невозможным использование только системных OTA на устройствах, отличных от A/B, поскольку файлы на виртуальном диске, требующие обновления, расположены в загрузочном разделе. Вот почему, чтобы обеспечить возможность OTA только для системы в Android Pie и более поздних версиях, Google требует, чтобы все устройства, запускаемые с Android Pie, поддерживали структуру разделов «система как корневой». В макете «система как root» образ виртуального диска объединяется с образом системы, который монтируется как rootfs.

Поскольку Google представил систему с правами root, решение для корневых устройств заключалось в том, чтобы вернуть систему как root обратно к старому макету раздела «initramfs rootfs». Что работает подходит для Android 7.1–Android 9 Pie, поскольку Android имеет устаревшую поддержку этого старого макета, но Android Q полностью удаляет поддержка root-системы теперь обязательна для всех устройств, даже для тех устройств, которые обновляются до Android Q. Предыдущие версии Magisk все еще работали благодаря некоторым «действительно неприятным хакам», но topjohnwu не был удовлетворен этим решением, поэтому для правильной поддержки системы с правами root он представил «МагискИнит».

Приятным побочным эффектом правильной поддержки структуры разделов «система как корневой» является то, что один потенциальный путь обнаружение корня было подавлено. Как любезно объяснил мне topjohnwu, старый метод «вернуться к initramfs rootfs» приложениям было легко обнаружить, потому что Magisk монтировался system к «/system_root» и привязать монтирование «/system_root/system» к «/system». Все, что нужно сделать приложению, чтобы обнаружить наличие root-прав, — это проверьте, существует ли «/system_root» или «/» — это «rootfs». Однако неясно, действительно ли какие-либо приложения воспользовались этим для обнаружения корень. Тем не менее, лучше перестраховаться, чем потом сожалеть.

Разные изменения

Android Q представляет поддержку так называемого "бассейн бластулы" к жизненному циклу приложения Android. MagiskHide был не могущий для обнаружения приложений, от которых нужно скрыть root-доступ, если включена новая функция «пула процессов». Последняя версия Canary теперь поддерживает эту функцию. По словам topjohnwu: «Чтобы должным образом поддерживать новую оптимизацию пула бластулы, представленную в Q, я переписал значительную часть логики ptracing для мониторинга процессов».


Если у вас есть Pixel 3, Pixel 3 XL, Pixel 3a или Pixel 3a XL на бета-версии Android Q, попробуйте последнюю версию Magisk Canary и сообщите нам, если вам удастся получить root права на своем устройстве.

Магиск Канарский канал