Узнайте о новых сложностях, которые verity и Marshmallow создают при рутировании заблокированных устройств.
Когда пыль оседает на Выпуск Android 6.0, множество пользователей Nexus стремятся к OTA и Заводские изображенияи готовимся к использованию последней версии операционной системы Android.
Хотя внешне Android 6.0 выглядит (по крайней мере визуально) удивительно похожим на Android 5.0 и 5.1 (выпуски Lollipop), в нем есть ряд существенных изменений. внутри. Один из них потенциально имеет последствия для пользовательских ПЗУ и корневых сообществ. Сначала немного предыстории. Если вас это не интересует, просто перейдите к разделу «Почему это важно».
Функция под названием Verity
Проблема (это проблема, если вы любите root и модификацию устройств) связана с тем, на что я указывал давным-давно, когда она впервые появилась в AOSP, - с введением dm-verity для Android. Verity — это функция безопасности, изначально реализованная в ChromeOS, предназначенная для обеспечения надежной и надежной работы вычислительных устройств и предотвращения модификации устройства вредоносным программным обеспечением. Еще в Android 4.4 Google объявил о верности Android, а затем все осталось тихо. Хотя были некоторые
исследование использования истиныПо большей части все было тихо. До сих пор так и есть.С выходом Android 6.0 Google начал улучшать безопасность устройств. Одним из фундаментальных требований для этого является предотвращение изменения программного обеспечения на устройстве без ведома пользователя, хотя многие здесь на XDA рутируются как нечто само собой разумеющееся, представьте себе, что устройство пользователя рутируется без его ведома и согласия, а root-доступ используется для кражи его данные. По этой причине Google начал реализовывать проверку системного раздела на некоторых устройствах. Они также недавно обновили свои страницы поддержки чтобы прикрыть это.
Что это значит для пользователей с root-правами?
Имея истину, любые изменения, внесенные в системный раздел, будут обнаружены при загрузке или доступе. Затем вы столкнетесь с одной из ошибок, как показано выше. Некоторые позволяют вам продолжить, а некоторые хотят защитить вас, останавливая загрузку устройства. Доступны три состояния. Один из них отображается, когда загрузчик разблокирован, что указывает на то, что вы можете подвергаться риску, пока не повторно заблокируете загрузчик. Это тот случай, когда модифицированный образ ядра может обойти достоверность, поскольку виртуальный диск ядра содержит ключи, используемые для проверки состояния системы.
На заблокированных устройствах ситуация выглядит довольно неинтересно для пользователей, стремящихся получить root-права.
Следующее состояние отображается (предположительно), когда достоверность отключена или отключена или ее невозможно проверить из-за изменений в виртуальном диске. Я не могу быть уверен, поскольку у меня нет Nexus 5X или 6P для расследования, но мое подозрение (основанное на сообщениях) что если вы загрузите другое ПЗУ, которое затем поместит на устройство свое собственное ядро, появится страница «другая операционная система». появляться.
Последним состоянием является красное предупреждение о том, что устройство повреждено. Я подозреваю, что это означает, что образ содержит правду, но проверка не удалась из-за изменения образа системы. Опять же, мы не можем быть уверены без наличия аппаратного обеспечения, но, похоже, эту ошибку вы увидите, если стандартное устройство было модифицировано вредоносным программным обеспечением.
Почему это важно?
В Android M (6.0) root в настоящее время требует внесения изменений в образ ядра, а также в файловую систему. Это означает, что даже если мы игнорируем достоверность (например, на старом устройстве Nexus, таком как Нексус 7 2013 г.), необходим новый образ ядра, чтобы обойти защиту SELinux, которая препятствует работе root-доступа.
Если вы хотите получить root права сегодня на Android Marshmallow, вам нужно будет использовать модифицированный загрузочный образ.
До сих пор были модифицированные ядра установить SELinux в разрешительный режим, но это неидеальное решение, поскольку означает, что вы не получите преимуществ безопасности, связанных с защитой SELinux. И, после Боязнь сценысагаЯ предполагаю, что вы видите преимущества SELinux и других средств защиты от атак безопасности.
Старший признанный разработчик XDA, Цепной огонь, мастер всего, root, выпустил обновленная версия SuperSU который сохраняет SELinux в принудительном режиме, но снова требует внесения изменений в конфигурацию SELinux загрузочного образа. Это означает, что вам необходимо установить SuperSU, а также модифицированный загрузочный образ.
И это всё хорошо, пока американские перевозчики не присоединятся к ним. Бастионы антипотребительского выбора, такие стойкие приверженцы, как AT&T и Verizon, как известно, любят блокировать устройства, не позволяя пользователям устанавливать пользовательские прошивки через блокировки загрузчика. Действительно, Verizon особенно плох в том, что даже не передает пользователям обновления прошивки, например Sony Xperia Z3v. не настроен на получение Зефира в то время как остальная часть линейки Z3 (и даже линейки Z2) будет. Черт возьми, они до сих пор даже не внедрили Lollipop на устройство, несмотря на то, что он доступен для совсем немного времени (ноябрь 2014 г.) на обычном Z3.
Вместо неофициальной разблокировки загрузчика (в наши дни такие случаи довольно редки, за исключением утечек инженерных загрузчиков для нескольких устройств Samsung) это кажется маловероятным. что вы получите root на Android 6.0 без какого-либо божественного вмешательства - комбинации dm-verity (чтобы ваш телефон не загружался при любых изменениях в системный раздел), а также требование внесения изменений SELinux на виртуальный диск (чтобы обеспечить работу root), похоже, делает ситуацию довольно неприятной для пользователей, стремящихся получить root-права. заблокированные устройства.
Андроид Пей?
Наконец, Android Pay. Возможно, это звучит совершенно не связано с остальной частью этой статьи, но на самом деле это весьма актуально. Android Pay опирается на новую API-интерфейсы SafetyNet в рамках собственных сервисов Google, которые предназначены для предоставления аттестатов состояния устройства о том, внедрено ли устройство, изменено ли оно каким-либо иным образом или работает ли оно в неутвержденном состоянии.
Пока есть проект Судя по поддельным ответам на SafetyNet, в настоящее время для него требуется плагин Xposed, и вряд ли это изменится, учитывая, как он работает. Xposed требует root и вносит изменения в системный раздел. Это затрудняет выполнение этой операции на устройстве с заблокированным загрузчиком. Даже в этом случае подобные вещи просто вступают в игру в кошки-мышки с Google. При использовании SafetyNet корневые устройства (или даже устройства, модифицированные вообще) рассматриваются как «не соответствующие CTS», что является эвфемизмом для модифицированных устройств.
О SafetyNet написано гораздо больше в этом посте в блоге о разборке, но, похоже, мы можем определить некоторые области, которые Google хочет ограничить. Во-первых, им не нравятся root, Xposed и все, что модифицирует системный раздел. Во-вторых, похоже, Google рассматривает возможность обнаружения пользователей, у которых включена блокировка рекламы — проверка SSL-квитирования включена. pubads.g.doubleclick.net
конечно, подсказывают мне, что Google хочет знать, блокируете ли вы рекламу на своем устройстве. Учитывая, что root обычно является обязательным условием, но потенциально можно использовать VPN API для этого. это без рута, похоже, что Google хотя бы хочет иметь представление, кто (или сколько людей) блокирует Объявления. Блокировка рекламы является актуальной проблемой, учитывая стремление Apple поддержать ее в веб-браузере (вероятно, для поощрения людям больше использовать приложения, где они контролируют работу и могут предлагать неблокируемую рекламу), и эти шаги интересный.
Заключение
Если вы хотите получить root права сегодня на Android Marshmallow (6.0), вам нужно будет использовать модифицированный загрузочный образ. Хотя еще неизвестно, останется ли это верным на неопределенный срок, похоже, что так будет и в течение некоторого времени - изменения в SELinux значительно усложняют получение root-доступа без изменения загрузочного образа. А поскольку для изменения загрузочного образа требуется разблокированный загрузчик, это может положить конец root-правам (и Xposed и другие функции root) на устройствах, поставляемых с загрузчиками, которые конечные пользователи не могут разблокировать. Также появляется Dm-verity, и, похоже, он включен в принудительном режиме на новых устройствах. Это затруднит изменение /system, даже если вы получите root-доступ, не имея снова разблокированного загрузчика.
Изменяет ли это ваше представление об устройствах, заблокированных загрузчиком? Достиг ли Android той стадии, когда вы все равно купили бы устройство с заблокированным загрузчиком, если бы ваш оператор связи предложил вам выгодную сделку?, или вас интересуют только разблокированные устройства? Какие корневые приложения или функции вы бы пропустили при заблокированном загрузчике?
Не стесняйтесь поделиться своими мыслями в комментариях ниже.