ADBを介してデバイス管理者をアクティブ化する
On 2月 17, 2021 by adminタップする代わりにADBコマンドを介してデバイス管理者をアクティブ化することは可能ですか
「設定->セキュリティ->デバイス管理者->アプリの選択->アクティブ化」
ハンドヘルドで?
可能であれば、どのように?
コメント
- вʀaᴎᴅᴏƞвєнᴎєƞ'完全に機能するので答えます!!
答え
/ h2>
それは不可能です。 設定コードは、これを防ぐために特別に作成されています。最も近い方法は、デバイス管理設定ページを設定アプリ。これは次の方法で実行できます:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
コメント
- ありがとう、ダン、少し訂正:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
一重引用符なし
- ほとんどのシェルでは、そのコマンドはデバイス管理設定ではなく設定を開始するだけです。 b>ページ。ここに' s Izzy '理由の説明があります。 li>
- 無効にするのはどうですか?それは可能ですか?
回答
ルートなしでAndroid7.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のMaas360Androidクライアントをデバイス管理者としてアクティブ化するために使用されるコマンドを次に示します。
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
コメント
- ITは機能します!これは受け入れられた答えである必要があります!1つの質問があります、そのコマンドに追加することは可能ですか?SamsungKnoxライセンスアクティベーション権を要求する必要があります管理者のアクティブ化後、ライセンス'のキーを追加で渡したい(コードやデバイスに保存する必要がない)
-
dpm set-active-admin
はAndroid5では利用できませんが、dpm set-device-owner
を使用すると、同様の効果を得ることができます。 ul >
回答
はい、ルートアクセス権がある場合に限ります。アプリのレシーバーとポリシーフラグをファイル/data/system/device_policies.xml
に追加する必要があります。たとえば、タスカーを有効にするにはa>デバイス管理者として、上記のファイルに次の行を追加します。
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>
の最後の行を削除します。ファイルの文字列。
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver"> <policies flags="8" /> </admin> </policies>
変更を有効にするために、デバイスを再起動します。
( Busybox が必要です)またはecho
、またはこれらの行を使用してファイルを書き込むのに慣れているコマンド。ヘルプが必要な場合は、こちらの回答をご覧ください: Taskerを使用して特定のアプリのデバイス管理者を有効にする方法
回答
AndroidStudioからデバイスを所有者として設定できます。まず、Android SdkのPlatform-toolsにあるadbの場所に移動してから、adbshellコマンドを実行します。フルパスを指定しました。adbパスとパッケージ名を変更すると、必要に応じて調整できます。
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiverがインターフェースです。
コメント
- アプリが所有者に設定されると、これを元に戻すのは非常に難しいことに注意してください
- hi @Sam私は知っていますが、幸いなことに、所有者を元に戻すためのコーディングを通じてこれを行うことができます
回答
これは 可能です。 androidの新しいツールUI-Automatorを使用して、デバイス管理者の[アクティブ化]をクリックするなど、システム上の任意のビューまたはボタンをクリックして操作できます。方法は次のとおりです。
- Get UI-Automator が実行されています。 (「開発環境の構成」に移動し、新しいJavaプロジェクトをセットアップします。)
-
設定リストを操作するコードを記述し、「アクティブ化」をクリックします。例:
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());
-
コンパイル:ant build
- jarファイルをプッシュします:
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
- パーティー。
コメント
- デバイスの現在のロケールが英語でない場合でも、これは機能しますか?
それは不可能です。 設定コードは、これを防ぐために特別に作成されています。最も近い方法は、デバイス管理設定ページを設定アプリ。これは次の方法で実行できます:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
コメント
- ありがとう、ダン、少し訂正:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
一重引用符なし - ほとんどのシェルでは、そのコマンドはデバイス管理設定ではなく設定を開始するだけです。 b>ページ。ここに' s Izzy '理由の説明があります。 li>
- 無効にするのはどうですか?それは可能ですか?
回答
ルートなしでAndroid7.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のMaas360Androidクライアントをデバイス管理者としてアクティブ化するために使用されるコマンドを次に示します。
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
コメント
- ITは機能します!これは受け入れられた答えである必要があります!1つの質問があります、そのコマンドに追加することは可能ですか?SamsungKnoxライセンスアクティベーション権を要求する必要があります管理者のアクティブ化後、ライセンス'のキーを追加で渡したい(コードやデバイスに保存する必要がない)
-
dpm set-active-admin
はAndroid5では利用できませんが、dpm set-device-owner
を使用すると、同様の効果を得ることができます。 ul >
回答
はい、ルートアクセス権がある場合に限ります。アプリのレシーバーとポリシーフラグをファイル/data/system/device_policies.xml
に追加する必要があります。たとえば、タスカーを有効にするにはa>デバイス管理者として、上記のファイルに次の行を追加します。
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>
の最後の行を削除します。ファイルの文字列。
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver"> <policies flags="8" /> </admin> </policies>
変更を有効にするために、デバイスを再起動します。
( Busybox が必要です)またはecho
、またはこれらの行を使用してファイルを書き込むのに慣れているコマンド。ヘルプが必要な場合は、こちらの回答をご覧ください: Taskerを使用して特定のアプリのデバイス管理者を有効にする方法
回答
AndroidStudioからデバイスを所有者として設定できます。まず、Android SdkのPlatform-toolsにあるadbの場所に移動してから、adbshellコマンドを実行します。フルパスを指定しました。adbパスとパッケージ名を変更すると、必要に応じて調整できます。
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiverがインターフェースです。
コメント
- アプリが所有者に設定されると、これを元に戻すのは非常に難しいことに注意してください
- hi @Sam私は知っていますが、幸いなことに、所有者を元に戻すためのコーディングを通じてこれを行うことができます
回答
これは 可能です。 androidの新しいツールUI-Automatorを使用して、デバイス管理者の[アクティブ化]をクリックするなど、システム上の任意のビューまたはボタンをクリックして操作できます。方法は次のとおりです。
- Get UI-Automator が実行されています。 (「開発環境の構成」に移動し、新しいJavaプロジェクトをセットアップします。)
-
設定リストを操作するコードを記述し、「アクティブ化」をクリックします。例:
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());
-
コンパイル:
ant build
- jarファイルをプッシュします:
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
- パーティー。
コメント
- デバイスの現在のロケールが英語でない場合でも、これは機能しますか?
コメントを残す