Attiva amministratore dispositivo tramite ADB
Su Febbraio 17, 2021 da adminÈ possibile attivare amministratore dispositivo tramite comando ADB invece di toccare
“Setting -> Security -> Device Administrators -> Select App -> Activate”
sul palmare?
Se possibile, come?
Commenti
- Dovresti considerare di accettare вʀaᴎᴅᴏƞ вєнᴎєƞ ‘ s answer perché funziona perfettamente !!
Risposta
Non è possibile. Il codice delle impostazioni è stato scritto specificatamente per impedirlo. Il più vicino possibile è aprire la pagina Impostazioni amministrazione dispositivo nella Impostazioni app. Puoi farlo con:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Commenti
- Grazie Dan, Piccola correzione: dovrebbe essere
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Senza virgolette singole - Nella maggior parte delle shell, quel comando avvierà solo Impostazioni , non Impostazioni di amministrazione del dispositivo pagina. Ecco la spiegazione del motivo di ‘ Izzy ‘ .
- E la disabilitazione? è possibile?
Risposta
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 dellamministratore di un pacchetto installato, utilizzare quanto segue per il comando della shell adb ed esaminare loutput:
adb shell pm dump com.company.foo.bar.package | grep " filter" | cut -d " " -f 12 | sort | uniq
Per fornire un esempio 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
Commenti
- FUNZIONA! Questa deve essere la risposta accettata! Ho una domanda, è possibile aggiungere un extra a quel comando? Devo richiedere il diritto di attivazione della licenza Samsung Knox dopo lattivazione dellamministratore e vorrei passare la chiave ‘ come extra (quindi non devo salvarla nel mio codice o sul mio dispositivo)
- Tieni presente che
dpm set-active-admin
non è disponibile su Android 5, ma puoi ottenere un effetto simile utilizzandodpm set-device-owner
Risposta
Sì, a condizione che tu abbia accesso root. Dovresti aggiungere il ricevitore dellapp e il flag dei criteri nel file /data/system/device_policies.xml
. Ad esempio, per abilitare Tasker come amministratore del dispositivo, aggiungi le seguenti righe in detto file,
Per Android 5.x: Rimuovi lultima riga con </policies>
se nel sistema è già abilitato un amministratore del dispositivo. Aggiungi semplicemente le righe nel file dopo la riga con la 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: Rimuovi lultima riga con </policies>
se nel sistema è già abilitato un amministratore del dispositivo. Aggiungi semplicemente le righe nel file dopo la riga con la stringa <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver"> <policies flags="8" /> </admin> </policies>
Riavvia il dispositivo affinché le modifiche abbiano effetto.
( Busybox obbligatorio) Puoi utilizzare o echo
o qualsiasi comando con cui ti senti a tuo agio per scrivere il file con quelle righe. Per qualsiasi aiuto, vedi la mia risposta qui: Come abilitare lamministratore del dispositivo per app specifiche utilizzando Tasker?
Risposta
puoi impostare il dispositivo come proprietario da Android Studio. Per prima cosa vai alla posizione di adb che si trova in 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 è linterfaccia.
Commenti
- Tieni presente che una volta che unapp è impostata come proprietaria è molto difficile annullare loperazione
- ciao @Sam Lo so, ma fortunatamente possiamo farlo tramite la codifica per annullare il proprietario
Risposta
Questo è possibile. Puoi utilizzare il nuovo strumento UI-Automator di Android per fare clic e interagire con qualsiasi vista o pulsante del sistema, incluso il pulsante “Attiva” per lamministratore del dispositivo. Ecco come:
- Ottieni UI-Automator in esecuzione. (vai a “Configura il tuo ambiente di sviluppo” e imposta un nuovo progetto java).
-
Scrivi del codice per interagire con il tuo elenco di 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”), “Abilita amministratore dispositivo”); listButton.click (); (new UiObject (new UiSelector (). text (“Activate”))). clickAndWaitForNewWindow (); me.celebrateWith (new Beer ());
-
Compilalo:
ant build
- Esegui il push del file jar:
adb -d push bin/LookoutTest.jar /data/local/tmp/
- Avvia lattività delle impostazioni:
adb shell am start -S ""com.android.settings/.Settings\$DeviceAdminSettingsActivity""
- Esegui il automazione:
adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
- Party.
Commenti
- Funzionerà anche se la lingua corrente del dispositivo non è ‘ in inglese?
Lascia un commento