Aktifkan Administrator Perangkat melalui ADB

9

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?

marengga
sumber
Anda harus mempertimbangkan menerima jawaban вʀaᴎᴅᴏƞ вєнᴎєƞ karena berfungsi sempurna !!
Cliff Burton

Jawaban:

6

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'"
Dan Hulme
sumber
Terima kasih Dan, Koreksi kecil: Seharusnya adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity" Tanpa kutipan tunggal
marengga
Di sebagian besar shell, perintah itu hanya akan memulai Pengaturan , bukan halaman pengaturan administrasi perangkat . Inilah penjelasan Izzy tentang alasannya .
Dan Hulme
Bagaimana dengan penonaktifan? Apakah itu mungkin?
pengembang android
5

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
вʀaᴎᴅᴏƞ вєнᴎєƞ
sumber
BERHASIL! Ini harus menjadi jawaban yang diterima! Saya punya satu pertanyaan, apakah mungkin untuk menambahkan tambahan ke perintah itu? Saya perlu meminta aktivasi lisensi Samsung Knox segera setelah aktivasi administrator dan saya ingin memberikan kunci lisensi sebagai tambahan (jadi saya tidak perlu menyimpannya dalam kode saya atau di perangkat saya)
Cliff Burton
1

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 sedatau echoatau 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?

Firelord
sumber
0

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:

  1. Dapatkan UI-Automator berjalan. (pergi ke "Konfigurasikan lingkungan pengembangan Anda" dan setup proyek java baru).
  2. 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 ());

  3. Kompilasi: ant build

  4. Dorong file jar: adb -d push bin/LookoutTest.jar /data/local/tmp/
  5. Luncurkan aktivitas pengaturan Anda: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
  6. Jalankan otomatisasi: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
  7. Pesta.
Tim O'Brien
sumber
Apakah ini akan berfungsi bahkan jika perangkat saat ini bukan bahasa Inggris?
pengembang android
0

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.

Mudassir Khan
sumber