2

ルートアクセスでシステムファイルを変更できるファイルエクスプローラーを作成していますが、いくつかの問題が発生しました。

私が今していることは、アプリにrootアクセスを許可することですが、「su」の実行は機能しません。adbシェルのフォルダーにアクセス許可を設定すると、アプリは正常に動作しますが、ルートブラウジングはchmodに依存していないと思います。

ルート権限を持っているかのようにアプリを動作させる適切な方法があると誰かに教えてもらえますか?

4

2 に答える 2

2

root として Android アプリケーション プロセス (その dalvik VM とネイティブ ライブラリ) を実行することは非常に困難であり、セキュリティだけでなく、共有ライブラリを使用する代わりにシステム ライブラリのプライベート コピーをロードする必要があることによるメモリの浪費など、さまざまな理由からお勧めできません。通常のアプリケーションの起動のように、権限のないプロセスを Zygote から継承すると、読み取り専用のコピーが利用可能になります。

一部の root 化された電話での非公式の「su」ハックは、アプリケーション プロセスが非特権のままである間に、root として実行されるヘルパー プロセスを起動できるようにします。それを呼び出すアプリケーションのユーザー ID は変更されません。実際、UNIX ライクなオペレーティング システムでそれを行うためのメカニズムは設計上ありません。

特権ヘルパー プロセスを作成したら、stdin/stdout や UNIX ドメイン ソケットなどのプロセス間通信手段を介して通信し、ユーザーに代わってファイル操作を実行させる必要があります。電話にあるシェルはおそらくヘルパー アプリケーションとしても使用できます。ファイル マネージャが実行する必要があることのほとんどは、「cat」コマンドで実装できます。公式には、これは安定した API ではありませんが、アプリケーションからアクセス可能な「su」ハックはいずれにせよ、公式の Android には含まれていないため、プロジェクト全体はそもそも「サポートされていない」領域に深く入っています。

于 2011-07-04T15:20:22.160 に答える