マネージド プロファイルのサポートを最小限に抑えるには、OEM デバイスに次の重要な要素が含まれている必要があります。
- プロファイルの所有者 ( 「管理対象プロファイルとの互換性の確保」で説明)
- デバイス所有者
要件の完全なリストについては、「デバイス管理の実装」を参照してください。デバイス管理機能をテストするために、デバイスの所有者は、以下で説明する TestDPC アプリケーションを使用できます。
テスト用にデバイス所有者を設定する
次の手順を使用して、デバイス所有者のテスト環境をセットアップします。
- ターゲット デバイスを出荷時設定にリセットします。
- デバイスにユーザー アカウント (オンライン サービスへのログインに使用されるアカウントなど) が含まれていないことを確認します。確認するには、 [設定] > [アカウント]を確認します。
- 次のいずれかの方法を使用して、テスト アプリケーションをセットアップします。
- TestDPC アプリケーションをダウンロードします(Google Play から入手可能)。
- TestDPC アプリケーションをビルドします(github.com から入手可能)。
- 次のコマンドを使用して、TestDPC アプリをデバイス所有者として設定します:
adb shell dpm set-device-owner "com.afwsamples.testdpc/.DeviceAdminReceiver"
- デバイスでデバイス所有者のセットアップを行います (暗号化、Wi-Fi の選択など)。
デバイス所有者の設定を確認する
デバイス所有者が正しく設定されていることを確認するには、 [設定] > [セキュリティ] > [デバイス管理者]に移動し、TestDPC がリストにあることを確認します。無効にできないことを確認します (これは、デバイスの所有者であることを示します)。
自動プロビジョニング テスト
エンタープライズ プロビジョニング プロセスのテストを自動化するには、Android Enterprise Test Harness を使用します。詳細については、「デバイス プロビジョニングのテスト」を参照してください。
バグレポートとログ
Android 7.0 以降、デバイス オーナーのデバイス ポリシー クライアント (DPC) は、管理対象デバイスでバグ レポートを取得し、エンタープライズ プロセスのログを表示できます。
バグ レポート (つまり、 adb bugreport
によって収集されたdumpsys
、 dumpstate 、および logcat データを含む同等のデータ) をトリガーするには、 DevicePolicyController.requestBugReport
を使用します。バグ レポートが収集された後、ユーザーはバグ レポート データを送信することに同意するよう求められます。結果はDeviceAdminReceiver.onBugreport[Failed|Shared|SharingDeclined]
によって受信されます。バグ レポートの内容の詳細については、「バグ レポートを読む」を参照してください。
さらに、デバイス オーナー DPC は、ユーザーが管理対象デバイスで実行したアクションに関連するログを収集することもできます。エンタープライズ プロセス ロギングは、device_admin を報告するすべてのデバイスに必要であり、システム サーバーのみが読み取り可能な新しいログ セキュリティ バッファーによって有効になります (つまり、 $ adb logcat -b security
はバッファーを読み取ることができません)。 ActivityManager サービスと Keyguard コンポーネントは、次のイベントをセキュリティ バッファーに記録します。
- アプリケーションプロセスの開始
- キーガード アクション (例: ロック解除の失敗と成功)
- デバイスに発行された
adb
コマンド
必要に応じて再起動後もログを保持し (コールド ブートではなく)、これらのログをデバイス所有者の DPC が利用できるようにするには、デバイスにはpstore
とpmsg
が有効になっているカーネルが必要であり、DRAM が電力を供給され、再起動のすべての段階で更新され、保持されるログの破損を回避する必要があります。記憶に。サポートを有効にするには、 frameworks/base/core/res/res/values/config.xml
のconfig_supportPreRebootSecurityLogs
設定を使用します。