Я рутировал несколько устройств Samsung, и основная «цель», так сказать, состоит в том, чтобы получить su
двоичный файл /system/xbin
и установить Superuser.apk .
Мой вопрос: почему нужно прыгать через все эти обручи, чтобы рутировать телефон (устанавливать кастомное рекавери и прошивать предварительно рутированное ПЗУ или использовать текущую установку)? Нельзя ли просто скачать предварительно скомпилированный su, переместить его на SD-карту и запустить через adb? То, что, кажется, делает ПЗУ «предварительно рутированным», заключается в том, что у него есть суперпользователь и двоичный файл su в соответствующих системных путях. Я не понимаю, почему так важно, чтобы он запускался из /system/xbin
.
Для бинарного файла su требуется как выполнение, так и установленный бит разрешения setuid. Первое необходимо для того, чтобы файл можно было запустить, а второе — чтобы он автоматически запускался с правами владельца файла (установленный идентификатор пользователя или setuid. В данном случае владельцем является root. Подробнее здесь ).
Файлы на внешнем хранилище не имеют установленных битов доступа к исполняемому файлу и setuid, и они не могут быть предоставлены без прав root. Также обратите внимание, что SD-карта монтируется с флагом «noexec», чтобы предотвратить выполнение в целом для загрузки:
shell@android:/sdcard $ ./su
/system/bin/sh: ./su: can't execute: Permission denied
126|shell@android:/sdcard $ chmod 4755 su
Unable to chmod su: Operation not permitted
10|shell@android:/sdcard $ mount | grep /mnt/sdcard
/dev/block/mmcblk0p1 /mnt/sdcard vfat [...],noexec,[...]
Вот почему вы не можете просто скопировать su
на SD-карту, а затем запустить ее, чтобы получить root права.
Укоренение включает в себя использование слабости в зависимости от версии Android, поэтому « перепрыгните через все обручи, чтобы получить root права на телефон » .
Это курица и яйцо!
Чтобы использовать root, вам нужен незащищенный демон adb (т.е. возможность перемонтирования /system
) на телефоне, а чтобы иметь незащищенный adb, вам нужен root! А еще нужен разблокированный загрузчик.
Взгляните на один эксплойт под названием zergRush, найденный на github; интересующая функция вызывается, do_fault()
когда предпринимается попытка «сломать» кадр стека vold
демона ', подключившись к принадлежащему ему каналу, и вызвать его сбой, перезаписав указатель стека так, чтобы он указывал на скопированный версия оболочки boomsh
, которая затем запускается из /data/local/tmp
.
Прочитав исходный код, вы теперь поймете, почему копирования su
бинарного файла недостаточно для «рутирования» телефона и почему нужно перепрыгивать через препятствия. А также, поскольку исполняемый бит на уровне файловой системы для SD-карты заблокирован, так что туда нельзя - это там по понятным причинам! :)
chmod
- динг разрешения SD-карты, чтобы сделать это! :)/system/xbin
- это каталог, в который входят утилиты busybox, и... на телефоне с root-правами выполнение этого echo $PATH
приведет к /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin <- обратите внимание! Это в пути! Чтобы иметь это там, вам нужен root, поэтому много ситуаций с курицей и яйцом ... : D
пользователь974896
эльдарератис
passwd
.shadow
Вам буквально нужен root, чтобы поместитьsu
исполняемый файл, поэтому методы рутирования включают либо эксплойт для повышения привилегий, либо вход в пользовательское восстановление (где все ставки в основном отключены).iOS
Ложь Райан
Ложь Райан