Logo ja.androidermagazine.com
Logo ja.androidermagazine.com

電話のルート化は実際にはどういう意味ですか?

目次:

Anonim

ご質問をお待ちしています。 互いに助け合うことができるのは常に良いことであり、答えを探すときは自分自身で学びます。 それらすべてに答える時間を見つけることはできませんが、特定の質問が十分に出てきて、詳細な答えに値する場合があります。

「rootはどういう意味ですか?」 それらの質問の一つです。 概念は一部の人にとっては簡単かもしれませんが、Androidやその他の権限ベースのオペレーティングシステムをいじる時間を費やしていない多くの人々にとっては、質問をすることです。 私はできる限り最善を尽くしてそれらに答えようとします。

許可

ルートを定義する前に、ルートが存在する理由とその仕組みを理解することが重要です。 これは、Androidがファイル構造で許可(厳密にはLinuxベースの許可)を使用しているためです。 すべてのファイル、すべてのフォルダー、およびすべてのパーティションには、一連の権限があります。 これらのアクセス許可は、ファイルの読み取り(変更せずに内容を表示またはアクセスする)、ファイルへの書き込み(そのファイルの内容を変更する、またはフォルダーまたはパーティション内に新しいファイルを作成する)およびファイルを実行できるユーザーを決定します(アプリのように実行可能なタイプの場合は、ファイルを実行します)。 これはユーザーとアクセス許可に基づいて行われます。特定のユーザーはアクセスできますが、適切なアクセス許可を持っていないユーザーはアクセスできません。

初めて電話機をセットアップして初めて電源を入れると、ユーザーIDが割り当てられます。 別のユーザーがGoogle経由でログインした場合、それらのユーザーには 異なる ユーザーIDが割り当てられます。 スマートフォンにアプリをインストールすると、独自のユーザーIDも割り当てられます。 システム自体はユーザーであり、電話機で実行する必要がある他のプロセスには独自のユーザーIDがあります。 Android上の任意のファイルに対して何でもできることはすべてユーザーです。

ユーザーと権限のシステムは、Androidが誰が何をできるかを追跡する方法です。

メッセージングアプリをインストールするとします。 インストール時にユーザーIDが割り当てられます。 また、独自のデータパーティションにスポットを取得し、そのパーティションにのみアクセスできるようにします。 アプリを実行する権限があり、アプリを実行すると、アプリは独自のデータフォルダーとファイルにアクセスする権限を持ちます。 アプリは、アドレス帳、SDカード、写真ライブラリなどへのアクセス許可を要求する場合もあります。 これらのリクエストに「はい」と答えた場合(またはAndroidの古いバージョンの許可に同意した場合)、アプリのユーザーIDにはそれらのもののデータファイルに対する許可が付与されます。つまり、データフォルダーとその内容を確認し、それらを追加するか、新しいファイルを追加します。 アプリは、「見る」権限のないデータファイルにはアクセスできません。 つまり、(この例では)設定データベースを確認したり、別のアプリケーションのデータフォルダーにアクセスしたりすることはできません。 このためにサンドボックスという用語がよく使用されます。アプリはサンドボックス化されており、許可されたサンドボックスでのみ再生できます。

プログラムであり、実行可能なファイル(アプリなど)には、同じ許可モデルが適用されます。 ユーザーIDには、サインイン中にインストールしたアプリを実行する権限があります。システムユーザーには実行する権限があり、他のシステムレベルのユーザーは、アプリまたはアプリが使用する特定のプロセスにアクセスできます。 他のアプリは、起動する権限がないアプリを起動できません。 セカンダリユーザーを追加した場合、そのユーザーはアプリやファイルにアクセスできず、その逆も同様です。 スマートフォンには、ユーザーID が 表示、変更、または実行する権限を 持たない ファイル、フォルダー、アプリがあります。 通常、Androidのこれらの部分は、何かを行うためにシステムレベルのアクセス許可(システムユーザーID)を必要とし、あなたはシステムユーザーでもシステムレベルのアクセス許可を持つユーザーでもありません。

権限を切り替える

技術的には、携帯電話の起動方法と実行中のシステムを起動し、ユーザーIDの昇格されたアクセス許可を割り当てるために使用するファイルを変更することは可能ですが、それは安全でも実用的でもありません。 しかし、Android(およびほとんどのUnixまたはLinuxベースのシステム)にはルートユーザーと呼ばれるものがあり、SubstituteUserバイナリ(バイナリを小さなアプリと考えてください)をサポートしてユーザーIDを変更します。 これらは、コアレベルでシステムを管理するために使用されます。

