Activar el Administrador de dispositivos a través de ADB
On febrero 17, 2021 by admin¿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 computadora de mano?
Si es posible, ¿cómo?
Comentarios
- Debería considerar aceptar вʀaᴎᴅᴏƞ вєнᴎєƞ ‘ s respuesta ya que funciona perfectamente !!
Respuesta
No es posible. El código de configuración está escrito específicamente para evitar esto. Lo más cercano que puede hacer es abrir la página Configuración de administración del dispositivo en la Configuración aplicación. Puedes hacer esto con:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Comentarios
- 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 shells, ese comando solo iniciará Configuración , no la configuración de administración del dispositivo página. Aquí la ‘ s Izzy ‘ s explicación de por qué .
- ¿Qué pasa con la desactivación? ¿Es eso posible?
Respuesta
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 de administración de un paquete instalado, use lo siguiente para el comando adb shell y revise el resultado:
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 de Android Maas360 de IBM como administrador de dispositivo:
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
Comentarios
- ¡FUNCIONA! ¡Esta debe ser la respuesta aceptada! Tengo una pregunta, ¿es posible agregar un extra a ese comando? Necesito solicitar el derecho de activación de la licencia de Samsung Knox después de la activación del administrador y me gustaría pasar la clave de la licencia ‘ como extra (para que no tenga 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 puede obtener un efecto similar usandodpm set-device-owner
Respuesta
Sí, siempre que tenga acceso de root. Debería agregar el receptor de la aplicación y la marca de política en el archivo /data/system/device_policies.xml
. Por ejemplo, para habilitar Tasker como administrador del dispositivo agregue 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 agregue 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 agregue 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 requerido) Puede usar o echo
o cualquier comando con el que se sienta cómodo para escribir el archivo con esas líneas. Para obtener ayuda, consulte mi respuesta aquí: ¿Cómo habilitar el administrador de dispositivos para aplicaciones específicas usando Tasker?
Respuesta
puede configurar el dispositivo como propietario desde Android Studio. Primero vaya a la ubicación de adb que se encuentra en Platform-tools en Android Sdk y luego ejecute el comando adb shell. He dado la ruta completa y puede ajustar según sus necesidades 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.
Comentarios
- Tenga en cuenta que una vez que una aplicación se establece como propietario , es muy difícil deshacer esto
- hola @Sam Lo sé, pero afortunadamente podemos hacer esto mediante la codificación para deshacer el propietario
Respuesta
Este es posible. Puede usar la nueva herramienta de Android UI-Automator para hacer clic e interactuar con cualquier vista o botón en el sistema, incluido presionar «Activar» para el administrador del dispositivo. Así es como:
- Obtener UI-Automator en ejecución. (vaya a «Configure su entorno de desarrollo» y configure un nuevo proyecto java).
-
Escriba un 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 (nuevo UiSelector ().className («android.widget.LinearLayout»), «Habilitar administrador del dispositivo»); listButton.click (); (nuevo UiObject (nuevo UiSelector (). text («Activar»))). clickAndWaitForNewWindow (); me.celebrateWith (new Beer ());
-
Compílelo:
ant build
- Inserte 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 el automatización:
adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
- Fiesta.
Comentarios
- ¿Funcionará esto incluso si la configuración regional actual del dispositivo no es ‘ t inglés?
Deja una respuesta