Aktivieren Sie den Geräte-Administrator über ADB

9

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?

Marengga
quelle
Sie sollten in Betracht ziehen, die Antwort von вʀaᴎᴅᴏƞ вєнᴎєƞ zu akzeptieren , da sie perfekt funktioniert !!
Cliff Burton

Antworten:

6

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'"
Dan Hulme
quelle
Danke Dan, kleine Korrektur: Es sollte adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity" ohne einfaches Anführungszeichen sein
Marengga
In den meisten Shells startet dieser Befehl nur die Einstellungen , nicht die Seite mit den Einstellungen für die Geräteverwaltung . Hier ist Izzys Erklärung, warum .
Dan Hulme
Was ist mit dem Deaktivieren? ist das möglich?
Android-Entwickler
5

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
вʀaᴎᴅᴏƞ вєнᴎєƞ
quelle
ES KLAPPT! Dies muss die akzeptierte Antwort sein! Ich habe eine Frage: Ist es möglich, diesem Befehl ein zusätzliches Element hinzuzufügen? Ich muss die Samsung Knox-Lizenzaktivierung direkt nach der Administratoraktivierung anfordern und möchte den Lizenzschlüssel als Extra übergeben (damit ich ihn nicht in meinem Code oder auf meinem Gerät speichern muss)
Cliff Burton
1

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 sedoder echooder 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?

Feuerlord
quelle
0

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:

  1. Starten Sie UI-Automator . (Gehen Sie zu "Konfigurieren Sie Ihre Entwicklungsumgebung" und richten Sie ein neues Java-Projekt ein.)
  2. 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 ());

  3. Kompiliere es: ant build

  4. Schieben Sie die JAR-Datei: adb -d push bin/LookoutTest.jar /data/local/tmp/
  5. Starten Sie Ihre Einstellungsaktivität: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
  6. Führen Sie die Automatisierung aus: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
  7. Party.
Tim O'Brien
quelle
Funktioniert dies auch dann, wenn das aktuelle Gebietsschema des Geräts nicht Englisch ist?
Android-Entwickler
0

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.

Mudassir Khan
quelle