Ist es möglich, den Geräteadministrator über den ADB-Befehl zu aktivieren, anstatt auf zu tippen?
"Einstellung -> Sicherheit -> Geräteadministratoren -> App auswählen -> Aktivieren"
auf Handheld?
Wenn es möglich ist, wie?
Ist es möglich, den Geräteadministrator über den ADB-Befehl zu aktivieren, anstatt auf zu tippen?
"Einstellung -> Sicherheit -> Geräteadministratoren -> App auswählen -> Aktivieren"
auf Handheld?
Wenn es möglich ist, wie?
Antworten:
Es ist nicht möglich. Der Einstellungscode wurde speziell geschrieben, um dies zu verhindern. Am nächsten können Sie die Seite mit den Einstellungen für die Geräteverwaltung in der App Einstellungen aufrufen . Sie können dies tun mit:
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
ohne einfaches Anführungszeichen sein
Getestet und funktioniert unter Android 7.0 ohne root:
adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Um den Administratorempfänger eines installierten Pakets zu finden, verwenden Sie den folgenden Befehl, um die Shell zu adbieren und die Ausgabe zu überprüfen:
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Um ein Beispiel aus der Praxis zu geben, finden Sie hier den Befehl zum Aktivieren des IBM Maas360 Android-Clients als Geräteadministrator:
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
Ja, vorausgesetzt, Sie haben Root-Zugriff. Sie müssten den Empfänger der App und das Richtlinienflag in die Datei einfügen /data/system/device_policies.xml
. Um beispielsweise Tasker als Geräteadministrator zu aktivieren, fügen Sie die folgenden Zeilen in die Datei ein:
Für Android 5.x: Entfernen Sie die letzte Zeile mit, </policies>
wenn bereits ein Geräteadministrator im System aktiviert ist. Fügen Sie einfach die Zeilen in der Datei nach der Zeile mit der Zeichenfolge hinzu <policies setup-complete="true">
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Für Android 4.2.1: Entfernen Sie die letzte Zeile mit, </policies>
wenn bereits ein Geräteadministrator im System aktiviert ist. Fügen Sie einfach die Zeilen in der Datei nach der Zeile mit der Zeichenfolge hinzu <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Starten Sie das Gerät neu, damit die Änderungen wirksam werden.
( Busybox erforderlich) Sie können mit sed
oder echo
oder einem Befehl , dass Sie bequem mit der Datei mit den Zeilen zu schreiben. Hilfe finden Sie in meiner Antwort hier: Wie aktiviere ich den Geräteadministrator für bestimmte Apps mit Tasker?
Das ist möglich. Sie können das neue Android-Tool UI-Automator verwenden, um auf eine beliebige Ansicht oder Schaltfläche im System zu klicken und mit dieser zu interagieren, einschließlich "Aktivieren" für den Geräteadministrator. Hier ist wie:
Schreiben Sie Code, um mit Ihrer Voreinstellungsliste zu interagieren, und klicken Sie auf "Aktivieren". Beispiel:
UiScrollable settingsItem = new UiScrollable (new UiSelector (). ClassName ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (neuer UiSelector (). ClassName ("android.widget.LinearLayout"), "Enable Device Admin"); listButton.click (); (neues UiObject (neues UiSelector (). Text ("Aktivieren")). clickAndWaitForNewWindow (); me.celebrateWith (neues Bier ());
Kompiliere es: 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
Sie können das Gerät in Android Studio als Eigentümer festlegen. Gehen Sie zuerst zum adb-Speicherort unter Platform-tools in Android Sdk und führen Sie dann den Befehl adb shell aus. Ich habe den vollständigen Pfad angegeben und Sie können ihn an Ihre Anforderungen anpassen, wenn Sie den ADB-Pfad und den Paketnamen ändern
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver ist die Schnittstelle.