¿Es posible activar el Administrador de Dispositivos a través del comando ADB en lugar de tocar
"Configuración -> Seguridad -> Administradores de dispositivos --> Seleccionar aplicación --> Activar"
¿en la mano?
Si es posible, ¿cómo?
¿Es posible activar el Administrador de Dispositivos a través del comando ADB en lugar de tocar
"Configuración -> Seguridad -> Administradores de dispositivos --> Seleccionar aplicación --> Activar"
¿en la mano?
Si es posible, ¿cómo?
Probado y funcionando en Android 7.0 sin Root:
adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Para encontrar el receptor administrativo de un paquete instalado, utilice el siguiente comando del shell adb y revise la salida:
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Para dar un ejemplo del mundo real, aquí está el comando utilizado para activar el cliente Maas360 Android de IBM como administrador de dispositivos:
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
¡FUNCIONA! ¡Esta debe ser la respuesta aceptada! Tengo una pregunta, ¿es posible añadir un extra a ese comando? Necesito solicitar la activación de la licencia Samsung Knox justo después de la activación del administrador y me gustaría pasar la clave de la licencia como un extra (para no tener que almacenarla en mi código o en mi dispositivo)
Tenga en cuenta que dpm set-active-admin
no está disponible en Android 5, pero se puede conseguir un efecto similar utilizando dpm set-device-owner
No es posible. El código de configuración está escrito específicamente para evitarlo. Lo más cerca que se puede llegar es a sacar el Configuración de la administración del dispositivo página en el Ajustes aplicación. Puedes hacerlo con:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Gracias Dan, pequeña corrección: debería ser adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Sin comillas simples
En la mayoría de los shells, ese comando simplemente iniciará Ajustes , no el Configuración de la administración del dispositivo página. Aquí está La explicación de Izzy de por qué .
Sí, siempre que tengas acceso a root. Tendrías que añadir el receptor de la aplicación y la bandera de la política en el archivo /data/system/device_policies.xml
. Por ejemplo, para habilitar Tasker como administrador del dispositivo añada las siguientes líneas en dicho archivo,
Para Android 5.x: Elimine la última línea con </policies>
si ya hay un Administrador de Dispositivos habilitado en el sistema. Simplemente añada las líneas en el archivo después de la línea con la cadena <policies setup-complete="true">
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Para Android 4.2.1: Elimine la última línea con </policies>
si ya hay un Administrador de Dispositivos habilitado en el sistema. Simplemente añada las líneas en el archivo después de la línea con la cadena <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Reinicie el dispositivo para que los cambios surtan efecto.
( Busybox necesario) Puede utilizar sed
o echo
o cualquier comando con el que te sientas cómodo para escribir el archivo con esas líneas. Para cualquier ayuda, vea mi respuesta aquí: ¿Cómo habilitar el administrador del dispositivo para aplicaciones específicas usando Tasker?
Puede establecer el Dispositivo como propietario desde Android Studio. Primero vaya a la ubicación de adb que está en Platform-tools en Android Sdk y luego ejecute el comando adb shell. He dado la ruta completa y se puede ajustar a su requisito al cambiar la ruta adb y el nombre del paquete
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver es la interfaz.
Este es posible. Puedes utilizar la nueva herramienta de Android UI-Automator para pulsar e interactuar con cualquier vista o botón del sistema, incluyendo pulsar "Activar" para la administración del dispositivo. He aquí cómo:
Obtenga UI-Automator corriendo. (vaya a "Configurar su entorno de desarrollo" y configure un nuevo proyecto java).
Escriba algún código para interactuar con su lista de preferencias y haga clic en "Activar". Ejemplo:
UiScrollable settingsItem = new UiScrollable(new UiSelector().className("Android.widget.ListView")); UiObject listButton = settingsItem.getChildByText(new UiSelector().className("Android.widget.LinearLayout"), "Enable Device Admin"); listButton.click(); (new UiObject(new UiSelector().text("Activar"))).clickAndWaitForNewWindow(); me.celebrateWith(new Beer());
Compílalo: ant build
Empuja el archivo jar: adb -d push bin/LookoutTest.jar /data/local/tmp/
Inicie su actividad de configuración: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
Ejecute la automatización: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
Fiesta.
PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.
2 votos
Debería considerar la posibilidad de aceptar a 's respuesta ¡¡ya que funciona perfectamente!!