¿Por qué no puedo obtener acceso de root desde Shell?

> adb shell
sh-4.1$ su
Permission denied

He rooteado mi teléfono con éxito. Lo sé porque puedo instalar aplicaciones en la tarjeta SD y tengo un programa llamado SD Maid que puede operar con permisos de root.

La instalación de aplicaciones en SDCard no requiere necesariamente root, y SDMaid también funciona (parcialmente) sin él, por lo que no es una prueba. Su cita del shell, por otro lado, parece probar que no tuvo éxito con su enraizamiento. Al verificar sus aplicaciones instaladas, ¿hay SuperUser o SuperSU disponibles? ¿Recibe mensajes como "SDMaid solicitó permisos de raíz" que necesita confirmar?
@Izzy Recibo notificaciones como SD Maid has been granted super root permissions? Además, acabo de instalar play.google.com/store/apps/… y me pide una confirmación de superusuario que se otorga con éxito.
@Izzy Me gustaría discrepar. La instalación de aplicaciones en la tarjeta SDC requiere rootear su teléfono. ¿Podría señalar un ejemplo contrario?
Claro: vaya a Configuración->Aplicaciones->Administrar aplicaciones y revíselas. Las aplicaciones que lo admiten simplemente se pueden mover tocando el botón correspondiente. Segundo: Eche un vistazo a AppMonster , justo en la primera captura de pantalla, debajo del "icono de la luna" de "Sleepy Timer": esta aplicación es compatible con App2SD, sin root. AppMonster puede moverlo (no requiere root), e incluso se ofrecerá a hacerlo. App2SD es compatible de forma nativa desde Android 2.2. Siga la etiqueta Preguntas frecuentes: App2SD
Para el comentario anterior: OK, tan completo que la raíz funcionó. Nuevamente, verifique sus aplicaciones para SuperUser/SuperSU, esta vez inicie la aplicación. En su configuración debería dejarte ver qué permisos tiene guardados; tal vez una vez marcó accidentalmente "recordar" y presionó el botón "denegar" para adb shell. Si encuentra una entrada correspondiente, simplemente elimínela. La próxima vez que se le vuelva a preguntar, asegúrese de presionar el botón correcto :)
@Izzy Tengo Superuser v2.3.6.3La pestaña de configuración en Superusuario no muestra ninguna configuración de permisos almacenada. Además, AFAIK Superuser solo confirma el acceso raíz para las aplicaciones iniciadas desde el teléfono. Estoy tratando sude bashshell dentro de adb.
Sí, lo entendí (nunca verifiqué qué hace SuperUser en ese caso, pero supuse que "adb" sería la "aplicación solicitante"). No hay permisos almacenados que todavía me hagan preguntarme, ya que anteriormente indicó que otorgó su a SDMaid: ¿siempre lo aprueba manualmente o marcó la casilla "recordar"? En este último caso, debe haber permisos almacenados.
¿Has probado a ejecutar adb como root? Intente emitir el adb rootcomando en el Símbolo del sistema/Terminal.

Respuestas (4)

Desde aquí :

Es posible que deba activar adb root desde el menú de configuración del desarrollador. Si ejecuta adb root desde la línea cmd, puede obtener:

el acceso a la raíz está deshabilitado por la configuración del sistema: habilitar en la configuración -> opciones de desarrollo

El acceso a la raíz está deshabilitado por la configuración del sistema: habilite en la configuración -> opciones de desarrollo Una vez que active la opción raíz (solo ADB o Aplicaciones y ADB), adb se reiniciará y podrá usar la raíz desde la línea cmd.

Esta configuración no está disponible en todas las ROM (no pude encontrarla, por ejemplo, en mi LG Optimus 4X , que por supuesto está rooteado). En mi humilde opinión, esta es una especialidad de CyanogenMod.
¿Qué sabes de Android, amigo? > el acceso a la raíz está deshabilitado por la configuración del sistema: habilite en la configuración -> opciones de desarrollo Una vez que active la opción raíz (solo ADB o Aplicaciones y ADB), adb se reiniciará y podrá usar la raíz desde la línea cmd.

Hoy en día , Magisk se usa comúnmente para enraizar.

Descubrí que en mi Oneplus 5 (Oxygen OS, Nougat) era suficiente ir a la aplicación Magisk Manager, abrir la pantalla de permisos de superusuario y alternar Shell (com.android.shell) para resolver el problema de permiso adb su denegado.

No se pudo encontrar Shell (com.android.shell) en Magisk. Probablemente esto cambió en las versiones más recientes de Magisk, ya que ahora no hay una lista completa de aplicaciones para elegir.

Hay una aplicación en Google Play llamada ADBD Insecure de Chainfire . Esta aplicación le permite ejecutar adbd en modo root si su dispositivo está rooteado cuando ejecuta los dispositivos Stock ROM. Hace poco me enteré de esta aplicación.

La versión en Google Play no es gratuita, pero hay una versión gratuita disponible. El enlace a la versión gratuita está vinculado en la descripción de la aplicación en Google Play.

Lo bueno de esta aplicación es que funciona con Stock ROM que se han rooteado. Si está utilizando un kernel personalizado o una ROM personalizada, probablemente no necesite esta aplicación. Pero si todavía está usando una stock rom, solo rooteada, entonces es posible que desee obtener esta aplicación para su dispositivo.

adbd Insecure le permite ejecutar adbd en modo root si su dispositivo está rooteado. (Tenga en cuenta que si está ejecutando un kernel personalizado, es probable que ya implemente esta funcionalidad)

Si está ejecutando un núcleo estándar (fabricado por el fabricante del teléfono) en su dispositivo, es probable que adbd se esté ejecutando en modo "seguro", incluso si está rooteado. Esta aplicación le permite ejecutar adbd en modo "inseguro", lo que le brinda acceso de root en "adb shell", permite el acceso a archivos y directorios del sistema a través de "adb push/pull", y le permite ejecutar el comando "adb remount" para hacer su partición /system se puede escribir.

ingrese la descripción de la imagen aquí

Probé la aplicación ADBD Insecure gratuita del hilo XDA original en mi Oneplus 5 Nougat rooteado con Magisk, pero no ayudó y también rompió la conectividad MTP en el modo de depuración USB hasta que se reinició el teléfono.

Habilite el acceso raíz para adb desde el menú de configuración del desarrollador. Luego conecte su cable usb y escriba:

adb root

debería volver

restarting adbd as root

Ahora relanza el shell

adb shell
Stock Android no proporciona "acceso raíz para adb" en Opciones de desarrollo. adb rootsolo es posible en userdebugROM: ¿Por qué "adb root" no hace nada?
Para las ROM de Android rooteadas sin "acceso raíz para adb" en Opciones de desarrollo, hay un complemento de Magisk adb_root que proporciona el equivalente. (Deshabilitar cuando no esté en uso, debido a limitaciones de seguridad).