13 votos

Activar el administrador de dispositivos a través de ADB

¿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?

2 votos

Debería considerar la posibilidad de aceptar a 's respuesta ¡¡ya que funciona perfectamente!!

10voto

AhmyOhlin Puntos 6

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

1 votos

¡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)

1 votos

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

0 votos

Esto sigue funcionando en Android 9.

7voto

Andy Brudtkuhl Puntos 1714

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"

1 votos

Gracias Dan, pequeña corrección: debería ser adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity‌​" Sin comillas simples

0 votos

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é .

1 votos

¿Qué pasa con la desactivación? ¿Es posible?

1voto

Firelord Puntos 161

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?

1voto

melbic Puntos 1199

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.

0 votos

Tenga en cuenta que una vez que una aplicación se establece como propietario es muy difícil deshacer esto

0 votos

Hola @Sam lo sé pero afortunadamente podemos hacerlo a través de la codificación para deshacer el propietario

-1voto

Tim O'Brien Puntos 101

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:

  1. Obtenga UI-Automator corriendo. (vaya a "Configurar su entorno de desarrollo" y configure un nuevo proyecto java).

  2. 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());

  3. Compílalo: ant build

  4. Empuja el archivo jar: adb -d push bin/LookoutTest.jar /data/local/tmp/

  5. Inicie su actividad de configuración: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"

  6. Ejecute la automatización: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch

  7. Fiesta.

1 votos

¿Funcionará aunque la configuración regional actual del dispositivo no sea el inglés?

PreguntAndroid.com

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.

Powered by:

X