説明
Test DPC(デバイス ポリシー コントローラー)は、開発およびテスト専用の無料アプリケーションであり、Android Enterprise 環境向けに設計されています。開発者、OEM(オリジナル機器メーカー)、ISV(独立系ソフトウェアベンダー)、EMM(エンタープライズ モビリティ管理者)が、作業プロファイルや企業所有デバイスのような制御されたシナリオでAndroidデバイスの管理ポリシーをシミュレートし、テストすることを可能にします。
Test DPCとは何ですか?
Test DPCは、Android Enterprise向けのサンプルデバイスポリシーコントローラー(DPC)として機能するオープンソースツールです。これは、ユーザーが完全なモバイルデバイス管理(MDM/EMM)システム(Intuneなど)を統合することなく、管理された環境でアプリケーションやデバイスの設定がどのように機能するかをテストできるように設計されています。このアプリケーションは、管理ポリシー、アプリケーションの制限、セキュリティ設定をシミュレートし、アプリケーションが企業のセキュリティおよび管理要件に準拠していることを確認するのに役立ちます。
このアプリケーションは、開発専用であり、本番環境や実データでは使用しないでください。これは、Android EnterpriseのAPIをテストしたり、ポリシーがアプリケーションやデバイスの動作にどのように影響するかを理解するために広く使用されています。
主な機能
Test DPCは、Androidデバイスの管理シナリオをシミュレートするための幅広い機能を提供します。以下はその主な機能の詳細です:
- 作業プロファイルの作成と管理:
- Test DPCを使用すると、Androidデバイスに作業プロファイルを設定し、個人用アプリケーションと企業用データを分離できます。これは、BYOD(自分のデバイスを持ち込む)の使用シナリオでアプリケーションの動作をテストするために不可欠です。
- 作業プロファイルは、デバイスの初期設定中または既存のデバイスでアクティブ化することができ、個人環境と職業環境の分離をシミュレートします。
- セキュリティポリシーの管理:
- パスワード制限(例: 複雑さや自動ロック時間のテスト)、機能の無効化(例: カメラやスクリーンショット、USB経由のファイル転送やアプリケーションのインストールをブロック)、ネットワーク設定(例: 安全な接続やネットワークアクセスの制限)など、セキュリティポリシーを適用できます。
- これらのポリシーは、企業の管理者によって課された制限に対してアプリケーションがどのように反応するかを確認するためのものです。
- アプリケーションの制限:
- Test DPCを使用して、アプリケーションのインストールや削除の制限、必須権限の設定、アプリケーション内の特定の機能のブロックなど、アプリケーションの特定の制限を設定できます。
- また、管理された設定(managed configurations)のテストをサポートしており、開発者がアプリケーションが企業ポリシーの下でどのように動作するかをシミュレートできます。
- デバイスオーナーおよびプロファイルオーナーのシナリオのシミュレーション:
- このアプリケーションは、デバイスオーナーまたはプロファイルオーナーとして設定でき、デバイスが完全に管理されているシナリオ(企業デバイスなど)や、作業プロファイルのみが管理されているシナリオをシミュレートします。
- これは、デバイスのプロビジョニングやキオスクモードでのデバイス管理など、高度な設定をテストするのに役立ちます。
- Android EnterpriseのAPIのテスト:
- Test DPCは、他のDPCの実装のリファレンスとして機能し、開発者は以下のようなAndroid Enterpriseの特定のAPIを探求し、テストできます:
- DevicePolicyController.requestBugReport: 管理されたデバイスからバグレポートを収集するためのものです。
- DeviceAdminReceiver: バグレポートやポリシーの変更などのアクションから結果を受け取るためのものです。
- さまざまなAPIレベルでのテストをサポートし、さまざまなAndroidバージョンとの互換性を確認できます。
- 高度な設定のサポート:
- バージョン9.0.5以降、Test DPCはデバイス管理ロールホルダーとして設定でき、特定のデバイス管理ロールを管理する機能を提供します。
- eSIM、UWB(ウルトラワイドバンド)、資格情報マネージャーの管理オプションをサポートします。
- 管理された設定のエクスポート:
- いくつかの情報源で言及されているTest DPCの修正されたバージョンは、管理された設定をJSONファイルにエクスポートでき、大量のテストや設定の再インポートを容易にします。この機能は標準バージョンには存在しませんが、オープンソースであるため、アプリケーションの柔軟性を示します。
- OEMConfigとの統合:
- Test DPCは、Lenovo OEM ConfigなどのOEMエージェントを手動で設定するために使用でき、管理された環境で特定の製造元の設定をテストできます。
システム要件
- Androidバージョン: Android 5.0(Lollipop)以上に対応。
- デバイス: 他のDPCによって管理されていない限り、個人または企業のデバイスにインストール可能。
- 権限: デバイスの管理設定へのアクセスを含む41の権限を必要とし、管理ポリシーをシミュレートするために必要です。
設定と使用方法
- インストール:
- ページの最初のダウンロードボタンをクリックしてAPKをダウンロードします。
- セキュリティ設定で「不明なソース」を有効にし、ファイルをインストールします。
- 初期設定時:
- デバイスをリセットした後、セットアップアシスタントのウェルカム画面でメールフィールドにafw#testdpcと入力して、デバイスオーナーとしてのプロビジョニングを開始します。
- プロファイルの設定:
- Test DPCアプリを開き、作業プロファイルを設定するか、アプリをデバイスオーナーとして設定するための指示に従います。
- adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiverのようなADBコマンドを使用して、アプリをデバイスの所有者として設定します。
- ポリシーのテスト:
- アプリ内で管理ポリシーのオプションにアクセスし、カメラの無効化、パスワードの設定、アプリケーションの制限などの制限を適用します。
- 作業プロファイルまたは管理されたデバイスにインストールされたアプリケーションの動作をテストします。
- アンインストール:
- Test DPCを削除するには、Androidの設定(設定 > セキュリティ > デバイス管理者)でデバイス管理者としての設定を無効にします。
- その後、アプリを通常通りにアンインストールします。作業プロファイルの削除は、それに関連するデータも消去することに注意してください。
制限
- 大量設定のサポートなし: Test DPCの標準バージョンでは、大規模な設定のテストを許可しておらず、広範なテストには手間がかかります。
- APIの制限: 一部のポリシーはAPIの制限により、古いバージョンのAndroidデバイスでは使用できません。
- 無効化の問題: 一部のユーザーは、特に古いデバイスでTest DPCによって適用された設定を無効にするのが難しいことを報告しており、追加のADBコマンドや工場出荷時設定へのリセットが必要な場合があります。
- 本番環境用ではない: 強調されているように、このアプリケーションは実環境でデバイスを管理するためには適しておらず、テスト専用です。
ユースケース
- アプリ開発者: アプリが企業による制限の下でどのように機能するかをテストします(機能のブロックや管理された設定など)。
- EMM管理者: MDM/EMMシステムにポリシーを実装する前に、それらのポリシーを検証します。
- OEM: 管理されたデバイスに特定の製造元エージェント(OEMConfig)を設定およびテストします。
- セキュリティテスト: デバイスのロック、パスワードの強制やネットワーク制限などのセキュリティシナリオをシミュレートします。
代替手段と考慮事項
Test DPCは強力なツールですが、デバイス管理のテストにおいて唯一の選択肢ではありません。代替手段には以下が含まれます:
- 完全なEMMソリューション: Microsoft IntuneやVMware Workspace ONEのように、より堅牢なテスト環境を提供しますが、統合が必要です。
- サードパーティツール: Dr.Foneなどの一部ツールはデバイス管理機能を提供しますが、Test DPCのような開発に特化しているわけではありません。
結論
Test DPCは、制御された環境でAndroidデバイスの管理ポリシーをテストする必要がある開発者と管理者にとって不可欠なツールです。作業プロファイルをシミュレートし、セキュリティ制限を適用し、Android EnterpriseのAPIをテストする能力を備えており、企業シナリオでのアプリケーションの互換性とセキュリティを確保するために欠かせません。ただし、大量設定のサポートの欠如や高度な設定に関する技術的な知識の必要性など、その制限についても考慮する必要があります。