ADB를 통해 장치 관리자 활성화


답변:


6

불가능합니다. 이를 방지하기 위해 설정 코드 가 특별히 작성되었습니다. 가장 가까운 것은 설정 앱 에서 장치 관리 설정 페이지 를 불러오는 것 입니다. 당신은 이것을 할 수 있습니다 :

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

고마워 댄, 작은 교정 : 작은 adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity" 따옴표없이 해야합니다
marengga

대부분의 쉘에서,이 명령은 시작 설정 이 아닌 장치 관리 설정 페이지를. 이유에 대한 Izzy의 설명은 다음과 같습니다 .
Dan Hulme

비활성화하는 것은 어떻습니까? 가능합니까?
안드로이드 개발자

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

실제 예제를 제공하기 위해 IBM의 Maas360 Android 클라이언트를 디바이스 관리자로 활성화하는 데 사용되는 명령은 다음과 같습니다.

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> 시스템에 이미 장치 관리자가 활성화되어 있으면 마지막 줄을 제거하십시오 . string 행 뒤에 파일에 행을 추가하면됩니다 <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> 시스템에 이미 장치 관리자가 사용 가능한 경우 마지막 줄을 제거하십시오 . string 행 뒤에 파일에 행을 추가하면됩니다 <policies>.

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

변경 사항을 적용하려면 장치를 재부팅하십시오.

( 비지 박스는 당신이 사용할 수있는 필수) sed또는 echo당신이 그 라인을 사용하여 파일을 작성하기에 편안한 걸 모든 명령을 나. 도움이 필요하면 Tasker를 사용하여 특정 앱에 대해 장치 관리자를 활성화하는 방법은 무엇입니까?


0

이것은 이다 가능합니다. Android의 새로운 도구 UI-Automator를 사용하여 장치 관리자의 "활성화"를 포함하여 시스템의 모든보기 또는 버튼을 클릭하고 상호 작용할 수 있습니다. 방법은 다음과 같습니다.

  1. 가져 UI-자동화 실행. "개발 환경 구성"으로 이동하여 새 Java 프로젝트를 설정하십시오.
  2. 환경 설정 목록과 상호 작용할 코드를 작성하고 "활성화"를 클릭하십시오. 예:

    UiScrollable settingsItem = new UiScrollable (new UiSelector (). className ( "android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (new UiSelector (). className ( "android.widget.LinearLayout"), "장치 관리자 사용"); listButton.click (); (new UiObject (new UiSelector (). text ( "Activate"))). clickAndWaitForNewWindow (); me.celebrateWith (new Beer ());

  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. 파티.

장치의 현재 로캘이 영어가 아닌 경우에도 작동합니까?
안드로이드 개발자

0

Android Studio에서 기기를 소유자로 설정할 수 있습니다. 먼저 Android SDK의 Platform-tools에있는 adb 위치로 이동 한 다음 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.