Czy możliwe jest aktywowanie administratora urządzenia za pomocą polecenia ADB zamiast dotykania
„Ustawienia -> Bezpieczeństwo -> Administratorzy urządzeń -> Wybierz aplikację -> Aktywuj”
na palmtopie?
Jeśli to możliwe, w jaki sposób?
Czy możliwe jest aktywowanie administratora urządzenia za pomocą polecenia ADB zamiast dotykania
„Ustawienia -> Bezpieczeństwo -> Administratorzy urządzeń -> Wybierz aplikację -> Aktywuj”
na palmtopie?
Jeśli to możliwe, w jaki sposób?
Odpowiedzi:
To nie jest możliwe. Kod ustawień został specjalnie napisany, aby temu zapobiec. Najbliżej możesz przywołać stronę ustawień Administrowania urządzeniem w aplikacji Ustawienia . Możesz to zrobić za pomocą:
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Bez pojedynczego cytatu
Testowane i działające na Androidzie 7.0 bez roota:
adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Aby znaleźć odbiorcę administratora zainstalowanego pakietu, użyj następującego polecenia do polecenia powłoki adb i przejrzyj dane wyjściowe:
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Aby podać przykład ze świata rzeczywistego, oto polecenie użyte do aktywacji klienta Maas360 dla Androida IBM jako administrator urządzenia:
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
Tak, pod warunkiem, że masz uprawnienia roota. Musisz dodać odbiornik aplikacji i flagę zasad do pliku /data/system/device_policies.xml
. Na przykład, aby włączyć Tasker jako administrator urządzenia, dodaj następujące wiersze do tego pliku,
W systemie Android 5.x: Usuń ostatni wiersz z, </policies>
jeśli w systemie jest już włączony administrator urządzenia. Po prostu dodaj linie w pliku po linii z łańcuchem <policies setup-complete="true">
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
W Androidzie 4.2.1: Usuń ostatni wiersz z, </policies>
jeśli w systemie jest już włączony Administrator urządzenia. Po prostu dodaj linie w pliku po linii z łańcuchem <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Uruchom ponownie urządzenie, aby zmiany odniosły skutek.
( Wymagany Busybox ) Możesz użyć sed
lub echo
dowolnego polecenia, które ci odpowiada, aby zapisać plik za pomocą tych linii. Aby uzyskać pomoc, zobacz moją odpowiedź tutaj: Jak włączyć administratora urządzenia dla określonych aplikacji za pomocą Taskera?
To jest możliwe. Możesz użyć nowego narzędzia Android UI-Automator, aby klikać i wchodzić w interakcje z dowolnym widokiem lub przyciskiem w systemie, w tym naciskając „Aktywuj” dla administratora urządzenia. Oto jak:
Napisz kod, aby wejść w interakcję z listą preferencji i kliknij „Aktywuj”. Przykład:
UiScrollable settingsItem = new UiScrollable (new UiSelector (). ClassName („android.widget.ListView”)); UiObject listButton = settingsItem.getChildByText (nowy UiSelector (). ClassName („android.widget.LinearLayout”), „Enable Device Admin”); listButton.click (); (nowy UiObject (nowy UiSelector (). tekst („Aktywuj”))). clickAndWaitForNewWindow (); me.celebrateWith (new Beer ());
Skompiluj to: 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
możesz ustawić urządzenie jako właściciela w Android Studio. Najpierw przejdź do lokalizacji adb, która znajduje się w Platform-tools w Android Sdk, a następnie uruchom polecenie powłoki adb. Podałem pełną ścieżkę i możesz zmienić swój wymóg po zmianie ścieżki adb i nazwy pakietu
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver to interfejs.