Activeer apparaatbeheerder via ADB
Geplaatst op februari 17, 2021 door adminIs het mogelijk om apparaatbeheerder te activeren via het ADB-commando in plaats van te tikken op
“Setting -> Security -> Device Administrators -> Select App -> Activate”
op handheld?
Als het mogelijk is, hoe?
Reacties
- Overweeg om вʀaᴎᴅᴏƞ вєнᴎєƞ ‘ s antwoord zoals het perfect werkt !!
Antwoord
Het is niet mogelijk. De instellingencode is speciaal geschreven om dit te voorkomen. U kunt het dichtst in de buurt komen door de pagina Instellingen apparaatbeheer op de Instellingen app. Je kunt dit doen met:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Reacties
- Bedankt Dan, Kleine correctie: het zou zo moeten zijn
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Zonder enkele aanhalingstekens - In de meeste shells start dat commando gewoon Instellingen , niet de Instellingen apparaatbeheer pagina. Hier ‘ s Izzy ‘ s uitleg van waarom .
- Hoe zit het met uitschakelen? is dat mogelijk?
Answer
Getest en werkend op Android 7.0 zonder root:
adb shell dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Om de admin-ontvanger van een geïnstalleerd pakket te vinden, gebruik je het volgende voor het adb shell-commando en bekijk je de uitvoer:
adb shell pm dump com.company.foo.bar.package | grep " filter" | cut -d " " -f 12 | sort | uniq
Om een voorbeeld uit de echte wereld te geven, hier is de opdracht die wordt gebruikt om IBMs Maas360 Android-client als apparaatbeheerder te activeren:
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
Opmerkingen
- HET WERKT! Dit moet het geaccepteerde antwoord zijn! Ik heb één vraag, is het mogelijk om een extra aan die opdracht toe te voegen? Ik moet het activeringsrecht voor de Samsung Knox-licentie aanvragen na de activering van de beheerder en ik wil de sleutel van de licentie ‘ s doorgeven als een extra (dus ik hoef deze niet in mijn code of op mijn apparaat op te slaan)
- Merk op dat
dpm set-active-admin
niet beschikbaar is op Android 5, maar je kunt een soortgelijk effect krijgen metdpm set-device-owner
Antwoord
Ja, op voorwaarde dat je root-toegang hebt. U zou de ontvanger van de app en de beleidsvlag in het bestand /data/system/device_policies.xml
moeten toevoegen. Om bijvoorbeeld Tasker voeg als apparaatbeheerder de volgende regels toe aan het genoemde bestand,
Voor Android 5.x: Verwijder de laatste regel met </policies>
als er al een apparaatbeheerder is ingeschakeld in het systeem. Voeg eenvoudig de regels in het bestand toe na de regel met de tekenreeks <policies setup-complete="true">
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver"> <policies flags="8" /> </admin> </policies>
Voor Android 4.2.1: Verwijder de laatste regel met </policies>
als er al een apparaatbeheerder is ingeschakeld in het systeem. Voeg eenvoudig de regels in het bestand toe na de regel met de tekenreeks <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver"> <policies flags="8" /> </admin> </policies>
Start het apparaat opnieuw op om de wijzigingen door te voeren.
( Busybox vereist) U kunt of echo
of een ander commando waarmee je vertrouwd bent om het bestand met die regels te schrijven. Zie mijn antwoord hier voor hulp: Hoe kan ik apparaatbeheerder inschakelen voor specifieke apps met Tasker?
Antwoord
u kunt het apparaat instellen als eigenaar vanuit Android Studio. Ga eerst naar de adb-locatie die zich bij Platform-tools in Android Sdk bevindt en voer vervolgens het adb-shell-commando uit. Ik heb het volledige pad gegeven en u kunt het naar uw wensen aanpassen door het adb-pad en de pakketnaam te wijzigen
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver is de interface.
Opmerkingen
- Merk op dat zodra een app is ingesteld als eigenaar het erg moeilijk is om dit ongedaan te maken
- hoi @Sam Ik weet het, maar gelukkig kunnen we dit doen door te coderen om de eigenaar ongedaan te maken
Antwoord
Dit is mogelijk. U kunt de nieuwe tool UI-Automator van Android gebruiken om te klikken en te communiceren met elke weergave of knop op het systeem, inclusief het klikken op “Activeren” voor apparaatbeheerder. Hier is hoe:
- Get UI-Automator actief. (ga naar “Configureer uw ontwikkelomgeving” en stel een nieuw java-project in).
-
Schrijf een code om te communiceren met uw voorkeurenlijst en klik op “Activeren”. Voorbeeld:
UiScrollable settingsItem = new UiScrollable (nieuwe UiSelector (). ClassName (“android.widget.ListView”)); UiObject listButton = settingsItem.getChildByText (nieuwe UiSelector ().className (“android.widget.LinearLayout”), “Apparaatbeheer inschakelen”); listButton.click (); (nieuw UiObject (nieuwe UiSelector (). tekst (“Activate”))). clickAndWaitForNewWindow (); me.celebrateWith (new Beer ());
-
Compileer het:
ant build
- Push het jar-bestand:
adb -d push bin/LookoutTest.jar /data/local/tmp/
- Start uw instellingenactiviteit:
adb shell am start -S ""com.android.settings/.Settings\$DeviceAdminSettingsActivity""
- Voer de automatisering:
adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
- Feest.
Reacties
- Werkt dit zelfs als de huidige landinstelling van het apparaat niet ‘ t Engels is?
Geef een reactie