web-dev-qa-db-fra.com

Comment supprimer set-device-owner dans Android DPM?

J'ai créé un propriétaire d'appareil utilisant ADB en suivant ce lien: Comment faire de mon application un propriétaire d'appareil?

mais maintenant, je ne suis pas capable de revenir sur cela.

Dans l'onglet Administration du périphérique, cette option est désactivée. Impossible de changer la valeur de cette application.

2
Kushaal Singla

Vous pouvez le désactiver par programmation. Vous devez appeler cette fonction dans l'application propriétaire de votre appareil.

DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);

dpm.clearDeviceOwnerApp(context.getPackageName());

Pour plus d'informations voir

7
Mushahid Gillani

vous pouvez utiliser la commande ADB Shell suivante pour supprimer le propriétaire du périphérique

adb Shell dpm remove-active-admin ComponentInfo{}

Désactive un administrateur actif, l'administrateur doit avoir déclaré Android: testOnly dans l'application dans son manifeste. Cela supprimera également les propriétaires d'appareils et de profils.

4
sjDroid

En spécifiant l'attribut Android: testOnly = "true" dans le fichier AndroidManifest.xml, il sera possible de désinstaller l'application ou de supprimer l'administrateur avec:

adb Shell dpm remove-active-admin package.name/MyDeviceAdminReceiver

Mais sur un périphérique de production, cet attribut doit être supprimé pour que l'application devienne un administrateur non test. À partir de ce moment, il ne sera plus possible de l'enlever ou de désinstaller l'application sans effacer/réinitialiser les paramètres d'usine. Il est également important de garder à l'esprit que si vous créez une application à partir d'Android Studio, celle-ci sera signée avec une clé par défaut d'Android et l'application deviendra un administrateur non test. Après un certain temps, si vous souhaitez ajouter de nouvelles fonctionnalités, vous réaliserez qu’il est impossible d’installer une nouvelle version. Heureusement, les mises à jour peuvent être effectuées lorsque l'application est signée avec la même clé lorsque le code de version est égal ou supérieur à:

adb install -r path/to/kiosk.apk

Si vous souhaitez vous débarrasser de l'administrateur et de l'application sur le périphérique de production, vous devez le réinstaller avec quelques nouvelles modifications. Tout d'abord, vous pouvez effacer les données par programme si vous avez l'autorisation <wipe-data \> dans device_admin_receiver.xml avec:

devicePolicyManager.wipeData(DevicePolicyManager.WIPE_RESET_PROTECTION_DATA)

Si vous ne disposez pas de cette autorisation, la nouvelle version ne doit pas démarrer LockTask et supprimer son package de la liste des applications par défaut de Home avec:

devicePolicyManager.clearPackagePersistentPreferredActivities(mAdminComponentName, packageName)

Ensuite, vous pouvez aller manuellement dans Paramètres pour effectuer un nettoyage/réinitialisation d'usine.

Informations trouvées sur: https://snow.dog/blog/kiosk-mode-Android

1
nilsi

La seule solution consiste à faire clignoter ou à réinitialiser le périphérique en usine.

0
Nivil Boban