Активуйте Device Administrator через ADB


9

Чи можна активувати Device Administrator за допомогою команди ADB замість натискання

"Налаштування -> Безпека -> Адміністратори пристроїв -> Виберіть додаток -> Активувати"

на КПК?

Якщо це можливо, як?


Вам слід подумати про прийняття відповіді вʀаᴎᴅᴏƞ вєнᴎєƞ, оскільки вона прекрасно працює !!
Кліфф Бертон

Відповіді:


6

Це неможливо. Код налаштувань спеціально написаний для запобігання цього. Найближчим ви можете підійти до сторінки налаштувань адміністрування пристрою у програмі Налаштування . Це можна зробити за допомогою:

adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"

Дякую Ден, маленьке виправлення: це повинно бути adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity" без єдиної цитати
1313 о marengga

У більшості оболонок ця команда лише запустить " Налаштування" , а не сторінку " Налаштування адміністрування пристрою ". Ось пояснення Ізі, чому .
Дан Хулм

А як щодо відключення? це можливо?
андроїд розробник

5

Тестовано та працює на 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

ЦЕ ПРАЦЮЄ! Це повинна бути прийнята відповідь! У мене одне питання, чи можна додати додаткову команду до цієї команди? Мені потрібно подати запит на активацію ліцензії Samsung Knox відразу після активації адміністратора, і я хотів би передати ключ ліцензії як додатковий (тому мені не потрібно зберігати його в коді чи на своєму пристрої)
Кліфф Бертон

1

Так, за умови кореневого доступу. Вам потрібно буде додати приймач програми та прапор політики у файл /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?


0

Це є можливим. Ви можете використовувати новий інструмент UI-Automator для Android для натискання та взаємодії з будь-яким видом або кнопкою в системі, включаючи натискання "Активувати" для адміністратора пристрою. Ось як:

  1. Запустіть інтерфейс UI-Automator . (перейдіть до розділу "Налаштуйте своє середовище розробки" та налаштуйте новий проект Java).
  2. Напишіть код, щоб взаємодіяти зі списком налаштувань і натисніть «Активувати». Приклад:

    UiScrollable settingsItem = новий UiScrollable (новий UiSelector (). ClassName ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (новий UiSelector (). ClassName ("android.widget.LinearLayout"), "Увімкнути адміністратор пристрою"); listButton.click (); (новий UiObject (новий UiSelector (). текст ("Активувати"))). clickAndWaitForNewWindow (); me.celebrateWith (нове пиво ());

  3. Складіть: ant build

  4. Натисніть на файл банку: adb -d push bin/LookoutTest.jar /data/local/tmp/
  5. Запустіть налаштування: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
  6. Запустіть автоматизацію: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
  7. Партія.

Чи спрацює це, навіть якщо поточний локальний пристрій не є англійською?
андроїд розробник

0

ви можете встановити Пристрій як власника в 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 - це інтерфейс.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.