Galaxy Sでテザリングまで個人的まとめメモ

 Galaxy S(初代)でテザリングができるようになったのでメモ。
 いろいろ知らないことばかりだったので、到達までにかなりの時間を要した。というのも、Webで見つかる情報は古いものが多く、現状ではそのまま適用できないことばかりだったため。
 以下、経過などを含めて。当然ながら危険なので自己責任でやる。間違いがあれば随時修正。しかし質問には答えられない。
 Glaxy Sを購入したのが7月頭くらい。ウィルコムのAdvanced W-ZERO3(通称アドエス)からの移行。Androidで常時通信できる環境が欲しかった。日本通信b-mobileのイオン専用プラン(月額980円)で運用することを前提に。Androidは2010年末に購入したクリエイティブのZEN Touch 2 with GPSで使用経験があったが、こちらは3G非対応であるばかりかマーケットも非対応。普通のAndroid端末が欲しくなってしまった。そんな感じでいろいろ調べる。ここまでの話は「b-mobileイオンプランのためにGalaxy Sを買いました」に書いた。で、今回は、Galaxy SでテザリングしてPCを外出先でインターネットアクセスできるようにしたいというのが目標。また、あくまでもイオンプランでの運用のためなので、docomoとの契約で運用している人には向かない。たぶん。


 テザリングするためにはテザリング用アプリが必要。これはマーケットからダウンロードできる。とりあえず、実績のあるらしいものをダウンロードして準備。試しに起動すると「rootじゃないから動かないよ」と言われる。当然だ。
 Galaxy Sでテザリングするにはroot権限が必要だという。
 root権限があると隠された(?)機能にアクセスできるようになったりするらしい。UNIX系OSでいうrootと同じ(というか、AndroidはUNIX系OS)。「rootをとる」という表現が存在するのだという。で、そのrootをとった状態を「rooted」というとか。
 rootをとる方法はカンタン。SuperOneClickとかいうプログラムを使うだけ。
 ということだったのだが、それはだいぶ前の情報。Galaxy Sのバージョンアップによりその方法は使えないのだという。現在のバージョンは2.3.3。購入時からそのバージョンであった。その後にさらにKF2というバグ解消のアップデートが7月にあった。それは何も考えずに適用してあった(WindowsマシンでKiesというサムスンが提供するプログラムを利用)。その時点でGalaxy S用のUSBドライバもパソコンには導入してある。
 KF2にアップデートしていると、rootをとるのがかなり面倒だという話も見つかる。ほんとにできるのか?
 rootedにするには「カーネルを焼く」という方法があるのだとか。「ROM焼き」というのもあるそうだが、それは不要の模様。その関係がいまひとつわからない。とりあえず、2chの該当スレの情報を元に「カーネルを焼く」というのを試してみないことには、その後のこともわからなそうなので実行。T7とかいうやつ(現在は入手不可能)を使用。このダウンロードしたデータをOdin3というプログラムでGalaxy Sに書きこむ。Odin3は現在でもダウンロードが可能。Galaxy Sに限らず、Android端末でカーネルを焼くのに使われるWindows用プログラムなのだそうだ(Windows用以外もあるっぽい)。意外とするっと終わる。作業時のリブートなどはAndroid SDKに含まれるadbコマンドを使ったので本体のボタンはほとんど使わずに済ますことができた。リカバリーモードとかダウンロードモードとか起動モードがいろいろあることもここでなんとなく理解。adb reboot recoveryとかadb reboot downloadとか。adbコマンドはZEN Touch 2をいじってたときに基本的な操作は理解してあったのでさほど迷うこともなく(たとえばadb devicesで接続が確認できるとか)。
 で、このカーネルを焼いた状態でどうするのかがまったくわからない。とりあえず、ブートメニューが書き換えられたっぽいので、そのメニューの中身をいろいろ調べる。リカバリーモードで起動すると、起動画面が変わってて、その後そのメニューが見られる。メニュー操作はカーソル移動はボリューム上下。決定が電源。「advanced SpeedMod features」の下に「ROOT / Install Superuser」というそれらしきものがあるので実行。再度リブート(reboot system now)。余談だが、この操作時に画面が消えたりするけど、ホームボタンで画面が表示される。
 で、再起動してアプリ一覧画面を見ると「Superuser」というアイコンが追加されてる。たぶん、これでOKなのだろう。ZEN Touch 2もこんな感じだったと記憶。
 続いてテザリングアプリを起動してみる。どうもうまくいかない。違うアプリを試す。それもだめ。調べると、マーケットで配布されてない「WiFi Tether(http://code.google.com/p/android-wifi-tether/ )」というのがいいらしい。ということでそれを試す。apkをPCでダウンロードして端末にコピー。設定で「提供元不明のアプリ」をONにした状態でapkをインストール。実行。「スーパーユーザー権限がどうこう」というメッセージが出たりするのでそれを設定。意外とするっとテザリングが開始された模様。PCで接続確認。OK! ナイス。あとは設定で暗号化とかアクセスコントロールを設定。他人からアクセスされないようにする。無線LANの知識があればむずかしいところはない模様。その後、友達と会った際にはiPhoneからの接続も確認。大丈夫なり。
 で、この状態ではテザリングが提供する無線LAN接続はアドホック(AdHoc)。PCやiPhoneならいいけど、その他の端末はアクセスができない。たとえば、ニンテンドーDSとか。意外にもAndroid端末もだめ。インフラストラクチャモードじゃないとだめなんだそうだ。アドホックとインフラストラクチャの2つのモードが存在するのは各種無線LAN機器を触ったことがあればその違いはご存知のとおり。後者はルーターやアクセスポイントが動作するモードみたいなもんで、前者はパソコンをルーター代わりにする際によく使ったものだ(意味不明)。
 テザリングをインフラストラクチャモードで動作させるには「framework-res.apk」というファイルを編集する必要があるという。adbコマンドでバックアップをとってから、Apk manager 4.9というアプリを使ってあらたに同名ファイルを再構築。それを再度Galaxy Sに送り込むというのがカンタンな手順。これらの操作はリカバリーモードで行うという。しかし、送り込む段階で、権限がないのでコピーできないといわれる。rootedな状態になってるわけではないのか? とか思う。理解できてないということはこういう状態を招くのだな。
 superOneClickに含まれる「rageagainstthecage」をコピーしてやる、とかいう情報もあったのだけど、現在の2.3.3のKF2では動作しないという情報を発見。だめじゃん。と思い、さらに探すと、PC側で「adb root」でいいそうだ。「adb shell」でGalaxy Sにログインしてみるとプロンプトが「#」になってる。こんなカンタンな方法でrootでログインできるのかあ!と思い、adb pushでコピーするとあっさりとコピー完了。再起動する。Galaxy SでテザリングをON、別のAndroid端末で無線LAN接続。つながった。これで目的達成。おつかれやまでした。
 初期状態のJJ1に戻して、KE3の状態でrootedにしてからGalaxy本体でKF2にする、という流れを解説してあるところがあったのだけど、今回の目的にはそこまでする必要がなかったのでちょっと助かった。メモ終わり。
 8月後半時点でGalaxy Sの中古、白ロムとももかなり価格が下がってきたようだ。S2の購入代金が下がったというのも大きく影響していると思われ。Galaxy S購入をもう少し待てばよかったなあ、と思ったりもしたが、まあそこは言ってもしょうがないところ。


コメント

タイトルとURLをコピーしました