Androidインストールされたアプリケーションとシステムアプリケーションを個別にリストするアプリケーションがあります。ユーザーがアプリケーションからデバイスを再起動しようとすると、デフォルトのホームランチャーの代わりにアプリケーションが開きます。
しかし、デバイスが'safe mode'
に再起動すると、すべてのロジックがクラッシュします。つまり、デバイスはセーフモードでアプリケーションを再起動しますが、インストールされているアプリケーションをリストせず、動作を停止します。
アプリケーションを'Safe mode'
でも動作させることは可能ですか?
'safe mode'
ブロードキャストレシーバーを使用するなど、アプリケーションの実行中にデバイスがRECEIVE_BOOT_COMPLETED
にアクセスするのを防ぐ方法はありますか?
デバイス管理アプリケーションとは何ですか?この状況で役立ちますか?
プログラムでセーフモードを検出することはできますか?
前もって感謝します
私はこの質問が古いことを知っていますが、おそらくこれは誰かを助けるでしょう。アプリケーションがプライマリユーザーのデバイス所有者またはプロファイル所有者である場合、セーフモードを完全に無効にできます(rootなしで機能します)。
DevicePolicyManager manager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName admin = new ComponentName(getApplicationContext(), DeviceAdminReceiver.class);
// To disable safe boot
manager.addUserRestriction(admin, UserManager.DISALLOW_SAFE_BOOT);
// To enable safe boot again
// manager.clearUserRestriction(admin, UserManager.DISALLOW_SAFE_BOOT);
編集:デバイス所有者またはプロファイル所有者をADB経由で簡単に設定できます: https://developer.Android.com/studio/command-line/adb#dpm
adb Shell dpm set-device-owner com.example.deviceownerapp/.DeviceAdminReceiver
デバイス所有者をアクティベートするときは、アカウントを追加してはいけません(ただし、システムリセットを行う必要はありません。設定からすべてのアカウントを削除するだけです)。デバイスの所有者を設定したら、アカウントを再度追加できます。
これを行う唯一の方法は、ユーザーアプリを/ system/appのシステムアプリにすることです。
しかし、デバイスがルート化されている場合、これを行う簡単な方法があります
ラッキーパッチャーをダウンロードし、ルートアクセスを有効にします
検索オプションを使用して、セーフモードで使用できるアプリを見つけるか、スクロールメニューで検索します
アプリをクリックし、ツールをクリックしてから/ system/appに移動します
プロセスが完了した後、デバイスを再起動する必要があります
ユーザーアプリにセーフモードでアクセスできるようになりました
セーフモードで起動する特定のアプリのショートカットを作成する場合は、セーフモードで起動できます。ただし、ショートカットを作成するときは、通常モードにする必要があります。
デバイス管理アプリも実行しないでください。
アプリをセーフモードで実行するには、ルートアクセス権が必要な/ system/appにアプリをコピーする必要があります。
そのため、ルート化されたデバイスでのみ可能です。