He rooteado varios dispositivos Samsung y el "objetivo" subyacente, por así decirlo, parece ser obtener el su
binario /system/xbin
e instalar Superuser.apk .
Mi pregunta es ¿por qué uno tiene que pasar por todos estos aros para rootear el teléfono (instalar una recuperación personalizada y flashear la ROM previamente rooteada o explotar la instalación actual)? ¿No podría simplemente descargar un su precompilado, moverlo a la tarjeta SD y ejecutarlo a través de adb? Lo que parece hacer una ROM "pre-rooteada" es que tiene Superusuario y el binario su en sus respectivas rutas del sistema. No veo por qué es tan importante que se ejecute desde /system/xbin
.
El binario su necesita tanto la ejecución como el conjunto de bits de permiso setuid. El primero es necesario para que el archivo se pueda ejecutar y el segundo es que se ejecute automáticamente con los derechos del propietario del archivo (establezca la identificación del usuario o setuid. En este caso, el propietario es root. Lea más aquí ).
Los archivos en el almacenamiento externo no tienen configurados los bits de permiso ejecutable y setuid y no se pueden otorgar sin derechos de root. Tenga en cuenta también que la tarjeta SD está montada con el indicador 'noexec' para evitar la ejecución en general al arrancar:
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,[...]
Esa es básicamente la razón por la que no puede simplemente copiar su
en la tarjeta SD y luego ejecutarla para otorgarle la raíz.
El enraizamiento implica explotar la debilidad dependiendo de la versión de Android, por lo tanto, " salta a través de todos los aros para enraizar el teléfono " .
¡Es un huevo y la gallina!
Para explotar la raíz, necesita un demonio adb no seguro (es decir, la capacidad de volver a montar /system
) en el teléfono, y para tener un adb no seguro, ¡necesita la raíz! Y también, necesita un gestor de arranque desbloqueado.
Eche un vistazo a un exploit llamado zergRush que se encuentra en github; se llama a la función de interés do_fault()
cuando se intenta "romper" el marco de pila del vold
daemon de 's conectándose a la tubería de su propiedad, y hacer que se bloquee sobrescribiendo el puntero de pila para que apunte a una copia versión del shell boomsh
que luego se ejecuta desde /data/local/tmp
.
Después de leer la fuente, ahora se dará cuenta de por qué copiar el su
binario no es suficiente para tener el teléfono "rooteado" y por qué se deben saltar los aros. Y también, como el bit ejecutable en el nivel del sistema de archivos para la tarjeta SD está bloqueado, no vaya allí, ¡eso está allí por razones obvias! :)
chmod
, y los permisos de la tarjeta SD para hacer eso! :)/system/xbin
es el directorio donde entran las utilidades de busybox, y... en un teléfono rooteado, emitir esto echo $PATH
generará /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin <- ¡obsérvelo! ¡Está en el camino! Para tener eso allí, necesitas root, por lo tanto, muchas situaciones del huevo y la gallina... :RE
usuario974896
eldarerathis
passwd
oshadow
archivos de todos modos. Literalmente, necesita root para colocarsu
una ubicación ejecutable, razón por la cual los métodos de enraizamiento implican una explotación de escalada de privilegios o ingresar a una recuperación personalizada (donde todas las apuestas están básicamente desactivadas).iOS
miente ryan
miente ryan