ソースから Android ROM をコンパイルしています。プリインストールして root 権限で実行したいアプリケーションが 1 つあります。
ROM全体をroot化せずに、この特定のアプリケーションにrootアクセスを許可するにはどうすればよいですか?
典型的なストック Android ROM は、最小権限の原則に沿って、ごくわずかなものに root 権限を提供します。代わりに、アプリには必要な正確なアクセス許可が付与されます。
このアプリにルート権限が必要なのはなぜですか? 最初に、公開されていないすべての内部 Android 権限のリストを調べて、それらのいずれかが目的の機能を果たしているかどうかを確認する必要があります。システム アプリを構築してsignature
いるため、通常は他のアプリでは使用できないアクセス許可を使用することもできます。Android ROM のビルドに使用したキーでアプリが署名されていることを確認するだけで済みます。その後、ROM と一緒に、または個別にアプリを配布することができ、必要なアクセス許可に引き続きアクセスできます。
このようにする利点は次のとおりです。
したがって、この方法でタスクを実行できる場合は、実行してください。
本当に root が必要な場合、事態は複雑になります。
3 つのオプションがあります。優先順:
su
バイナリを変更して、誰が呼び出しているかを正確に確認します。本当にルートが必要な場合は、新しいシステム サービスを追加します。これはルートとして実行できます。次に、適切な追加の API を追加して、アプリが呼び出すことができるようにします。また、アクセス許可をsignature
レベルに設定して、システム アプリのみが呼び出すことができるようにします。これは、Android ランドでそれを行うアーキテクチャ上「正しい」方法です。
2 番目または 3 番目のオプションでは、必要なコマンド ライン ツールを作成する必要があります。どのアプリでもこの機能を呼び出せるようにすることが許容される場合があります。もしそうなら、新しい setuid-root 実行可能ファイルが良い方法かもしれません。ただし、私が言うように、それを実行している他のアプリを停止する方法がわかりません。