Je ne sais pas trop pourquoi vous voulez faire cela, mais vous aurez besoin d'un accès Root si vous voulez activer la fonction. Gestionnaire de périphériques Android en tant qu'administrateur du dispositif en arrière-plan.
J'ai essayé des combinaisons de diffusions d'intentions pour éviter le redémarrage de l'appareil, mais sans succès, donc notez que ma méthode nécessite un redémarrage.
Tous les administrateurs d'appareils activés sont notés dans le fichier /data/system/device_policies.xml
. Il suffit d'ajouter ou de supprimer les entrées d'une application, de redémarrer l'appareil et cette application sera activée/désactivée en tant qu'administrateur de l'appareil.
Toute application apparaissant sous Paramètres → Sécurité → Administrateur de l'appareil dispose d'un récepteur spécialement conçu pour répondre aux exigences relatives à l'utilisation de l'API d'administration des dispositifs et nécessite l'autorisation BIND_DEVICE_ADMIN . Vous pouvez vérifier le nom du destinataire dans le manifeste de l'application. C'est ce récepteur qui est mentionné dans le device_policies.xml
Datei.
La façon la plus simple d'obtenir le nom du récepteur de l'administrateur de l'application et le drapeau est d'activer l'application en tant qu'administrateur de l'appareil, de rechercher les entrées de l'application sous device_policies.xml
puis révoquer les privilèges de l'administrateur du dispositif .
Pour Android Device Manager (ADM ; géré par Google Play Services), les entrées sont les suivantes :
<admin name="com.google.android.gms/com.google.android.gms.mdm.receivers.MdmDeviceAdminReceiver">
<policies flags="28" />
</admin>
Maintenant, nous allons créer une tâche pour ajouter ces entrées dans le fichier XML en question chaque fois que cela est nécessaire.
Note : Premièrement, Boîte à outils est nécessaire pour la tâche, mais vous pouvez vous en passer et utiliser la fonctionnalité intégrée de Tasker pour le tri si vous regardez de près l'action que j'ai proposée pour activer ADM. Deuxièmement, ma solution a été testée sur Android 5.0.2 et 5.1.1, mais elle devrait fonctionner sur d'autres versions d'Android avec quelques modifications.
- Créez une tâche nommée "Enable ADM".
-
Créez les actions suivantes dans cette tâche :
-
Code → Exécuter le shell ,
-
Commandement :
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
La commande peut sembler incompréhensible à première vue, mais elle est en réalité très simple. L'ensemble du commandement consiste en deux conditions et actions simples. La première wenn La condition est de vérifier si </policies>
est disponible dans le fichier ou non. Si une application est activée en tant qu'administrateur de l'appareil, le récepteur et l'indicateur de l'application s'afficheront entre <policies setup-complete="true">
y </profiles>
. Si aucune des applications n'est activée, alors </policies>
n'apparaîtrait pas, de sorte que nous pouvons facilement ajouter les entrées d'ADM dans le fichier.
Le deuxième wenn vérifie si l'ADM est déjà activé ou non. Si ce n'est pas le cas, il faut ajouter les entrées pour l'activer.
-
Vérifier Utiliser la racine
-
Code → Exécuter le shell ,
-
Commandement : setprop ctl.restart zygote
Cette opération permet de redémarrer l'appareil.
-
Vérifier Utiliser la racine
-
Au lieu de procéder à un redémarrage en douceur, vous pouvez opter pour un redémarrage normal à partir de Système → Redémarrage → Type : Normal
-
Créer un profil d'événement à partir de Événement → Téléphone → Texte reçu et fixer,
- Type : SMS
-
Expéditeur : Choisissez un numéro ou laissez-le vide
-
Contenu : Spécifiez ce qui doit figurer dans le texte pour déclencher la tâche, par exemple " Yo boy ! ". Il est également possible d'éviter cette étape et de tout laisser à peu près global, mais d'utiliser une action ou plus dans une tâche pour plus de complexité et de flexibilité.
- Affecter la tâche au profil.
C'est tout. Vous pouvez maintenant tester votre profil. Il devrait fonctionner parfaitement. Si ce n'est pas le cas, je n'ai rien à me reprocher ! Continuez à dépanner puisque vous connaissez maintenant le concept.