Чи можна активувати Device Administrator за допомогою команди ADB замість натискання
"Налаштування -> Безпека -> Адміністратори пристроїв -> Виберіть додаток -> Активувати"
на КПК?
Якщо це можливо, як?
Чи можна активувати Device Administrator за допомогою команди ADB замість натискання
"Налаштування -> Безпека -> Адміністратори пристроїв -> Виберіть додаток -> Активувати"
на КПК?
Якщо це можливо, як?
Відповіді:
Це неможливо. Код налаштувань спеціально написаний для запобігання цього. Найближчим ви можете підійти до сторінки налаштувань адміністрування пристрою у програмі Налаштування . Це можна зробити за допомогою:
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
без єдиної цитати
Тестовано та працює на Android 7.0 без root:
adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Щоб знайти адміністратор приймача встановленого пакета, скористайтеся наступним, щоб ввести команду adb shell та переглянути результат:
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Щоб навести приклад із реального світу, ось команда, що використовується для активації клієнта Android Maas360 Android як адміністратора пристрою:
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
Так, за умови кореневого доступу. Вам потрібно буде додати приймач програми та прапор політики у файл /data/system/device_policies.xml
. Наприклад, щоб увімкнути Tasker як адміністратор пристрою, додайте у вказаний файл наступні рядки,
Для Android 5.x: Видаліть останній рядок, </policies>
якщо в системі вже включений адміністратор пристроїв. Просто додайте рядки у файл після рядка з рядком <policies setup-complete="true">
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Для Android 4.2.1: Видаліть останній рядок, </policies>
якщо в системі вже включений адміністратор пристроїв. Просто додайте рядки у файл після рядка з рядком <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Перезавантажте пристрій, щоб зміни набрали чинності.
( Потрібно зайняти скриньку ) Ви можете використовувати sed
або echo
будь-яку команду, до якої вам зручно, писати файл із цими рядками. Щоб отримати будь-яку допомогу, дивіться мою відповідь тут: Як увімкнути адміністратора пристрою для певних програм за допомогою програми Tasker?
Це є можливим. Ви можете використовувати новий інструмент UI-Automator для Android для натискання та взаємодії з будь-яким видом або кнопкою в системі, включаючи натискання "Активувати" для адміністратора пристрою. Ось як:
Напишіть код, щоб взаємодіяти зі списком налаштувань і натисніть «Активувати». Приклад:
UiScrollable settingsItem = новий UiScrollable (новий UiSelector (). ClassName ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (новий UiSelector (). ClassName ("android.widget.LinearLayout"), "Увімкнути адміністратор пристрою"); listButton.click (); (новий UiObject (новий UiSelector (). текст ("Активувати"))). clickAndWaitForNewWindow (); me.celebrateWith (нове пиво ());
Складіть: 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
ви можете встановити Пристрій як власника в Android Studio. Спочатку перейдіть до місцеположення adb, яке знаходиться в Platform-tools в Android Sdk, а потім запустіть команду adb shell. Я даю повний шлях, і ви можете налаштувати за вашими вимогами, змінивши adb шлях та назву пакета
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver - це інтерфейс.