Un tutorial sobre cómo replicar las funciones basadas en la ubicación de Smart Lock de Google en dispositivos Huawei o Honor que ejecutan EMUI.
Si nunca ha tenido un dispositivo Huawei o Honor, probablemente esté mirando el título y diciendo "¿eh?" Después de todo, Smart Lock es una característica introducida en Android 5.0 piruleta para facilitar el acceso rápido a su dispositivo bajo ciertas condiciones como la ubicación, cuando está conectado a ciertos dispositivos, mientras está en su bolsillo o cuando reconoce su voz.
Normalmente no vale la pena discutir esta característica dado que han pasado más de dos años desde que se lanzó Lollipop, y el hecho de que aproximadamente el 65% de todos los dispositivos Android se ejecutan en Android 5.0+. Sospechamos que la proporción de usuarios en nuestros foros que ejecutan al menos Lollipop es mucho, mucho mayor, aunque no tenemos estadísticas exactas al respecto. En cualquier caso, la función Smart Lock de Google se ha vuelto tan común entre los dispositivos Android que las aplicaciones de terceros que ofrecen esta funcionalidad
tienen en gran medida estado abandonado, porque no ven el sentido de competir con la función.Pero hay un grupo de usuarios que se quedan con una versión castrada de Smart Lock: usuarios con un Dispositivo Huawei o Honor ejecutando EMUI. Por alguna razón, EMUI no proporciona las mismas funciones de Smart Lock que ofrecen la mayoría de los demás dispositivos Android 5.0+. En cambio, EMUI solo le permite desbloquear automáticamente su dispositivo si está conectado a ciertos dispositivos Bluetooth.
Si bien es ciertamente útil si posee un dispositivo portátil Bluetooth, como un reloj inteligente o una pulsera de ejercicios, no todos tienen un dispositivo portátil siempre conectado a su teléfono inteligente. La exclusión de Huawei de la función Smart Lock de Google es claramente deliberada, porque incluso si habilita Smart Lock como "agente confiable" en Android, no podrá utilizar la función.
Básicamente, estás atrapado con la función de bloqueo "inteligente" de Huawei, que ofrece menos funciones que el bloqueo inteligente de Google. Tus únicas opciones como propietario de un dispositivo Huawei/Honor son probar una de las muchas opciones en Play Store. que afirman agregar esta función (ninguna de las cuales ha funcionado en mi dispositivo), o rootear su teléfono y descargar un módulo Xposed. Por supuesto, la falta de opciones decentes para EMUI me ha llevado a escribir este tutorial. Con un poco de magia de Tasker y un complemento llamado AutoTools, podemos Desbloquee automáticamente cualquier dispositivo Huawei o Honor según la ubicación sin necesidad de root.
Bloqueo inteligente para dispositivos Huawei/Honor
Sólo se necesitan dos aplicaciones para que esta función esté operativa. El primero es Tasker, la increíblemente popular herramienta de automatización de Android que en XDA presentamos con frecuencia para resolver problemas que van desde los más mundanos hasta los increíblemente complejos. Por $2.99, puede parecer innecesario comprar esta aplicación por algo tan simple, pero el valor que esta aplicación puede proporcionar es enorme, si estás dispuesto a hacerlo. sentarse a través de algunos tutoriales. A continuación, necesitará la versión beta de un complemento de Tasker conocido como Autoherramientas. Este complemento agrega un montón de funciones útiles al conjunto de herramientas nativo de Tasker y, en particular, necesitaremos una función de AutoTools conocida como Configuración segura para lograr nuestro objetivo.
Lo que haremos es modificar una propiedad en nuestro dispositivo que controla el temporizador que usa Android para determinar cuándo mostrar la pantalla de bloqueo después de que el teléfono haya agotado el tiempo de espera. Un "tiempo de espera" aquí se refiere a cuando la pantalla de su teléfono se apaga después de X minutos de inactividad o cuando el usuario apaga manualmente la pantalla presionando el botón de encendido. Después de un período de tiempo determinado (que va desde inmediatamente después de que el dispositivo entra en modo de suspensión hasta 30 minutos después de ingresar al modo de suspensión), Android mostrará la pantalla de bloqueo.
El problema con estas dos funciones es que, de forma predeterminada, aumentar el temporizador de "bloqueo automático" puede ser potencialmente un problema de seguridad, porque si su dispositivo se desliza dentro del período de tiempo en el que la pantalla de bloqueo aún no se ha activado, un ladrón tendrá acceso a todo el contenido de su dispositivo. Para mitigar esto, Android ofrece una opción de "el botón de encendido bloquea instantáneamente el dispositivo" para que puedas activar inmediatamente la pantalla de bloqueo presionando el botón de encendido. Sin embargo, y especialmente si ha establecido un tiempo de espera de pantalla breve, es fácil olvidarse de hacerlo, por lo que aún está abierto a tener su dispositivo accedido por terceros malintencionados si accidentalmente deja que el dispositivo se agote en una mesa o en su bolsillo sin presionar manualmente el botón de encendido botón.
Por lo tanto, nuestra solución a este problema es vincular un temporizador más largo de "bloqueo automático" no al botón de encendido, que requiere intervención manual, sino a la ubicación/WiFi. De esa manera, Puede disfrutar usando su dispositivo sin una pantalla de bloqueo mientras está en la comodidad de su hogar, pero tenga la seguridad de que el PIN/contraseña de la pantalla de bloqueo siempre estará visible mientras esté lejos. hogar. Ahora que hemos explicado lo que estamos haciendo, así es como se hace realmente.
Tutorial
Como se mencionó anteriormente, modificaremos una determinada propiedad del sistema. Esta propiedad se define bajo el Ajustes. clase segura con el nombre lock_screen_lock_after_timeouty acepta valores enteros en milisegundos. Para modificar este valor, necesitaremos otorgarle a AutoTools un permiso particular para que pueda escribir en esta configuración sin necesidad de acceso de root.
En el sistema de gestión de permisos de Android, las aplicaciones definen los permisos que desean que se les otorgue en el archivo Manifiesto. Luego, los usuarios pueden otorgar o denegar permisos durante la instalación (antes de Marshmallow) o bajo demanda (Marshmallow+). Sin embargo, hay ciertos permisos que las aplicaciones no pueden otorgar incluso si lo solicitan en el Manifiesto, como por ejemplo ESCRIBIR_CONFIGURACIONES_SEGURAS. Esto se debe a que otorgar a cualquier aplicación un permiso tan poderoso como este le daría a esa aplicación un gran control sobre su dispositivo.
Pero hay una solución que podemos usar para otorgar el permiso WRITE_SECURE_SETTINGS a cualquier aplicación que queramos. Usando ADB administrador de paquetes (pm) herramienta, podemos otorgar casi cualquier permiso a cualquier aplicación que queramos (siempre que la aplicación solicite ese permiso en el archivo Manifiesto).
Lo primero que tendrás que hacer es instalar el binario ADB en su computadora seguido del controlador adecuado para su dispositivo. Luego, habilite la depuración de USB en Opciones de desarrollador (vaya a Configuración --> Acerca del teléfono y toque Número de compilación 7 veces si aún no lo ha hecho) y conecte su teléfono a su computadora. Finalmente, envíe el siguiente comando una vez que haya abierto una terminal:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Ahora AutoTools tendrá la capacidad de cambiar cualquier configuración global, segura o del sistema en su dispositivo. Hay varias formas de jugar con estas configuraciones y la lista de configuraciones disponibles en Cada categoría depende completamente de su dispositivo y de la versión del software, pero esa discusión queda para otro tema. tiempo. En cualquier caso, continuaremos mostrándole cómo usar AutoTools para controlar el tiempo de espera de la pantalla de bloqueo.
Paso 2: configurar Tasker
Abre Tasker y presiona el botón + icono en la esquina inferior derecha para crear un nuevo perfil. Ponle a tu nuevo perfil un nombre como "Bloqueo automático" o lo que quieras, de verdad. Para el tipo de contexto que usaremos, seleccione Estado. Ir a Red --> WiFi conectado. Aquí seleccionaremos las redes WiFi que queremos incluir en la lista blanca para desbloquear automáticamente el dispositivo. Golpea el lupa y seleccione todas las redes WiFi que desee incluir en la lista blanca.
Opcional: Si desea crear un Smart Lock verdaderamente basado en la ubicación (en lugar de basarse solo en redes WiFi), entonces puedes usar el contexto "Ubicación" en Tasker en lugar del Estado --> Red --> WiFi Conectado característica. Tenga en cuenta que Tasker no crea geocercas, por lo que el consumo de batería será peor con este método. Si desea que Tasker reaccione a geocercas con mayor eficiencia de batería, deberá instalar el Ubicación automática enchufar.
Retroceda y luego se le pedirá que cree una tarea. Ingrese cualquier nombre (o ninguno está bien) para acceder a la pantalla de creación de tareas. presione el + icono en la parte inferior central para agregar una nueva acción. Ir a Complemento --> AutoTools --> Configuración segura. Golpea el lápiz para abrir la pantalla de configuración de Configuración segura de AutoTools. Ir a Bloquear pantalla --> Bloqueo automático y para el valor ingrese cualquier valor suficientemente alto como '9001'. Este es el valor, en segundos, en el que AutoTools configurará el temporizador de pantalla de bloqueo automático. Afortunadamente para nosotros, no tenemos que complicarnos configurando manualmente un comando para modificar el valor lock_screen_lock_after_timeout, ya que el desarrollador de AutoTools ha implementado esta característica para nosotros en una bonita GUI.
Guarde esta configuración presionando el ícono de marca de verificación en la parte superior, luego presionando la tecla Atrás una vez nuevamente en Tasker y finalmente saliendo de la pantalla de creación de tareas. Una vez que hayas hecho eso, Tasker mantendrá automáticamente tu dispositivo desbloqueado durante mucho tiempo mientras estés en casa. Asegúrate de eso "El botón de encendido bloquea instantáneamente el dispositivo." es desactivado en la configuración de bloqueo seguro; de lo contrario, cuando presione el botón de encendido mientras está en casa, la pantalla de bloqueo de su teléfono se activará, ¡lo cual no es lo que desea!
Finalmente, necesitaremos agregar otra Tarea que se active cuando abandonemos cualquiera de las redes WiFi de la lista blanca. En la página principal de Tasker, pulsación larga sobre el Tarea acabas de crear y toca agregar tarea de salida en el menú emergente. Nombra esta tarea como quieras y, una vez más, ingresa a la pantalla de creación de tareas. Aquí, toque el + ícono y nuevamente vaya a Complemento --> AutoTools --> Configuración segura. En la misma opción de Bloqueo automático, esta vez ingrese un valor de 0. Una vez que abandone su red WiFi, Tasker ya no retrasará la aparición de la pantalla de bloqueo después de que se agote el tiempo de espera del teléfono.
Opcional: Agregue una segunda acción presionando el botón + icono pero esta vez ve a Pantalla --> Bloqueo del sistema. Esta acción bloqueará automáticamente su teléfono cuando salga del alcance de sus redes WiFi en la lista blanca. en caso de que tengas un tiempo de espera de visualización muy largo y tu teléfono nunca entre en modo de suspensión cuando sales de casa. Si hace esto, deberá convertir a Tasker en administrador del dispositivo yendo a Configuración. Simplemente busque la opción y otorgue el permiso a Tasker.
¡Y eso es! Si bien este tutorial parece largo, en realidad el script Tasker en sí es muy simple. Es necesario un total de hasta 3 acciones para habilitar esta función. ¡Pruébalo y cuéntanos cómo funciona para ti!