Ative o administrador do dispositivo via ADB
On Fevereiro 17, 2021 by adminÉ possível ativar o administrador do dispositivo via comando ADB em vez de tocar em
“Configuração -> Segurança -> Administradores do dispositivo -> Selecionar aplicativo -> Ativar”
no dispositivo portátil?
Se for possível, como?
Comentários
- Considere aceitar вʀaᴎᴅᴏƞ вєнᴎєƞ ‘ s resposta porque funciona perfeitamente !!
Resposta
Não é possível. O código de configurações foi escrito especificamente para evitar isso. O mais próximo que você pode chegar é abrir a página Configurações de administração do dispositivo na página Configurações aplicativo. Você pode fazer isso com:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Comentários
- Obrigado Dan, Pequena correção: deveria ser
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Sem aspas simples - Na maioria dos shells, esse comando apenas iniciará Configurações , não as Configurações de administração do dispositivo página. Aqui está ‘ s Izzy ‘ a explicação do motivo .
- E quanto à desativação? isso é possível?
Resposta
Testado e funcionando no Android 7.0 sem root:
adb shell dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Para encontrar o receptor de administrador de um pacote instalado, use o seguinte para o comando adb shell e analise a saída:
adb shell pm dump com.company.foo.bar.package | grep " filter" | cut -d " " -f 12 | sort | uniq
Para dar um exemplo do mundo real, aqui está o comando usado para ativar o cliente Maas360 Android da IBM como um 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
Comentários
- FUNCIONA! Esta deve ser a resposta aceita! Tenho uma pergunta, é possível adicionar um extra a esse comando? Preciso solicitar o direito de ativação da licença Samsung Knox após a ativação do administrador e eu gostaria de passar a licença ‘ s chave como um extra (para não ter que armazená-la no meu código ou no meu dispositivo)
- Observe que
dpm set-active-admin
não está disponível no Android 5, mas você pode obter um efeito semelhante usandodpm set-device-owner
Resposta
Sim, desde que você tenha acesso root. Você teria que adicionar o receptor do aplicativo e o sinalizador de política no arquivo /data/system/device_policies.xml
. Por exemplo, para ativar o Tasker como administrador do dispositivo, adicione as seguintes linhas no referido arquivo,
Para Android 5.x: Remova a última linha com </policies>
se já houver um administrador de dispositivos habilitado no sistema. Basta adicionar as linhas no arquivo após a linha com a string <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: Remova a última linha com </policies>
se já houver um administrador de dispositivo habilitado no sistema. Basta adicionar as linhas no arquivo após a linha com a string <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver"> <policies flags="8" /> </admin> </policies>
Reinicialize o dispositivo para que as alterações tenham efeito.
( Busybox obrigatório) Você pode usar ou echo
ou qualquer comando com o qual você” se sinta confortável para escrever o arquivo com essas linhas. Para qualquer ajuda, veja minha resposta aqui: Como habilitar o administrador do dispositivo para aplicativos específicos usando Tasker?
Resposta
você pode definir o dispositivo como proprietário no Android Studio. Primeiro vá para o local adb que está em Platform-tools no Android Sdk e, em seguida, execute o comando adb shell. Eu forneci o caminho completo e você pode ajustar conforme sua necessidade ao alterar o caminho adb e o nome do pacote
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver é a interface.
Comentários
- Observe que uma vez que um aplicativo é definido como proprietário , é muito difícil desfazer isso
- hi @Sam Eu sei, mas felizmente podemos fazer isso por meio da codificação para desfazer o proprietário
Resposta
Isso é possível. Você pode usar a nova ferramenta UI-Automator do Android para clicar e interagir com qualquer visualização ou botão no sistema, incluindo clicar em “Ativar” para o administrador do dispositivo. Veja como:
- Get UI-Automator em execução. (vá para “Configure seu ambiente de desenvolvimento” e configure um novo projeto java).
-
Escreva algum código para interagir com sua lista de preferências e clique em “Ativar”. Exemplo:
UiScrollable settingsItem = new UiScrollable (new UiSelector (). ClassName (“android.widget.ListView”)); UiObject listButton = settingsItem.getChildByText (novo UiSelector ().className (“android.widget.LinearLayout”), “Ativar administrador do dispositivo”); listButton.click (); (novo UiObject (novo UiSelector (). text (“Ativar”))). clickAndWaitForNewWindow (); me.celebrateWith (new Beer ());
-
Compile-o:
ant build
- Envie o arquivo jar:
adb -d push bin/LookoutTest.jar /data/local/tmp/
- Inicie sua atividade de configurações:
adb shell am start -S ""com.android.settings/.Settings\$DeviceAdminSettingsActivity""
- Execute o automação:
adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
- Festa.
Comentários
- Isso funcionará mesmo se a localidade atual do dispositivo não for ‘ t Inglês?
Deixe uma resposta