Cómo forzar el funcionamiento de la detección de palabras clave "OK Google" cuando la pantalla está apagada en cualquier dispositivo [Root]

click fraud protection

Este es un tutorial sobre cómo forzar que cualquier dispositivo rooteado habilite la detección de palabras activas de OK Google, ¡incluso si su hardware no admite la función!

Cuando se anunció por primera vez el Moto X (2013), una de las características más interesantes (además de Ambient Display) fue su capacidad de despertarse con comandos de voz.

Introducida más tarde en los dispositivos Google Nexus y ahora disponible en muchos buques insignia, la capacidad de reconocimiento de palabras clave es una Característica bastante impresionante para cuando necesitas hacer una búsqueda rápida en Google sin tener que manipular el dispositivo en tu manos. Esto puede resultar excepcionalmente útil cuando ha acoplado su teléfono a su automóvil y necesita iniciar la navegación hacia un destino determinado. Es mucho más seguro utilizar la voz para iniciar la navegación de Google Maps que cualquier otra alternativa.

Desafortunadamente, poder activar los comandos "OK Google" en todo momento requiere un chip especial de reconocimiento de voz de bajo consumo en su dispositivo. Si bien este hardware está presente en muchos dispositivos, no está presente en todos. Incluso los buques insignia potentes y caros como el Huawei Mate 9 no ofrecen esta oferta. Para dispositivos como el mío, Google ofrece la posibilidad de activar comandos de voz "OK Google" mientras la pantalla está encendida o cuando el dispositivo está conectado a un cargador.

Hace unos años, hubo una aplicación con el nombre de Abrir Mic+ para Google Now el cual tenía la opción de habilitar un servicio en segundo plano para escuchar comandos de voz en todo momento. Desafortunadamente, Google solicitó que el desarrollador dejara de usar el servicio y el desarrollador ya no tuvo tiempo para brindar soporte a esa aplicación, por lo que quedó en el camino. La única opción existente es utilizar Voz automática, un complemento de Tasker popular, pero requiere que tengas suficiente conocimiento de Tasker para configurar perfiles para responder a comandos específicos.

Para aquellos de ustedes que preferirían confiar en el servicio de reconocimiento de voz de Google, encontré una solución que permite la detección de palabras activas "OK Google" en cualquier dispositivo rooteado, incluso si su hardware no lo admite. Hay dos advertencias a este truco, que discutiremos en detalle a continuación.


Detección de palabras clave "OK Google" en cualquier dispositivo

La pregunta que me hice al pensar en una solución a este problema fue:

¿Cómo puedo engañar a mi dispositivo para que habilite el servicio de reconocimiento de palabras activas cuando yo lo ordene?

Dado que mi teléfono actual no admite de forma nativa la detección de palabras activas mientras la pantalla está apagada, las únicas condiciones para que esto funcione serían cuando la pantalla de mi teléfono esté encendida o cuando se esté cargando. Naturalmente, dado que mi objetivo es habilitar la detección de palabras activas en todo momento (incluso cuando la pantalla está apagada), tener la pantalla encendida frustraría ese propósito. Tener que dejar mi dispositivo enchufado también sería inútil en mi esfuerzo, pero ¿y si pudiera truco ¿Mi dispositivo cumple alguna de estas dos condiciones?

Afortunadamente, con un poco de magia de raíz y un uso inteligente de los comandos de depuración, ¡esto es muy posible! Usando un comando de shell de depuración destinado a fines de prueba, puedo engañar a mi dispositivo haciéndole creer que se está cargando aunque esté desconectado de cualquier fuente de alimentación. El comando que explotaremos para nuestros propósitos es dumpsys battery, cuyos parámetros puede leer en esta publicación de blog de Roman Mazur.

Nota: este truco es Completamente seguro actuar. Como se indicó, este comando solo ENGAÑA a su dispositivo haciéndole creer que se está cargando. En realidad, NO se está cargando, incluso si las aplicaciones de monitoreo de batería dicen lo contrario (esto se debe a que estas aplicaciones recibirán información incorrecta).

De particular interés es el dumpsys battery set comando, que acepta parámetros para establecer si el dispositivo se está cargando actualmente mediante CA, USB o carga inalámbrica. Por ejemplo, si abrimos un shell raíz en Android e ingresamos el siguiente comando, el El dispositivo pensará que se está cargando mediante alimentación de CA.

su
dumpsys battery set ac 1

Al configurar este comando (o el comando para carga USB/inalámbrica), ahora podrá activa los comandos OK Google mientras la pantalla está apagada. Esto se debe a que, para todos los efectos, su dispositivo se está "cargando", cumpliendo con los requisitos para que se active el servicio de reconocimiento de palabras clave de Google.

Dado que este es un comando destinado a la depuración (principalmente destinado a que los desarrolladores prueben la funcionalidad en diferentes condiciones de la batería), tiene algunos inconvenientes cuando se usa de esta manera. Dos inconvenientes, en particular, que abordaremos a continuación. El primer inconveniente es bastante trivial de solucionar, pero no se puede decir lo mismo del segundo inconveniente.

Inconveniente n.º 1: indicador de batería congelada

