È possibile attivare Device Administrator tramite il comando ADB invece di toccare
"Impostazioni -> Sicurezza -> Amministratori dispositivo -> Seleziona app -> Attiva"
sul palmare?
Se è possibile, come?
È possibile attivare Device Administrator tramite il comando ADB invece di toccare
"Impostazioni -> Sicurezza -> Amministratori dispositivo -> Seleziona app -> Attiva"
sul palmare?
Se è possibile, come?
Risposte:
Non è possibile. Il codice delle impostazioni è stato appositamente scritto per evitarlo. Il più vicino che puoi venire è far apparire la pagina delle impostazioni di amministrazione del dispositivo nell'app Impostazioni . Puoi farlo con:
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
senza virgolette
Testato e funzionante su Android 7.0 senza root:
adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Per trovare il destinatario admin di un pacchetto installato, utilizzare il comando seguente per adb shell e rivedere l'output:
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Per fare un esempio del mondo reale, ecco il comando utilizzato per attivare il client Android Maas360 di IBM come amministratore del 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
Sì, a condizione che tu abbia l'accesso come root. Dovresti aggiungere il destinatario dell'app e il flag dei criteri nel file /data/system/device_policies.xml
. Ad esempio, per abilitare Tasker come amministratore del dispositivo aggiungere le seguenti righe in detto file,
Per Android 5.x: rimuovere l'ultima riga con </policies>
se è già abilitato un amministratore dispositivo nel sistema. Aggiungi semplicemente le righe nel file dopo la riga con stringa <policies setup-complete="true">
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Per Android 4.2.1: rimuovere l'ultima riga con </policies>
se è già abilitato un amministratore dispositivo nel sistema. Aggiungi semplicemente le righe nel file dopo la riga con stringa <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Riavvia il dispositivo per rendere effettive le modifiche.
( Busybox richiesto) È possibile utilizzare sed
o echo
o qualsiasi comando con cui si è a proprio agio per scrivere il file con quelle righe. Per qualsiasi aiuto, vedi la mia risposta qui: Come abilitare l'amministratore del dispositivo per app specifiche utilizzando Tasker?
Questo è possibile Puoi utilizzare il nuovo strumento UI-Automator di Android per fare clic e interagire con qualsiasi vista o pulsante sul sistema, incluso premere "Attiva" per l'amministratore del dispositivo. Ecco come:
Scrivi un codice per interagire con l'elenco delle tue preferenze e fai clic su "Attiva". Esempio:
UiScrollable settingsItem = new UiScrollable (new UiSelector (). ClassName ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (nuovo UiSelector (). ClassName ("android.widget.LinearLayout"), "Enable Device Admin"); listButton.click (); (nuovo UiObject (nuovo UiSelector (). text ("Activate"))). clickAndWaitForNewWindow (); me.celebrateWith (new Beer ());
Compilalo: 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
puoi impostare il dispositivo come proprietario da Android Studio. Prima vai nella posizione adb che si trova su Platform-tools in Android Sdk e quindi esegui il comando adb shell. Ho fornito il percorso completo e puoi adattarti alle tue esigenze cambiando il percorso adb e il nome del pacchetto
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver è l'interfaccia.