Est-il possible d'activer Device Administrator via la commande ADB au lieu de taper
"Paramètres -> Sécurité -> Administrateurs de périphériques -> Sélectionner une application -> Activer"
sur ordinateur de poche?
Si c'est possible, comment?
Est-il possible d'activer Device Administrator via la commande ADB au lieu de taper
"Paramètres -> Sécurité -> Administrateurs de périphériques -> Sélectionner une application -> Activer"
sur ordinateur de poche?
Si c'est possible, comment?
Réponses:
Ce n'est pas possible. Le code des paramètres est spécifiquement écrit pour éviter cela. Le plus proche est d'appeler la page Paramètres d'administration de l' appareil dans l' application Paramètres . Vous pouvez le faire avec:
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Sans guillemet simple
Testé et fonctionnant sur 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 administrateur d'un package installé, utilisez la commande suivante pour adb shell et passez en revue la sortie:
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Pour donner un exemple réel, 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
Oui, à condition d'avoir un accès root. Vous devez ajouter le récepteur de l'application et l'indicateur de stratégie dans le fichier /data/system/device_policies.xml
. Par exemple, pour activer Tasker en tant qu'administrateur de périphérique, 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 périphérique activé dans le système. Ajoutez simplement les lignes dans le fichier après la ligne avec la chaîne <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 périphérique activé dans le système. Ajoutez simplement les lignes dans le fichier après la ligne avec la chaîne <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 prennent effet.
( Busybox requis) Vous pouvez utiliser sed
ou echo
ou n'importe quelle 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 de l'appareil pour des applications spécifiques à l'aide de Tasker?
C'est 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'administrateur de l'appareil. Voici comment:
Écrivez du 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 (nouvelle bière ());
Compilez-le: ant build
adb -d push bin/LookoutTest.jar /data/local/tmp/
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
vous pouvez définir l'appareil en tant que propriétaire à partir d'Android Studio. Accédez d'abord à l'emplacement adb qui se trouve sur Platform-tools dans Android Sdk, puis exécutez la commande shell adb. J'ai donné le chemin complet et vous pouvez vous adapter à vos besoins en modifiant le chemin d'accès adb et le nom du package
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver est l'interface.