Después de ingresar cualquier comando "conjunto de batería dumpsys", el servicio BatteryManager de Android dejar de recolectar inmediatamente más datos sobre el estado de la batería. Esto significa que el sistema Android ya no informará sobre el nivel de la batería, la temperatura, la corriente, el voltaje y el estado. En cambio, quedarán "congelados" en el tiempo en el momento en que ingresó el comando.

Sin embargo, este dato es todavía siendo recopilado por el sistema incluso si es accesible mediante cualquier aplicación. Si desea obtener una actualización sobre cuál es el nivel actual de su batería, deberá hacer algunos trucos. Afortunadamente, los datos son bastante fáciles de obtener. Si tiene Tasker u otra aplicación de automatización, todo lo que necesita hacer es crear una notificación que se actualice con un toque con el texto actual almacenado en /sys/class/power_supply/battery/capacity.

En la captura de pantalla anterior, mi indicador de batería (que es visible cuando bajo la barra de estado) está bloqueado en 70%, pero como puedes ver en el terminal, mi nivel real de batería es 69%. Sería fácil sondear periódicamente este archivo para publicar un nivel de batería preciso en mi barra de notificaciones, pero hay una manera aún más sencilla de solucionar este inconveniente.

Tratar este inconveniente particular es en realidad increíblemente trivial. Si lo piensas bien, este problema sólo se presenta cuando el comando está habilitado y cuando la pantalla está encendida. Pero la cuestión es que no es necesario tener este comando habilitado cuando la pantalla está encendida, porque la funcionalidad predeterminada le permite acceder a los comandos "OK Google" cuando la pantalla está encendida. Por lo tanto, todo lo que necesitas hacer es simplemente deshabilite este comando cuando la pantalla esté encendida. Usar Tasker u otra aplicación de automatización probablemente sería la forma más sencilla. Simplemente ejecute este comando para desactivar el truco:

dumpsys battery reset

Y a continuación encontrará la descripción de los dos perfiles de Tasker que necesitaría configurar para ejecutar este comando cuando la pantalla esté apagada, pero deshabilítelo cuando la pantalla esté encendida. En esencia, creará dos contextos de "Evento", uno de los cuales es el evento "Pantalla desactivada" mientras que el otro es el evento "Pantalla desbloqueada". La tarea para el evento "Mostrar desactivado" tendrá una sola acción, Código-->Ejecutar Shell con el comando dumpsys battery set ac 1. La tarea para el evento "Mostrar desbloqueado" también tendrá una única acción, Código-->Ejecutar Shell con el comando dumpsys battery reset. Por lo tanto, Tasker ejecutará el comando para engañar a su dispositivo haciéndole creer que se está cargando mientras la pantalla está apagada (perfil: Habilitar Detección de palabras activas) y ejecute el comando para desactivar este truco cuando el teléfono esté desbloqueado (perfil: Desactivar detección de palabras activas).

[pestañas][título de la pestaña ="Habilitar detección de palabras activas"]

Profile: Enable Hotword Detection (180)
Event: Display Off
Enter: Anon (182)
A1: Run Shell [ Command: dumpsys battery set ac 1Timeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]

[/tab][título de la pestaña ="Desactivar la detección de palabras activas"]

Profile: Disable Hotword Detection (191)
Event: Display Unlocked
Enter: Anon (192)
A1: Run Shell [ Command: dumpsys battery resetTimeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]

[/pestaña]

[/pestañas]

Inconveniente n.º 2: mayor consumo de batería

Hay una buena razón por la que la detección de palabras activas requiere en todo momento un coprocesador personalizado: de lo contrario, se produciría un consumo adicional de batería debido a que la CPU tendría que permanecer activa. Cuando engañas a tu dispositivo haciéndole creer que se está cargando, esto significa que el dispositivo mantiene el procesador en funcionamiento y ejecuta más información en segundo plano. servicios porque se supone que el aumento del consumo de energía no importará debido a que el dispositivo tiene acceso a una fuente de energía.

Pero ese no es el caso aquí, por lo que habilitar este comando resultará en un mayor consumo de batería. En mi experiencia, al dejar mi dispositivo en este estado durante la noche, mi Mate 9 se agotó. 12% de batería en el transcurso de 8 horas.

En mi opinión, no es un factor decisivo, pero esto puede disuadir a algunos de ustedes. Desafortunadamente, no existe una solución fácil para abordar este segundo inconveniente. Deshabilitar el comando mientras la pantalla está encendida, según el último párrafo mencionado en la sección anterior, ayudará a mitigar un poco el problema, pero eso es todo lo que puede hacer.


Conclusión

Espero que encuentres útil este truco. Ciertamente no es para todos, pero si alguna vez quisiste forzar el funcionamiento de la detección de palabras activas de OK Google y tu dispositivo no tiene el hardware necesario, esta solución es para ti.

He descrito los dos posibles inconvenientes de este truco, el primero de los cuales se puede resolver utilizando una aplicación de automatización para habilitar/deshabilitar el comando cuando tenga sentido hacerlo. Desafortunadamente, este último inconveniente se debe al hecho de que su hardware no está diseñado para estar siempre activo. Detección de palabras activas, pero si usa esto solo cuando realmente lo necesita, entonces no debería ser demasiado complicado. asunto.

¡Prueba este truco y cuéntanos en los comentarios a continuación si funciona para ti!