HT-03AのRoot化では結局何をしているのか

Last edited on 2010/08/22 (日) - 15:59

[2010/8/22] HT-03A のルート権限を手に入れたいなら、現在は Universal Androot というツールを使うとよいでしょう。こちらも別の脆弱性を突いてルート権限を取得します。この脆弱性は多数のAndroid端末が持っているようで、このツールも数多くのAndroid端末に使えます。

****************************************************************************************

Ht-03Aのルート化がユーザの間でちょっとしたブームになっており、私もやってみてsuコマンドを手に入れることができた。無事に su を手に入れたものの、結局のところ何をしたのか理解しておきたいと思ったので、それをここにまとめておく。

以下の記述は、私が自分で調べて理解したもので、もし間違っていたらもちろん私の理解不足が原因だ。それから、root化自体については当然、at your own risk だ。

Root化(su を手に入れる)は setupsuというソフトによって行った。Recovery Flasher を使う方法もあり、というか、こちらがオリジナルなのだが、setupsu の方が簡単である。

具体的な手順は 2ちゃんねるなどによくまとまって書いてあり、私も読んでその通り実行しただけなので、少しも難しくない。今のところ、2チャンネルでは次の2通りの方法が書かれている。

・やりかた1

Recovery Flasher を起動し、PC に USB でつないで adb shell して以下を実行する

/data/data/org.zenthought.flashrec/cache/asroot /sdcard/droidsploidXXXXXX /system/bin/sh

これで rootになれるので /system/bin の下に sh を su という名前でコピーしてモードを4755にする

・やりかた2

以下をインストールして実行すると /system/xbin の下に su と busybox がインストールされる。

http://cloud.github.com/downloads/nagamatu/SetupSU/setupsu.apk

ほとんど、おまじないの世界である。これはいったい何だというようなものだが、やっていることは両方とも同じである。発端はここだ。

Android Rooting in 1-click (limited time only… until it gets patched)

この記事に書かれていることは要するにこういうことだ。

  • Android に CVE-2009-2692 として報告されたセキュリティー上の弱点があった。
  • この弱点を利用するとプログラムをRoot権限で実行できる。弱点は修正済みだが、キャリアがソフト更新するまでは端末には弱点として残っている。
  • この弱点を突いて、簡単に実行イメージ(ROM)を置き換えることができる Recovery Flasher というソフトを作った

Recovery Flasher はRoot権限を利用してROMのイメージを書き換えるソフトだが、出回っているCustum ROMは日本語環境が使えないので日本人にはあまりうれしくない。それより、単に su が手に入ればそれでいい。 (コムギドットネットさんの記事 HT-03AにカスタムROMを導入するメモ を読んで認識を改めました。カスタムROMに書き換えてもロケールを日本語にして、OpenWnnなどの日本語入力ソフトを入れれば十分使えます。su を取得してoverclock widgetや swapper を導入したなら、そこからROM書き換えまではもう一息、すばらしい世界が待っております。そのまま Recoverry Flasherを使って、Recovery Imageを書き換えてしまいましょう。)

そこで、上記の、"やりかた1"でやっているのは、Recovery Flasherを起動したまま、いわば横からちょっとroot権限を使わせてもらって、su を獲得するという方法だ。

Recovery Flasherは上記の弱点を利用してRoot権限でコマンドを実行するための asroot というプログラムを内蔵しており、Recovery Flasherを起動すると、asroot を/data/data/org.zenthought.flashrec/cache の下にコピーするようだ。

asroot は第二引数で与えたコマンドをRoot権限で実行するらしく、"やりかた1"では、root でsh を動かしたことになる。じゃあ、第一引数のわけのわからないファイル名はなんだというと、まあ、おまじないに近いのだが、上記の弱点をついてrootを獲得するため使う一時ファイル名だ。このあたりは、上記のCVE-2009-2962 の内容と、http://zenthought.org/content/file/android-root-2009-08-16-source に置いてある asroot のソースを読んでみて何となく理解できた。

"やりかた1"はRecovery Flasherを起動し、その中間の状態を利用して su を作成してしまおうというものなので、手順だけみると、ほとんどおまじないの世界になってしまう。その辺をもうちょっとスマートにしたのが、"やりかた2"だ。

”やりかた2"で実行する setupsu も実は asroot を使っている。setupsu もasrootコマンドを内蔵しており、su と busybox を/system/xbin の下にコピーするスクリプトを asroot で実行しているみたいだ。

最後に Recovery Flasher の RyeBrye氏や、setupsu の nagamatu氏や、手順その他を2ch等に積極的に提供してくれるみなさんのおかげで、こんなに簡単に root化できた。感謝、感謝。