Aktivera enhetsadministratör via ADB
On februari 17, 2021 by adminÄr det möjligt att aktivera enhetsadministratör via ADB-kommando istället för att trycka på
”Inställning -> Säkerhet -> Enhetsadministratörer -> Välj app -> Aktivera”
på handhållen?
Om det är möjligt, hur?
Kommentarer
- Du bör överväga att acceptera вʀaᴎᴅᴏƞ вєнᴎєƞ ’ s svar eftersom det fungerar perfekt !!
Svar
Det är inte möjligt. Inställningskoden är specifikt skriven för att förhindra detta. Det närmaste du kan komma är att ta fram Enhetsadministrationsinställningar på Inställningar app. Du kan göra detta med:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Kommentarer
- Tack Dan, lite korrigering: det borde vara
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Utan enstaka offert - I de flesta skal startar det kommandot bara Inställningar , inte Enhetsadministrationsinställningarna sida. Här ’ s Izzy ’ s förklaring till varför .
- Hur är det med att inaktivera? är det möjligt?
Svar
Testat och fungerar på Android 7.0 utan root:
adb shell dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
För att hitta administratörsmottagaren för ett installerat paket, använd följande för att adb shell-kommandot och granska utdata:
adb shell pm dump com.company.foo.bar.package | grep " filter" | cut -d " " -f 12 | sort | uniq
För att ge ett verkligt exempel, här är kommandot som används för att aktivera IBMs Maas360 Android-klient som enhetsadministratör:
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
Kommentarer
- DET FUNGERAR! Detta måste vara det accepterade svaret! Jag har en fråga, är det möjligt att lägga till en extra till det kommandot? Jag måste begära Samsung Knox licensaktiveringsrättighet efter administratörsaktivering och jag vill skicka licens ’ s-nyckel som extra (så jag behöver inte lagra den i min kod eller på min enhet)
- Observera att
dpm set-active-admin
inte är tillgängligt på Android 5, men du kan få en liknande effekt meddpm set-device-owner
Svar
Ja, förutsatt att du har root-åtkomst. Du måste lägga till appens mottagare och policyflaggan i filen /data/system/device_policies.xml
. Till exempel, för att aktivera Tasker som enhetsadministratör lägger till följande rader i nämnda fil,
För Android 5.x: Ta bort den sista raden med </policies>
om det redan finns en enhetsadministratör aktiverad i systemet. Lägg bara till raderna i filen efter raden med sträng <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: Ta bort den sista raden med </policies>
om det redan finns en enhetsadministratör aktiverad i systemet. Lägg bara till raderna i filen efter raden med sträng <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver"> <policies flags="8" /> </admin> </policies>
Starta om enheten för att ändringarna ska träda i kraft.
( Busybox krävs) Du kan använda eller echo
eller något kommando som du är bekväm med att skriva filen med dessa rader. För hjälp kan du se mitt svar här: Hur aktiverar du enhetsadministratör för specifika appar med Tasker?
Svar
kan du ställa in enheten som ägare från Android Studio. Gå först till adb-platsen som finns vid Platform-tools i Android Sdk och kör sedan kommandot adb shell. Jag har gett hela sökvägen och du kan justera efter ditt behov när du ändrar adb-sökväg och paketnamn
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver är gränssnittet.
Kommentarer
- Observera att när en app väljs som ägare är det väldigt svårt att ångra detta
- hej @Sam Jag vet men lyckligtvis kan vi göra detta genom kodning för att ångra ägaren
Svar
Detta är möjligt. Du kan använda Androids nya verktyg UI-Automator för att klicka och interagera med valfri vy eller knapp på systemet inklusive att trycka på ”Aktivera” för enhetsadministratör. Så här:
- Skaffa UI-Automator körs. (gå till ”Konfigurera din utvecklingsmiljö” och konfigurera ett nytt java-projekt).
-
Skriv lite kod för att interagera med din preferenslista och klicka på ”Aktivera”. Exempel:
UiScrollable settingsItem = new UiScrollable (new UiSelector (). ClassName (”android.widget.ListView”)); UiObject listButton = settingsItem.getChildByText (ny UiSelector ().className (”android.widget.LinearLayout”), ”Enable Device Admin”); listButton.click (); (nytt UiObject (ny UiSelector (). text (”Aktivera”))). klickaAndWaitForNewWindow (); me.celebrateWith (new Beer ());
-
Kompilera det:
ant build
- Tryck på jar-filen:
adb -d push bin/LookoutTest.jar /data/local/tmp/
- Starta din inställningsaktivitet:
adb shell am start -S ""com.android.settings/.Settings\$DeviceAdminSettingsActivity""
- Kör automatisering:
adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
- Party.
Kommentarer
- Kommer detta att fungera även om enhetens nuvarande språk inte är ’ t engelska?
Lämna ett svar