あなたの電話を作った人はあなたにルートユーザーIDへの簡単なアクセスを望んでいないので-そしてそれはあなたとあなたのプライベートデータを保護するのですべての理由が利己的ではない-SubstituteUserバイナリはほとんどのビルドに含まれていませんアンドロイド。 SubstituteUserがなければ、ユーザーIDを切り替えることはできません。 ところで、Androidのほとんどのシステムレベルのものは、同様の簡単な名前を持っています。 コアセキュリティ(ブートローダーおよび/またはカーネル自体のファイル)も、SELinuxの一部としてユーザーIDを切り替えられないように構築されています(セキュリティ強化版Linux -名前が簡単であることを伝えます)カーネルモジュール。 一部の携帯電話(SamsungのKnoxが頭に浮かぶ)にはさらに保護があり、Androidを製造するほぼすべての企業は、これらのファイルを変更してユーザーIDを切り替えることができるように、変更を加えるにはブートローダーのロックを解除する必要があります。 BlackBerry Privのような一部の携帯電話はさらに一歩進んで、何かを変更すると(できたとしても)起動しません。

rootになるには、ユーザーIDを変更する方法が必要です。

許可された手段でブートローダーをロック解除するか、何らかのエクスプロイトを使用して、すべてのことを完了すると、SUバイナリ(SubstituteUser)を、実行が呼び出されたときに実行できる場所に配置できます。これはPATHと呼ばれます。 ユーザーIDのPATHにアプリがある場合、システムに正確な場所を通知せずに実行されます。 また、ユーザーIDがファイルを実行(実行)する許可を持っているスポットにSUバイナリがあることを確認する必要があります。 他のアプリ(Google Playにはルート権限が必要なアプリがたくさんあります)も同じアクセスが必要です。 メソッドを使用して電話をルート化する場合、ルートメソッドを構築した人によってこれらすべてが整理されます。

すべてが整ったら、SUバイナリを実行できます(または別のアプリでSUバイナリを実行できます)。

ルートアクセスの取得

これがルートの出番です。SUバイナリは、実行時にフラグを使用して、切り替えたいユーザーIDをシステムに通知します。 たとえば、この「su Jim -c nano」のように、UbuntuコンピューターでSUバイナリを実行する場合、ユーザーJimとしてnanoコマンドを実行します(Jimのパスワードを入力した後)。 フラグまたは引数なしでSUバイナリを実行すると、rootユーザーに切り替わります。 通常、パスワードを指定する必要がありますが、「root」はAndroidで未使用のユーザーであるため、パスワードはありません。 コマンド「su」を実行すると、ユーザーrootに切り替わり、ユーザーID 0が割り当てられ、ルートグループに入れられます。 これでスーパーユーザーになりました。

スーパーユーザーは、Android上の任意のファイル、フォルダー、またはパーティションに対して何でもできます。 何でも、文字通り何でも意味します。 ブロートウェアアプリを削除できます。また、携帯電話を破壊する重要なシステムファイルも削除できます。 CPU周波数を変更したり、電話機を永久に台無しにしたりするなど、ハードウェアに対して何かを行うこともできます。

ルートは、何でもできるスーパーユーザーです。 そして、私たちは何を意味します。

アプリでも同じことができます。 SUはアプリケーションPATH内の場所に配置され、すべてのアプリがそれを呼び出して実行できます。 そのアプリにはスーパーユーザー権限が付与され、携帯電話の任意の場所の任意のファイルに対して任意の操作を実行できます。 これが、あなたの電話を作った人々が本当にあなたにこのレベルのアクセスを望ませない理由であり、あなたがブートローダーのロックを解除し、物事を変更することを許可する会社は、デフォルトであなたの電話にSUバイナリを配置しません。 誰または何がそれを使用できるかを制御する方法がないルートアクセスを持つことは、お使いの携帯電話のソフトウェアと個人データにとって危険です。

そのため、自分または別のアプリがスーパーユーザー権限を呼び出そうとするたびにルートアクセスを許可するアプリをインストールする必要があります。 電話でルートメソッドを使用する場合、ほとんどの場合、BusyBoxツールセットなどの他の便利なバイナリとともにルートメソッドが含まれます。 手作業で行った場合は、自分でインストールする必要があります。 Google PlayのChainfireによるSuperSUは、最初から良いものです。

オッズと終了

多くの電話と一部のルートメソッドは少し異なる方法で(Android 4.3では多くの変更が行われました)、SUバイナリを適切な場所にドロップする代わりに、スクリプトまたはデーモン(daemonsuやsu.dのような単語が表示されます)が必要です。 これらは、SubstituteUserの呼び出しに使用されるため、生のバイナリメソッドと同じようにルートユーザーに切り替えることができます。 携帯電話をルート化する方法を考え出した人々は、これらすべてを整理しており、ユーザー側でも同じように機能します。

一部のAndroidを「一時ルート」することもできます。 つまり、スーパーユーザーのアクセス許可を持ち、必要ないくつかの操作を実行できますが、再起動するとルートアクセスがなくなります。 同様に、コンピューターからadbを介してのみrootユーザーにアクセスできる「shell-root」を持つことができます。

最後に、これらの質問があった場合、Androidを定着させる準備ができているかどうかを考慮する必要があることを強調したいと思います。 SuperUserアクセス​​で電話を台無しにするのは簡単だと言ったとき、私たちは冗談を言っていませんでした。 電話を壊したり、すべてのデータにランダムなルージュアプリのアクセスを許可したりする前に、少し読んだり、質問をしたりする必要があることを恥ずかしがる必要はありません。

それが私たちの目的です。