Як ламати андроїд, Мій щоденник

Як ламати андроїд

Щоразу, коли попадає до рук чергова залізяка, виникає це питання. Пора вже написати нотатку.

0. Дискляймер: все, що буде описано тут, можете використовувати тільки на свій страх і ризик. Я не винен, якщо в результаті вашої чи моєї помилки ви отримаєте цеглу. Хочете гарантій – несіть у платний сервіс.

1. Бакграунд. Трохи теорії.

  • Зламати андроїд у нашому вузькому розумінні тут – отримати повні права над системою.
  • Фактично, перемикання в режим "суперкористувача" (у народі "root") робить невелика програма, називається вона su і лежить у спеціальному місці, зазвичай у папці /system/xbin.
  • Програма su не має графічного інтерфейсу. Для зручності управління програмою su в Маркеті доступні спеціальні програми типу SuperSU (шукайте і вибирайте сподобалося)

  1. У деяких системах su вже є, в цьому випадку можна вважати систему вже заламаною, і потрібно просто завантажити SuperSU і радіти.
  2. Деякі системи захищені слабо, і дозволяють легко записати програму su прямо в /system/xbin. В цьому випадку бути хакером легко - потрібно тільки завантажити su і записати її в андроїд командою adb push su /system/xbin
  3. Інші системи захищені сильніше. Наприклад, розділ system вони змонтований у режимі лише читання (ro). Однак, якщо ви зможете перемонтувати розділ командою adb remount, вам пощастило. Повертайтесь до п.2
  4. Іноді працює такий варіант:
  • пишемо su кудись у доступне місце, наприклад в /data/local/tmp,
  • заходимо у систему (adb shell). далі працюємо вже у shell
  • встановлюємо програмі su прапор що вона виконується (chmod 755 su),
  • запускаємо ./su
  • якщо пощастило іотримали запрошення як знак #, то перемонтуємо system (mount -o remount,rw ” /system) і закидаємо su в /system/xbin (mv su /system/xbin)

Нарешті, у більш важких випадках, всі ці методи не працюють: su немає, система закрита, adb remount не пущає, su не видає грати. Як бути?

1. Завжди працює, але геморойно:

  • сформувати файл update.zip, до якого включити /system/xbin/su
  • встановити custom recovery (це окрема велика пісня)
  • перевантажитися в recovery і накотити в систему цей update.zip

2. У окремих випадках для певних систем і чіпсетів, можливо використовувати експлойт. Це така програма, яка використовуючи певні дірки в системі може отримати root-права. Як приклад для чіпсету mtk6589 можна подивитися тут, для деяких самсунгів та інших систем тут і тут. Ще раз повторю, це окремі випадки експлойтів працюють далеко не завжди і не скрізь. Пошукайте для своєї системи та моделі.

3. Нарешті, якщо Ви справжній Хакер, то ви напевно зможете знайти експлойт для своєї власної системи, отримати root і встановити su. =)