superuser.apkとsuとは正確には何ですか?


32

Androidデバイスのルート化について多くのことを読みました。プロセスにコミットする前に、各ステップで何が起こっているかを正確に知りたいです。

superuser.apkファイルとsuファイルがどこから来たのか少し混乱しています。公式のGoogleファイルのようには見えませんが、むしろ(ランダムな)個人によって作成されたファイルです。とはいえ、これらのファイルはどれほど安全ですか?

研究から、私は彼らの目的の一般的な理解を持っています。これらのファイル(実行可能ファイル?スクリプト?)が何であるか、何が含まれているのか、一般的にどのように機能するのかを誰かが知っているのではないかと思いました。

ありがとう!


回答:


32

su(Switch Userの略)はバイナリ実行可能ファイルです。プロセスは、関連付けられているユーザーアカウントを変更できるようにするために、Androidやその他の* nixベースのシステムで使用されます。ルート化の観点から重要である理由は、su他のパラメーターがなければルートユーザーに切り替わるためです。つまり、機能にルート権限が必要なプロセスは呼び出す必要があるということです。suます(デフォルトではルートによって実行されないため)。

スーパーユーザーはAndroidアプリケーションです(.apkはAndroidアプリケーションパッケージです)。suバイナリに対する一種の「ゲートキーパー」として機能します。起動しようとするアプリケーションsuは、スーパーユーザーを経由するように強制されます。スーパーユーザーは、未知のアプリケーションまたは新しいアプリケーションである場合、ユーザーにプロンプ​​トを表示します。ユーザーは、アクセスを承認または拒否するオプションがあり、オプションでsuスーパーユーザーに決定を記憶させて、そのアプリによる後続の呼び出しに自動的に適用できるようにします。これを行うことで、ルート権限が付与されるアプリは、ユーザーが選択したアプリのみです。

両方のアプリケーションのソースはGithubで入手でき、それを調べたい人は誰でも検査/監査できます(スーパーユーザーはこちら、suはこちら)。

スーパーユーザーのWebサイトで、詳細と変更ログを確認できます。

Android愛好家に関するその他の質問:


1
詳細な回答とリンクに本当に感謝しています!ありがとう!
kaspnord

1
Androidのルート化を目的としたこれらのファイルの代替/同等物はありますか?
kaspnord

1
@kaspnord:いいえ、su他のlinux / unix OSで使用されているのと同じファイルであり、それに代わるものはありませんが、superuser.apkがある可能性があります。なぜ代替物が必要なのですか?
kyrias

3
これらのファイルは、オープンソースコミュニティに恵まれていますが、何らかの標準を持っているようには見えません(つまり、公式にはGoogleではありません)。そのため、他の人が同じファイルの他の亜種を作成することは可能だと考えるようになります。個人的には、ファイルに何が含まれているかを100%自信を持って知ることができない他のソリューションに頼るのではなく、使用しているデバイスと使用しているデバイスを正確に知りたいと思っています。
kaspnord

11

スーパーユーザーソースコードはgithubで入手できます。スーパーユーザーの主な著者はAdam Shanks(ChainsDD)とKoushik Dutta(koush)です、Clockwork Recoveryの著者)です。

Koushik Duttaは彼のブログでSuperuser.apkの仕組みを説明しました。投稿はスーパーユーザーアプリのごく初期のものであり、それ以来多くのことが変更されており、そこに書かれたものの一部は、現代のスーパーユーザー/ su実装にはもはや正しくありませんが、基本は同じであることに注意してください。

suとSuperuserの両方は確かに代替物に置き換えることができますが、suが使用する機能(つまり、exec()およびsetuid()システムコール)は、実行可能ファイルが適切である限り、許可ビット(つまり、setuidビットはルートに設定されます)。本質的に、suは非常に単純なプログラムであり、別のユーザーとしてプロセスを生成するだけです。実際のセキュリティチェックはカーネルによって行われます。

したがって、変更されていない公式のsuおよびスーパーユーザーアプリを入手し、適切な権限で適切にインストールされていれば、心配する必要はありません。オープンソースで安全であり、ソースを確認できます。 githubで自分でコーディングします。ただし、トロイの木馬のスーパーユーザー/ suバイナリを入手することは確かに可能であるため、スーパーユーザー/ suバイナリを入手する場所が信頼できることを確認してください(または本当に偏執的な場合はsu /スーパーユーザーを自分でコンパイルしてください)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.