Apakah mungkin untuk mengaktifkan Administrator Perangkat melalui perintah ADB alih-alih mengetuk
"Pengaturan -> Keamanan -> Administrator Perangkat -> Pilih Aplikasi -> Aktifkan"
di genggam?
Jika memungkinkan, bagaimana caranya?
Apakah mungkin untuk mengaktifkan Administrator Perangkat melalui perintah ADB alih-alih mengetuk
"Pengaturan -> Keamanan -> Administrator Perangkat -> Pilih Aplikasi -> Aktifkan"
di genggam?
Jika memungkinkan, bagaimana caranya?
Jawaban:
Itu tidak mungkin. Kode pengaturan ditulis khusus untuk mencegah hal ini. Yang paling dekat dengan Anda adalah membuka halaman Pengaturan administrasi perangkat di aplikasi Pengaturan . Anda dapat melakukan ini dengan:
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Tanpa kutipan tunggal
Diuji dan bekerja di Android 7.0 tanpa root:
adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
Untuk menemukan penerima admin dari paket yang diinstal, gunakan perintah berikut untuk adb shell dan tinjau hasilnya:
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Untuk memberikan contoh dunia nyata, berikut adalah perintah yang digunakan untuk mengaktifkan klien Android Maas360 IBM sebagai admin perangkat:
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
Ya, asalkan Anda telah mengakses root. Anda harus menambahkan penerima aplikasi dan bendera kebijakan di file /data/system/device_policies.xml
. Misalnya, untuk mengaktifkan Tasker sebagai Administrator perangkat tambahkan baris berikut dalam file tersebut,
Untuk Android 5.x: Hapus baris terakhir dengan </policies>
jika sudah ada Administrator Perangkat diaktifkan di sistem. Cukup tambahkan baris dalam file setelah baris dengan string <policies setup-complete="true">
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Untuk Android 4.2.1: Hapus baris terakhir dengan </policies>
jika sudah ada Administrator Perangkat diaktifkan di sistem. Cukup tambahkan baris dalam file setelah baris dengan string <policies>
.
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Mulai ulang perangkat agar perubahan diterapkan.
( Diperlukan Busybox ) Anda dapat menggunakan sed
atau echo
atau perintah apa pun yang Anda sukai untuk menulis file dengan baris-baris itu. Untuk bantuan apa pun, lihat jawaban saya di sini: Cara mengaktifkan administrator perangkat untuk aplikasi tertentu menggunakan Tasker?
Ini adalah mungkin. Anda dapat menggunakan alat baru UI-Automator Android untuk mengklik dan berinteraksi dengan tampilan atau tombol pada sistem termasuk menekan "Aktifkan" untuk admin perangkat. Begini caranya:
Tulis beberapa kode untuk berinteraksi dengan daftar preferensi Anda dan klik "Aktifkan". Contoh:
UiScrollable settingsItem = new UiScrollable (new UiSelector (). ClassName ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (UiSelector baru (). ClassName ("android.widget.LinearLayout"), "Aktifkan Admin Perangkat"); listButton.click (); (new UiObject (new UiSelector (). text ("Activate"))). klikAndWaitForNewWindow (); me.celebrateWith (Beer baru ());
Kompilasi: 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
Anda dapat mengatur Perangkat sebagai pemilik dari Android Studio. Pertama pergi ke lokasi adb yang ada di Platform-tools di Android SDK dan kemudian jalankan perintah adb shell. Saya telah memberikan path lengkap dan Anda dapat menyesuaikan dengan kebutuhan Anda setelah mengubah path adb dan nama paket
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiver adalah antarmuka.