Наряду с многими другими обновлениями, связанными с безопасностью, Android Q также изменил работу системных разделов для серии смартфонов Pixel 3 и Pixel 3a. Это позволило обеспечить беспроблемную установку общих системных образов с помощью динамических обновлений системы и повысить общую безопасность системы.
Проблемы и их обход
Побочным эффектом этих новых логических разделов является сложность получения полного root-доступа. Ранее, разработчик Magisk – Джон Ву заявил, что Android Q рутировать будет достаточно сложно и на это потребуется много времени, но он превзошел сам себя. Первый рабочий полный рут на Pixel 3 XL под управлением Android Q Beta 4 уже работает.
На первый взгляд, новые логические разделы дают разработчикам массу преимуществ. Раньше им приходилось разблокировать загрузчик и стирать основной раздел для установки общих системных образов (GSI). Теперь же логические разделы позволяют пользователям устанавливать GSI, не пробиваясь сквозь стену “проблем” – даже загрузчик не нужно разблокировать, а первоначальная установка их ОС не затрагивается и остается готовой для использования в другом разделе.
Но новая компоновка делает невозможным рутирование классическим способом. Фактически, разделы A / B (или system-as-root) существуют начиная с Android 7.1, но до Android 9 можно было вернуться к старой структуре системных разделов, что облегчало рутирование. Android Q больше не поддерживает это устаревшее решение, поэтому, Джону Ву необходимо было найти правильный путь к корневым разделам A / B.
Он разработал собственный способ получения корневых разделов, изменив подход для получения root-доступа. Вместо импорта корневого каталога во время установки (как это делает программа SuperSU) Джон Ву написал собственное решение MagiskInit, которое динамически добавляет корневой каталог в системный раздел каждый раз при загрузке устройства. Это позволяет устройствам с A / B-разделами (которые естественным образом изменяют свои системные / корневые разделы для обновления системы между загрузками) быть рутированными, не возвращая их к старой системной компоновке.