เปิดใช้งานผู้ดูแลอุปกรณ์ผ่าน ADB


9

เป็นไปได้ไหมที่จะเปิดใช้งาน Device Administrator ผ่านคำสั่ง ADB แทนการแตะ

"การตั้งค่า -> ความปลอดภัย -> ผู้ดูแลระบบอุปกรณ์ -> เลือกแอพ -> เปิดใช้งาน"

บนมือถือ?

ถ้าเป็นไปได้อย่างไร


คุณควรพิจารณายอมรับคำตอบของ "ทำงานได้อย่างสมบูรณ์ !!
Cliff Burton

คำตอบ:


6

มันเป็นไปไม่ได้. รหัสการตั้งค่าถูกเขียนขึ้นเป็นพิเศษเพื่อป้องกันสิ่งนี้ สิ่งที่ใกล้เคียงที่สุดที่คุณสามารถทำได้คือเปิดหน้าการตั้งค่าการดูแลอุปกรณ์ในแอพการตั้งค่า คุณสามารถทำได้ด้วย:

adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"

ขอบคุณ Dan, การแก้ไขเล็ก ๆ น้อย ๆ : มันควรจะเป็น adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity" โดยไม่ต้องอ้างคำพูดเดียว
marengga

ในเชลล์ส่วนใหญ่คำสั่งนั้นจะเริ่มต้นการตั้งค่าไม่ใช่หน้าการตั้งค่าการดูแลอุปกรณ์ นี่คือคำอธิบายของอิซซี่ว่าทำไม
Dan Hulme

สิ่งที่เกี่ยวกับการปิดการใช้งาน? เป็นไปได้ไหม
นักพัฒนา android

5

ทดสอบและทำงานบน Android 7.0 โดยไม่ต้องรูท:

adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever

ในการค้นหาตัวรับผู้ดูแลระบบของแพ็คเกจที่ติดตั้งให้ใช้คำสั่ง adb shell ต่อไปนี้เพื่อตรวจสอบผลลัพธ์

adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

เพื่อให้เป็นตัวอย่างในโลกแห่งความจริงนี่คือคำสั่งที่ใช้เพื่อเปิดใช้งานไคลเอนต์ Maas360 Android ของ IBM ในฐานะผู้ดูแลอุปกรณ์:

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

มันได้ผล! นี่จะต้องเป็นคำตอบที่ได้รับการยอมรับ! ฉันมีหนึ่งคำถามเป็นไปได้ไหมที่จะเพิ่มคำสั่งพิเศษลงในนั้น ฉันต้องขอใบอนุญาตเปิดใช้งาน Samsung Knox หลังจากเปิดใช้งานผู้ดูแลระบบและฉันต้องการส่งรหัสสิทธิ์ใช้งานเป็นพิเศษ (ดังนั้นฉันไม่ต้องเก็บรหัสไว้ในรหัสหรือบนอุปกรณ์ของฉัน)
Cliff Burton

1

ใช่โดยมีเงื่อนไขว่าคุณได้รูทการเข้าถึง /data/system/device_policies.xmlคุณจะต้องเพิ่มตัวรับแอปและธงนโยบายในแฟ้ม ตัวอย่างเช่นหากต้องการเปิดใช้งานTaskerในฐานะผู้ดูแลระบบอุปกรณ์ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์ดังกล่าว

สำหรับ Android 5.x:ลบบรรทัดสุดท้ายด้วย</policies>หากมีผู้ดูแลอุปกรณ์เปิดใช้งานอยู่ในระบบแล้ว <policies setup-complete="true">เพียงแค่เพิ่มบรรทัดในไฟล์หลังจากบรรทัดกับสตริง

<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>

สำหรับ Android 4.2.1:ลบบรรทัดสุดท้ายด้วย</policies>หากมีผู้ดูแลอุปกรณ์เปิดใช้งานอยู่ในระบบแล้ว <policies>เพียงแค่เพิ่มบรรทัดในไฟล์หลังจากบรรทัดกับสตริง

<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>

รีบูตอุปกรณ์เพื่อให้การเปลี่ยนแปลงมีผล

(ไม่จำเป็นต้องใช้Busybox ) คุณสามารถใช้sedหรือechoคำสั่งใดก็ได้ที่คุณต้องการเขียนไฟล์ด้วยบรรทัดเหล่านั้น สำหรับความช่วยเหลือใด ๆ โปรดดูคำตอบของฉันที่นี่: วิธีการเปิดใช้งานผู้ดูแลระบบอุปกรณ์สำหรับแอพที่ระบุโดยใช้ Tasker


0

สิ่งนี้เป็นไปได้ คุณสามารถใช้เครื่องมือ UI-Automator ใหม่ของ android เพื่อคลิกและโต้ตอบกับมุมมองหรือปุ่มใด ๆ บนระบบรวมถึงการกดปุ่ม "เปิดใช้งาน" สำหรับผู้ดูแลระบบอุปกรณ์ นี่คือวิธี:

  1. รับUI-อัตโนมัติทำงาน (ไปที่ "กำหนดค่าสภาพแวดล้อมการพัฒนาของคุณ" และตั้งค่าโปรเจ็กต์ java ใหม่)
  2. เขียนรหัสเพื่อโต้ตอบกับรายการค่ากำหนดของคุณแล้วคลิก "เปิดใช้งาน" ตัวอย่าง:

    UiScrollable settingsItem = ใหม่ UiScrollable (ใหม่ UiSelector (). className ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (ใหม่ UiSelector (). className ("android.widget.LinearLayout"), "เปิดใช้งาน Device Admin"); listButton.click (); (UiObject ใหม่ (ใหม่ UiSelector (). ข้อความ ("เปิดใช้งาน"))) คลิก clickAndWaitForNewWindow (); me.celebrateWith (เบียร์ใหม่ ());

  3. รวบรวมมัน ant build

  4. ผลักไฟล์ jar: adb -d push bin/LookoutTest.jar /data/local/tmp/
  5. เปิดกิจกรรมการตั้งค่าของคุณ: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
  6. เรียกใช้ระบบอัตโนมัติ: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
  7. พรรค

สิ่งนี้จะใช้ได้แม้ว่าภาษาปัจจุบันของอุปกรณ์จะไม่ใช่ภาษาอังกฤษหรือไม่
นักพัฒนา android

0

คุณสามารถตั้งค่าอุปกรณ์เป็นเจ้าของจาก Android Studio ก่อนอื่นให้ไปที่ตำแหน่ง adb ซึ่งอยู่ที่ Platform-tools ใน Android Sdk จากนั้นรันคำสั่ง adb shell ฉันให้เส้นทางเต็มและคุณสามารถปรับตามความต้องการของคุณเมื่อเปลี่ยนเส้นทาง adb และชื่อแพคเกจ

C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver

MyDeviceAdminReceiver เป็นอินเทอร์เฟซ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.