Чому додатки для вкорінення більше не працюють?


10

Пару років тому було легко викорінити будь-який пристрій: встановіть KingRoot, KingoRoot чи подібний додаток, натисніть на велику кнопку ROOT і нехай це зробить все інше. Через 5 хвилин або більше зелений "Корінь вдався!" з'явиться підказка, і ми можемо вирішити зберегти кореневу програму або видалити її та встановити чистий додаток для кореневого менеджера, як SuperSU / Superuser.

Як вони працюють? Чому вони більше не працюють? І якщо вони працюють, я повинен їх використовувати чи ні?


2
Це може бути корисним, зокрема VERIFIED / SECURE BOOTрозділ: forum.xda-developers.com/android/general/…
Irfan Latif

Відповіді:


16

У мене виникло це питання кілька місяців тому, і я знайшов цю відповідь за допомогою деяких досліджень, тому я подумав поділитися своїми дослідженнями на цьому сайті, відповідаючи на моє запитання, розглядаючи підроблену інформацію в Інтернеті. (Наприклад, на офіційному сайті KingoRoot написано, що він може викорінювати Android Oreo, що є абсолютно неправильною інформацією)

Як працюють програми для вкорінення?

Існує досить багато програм для вкорінення, KingRoot, KingoRoot, Z4Root, Root Genius, Universal Androot, щоб назвати декілька популярних / раніше популярних додатків. Всі вони використовують подвиги / вразливості / лазівки в ОС Android, щоб надавати собі привілеї, зарезервовані для системних програм або навіть самої ОС Android. Потім вони монтуються як читати / записувати каталог, в /systemякому розміщені процеси, необхідні для запуску системи та системних додатків, і розміщують бінарний файл з іменем suу місці каталогу, а саме /system/bin/su. Якщо якомусь додаткові потрібен root, програма виконує цей двійковий файл, і ви побачите підказку, дозволити чи відхилити кореневий доступ.

Виявлені подвиги / вразливості надаються CVEID, а потім детально розкриваються на веб-сайті CVE та фіксуються в бюлетенях щодо безпеки Android . Прикладом може бути сумнозвісна вразливість DirtyC0W, яку отримав CVEID CVE-2016-5195, який наніс і досі переслідує старіші ядра Linux. Практично всі згадані вище програми використовують цю вразливість.

Чому додатки для вкорінення більше не працюють?

Як згадується в Бюлетенях вище, Google виправляє ряд проблем в Android щомісяця. Тож сфера вразливих ситуацій сильно скорочується. Усі вразливості, якими користуються програми вкорінення на сьогодні, були зафіксовані в патчах безпеки десь близько 2018 січня .

Але можуть виникнути проблеми, які деякі виробники забули проклеїти! Як щодо них?

На Android 6.0.0 або новіших версій це призведе до того, що пристрій більше не завантажуватиметься. Щоб зрозуміти причину цього, ми повинні подивитися на концепцію під назвою Chain of Trust .

Chain of Trust , скорочено CoT, - це механізм захисту, який був введений для захисту ОС Android від вірусів та несанкціонованих модифікацій. Він працює як ланцюжок апаратного та програмного забезпечення, де кожна частина перевіряє наступну частину. Поетапно:

  1. Коли ви вмикаєте пристрій, запускається апаратна функція (іноді її називають Boot ROM). Завантажувальний ROM записується в апаратне забезпечення і його неможливо змінити.
  2. Завантажувальний ROM перевіряє перше програмне забезпечення в CoT, завантажувач якого є необробленим двійковим блобом, який іноді називають попереднім завантажувачем. (Також завантажувальний ROM іноді завантажує і використовує спеціальні спеціальні розділи / бінарні файли залежно від постачальника) Якщо завантажувач не проходить перевірки, пристрій вимикається. Якщо він пройде, Boot ROM запускає завантажувач.
  3. Завантажувач перевіряє параметри, передані йому завантажувальним ROM, і вибирає відповідний режим завантаження. Звичайні режими завантаження, які існують майже на кожному пристрої, - це звичайне завантаження Android, відновлення та Fastboot / Download.

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

Якщо завантажувач розблокований, він не перевіряє наступну частину CoT, а безпосередньо завантажує її.

  1. Наступна частина називається завантажувальним розділом . Він обробляє спосіб завантаження самої системи. У версіях Android увімкнено / новішою, ніж 6.0.0 (Lollipop), він також перевіряє, чи система незаймана, і якщо вона модифікована, вона вимикається.

Як було зазначено спочатку, ці кореневі програми використовують вразливості для зміни /system, що підтверджується завантажувальним розділом, як зазначено у 4 етапі вище. Тож будь-яка модифікація призведе до не завантаження пристрою. Цей стан зазвичай називають "м'якою цеглою", яку можна виправити лише повторним спалахом.

Тож нові пристрої вимагають розблокувати завантажувач, якщо ви хочете викорінити свій пристрій. Ці пристрої вкорінюються, прошиваючи відновлення з більшою кількістю опцій, ніж звичайне відновлення (наприклад, TWRP, ClockWorkMod), як правило, називається користувальницьким відновленням, і використовують це для зміни розділу завантаження (та відключення перевірки системи). Також можна безпосередньо змінити завантажувальний розділ без спеціального відновлення.

Деякі виробники дають можливість розблокувати завантажувач, а деякі - ні. Популярні пристрої із заблокованими завантажувальними програмами (наприклад, пристрої із заблокованою операційною системою Samsung S), як правило, експлуатуються спільнотою моделювання Android.

На моєму пристрої все ще працює Android 5.1.1 або старіша! Чи варто їх використовувати для кореневого використання?

Більшість цих старих пристроїв можуть викорінюватися програмами вкорінення. Отже, ви могли. Ви повинні? Це залежить від ваших уподобань. Кореневий доступ надає владу над усім в ОС, а при кореневому доступі зазвичай не потрібно навіть мікросекунди, щоб переконатися, що ваш пристрій ніколи не завантажиться знову. Дуже ймовірно, що програми для вкорінення ніколи цього не робитимуть, але вони могли. Крім того, за допомогою програми root може отримати доступ до всього, що робить ваш пристрій, і все, що зберігається в його пам'яті, включаючи інформацію про вашу кредитну картку, паролі тощо. Якщо це звучить як серйозна загроза конфіденційності для вас, можливо, не використовуйте кореневі програми. Якщо вас це не хвилює, ви можете спробувати їх.

Якщо ви досить кмітливі, є джерела майже всіх подвигів, якими користуються кореневі програми. Ви можете спробувати пошукати їх за допомогою CVEID, шукати їх у Git, компілювати та запускати їх та спробувати отримати кореневу оболонку, і ви зможете самостійно встановити suбінарні та інші залежності.

Також KingoRoot відомий тим, що надсилає на свої сервери високочутливі дані, такі як IMEI та серійний номер. Цілком ймовірно, що вони ніколи їх не використають, але, ось, це врешті-решт ваше рішення. KingRoot відомий тим, що встановив у своєму SDK задню панель, що дозволило деяким програмам отримати несанкціонований користувачем root доступ.

Висновок

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

Сподіваюся, моє дослідження допоможе комусь у майбутньому, хто отримає ту ж проблему, що і я. :)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.