Можно ли активировать Администратор устройства с помощью команды ADB вместо нажатия
«Настройка -> Безопасность -> Администраторы устройства -> Выбрать приложение -> Активировать»
на портативном устройстве?
Если это возможно, то как?
Можно ли активировать Администратор устройства с помощью команды ADB вместо нажатия
«Настройка -> Безопасность -> Администраторы устройства -> Выбрать приложение -> Активировать»
на портативном устройстве?
Если это возможно, то как?
Ответы:
Это невозможно. Код настроек специально написан для предотвращения этого. Самое близкое, что вы можете получить - открыть страницу настроек администрирования устройства в приложении « Настройки» . Вы можете сделать это с:
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
без единой цитаты
Протестировано и работает на Android 7.0 без рута:
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
Чтобы привести пример из реальной жизни, вот команда, используемая для активации клиента IBM 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
Да, при условии, что у вас есть root-доступ. Вы должны добавить получателя приложения и флаг политики в файл /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?
Это является возможным. Вы можете использовать новый инструмент Android UI-Automator для нажатия и взаимодействия с любым представлением или кнопкой в системе, включая нажатие кнопки «Активировать» для администратора устройства. Вот как:
Напишите некоторый код для взаимодействия со списком ваших предпочтений и нажмите «Активировать». Пример:
UiScrollable settingsItem = new UiScrollable (new UiSelector (). ClassName ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (new 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. Я дал полный путь, и вы можете настроить по вашему требованию при изменении пути adb и имени пакета
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver - это интерфейс.