2011-12-16 8 views
4

まず、私はに関与していません。種類のAndroid開発です。私は興味があるだけです。根拠VS権限

問題は次のとおりです。ルート権限を取得しているアプリは、マニフェストに必要な権限を宣言する必要がありますか?私のアプリは、それがカメラ入力を取得する必要があることを宣言していない場合

私が意味する、それはいくつかのAPIや実行ファイルを起動し、ルートになって後にカメラを獲得することができますか?

私はこれが愚かに聞こえるかもしれないが、私は繰り返すが、私はAndroidの機能について興味があると知っている。

+0

もちろん、Linux *の優れたセンスと専門知識は、あなたがSUであればシステム上の何かをすることができるので、可能ですということを伝えます。私はこの場合正しいかどうかわからない –

答えて

4

ルートアクセスを要求するアプリケーション(Superuserアプリケーションとそれに対応するsuバイナリを使用する)では、ルートとしてのコマンドはsuバイナリ経由でのみ実行できます。

so yesのように、アプリケーション自体がまだ貧弱なユーザープロセスとして実行されているため、「通常の」APIを使用して行う必要があるものは、正しいアクセス権が必要です。だから、(あなたの例のように)通常のJava APIを使ってカメラにアクセスしたいのであれば、その許可を宣言していない限り、これを行うことはできません。その中

しかし、無は、suバイナリを経由してアプリケーションrequests and receives root privileges場合、あなたはそのコマンドの中に欲しいものを行うことができます。したがって、通常のAPIメソッドの外部でカメラにアクセスできる特別なバイナリまたはスクリプトを作成した場合、それが機能する可能性があります。 (これは価値があるよりももっと問題になると思われます)。

+0

質問の第二部分は不明です。あなたは完全な特権を持つsu経由でrootedコマンドを実行できますが、非特権のAPIを呼び出すと言っています。次に、宣言されていない機能を実行する* su * doable実行可能ファイルが存在しなくなると(つまり、カメラ入力を取得して実行中のアプリケーションがそのストリームを使用できるようにするコマンドや、他のものだけを呼び出すコマンド)、アプリケーションは宣言されていない。私は正しいですか? –

+0

今、それは明らかです。あなたはマークを持っています;) –

+1

はい、(私はおそらくあなたがそれを書いたと同時に答えを編集しました)ルートアクセスはあなたの 'su'によって生成されたプロセスに限られます。アプリケーションは、Javaの世界で既存の権限を保持します。別のJavaアプリケーションをrootとして起動する方法がない限り、通常のJava APIの外部でカメラにアクセスする方法を考えなければなりません。 – mpontillo