En producción, user
compilación de una ROM, no puede comenzar adbd
como root a menos que la ROM o al menos el adbd
binario se reconstruya con las modificaciones necesarias. El motivo es el ALLOW_ADBD_ROOT
indicador de compilación ( 1 , 2 ) .
Es por eso que se desarrolló adbd Insecure , que reemplazó el adbd
binario por uno modificado.
En una compilación userdebug
o eng
(o con un binario inseguro adbd
extraído de cualquiera de estos tipos de compilación):
ro.secure=0
, adbd
se ejecuta como root cuando está habilitado desde Configuración (Opciones de desarrollador) ( 3 ) . Sin embargo adb root
, no funcionará ( 4 ) .ro.debuggable=1
, adb root
se reiniciará adbd
como root ( 5 , 6 ) .Sin embargo adbd
, se puede construir a partir del código fuente modificado para omitir todas estas comprobaciones. Además, también se debe tener cuidado con SELinux, si está en enforcing
modo. adbd
debe poder ejecutarse en un contexto de superusuario sin restricciones : u:r:su:s0
( 7 , 8 ) , que no es el caso de las user
compilaciones ( 9 , 10 , 11 ) . Ver esta respuesta para más detalles.
Las propiedades de Android se pueden sobrescribir utilizando /data/local.prop
on userdebug
/ eng
builds, es decir, si ALLOW_LOCAL_PROP_OVERRIDE
se establece el indicador de compilación ( 12 , 13 ) . Pero esto no funciona para ro.*
las propiedades ( 14 ) y lo mismo ocurre con la setprop
herramienta de línea de comandos. Sin embargo , el archivo default.prop
/ prop.default
, que podría ubicarse en varias ubicaciones posibles según las configuraciones de compilación del dispositivo ( 15 ) , se puede modificar para cambiar las propiedades de solo lectura (si no se ha configurado ya desde algún otro archivo o *.rc
archivo de propiedades). Si el archivo está en ramdisk, boot.img
debe modificarse.
La herramienta resetprop de Magisk puede restablecer las propiedades de solo lectura incluso si ya están configuradas. ro.secure
y ro.debuggable
es posible que ambos hayan sido modificados como parte de la política de MagiskHide ( 16 ) , que puede revertir para permitir que adbd
se ejecuten como root.
Otra propiedad relacionada es ro.adb.secure
, que controla la autenticación de clave pública. Al configurar / builds, se omite la autenticación (ningún ro.adb.secure=0
mensaje nunca) ( 17 , 18 , 19 ) ; relacionado: Ubicación de almacenamiento de “adb_keys” .userdebug
eng
device unauthorized
ro.build.type
izzy
adb root
no funciona en "compilaciones de producción" (como ROM de stock, incluso si está rooteado). Entonces, a menos que tenga una "ROM de desarrollador", las posibilidades de que esto haga algo son bastante bajas.