No estoy seguro de por qué querrías hacer eso, pero seguro que vas a necesitar acceso Root si quieres habilitar Administrador de dispositivos Android como administrador del dispositivo en segundo plano.
He probado combinaciones de transmisiones de intención para evitar el reinicio del dispositivo pero sin éxito, así que ten en cuenta que mi método requiere un reinicio.
Todos los administradores de dispositivos habilitados están anotados en el archivo /data/system/device_policies.xml
. Simplemente añada o elimine las entradas de una aplicación, reinicie el dispositivo y esa aplicación se habilitará/deshabilitará como administrador del dispositivo.
Cualquier aplicación que aparezca en Configuración → Seguridad → Administrador del dispositivo tiene un receptor pensado específicamente para cumplir con la requisitos de uso de la API de administración de dispositivos y requiere el permiso BIND_DEVICE_ADMIN . Puede comprobar el nombre del receptor en el Manifiesto de la aplicación. Es este receptor el que se menciona en el device_policies.xml
archivo.
La forma más sencilla de obtener el nombre del receptor del administrador del dispositivo de la aplicación y la bandera es habilitar la aplicación como administrador del dispositivo, buscar las entradas de la aplicación en device_policies.xml
y luego revocar el privilegio de administrador del dispositivo .
Para Android Device Manager (ADM; gestionado por Google Play Services), las entradas son:
<admin name="com.google.android.gms/com.google.android.gms.mdm.receivers.MdmDeviceAdminReceiver">
<policies flags="28" />
</admin>
Ahora, hagamos una tarea para añadir esas entradas en dicho archivo XML cuando sea necesario.
Nota : Primero, Busybox es necesario para la tarea, pero puedes prescindir de su necesidad y utilizar la funcionalidad incorporada de Tasker para la ordenación si te fijas en la acción que he propuesto para habilitar ADM. En segundo lugar, mi solución ha sido probada en Android 5.0.2 y 5.1.1, pero debería funcionar también en otras versiones de Android con pocos ajustes.
- Cree una tarea denominada "Habilitar ADM".
-
Cree las siguientes acciones en esa tarea:
-
Código → Ejecutar Shell ,
-
Comando :
if [ "$(grep -o '</policies>' /data/system/device_policies.xml)" != "</policies>" ]; then sed -i 's/<policies setup-complete="true" \/>/<policies setup-complete="true" \/>\n<admin name="com.google.android.gms\/com.google.android.gms.mdm.receivers.MdmDeviceAdminReceiver">\n<policies flags="28" \/>\n<\/admin>\n<\/policies>/g' /data/system/device_policies.xml; fi; if [ "$(grep -o 'com.google.android.gms/' /data/system/device_policies.xml)" != "com.google.android.gms/" ]; then sed -i 's/<\/policies>/<admin name="com.google.android.gms\/com.google.android.gms.mdm.receivers.MdmDeviceAdminReceiver">\n<policies flags="28" \/>\n<\/admin>\n<\/policies>/g' /data/system/device_policies.xml; fi
El comando puede parecer un poco incomprensible al principio, pero en realidad es sencillo. El comando completo consiste en dos simples condiciones y acciones. La primera si es comprobar si </policies>
está disponible en el archivo o no. Si alguna aplicación está habilitada como administrador del dispositivo, el receptor y la bandera de la aplicación se mostrarán entre <policies setup-complete="true">
y </profiles>
. Si ninguna de las aplicaciones está activada, entonces </policies>
no aparecería para que podamos añadir fácilmente las entradas de ADM en el archivo.
El segundo si es comprobar si el ADM ya está activado o no. Si no lo está, entonces añade las entradas para habilitarlo.
-
Consulte Utilizar root
-
Código → Ejecutar Shell ,
-
En lugar de un reinicio suave, puede optar por un reinicio normal desde Sistema → Reiniciar → Tipo: Normal
-
Crear un perfil de evento desde Evento → Teléfono → Texto recibido y se establece,
- Tipo: SMS
- Remitente : Elija un número o déjelo en blanco
- Contenido : Especifique qué debe haber en el texto para activar la tarea, como " ¡Yo, chico! ". Alternativamente, puede evitar esta etapa y dejar todo más o menos global, pero utilizar una acción o más en una tarea para una mayor complejidad, así como la flexibilidad.
- Asigne la tarea al perfil.
Eso es. Ya puedes probar tu perfil. Debería funcionar sin problemas. Si no lo hace, entonces no tengo la culpa. Siga solucionando problemas, ya que ahora conoce el concepto.