2012/03/26

AndroidにおけるRoot取得に関する基礎知識


※このエントリは、Android 4.2.2までで有効な内容です。Android 4.3以降ではこの方法ではRoot権限を取得できません。
Android 4.3対応ClockworkMod 6.0.3.5がNexusシリーズ向けに配布中!参照




Androidユーザーなら、一度は目指すのが”Root権限の取得”ではないでしょうか。ユーザー権限でも、iPhoneに比べて大いに弄ることができるエリアは広いですが、Rooted権限では全ての領域にフルアクセスできるようになります。


具体的に、Rootedになることでできることは、
  • System領域にアクセスしたり、改変することができる
    →システムのフォントを変更できる
    →カメラのシャッター音など、システム音を差し替えたりできる
    →画面密度(LCD density)を変更できる
    →ステータスバーなどのレイアウトを変更できる
    →and more...
  • Rooted専用アプリを利用することができる
    →Titanium Backupによるフルバックアップ
    →Set CPUによる、CPUのオーバークロック
    →ROM Managerによる、ClockworkModやカスタムROMの導入
    →droidwallを利用したfirewall機能導入
    →スクリーンショットの導入
    →テザリング機能の導入
    →and more...

勉強不足ですが、まだまだ沢山のことができるようになります。 IS03やIS01でも、偉大な有志の方々が作成してくださったツールを利用して、その恩恵を受けていました。


ほとんどの方は特定のツールを利用してRoot権限を取得していると思います。 Rootを取得するためにツールが何をしているか?という基礎知識を完全に持っていなかったので、今回少し調べてみました。


1.一時Root状態になる

これはRoot権限を恒久的に取得するために、(一時的に)Root権限をとるという、ある意味矛盾した状況です。
Nexusシリーズ以外は、Root権限に関する何らかの対策を講じている端末がほとんどです。特に国産ガラケーでは顕著ですね。 そういった端末ではシステム内の脆弱性(バグ)を突いて一時的にシステム領域にフルアクセスできる状態を作り出します。



2.”su”バイナリをシステムに送り込む

”su”バイナリ(ファイル)をシステム(system/bin,system/xbin)に送りこみます。 このファイルに適切な実行権を付与することで、”su”というコマンドをたたくことでRoot権限を得ることができるのです。
※実行権を付与するコマンドは、サイトによって様々です。”7xx”だったらいいのかな? ・chmod - Wikipedia ・ファイルパーミッション - Wikipedia



3.Superuser権限管理アプリをインストール

2.までの状況だと、誰でも(どのアプリでも)Root権限が利用可能になり、セキュリティ上非常に危険です。
なので、Superuser/SuperSUアプリなどをインストールして、その危険性を回避します。 あるアプリがRoot権限を使用しようとした瞬間、権限管理アプリが起動して、個別に許可するかどうかを確認してきます。ここで許可することで、初めてそのアプリがRoot権限を使用することができます。
”自己責任でやってくださいね”ということですね。



4.Busyboxを導入

Busyboxとは、簡単に言うと”実行コマンド大全集”です。system/xbinに導入します。
3.までの状態だと、使用できるコマンドが少なく、コマンドラインで自由な操作ができないので、その機能を拡張するために導入します。 こちらは製作者によって色んなbusyboxがあります。自分で自作して、独自のものを使うこともできます。




こういった流れのようです。 2.まででrootの取得は終わっています。3.4.は便利に利用するためのツールの導入ですね。

この一連の流れを一発で実行するため、各端末毎に作成されたのがRoot取得ツールです。(ツールによっては全てを実行しないものもあります。どこまでしてくれるかは説明をよく確認しましょう)


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates
Related Posts Plugin for WordPress, Blogger...