13 votes

Activez Device Administrator via ADB

Est-il possible d'activer Device Administrator via une commande ADB au lieu de taper sur le clavier ?

"Setting -> Security -> Device Administrators --> Select App --> Activate"

sur ordinateur de poche ?

Si c'est possible, comment ?

10voto

Testé et fonctionnant sous Android 7.0 sans Root :

adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever

Pour trouver le récepteur d'administration d'un paquet installé, utilisez la commande shell adb suivante et examinez la sortie :

adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

Pour donner un exemple concret, voici la commande utilisée pour activer le client Android Maas360 d'IBM en tant qu'administrateur de périphérique :

adb shell
pm dump com.fiberlink.maas360.android.control | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

Output:
…
com.fiberlink.maas360.android.control/.receivers.GoogleCampaignReceiver
com.fiberlink.maas360.android.control/.receivers.LocalEventReceiver
com.fiberlink.maas360.android.control/.receivers.Maas360DeviceAdminReceiver  <-- This is the one I want
com.fiberlink.maas360.android.control/.receivers.Maas360SecondaryDeviceAdminReceiver
…

Set Device Admin:    
dpm set-active-admin --user current com.fiberlink.maas360.android.control/.receivers.Maas360DeviceAdminReceiver

7voto

Andy Brudtkuhl Points 1714

Ce n'est pas possible. Le code de paramétrage est spécifiquement écrit pour éviter cela. Le plus proche que vous puissiez faire est de faire apparaître la fonction Paramètres d'administration du dispositif dans la page Ajustes app. Vous pouvez le faire avec :

adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"

1voto

Firelord Points 23064

Oui, à condition que vous ayez un accès Root. Vous devez ajouter le récepteur de l'application et l'indicateur de politique dans le fichier /data/system/device_policies.xml . Par exemple, pour activer Tasker en tant qu'administrateur du dispositif, ajoutez les lignes suivantes dans ledit fichier,

Pour Android 5.x : Supprimez la dernière ligne avec </policies> s'il y a déjà un administrateur de dispositif activé dans le système. Il suffit d'ajouter les lignes dans le fichier après la ligne avec la chaîne de caractères <policies setup-complete="true"> .

<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>

Pour Android 4.2.1 : Supprimez la dernière ligne avec </policies> s'il y a déjà un administrateur de dispositif activé dans le système. Il suffit d'ajouter les lignes dans le fichier après la ligne avec la chaîne de caractères <policies> .

<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>

Redémarrez l'appareil pour que les modifications soient prises en compte.

( Busybox obligatoire) Vous pouvez utiliser sed o echo ou toute commande avec laquelle vous êtes à l'aise pour écrire le fichier avec ces lignes. Pour toute aide, voir ma réponse ici : Comment activer l'administrateur du périphérique pour des applications spécifiques en utilisant Tasker ?

1voto

melbic Points 1199

Vous pouvez définir l'appareil comme propriétaire à partir d'Android Studio. Tout d'abord, allez à l'emplacement adb qui se trouve à Platform-tools dans Android Sdk, puis exécutez la commande shell adb. J'ai donné le chemin complet et vous pouvez l'adapter à vos besoins en changeant le chemin adb et le nom du paquet.

C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver

MyDeviceAdminReceiver est l'interface.

-1voto

Tim O'Brien Points 99

Este es possible. Vous pouvez utiliser le nouvel outil UI-Automator d'Android pour cliquer et interagir avec n'importe quelle vue ou bouton du système, y compris en appuyant sur "Activer" pour l'administration du dispositif. Voici comment :

  1. Obtenez UI-Automateur en cours d'exécution. (allez dans "Configurer votre environnement de développement" et créez un nouveau projet java).

  2. Écrivez un code pour interagir avec votre liste de préférences et cliquez sur "Activer". Exemple :

    UiScrollable settingsItem = new UiScrollable(new UiSelector().className("Android.widget.ListView")) ; UiObject listButton = settingsItem.getChildByText(new UiSelector().className("Android.widget.LinearLayout"), "Enable Device Admin") ; listButton.click() ; (new UiObject(new UiSelector().text("Activate"))).clickAndWaitForNewWindow() ; me.celebrateWith(new Beer()) ;

  3. Compilez-le : ant build

  4. Poussez le fichier jar : adb -d push bin/LookoutTest.jar /data/local/tmp/

  5. Lancez votre activité de paramétrage : adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"

  6. Exécutez l'automatisation : adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch

  7. Parti.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X