Погляд на корінь зефіру та ускладнення Verity

Дізнайтеся про нові ускладнення, які 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 як належне, уявіть, що пристрій користувача рутується без його відома чи згоди, а root-доступ використовується для викрадення даних. З цієї причини Google почав впроваджувати перевірку системного розділу на деяких пристроях. Вони також нещодавно оновили свої сторінки підтримки щоб покрити це.

Що це означає для рутованих користувачів?

З правдою на місці, будь-які зміни, внесені до системного розділу, будуть виявлені під час завантаження або доступу. Тоді ви зіткнетеся з однією з помилок, як показано вище. Деякі дозволяють продовжити, а деякі хочуть захистити вас, зупинивши завантаження пристрою. Доступні три стани. Один з них відображається, коли завантажувач розблоковано, що вказує на те, що ви можете бути під загрозою, доки ви знову не заблокуєте завантажувач. Це так, оскільки змінений образ ядра може обійти перевірку правдивості, оскільки ramdisk ядра містить ключі, які використовуються для перевірки стану системи.

На заблокованих пристроях все виглядає досить нецікаво для користувачів, які прагнуть рутувати.

Наступний стан відображається (імовірно), коли перевірку правдивості вимкнено або вимкнено, або її неможливо перевірити через модифікації RAM-диска. Я не можу бути впевнений, оскільки у мене немає Nexus 5X або 6P для дослідження, але моя підозра (на основі повідомлень) що якщо ви завантажите інший ПЗУ, який потім розмістить власне ядро ​​на пристрої, сторінка «інша операційна система» з'являтися.

Остаточним станом є червоне попередження про те, що пристрій пошкоджено. Я підозрюю, що це означає, що зображення містить правдивість, але перевірку не вдалося виконати через те, що образ системи було змінено. Знову ж таки, ми не можемо бути впевнені, не маючи під рукою апаратного забезпечення, але ця помилка, здається, є тією, яку ви побачите, якщо стандартний пристрій було модифіковано зловмисним програмним забезпеченням.

Чому це важливо?

На Android M (6.0) root наразі вимагає внесення змін до образу ядра, окрім файлової системи. Це означає, що навіть якщо ми ігноруємо правдивість (наприклад, на старішому пристрої Nexus, як-от a Nexus 7 2013 року), потрібен новий образ ядра, щоб обійти засоби захисту SELinux, які перешкоджають роботі кореневого доступу.

Якщо вам потрібен root-права сьогодні на Android Marshmallow, вам потрібно буде використовувати модифікований образ завантаження.

Досі були модифіковані ядра щоб установити SELinux у дозвільний режим, але це неідеальне виправлення, оскільки це означає, що ви не отримаєте переваг захисту SELinux. І, після Страх сценисага, я припускаю, що ви бачите переваги SELinux та інших засобів захисту від експлойтів безпеки.

Старший визнаний розробник XDA, Ланцюговий вогонь, майстер усіх речей root випустив an оновлена ​​версія SuperSU який зберігає SELinux у примусовому режимі, але знову вимагає внесення змін до конфігурації SELinux образу завантаження. Це означає, що вам потрібно встановити SuperSU, а також модифікований завантажувальний образ.

І все добре, до тих пір, поки перевізники США не ввійдуть у суміш. Відомо, що такі лідери, як AT&T і Verizon, які виступають проти вибору споживачів, люблять блокувати пристрої, не дозволяючи користувачам встановлювати спеціальне програмне забезпечення через блокування завантажувача. Дійсно, компанія Verizon особливо погана в тому, що навіть не передає оновлення мікропрограми користувачам із Sony Xperia Z3v не налаштовано на отримання Marshmallow тоді як решта лінійки Z3 (і, власне, лінійки Z2) буде. Чорт, вони ще навіть не розгорнули Lollipop на пристрої, незважаючи на те, що він доступний для досить довго (листопад 2014) на звичайному Z3.

Замість неофіційного розблокування завантажувача (це досить рідкісне явище сьогодні, за винятком витоку інженерних завантажувачів для кількох пристроїв Samsung), це виглядає дуже малоймовірним що ви отримаєте root на Android 6.0 без будь-якого божественного втручання – поєднання dm-verity (щоб зупинити завантаження вашого телефону з будь-якими змінами в системний розділ), а також вимога щодо змін SELinux у RAM-диску (щоб дозволити root працювати), схоже, це зробить речі досить нецікавими для користувачів, які прагнуть root заблоковані пристрої.

Android Pay?

Нарешті Android Pay. Можливо, це звучить зовсім не пов’язане з рештою цієї статті, але насправді це досить актуально. Android Pay покладається на нове API SafetyNet у рамках власних служб Google, які створені для надання атестації стану пристрою щодо того, чи пристрій рутовано, іншим чином змінено чи працює в непідтвердженому стані.

Поки є a демонструвати дивлячись на підроблені відповіді на 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 (і Xposed та інші кореневі функції) на пристроях, які постачаються із завантажувачами, які не можуть розблокувати кінцеві користувачі. Dm-verity також з’являється, і, здається, його ввімкнено в режимі примусового виконання на нових пристроях. Це ускладнить модифікацію /system, навіть якщо ви отримаєте root-доступ без знову розблокованого завантажувача.

Чи змінює це ваш погляд на пристрої, заблоковані завантажувачем? Чи досягла Android тієї стадії, коли ви все одно купували б пристрій із заблокованим завантажувачем, якби ваш оператор надав вам вигідну пропозицію, чи вас цікавлять лише розблоковані пристрої? Яких кореневих програм або функцій вам не вистачає на заблокованому завантажувачі?

Не соромтеся поділитися своїми думками в коментарях нижче.