¿Hay alguna manera de ejecutar Adb shell como root sin escribir su
? Quiero poder tener acceso a la raíz sin entrar en el shell.
Si entiendo su pregunta correctamente, está preguntando cómo obtener acceso de root automáticamente cuando ejecuta adb shell
, para que no tenga que ingresar al shell y escribir su
para ejecutar un comando como root en su teléfono.
Esto está controlado por un indicador en su partición de arranque, que la mayoría de las ROM personalizadas han modificado para permitir el permiso de root de forma predeterminada. Si se cae a un $
cuando usa, adb shell
entonces tiene dos opciones permanentes y una temporal (temporal, lo que significa que no se queda si reinicia):
adbd
en su dispositivo con permisos de rootEl número 2 en realidad no es tan difícil, pero puede ser algo peligroso si no tienes cuidado. Hay un artículo wiki aquí que explica el proceso e incluye un par de scripts de Perl para ayudarte. Estas instrucciones asumen un entorno Linux/Unix. Personalmente, he usado estas instrucciones en Fedora Linux y puedo decirle que funcionan, pero no conozco otros entornos * nix como Mac. Tampoco conozco ninguna instrucción similar de Windows, pero podría intentar rastrear algunas si está en Windows. Los comandos exactos variarán un poco de un teléfono a otro, ya que diferentes dispositivos usan diferentes tablas de partición.
Sin embargo, en términos generales, debe extraer su boot.img actual de su teléfono, descomprimirlo, extraer el ramdisk y encontrar el archivo default.prop . Este es un archivo de texto sin formato, que debe abrir en un editor de texto y luego encontrar la línea que contiene el valor ro.secure
. Si la línea dice ro.secure=1
, debe cambiarlo a ro.secure=0
. Después de eso, puede volver a empaquetar el ramdisk y boot.img, luego flashearlo en su teléfono. Una vez que reinicie, será recibido con un #
aviso cada vez que realice adb shell
sin tener que ejecutar su
.
Alternativamente, si está utilizando una ROM personalizada pero no tiene esta modificación, puede simplemente descomprimir la ROM y modificar el boot.img que se incluye con ella siguiendo los pasos anteriores. Luego puede comprimir la ROM con el boot.img recién modificado y actualizar el archivo zip como lo haría normalmente.
Esto probablemente no hace falta decirlo, pero tenga cuidado al hacerlo. Jugar con su partición de arranque puede arruinar fácilmente su teléfono y obligarlo a recuperarse a través de HBoot. Recomiendo encarecidamente probar Fastboot para asegurarse de que puede usar los comandos Fastboot extendidos y realizar una recuperación. Esto varía un poco según su modelo, pero la mayoría de los teléfonos tienen algún tipo de software de escritorio que también se puede ejecutar para actualizar el teléfono.
La tercera opción es que en muchos casos es posible reiniciar adbd
en su dispositivo con privilegios de root. Una posibilidad es ejecutar adb root
desde una terminal de PC, aunque esto no funcionará en todas las configuraciones de ROM (la ROM debe construirse como una "depuración de usuario"). También puedes probar la aplicación insegura adbd de Chainfire . Esto no persistirá después de un reinicio, por lo que deberá usar la aplicación o adb root
nuevamente cada vez que reinicie su teléfono.
Bueno, si su teléfono está rooteado, puede ejecutar comandos con el comando "su -c".
Este es un ejemplo de un comando cat en el archivo build.prop para obtener información sobre el producto de un teléfono.
adb shell "su -c 'cat /system/build.prop |grep "product"'"
Esto invoca el permiso de root y ejecuta el comando dentro de ' '
Observe las 5 comillas finales, es necesario que cierre TODAS sus comillas finales o obtendrá un error.
Para aclarar, el formato es así.
adb shell "su -c '[your command goes here]'"
Asegúrese de ingresar el comando EXACTAMENTE de la forma en que lo haría normalmente cuando lo ejecuta en Shell.
Pruébalo, espero que esto ayude.
adb shell -t "su -c 'sh'"
para ejecutar un shell como root. Se -t
necesita para obtener el aviso.Simplemente instale adbd Insecure .
¿Para qué estás tratando de ejecutar como root? ¿Estás diciendo que quieres ejecutar ADB shell con root pero no quieres usar ADB shell? ¿Puedes aclarar?
Si la aplicación solicita acceso a la raíz, entonces la aplicación SuperUser en su teléfono debe encargarse de darle permiso o no. El proceso en el que rooteó su teléfono debería haber incluido una aplicación SuperUser.
adb shell ps
o adb shell
y luego ps
para obtener la lista de procesos en ejecución. Entonces, algunas cosas requieren acceso de root, quiero poder hacer lo primero.Como alternativa, puede escribir su script en el teléfono y simplemente hacer que adb lo ejecute, por ejemplo:
adb shell sh /sdcard/myscript.sh
El script puede elevarse sin su intervención (suponiendo que SuperUser esté configurado para recordar la aprobación), por ejemplo:
su
pm setInstallLocation 1
Acabo de hacer esto en mi teléfono con éxito, el único problema es que no he descubierto cómo terminar limpiamente la sesión de adb shell. Tengo que presionar Ctrl-C en mi shell de Windows para volver al símbolo del sistema de Windows; de lo contrario, adb simplemente se sienta en el #
indicador y no acepta la entrada.
También puede configurar el bit suid en su 'sh'. Estoy usando BusyBox, por lo que es posible que las instrucciones no coincidan con su configuración:
y deberías tener el indicador de raíz
mksh
mantenedor).lo uso para reparar la falla del problema del botón de inicio
dispositivos adb
adb shell su-ccommands
o
adb root shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERTAR EN VALORES seguros (nombre, valor) ('dispositivo_aprovisionado', '1');"
adb matar-servidor
mateo leer
eldarerathis
adbd
tener permiso de root en el teléfono de forma predeterminada. Hay una publicación de un miembro del equipo de Android que implica esto, pero no lo dice explícitamente. Este compromiso con AOSP también implica que es simplemente un indicador queadbd
verifica el inicio (no lo veo en ninguna otra parte de la fuente). Como mencioné, la mayoría de las ROM personalizadas que he visto (incluido CM) lo tienen configurado en 0.eldarerathis
mateo leer
adb root
comando para reiniciar adbd en modo auto-su, aparentemente se basa en esto. Sin embargo, creo que tenías razón acerca de que solo era una bandera.eldarerathis
// ... except we allow running as root in userdebug builds if the service.adb.root property has been set by the "adb root" command"
. Por cierto, así funcionó la primera versión de BurritoRoot para Kindle Fire, IIRC.mate07211
david cannizzo