android - lista - ¿Cómo reiniciar adb desde la raíz al modo de usuario?
instalar adb (8)
Pregunta básica sobre ADB.
adb root
reinicia adb como root. Pero lo que quiero es reiniciarlo de nuevo al usuario después de un tiempo.
Intenté lo siguiente:
adb kill-server
adb start-server
no funciona ..
ps -A
-> notó el número de proceso de adb y lo mató ... incluso esto no funcionó. Finalmente estoy reiniciando mi dispositivo. ¿Hay alguna forma en que pueda regresar desde el adb raíz al adb general?
Gracias.
Este es un problema muy común.
Una solución es eliminar el servidor adb y reiniciarlo a través del símbolo del sistema. A veces esto puede no ayudar.
Simplemente dirígete al Administrador de tareas de Windows para eliminar el proceso de adb y reiniciar Eclipse.
Funcionará perfecto :)
He estado con este problema usando el loki del sistema operativo básico. Por un día así lo resolví reiniciando el adb usando este comando:
./adb kill-server
y
./adb start-server
Debe estar en la carpeta Sdk> Herramientas de plataforma
Ahora, reinicie su teléfono, esto reiniciará todo el proceso en su teléfono.
Y así es como lo arreglé.
Me gustaría agregar un poco más de explicación a la respuesta de @ user837048. en mi OSX Yosemite y Galaxy S3, que está rooteado y con el firmware CyanogenMod 11
y KitKat
I, he realizado los procedimientos a continuación para Enable
y Disable
la solicitud raíz.
Por favor asegúrate a continuación
En tu sistema
- Asegúrese de haber instalado
Android SDK
y establecer rutas a archivos binarios. escribewhich adb
en tu caparazón. Debe darte algún resultado.$ which adb /Applications/Android Studio.app/sdk/platform-tools/adb
- Asegúrese de haber instalado
En tu dispositivo móvil
- Configuración> Opciones de desarrollador> Android Debugging =
ON
- Configuración> Opciones de desarrollador> Acceso raíz =
Apps and ADB
- Configuración> Opciones de desarrollador> Android Debugging =
Si no ve Developer Options
en su configuración, vaya a Configuración> Acerca del teléfono. Desplácese hacia abajo hasta Build number
y toque allí 7 veces. Sé que está loco. Pero créanme que funciona: D
Conecte su teléfono a través de un cable USB. escribe en computer''s
terminal de tu computer''s
$ adb shell
verá un mensaje similar, si se ha mostrado alguna solicitud en su dispositivo móvil para confiar en la conexión, toque ''Confiar siempre'' y ''Aceptar''
shell@m0:/ $
ahora escribe
shell@m0:/ $ id
uid=2000(shell) gid=2000(shell) groups=1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats) context=u:r:shell:s0
Mira que not root
eres not root
Ahora sal del shell, que volverá al computer''s prompt
shell@m0:/ $ exit
Ahora activa la raíz
$adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
root@m0:/ #
Wow ... eres root
root@m0:/ # id
uid=0(root) gid=0(root) context=u:r:shell:s0
Intenté muchas soluciones para volver al normal non root prompt
. Pero no funcionó, excepto la solución de @ user837048.
root@m0:/ # stop adbd && setprop service.adb.root 0 && start adbd &
[1] 32137
root@m0:/ #
$
Esto podría salir de Adb prompt
al prompt normal. Ahora conecta de nuevo.
$ adb shell
shell@m0:/ $
Bueno ... No eres root
Para obtener pasos rápidos, solo revise el resumen . Si está interesado en conocer los detalles, continúe leyendo a continuación.
adb es un daemon. Haciendo ps adb
podemos ver su proceso.
shell@grouper:/ $ ps adb
USER PID PPID VSIZE RSS WCHAN PC NAME
shell 133 1 4636 212 ffffffff 00000000 S /sbin/adbd
Acabo de comprobar qué variables de propiedad adicionales está utilizando cuando adb se ejecuta como usuario raíz.
modo de usuario adb:
shell@grouper:/ $ getprop | grep adb
[init.svc.adbd]: [running]
[persist.sys.usb.config]: [mtp,adb]
[ro.adb.secure]: [1]
[sys.usb.config]: [mtp,adb]
[sys.usb.state]: [mtp,adb]
modo de raíz adb:
shell@grouper:/ # getprop | grep adb
[init.svc.adbd]: [running]
[persist.sys.usb.config]: [mtp,adb]
[ro.adb.secure]: [1]
[service.adb.root]: [1]
[sys.usb.config]: [mtp,adb]
[sys.usb.state]: [mtp,adb]
Podemos ver que service.adb.root
es una nueva variable prop que surgió cuando hicimos adb root.
Entonces, para volver a cambiar adb al usuario desde la raíz, continué e hice esto 0
setprop service.adb.root 0
Pero esto no cambió nada.
Luego seguí adelante y maté el proceso (con la intención de reiniciar el proceso). El proceso pid
de adbd
en mi dispositivo es 133
kill -9 133
Salí del caparazón automáticamente después de haber matado el proceso.
Hice un adb shell
nuevo, estaba en modo de usuario.
RESUMEN :
Entonces, tenemos 3 pasos muy simples.
- Ingrese adb shell como raíz.
- setprop service.adb.root 0
- matar -9
(pid of adbd)
Después de estos pasos, vuelva a ingresar al shell con el shell adb shell
y vuelva a estar en su dispositivo como usuario.
Prueba esto para asegurarte de recuperar tu caparazón:
ingrese adb shell (root). Luego escribe debajo de comand.
stop adbd && setprop service.adb.root 0 && start adbd &
Este comando stop adbd
, luego setprop service.adb.root 0
si adbd
ha adbd
con éxito, y finalmente reinicia start adbd
si la propiedad .root
se ha establecido con éxito en 0. Y todo esto se hará en segundo plano gracias a el último &
.
Un poco tarde, supongo, pero aquí va: si usaste - "adb root", tendrías el siguiente mensaje:
C:/>adb root
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting adbd as root
para salir del modo raíz, puede usar:
C:/>adb unroot
restarting adbd as non root
si no puede acceder a la carpeta de datos en el monitor del dispositivo Android
cmd
C:/Users/bscis/AppData/Local/Android/sdk/platform-tools
(Where you located sdk folder)
C:/Users/bscis/AppData/Local/Android/sdk/platform-tools>adb shell
generic_x86:/ $
C:/Users/bscis/AppData/Local/Android/sdk/platform-tools>adb kill-server
C:/Users/bscis/AppData/Local/Android/sdk/platform-tools>adb start-server
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
C:/Users/bscis/AppData/Local/Android/sdk/platform-tools>adb root
C:/Users/bscis/AppData/Local/Android/sdk/platform-tools>
funcionando bien.....
adb kill-server
y adb start-server
solo controlan el adb
daemon en el lado de la PC. adbd
reiniciar adbd
daemon en el dispositivo después de revertir el cambio de la propiedad service.adb.root
realizado por la adb root
:
~$ adb shell id
uid=2000(shell) gid=2000(shell)
~$ adb root
restarting adbd as root
~$ adb shell id
uid=0(root) gid=0(root)
~$ adb shell ''setprop service.adb.root 0; setprop ctl.restart adbd''
~$ adb shell id
uid=2000(shell) gid=2000(shell)