Previamente 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 que más comandos inicien aplicaciones y las muestren en la pantalla, etc.
Con 4.2, dentro de los 10 segundos de arranque, la pantalla de bloqueo se atenúa a negro. Emitir el mismo comando ADB ya no funciona y la pantalla permanece en blanco.
Si presiono manualmente la tecla de menú, esto vuelve a encender la pantalla y luego puedo emitir el evento clave para desbloquear la pantalla.
¿Alguna idea de cómo puedo recuperar la pantalla desde ADB y desbloquear la pantalla desde allí?
Gracias
Si está en 4.2.2, es posible que desee leer, por ejemplo, la lista blanca de ADB a partir de Android 4.2.2 : a partir de esta versión de Android, los "dispositivos remotos" (es decir, aquellos desde los que ejecuta comandos ADB ) deben estar autorizados por el dispositivo Android (es decir, en el que se ejecutan esos comandos ), por lo que su dispositivo Android puede distinguir a las "personas que llaman de confianza" de los "atacantes maliciosos". También puede encontrar esto en detalle en este artículo en AndroidPolice :
La forma en que funciona es bastante simple: cuando conecta su PC a su dispositivo Android a través de USB, Android obtiene la clave RSA de su PC (un token de identificación). En Android 4.2.2, cuando tiene habilitada la depuración de USB, esto ahora hace que aparezca un aviso en la conexión, como se ve a continuación.
(fuente de la imagen: AndroidPolice )
Actualización de los comentarios a continuación:
Además, como señaló Shuraneadb keyevent
, el comportamiento de parece haber cambiado con Android 4.2.2: mientras que antes adb keyevent 26
había un interruptor de "apagado de pantalla" y adb shell input keyevent 82
un interruptor de "encendido de pantalla" dedicado, ahora adb keyevent 26
hay un interruptor que apaga la pantalla ( cuando está encendido) y encendido (cuando está apagado), como señaló Pepelac .
adb whitelisting
, enviar un evento clave en 4.2.2 no funciona de la misma manera.adb shell input keyevent 26
apaga la pantalla y adb shell input keyevent 82
vuelve a encenderla, ¿verdad? Pero para 4.2.2, solo keyevent 26
parece funcionar. keyevent 82
no funciona por el motivo que sea.adb shell input keyevent 26
lo apaga/enciendeEl truco está en 4.4.x y/u otros sistemas, tienes que enviar un mensaje Enterdespués del comando o tienes que esperar x seg/min.
Así que hazlo como:
adb shell
@shell: input keyevent 26
@shell:
@shell: exit
Esto funcionará en cualquier caso, creo.
Configure el dispositivo en modo "sin bloqueo" en la configuración de seguridad (configuración de bloqueo en algunas versiones de Android) para que, después de reiniciar, el sistema operativo vaya directamente a la pantalla de inicio.
Luego puede enviar cualquier evento clave, mejor uno no reconocido para que no sea manejado por el controlador predeterminado, para activar la pantalla.
EDITAR: Esto funciona bien en 4.1. Verifiqué en 4.4 y los eventos que no sean 26 no funcionan cuando la pantalla está apagada. Supongo que esto se debe a que ahora hay otro dispositivo separado definido para el botón de encendido y los otros pueden estar inactivos. Entonces, debe verificar si la pantalla está apagada (dumpsys power, busque mScreenOn) y si está apagada, envíe 26. Debe hacer la verificación para evitar que se apague mientras está encendida. Esto funcionará en todas las versiones de Android.
wilf