Câu trả lời:
Đ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'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
trích dẫn
Đã 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ó, 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 sed
hoặc echo
hoặ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ý?
Điều này là 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:
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 ());
Biên dịch nó: 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
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.