web-dev-qa-db-ja.com

Android DPMでset-device-ownerを削除する方法?

次のリンクをクリックして、ADBを使用してアプリのデバイス所有者を作成しました。 アプリをデバイス所有者にする方法

しかし、今、これを元に戻すことはできません。

デバイス管理タブでは、このオプションは無効になっています。このアプリの値を変更することはできません。

6
Kushaal Singla

プログラムで設定解除できます。デバイス所有者アプリケーションでこの関数を呼び出す必要があります

DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);

dpm.clearDeviceOwnerApp(context.getPackageName());

詳細については see

更新:このメソッドはAPIレベル26で廃止されました

11

AndroidManifest.xmlでAndroid:testOnly = "true"属性を指定することにより、アプリをアンインストールしたり、管理者を削除したりできます。

_adb Shell dpm remove-active-admin package.name/MyDeviceAdminReceiver_

しかし、実稼働デバイスでは、この属性を含めるべきではなく、アプリは非テスト管理者になります。その時点から、ワイプ/工場出荷時設定にリセットせずに、それを削除したり、アプリケーションをアンインストールしたりすることはできません。

ありがたいことに、アプリが同じキーで署名され、バージョンコードが同等以上の場合、更新を実行できます。

_adb install -r path/to/kiosk.apk_

プロダクションデバイスの管理者とアプリケーションをプログラムで削除する場合は、いくつかの新しい変更を加えて再インストールする必要があります。まず、device_admin_receiver.xmlで以下の権限__<wipe-data \>_を持っている場合、プログラムでデータを消去できます。

devicePolicyManager.wipeData(DevicePolicyManager.WIPE_RESET_PROTECTION_DATA)

この権限がない場合、新しいバージョンはLockTaskを起動してデフォルトのホームアプリリストからそのパッケージを削除しないでください:

devicePolicyManager.clearPackagePersistentPreferredActivities(adminComponentName, packageName)

その後、手動で設定に移動して、ワイプ/工場出荷時のリセットを実行できます。

https://snow.dog/blog/kiosk-mode-Android にある情報

8
nilsi

次のADBシェルコマンドを使用して、デバイスの所有者を削除できます。

adb Shell dpm remove-active-admin ComponentInfo{}

アクティブな管理者を無効にします。管理者は、マニフェストのアプリケーションでAndroid:testOnlyを宣言している必要があります。これにより、デバイスとプロファイルの所有者も削除されます

4
sjDroid

唯一の解決方法は、デバイスをフラッシュまたは工場出荷時の状態にリセットすることです。

1
Nivil Boban