6 votos

Desbloquear pantalla con ADB Android 4.2

Anteriormente con Android 4.1, haciendo algo como:

adb shell input keyevent 82  
#(KEYCODE_MENU)

desbloquearía la pantalla en el primer arranque y luego permitiría otros comandos para lanzar aplicaciones y hacerlas aparecer en la pantalla, etc.

Con 4.2, a los 10 segundos de arrancar, la pantalla de bloqueo se oscurece. Emitir el mismo comando ADB ya no funciona y la pantalla se queda en blanco.

Si pulso manualmente la tecla de menú, la pantalla vuelve a encenderse y puedo emitir el keyyevent para desbloquear la pantalla.

¿Alguna idea de cómo puedo volver a subir la pantalla desde ADB y desbloquearla desde ahí?

Gracias

4voto

Izzy Puntos 45544

Si estás en la versión 4.2.2, tal vez quieras leer, por ejemplo ADB Whitelist A partir de Android 4.2.2 : A partir de esta versión de Android, los "dispositivos remotos" (es decir, los que se ejecutan comandos ADB de ) debe estar autorizado por el dispositivo Android (es decir, el que esos comandos están ejecutando en en ) - para que su dispositivo Android pueda distinguir a los "llamadores de confianza" de los "atacantes maliciosos". También puede encontrar esto en detalle en este artículo en AndroidPolice :

El funcionamiento es bastante sencillo: cuando conectas tu PC a tu dispositivo Android por USB, Android obtiene la clave RSA de tu PC (un token de identificación). En Android 4.2.2, cuando tienes activada la depuración USB, esto hace que aparezca un aviso en la conexión, que se ve a continuación.

Authorization Prompt
(fuente de la imagen: AndroidPolice )

Actualización de los comentarios a continuación:

Además, como Shurane señaló, el comportamiento de adb keyevent parece haber cambiado con Android 4.2.2: mientras que antes adb keyevent 26 fue un "screen-off" dedicado, y adb shell input keyevent 82 un interruptor dedicado a "encender la pantalla", ahora adb keyevent 26 es un alternar que apaga la pantalla (cuando está encendida) y la enciende (cuando está apagada), como señala Pepelac .

1voto

k1ll3r8e Puntos 1

El truco es que en 4.4.x y/u otros sistemas hay que enviar un Enter después de la orden o de lo contrario hay que esperar x seg/min.

Así que hazlo como:

adb shell

@shell: input keyevent 26

@shell: 

@shell: exit

Esto funcionará en cualquier caso, creo.

0voto

Kane Puntos 1

Poner el dispositivo en modo "sin bloqueo" en los ajustes de seguridad (ajustes de bloqueo en algunas versiones de Android) para que después de reiniciar el sistema operativo vaya directamente a la pantalla de inicio.

Entonces puedes enviar cualquier evento de tecla, mejor uno no reconocido para que no sea manejado por el manejador por defecto, para despertar la pantalla.

EDIT: Esto funciona bien en 4.1. Lo he comprobado en la 4.4 y los eventos distintos del 26 no funcionan cuando la pantalla está apagada. Esto es, supongo, porque hay otro dispositivo separado ahora definido para el botón de encendido y los otros podrían estar inactivos. Así que tienes que comprobar si la pantalla está apagada (dumpsys power, buscar mScreenOn) y si está apagada enviar 26. Tienes que hacer la comprobación para evitar que se apague mientras está encendida. Esto funcionará en todas las versiones de Android.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X