Kích hoạt Quản trị viên thiết bị qua ADB


9

Có thể kích hoạt Quản trị viên thiết bị thông qua lệnh ADB thay vì nhấn

"Cài đặt -> Bảo mật -> Quản trị viên thiết bị -> Chọn Ứng dụng -> Kích hoạt"

trên thiết bị cầm tay?

Nếu có thể, làm thế nào?


Bạn nên xem xét chấp nhận câu trả lời vì nó hoạt động hoàn hảo !!
Cliff Burton

Câu trả lời:


6

Điều đó là không thể. Mã cài đặt được viết riêng để ngăn chặn điều này. Cách gần nhất bạn có thể đến là hiển thị trang Cài đặt quản trị thiết bị trong ứng dụng Cài đặt . Bạn có thể làm điều này với:

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

Cảm ơn Dan, điều chỉnh nhỏ: không nên adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity" trích dẫn
marengga

Trong hầu hết các shell, lệnh đó sẽ chỉ bắt đầu Cài đặt , không phải trang cài đặt quản trị Thiết bị . Đây là lời giải thích của Izzy tại sao .
Dan Hulme

Còn việc vô hiệu hóa thì sao? điều đó có thể không?
nhà phát triển Android

5

Đã thử nghiệm và hoạt động trên Android 7.0 mà không cần root:

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

Để tìm người nhận quản trị của gói đã cài đặt, hãy sử dụng lệnh sau để adb shell và xem lại đầu ra:

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

Để đưa ra một ví dụ trong thế giới thực, đây là lệnh được sử dụng để kích hoạt ứng dụng khách Maas360 Android của IBM với tư cách là quản trị viên thiết bị:

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

CÔNG TRÌNH NÓ! Đây phải là câu trả lời được chấp nhận! Tôi có một câu hỏi, có thể thêm một lệnh bổ sung vào lệnh đó không? Tôi cần yêu cầu kích hoạt giấy phép Samsung Knox ngay sau khi kích hoạt quản trị viên và tôi muốn chuyển khóa của giấy phép dưới dạng bổ sung (vì vậy tôi không phải lưu mã trong mã hoặc trên thiết bị của mình)
Cliff Burton

1

Có, với điều kiện bạn đã truy cập root. Bạn sẽ phải thêm người nhận ứng dụng và cờ chính sách trong tệp /data/system/device_policies.xml. Ví dụ, để cho phép Tasker as administrator Device thêm những dòng sau trong file nói,

Đối với Android 5.x: Xóa dòng cuối cùng </policies>nếu đã có Quản trị viên thiết bị được bật trong hệ thống. Đơn giản chỉ cần thêm các dòng trong tệp sau dòng với chuỗi <policies setup-complete="true">.

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

Đối với Android 4.2.1: Xóa dòng cuối cùng </policies>nếu đã có Quản trị viên thiết bị được bật trong hệ thống. Đơn giản chỉ cần thêm các dòng trong tệp sau dòng với chuỗi <policies>.

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

Khởi động lại thiết bị để những thay đổi có hiệu lực.

( Yêu cầu Busybox ) Bạn có thể sử dụng sedhoặc echohoặc bất kỳ lệnh nào bạn thấy thoải mái để ghi tệp bằng các dòng đó. Đối với bất kỳ trợ giúp, xem câu trả lời của tôi ở đây: Làm thế nào để kích hoạt quản trị viên thiết bị cho các ứng dụng cụ thể bằng Trình quản lý?


0

Điều này có thể. Bạn có thể sử dụng công cụ mới UI-Automator của Android để nhấp và tương tác với bất kỳ chế độ xem hoặc nút nào trên hệ thống, bao gồm nhấn "Kích hoạt" cho quản trị viên thiết bị. Đây là cách thực hiện:

  1. Nhận UI-Automator chạy. (đi tới "Định cấu hình môi trường phát triển của bạn" và thiết lập dự án java mới).
  2. Viết một số mã để tương tác với danh sách tùy chọn của bạn và nhấp vào "Kích hoạt". Thí dụ:

    Cài đặt UiScrollableItem = new UiScrollable (new UiSelector (). ClassName ("android.widget.ListView")); Danh sách UiObjectButton = settingsItem.getChildByText (new UiSelector (). ClassName ("android.widget.LinearLayout"), "Bật quản trị viên thiết bị"); listButton.click (); (UiObject mới (UiSelector mới (). văn bản ("Kích hoạt"))). clickAndWaitForNewWindow (); me.celebrateWith (Bia mới ());

  3. Biên dịch nó: ant build

  4. Đẩy tệp jar: adb -d push bin/LookoutTest.jar /data/local/tmp/
  5. Khởi chạy hoạt động cài đặt của bạn: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
  6. Chạy tự động hóa: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
  7. Buổi tiệc.

Điều này có hoạt động ngay cả khi ngôn ngữ hiện tại của thiết bị không phải là tiếng Anh không?
nhà phát triển Android

0

bạn có thể đặt Thiết bị làm chủ sở hữu từ Android Studio. Trước tiên, hãy truy cập vị trí adb tại Công cụ nền tảng trong Android Sdk và sau đó chạy lệnh shell adb. Tôi đã đưa ra đường dẫn đầy đủ và bạn có thể điều chỉnh theo yêu cầu của mình khi thay đổi đường dẫn adb và tên gói

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

MyDeviceAdminReceiver là giao diện.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.