iPod touch (1G)にAndroidを入れてみた


iPod touch/iPhone向けAndroidである、iDroidを入れてみました。
iPhone 2G/3Gのように、もうすぐCydiaからBootlaceを入れるだけで簡単インストールできるようになるのかもしれないけど、それを待たずに手動で。

環境

  • MacBookPro / MacOS X 10.6.5 (+ DeveloperTools)
  • iPod touch 1G (OS 3.1.3)
    • redsn0wで3.1.2のFWを読み込ませてJailBreak済み, OpenSSHインストール済み

iDroidのイメージを配置

http://www.idroidproject.org/wiki/Releases/
からiPod touch 1G用のイメージ( http://idroid.nickpack.com/iDroid/official/iDroid-Project/IPT1G/iDroid-1.0.3-MoJo-IPT1G.tar.gz )を落とす。

中にあるinroadおよびfirmwareを/private/var/にscpで放り込む。

% cd iDroid-1.0.3-MoJo-IPT1G
% scp -r idroid firmware root@192.168.0.7:/private/var/

INSTALLファイルのExtraction of firmwareセクションに従って、タッチスクリーンのファームウェアを配置する。

CydiaでBootlaceを入れてあれば、IDroid→(i)ボタン→Extract Multitouch Firmwareを実行すると、zephyr2.bin が/private/var/firmware 内に抽出されるので簡単。

ついでに/private/var/sdcard というディレクトリを切って、その中にmp3ファイル等を入れておけば、iDroidからSDカードとして閲覧できるらしい。野良アプリもここにapkを置いて入れることになる。

openiBootのインストールの準備

まず、Mac OS Xに必要なライブラリ(libusb、readline)をそろえる。

libusb

http://idroid.nickpack.com/OLD/libraries/libusb-mac.gz
をダウンロード、展開、インストール。
Safariでダウンロードすると libusb-mac という拡張子無しファイルになってしまうが、
% tar xf libusb-mac
で展開できる。あとはダブルクリックでインストーラが起動する。

readline

readlineを以下からダウンロードし、ビルド & インストール。
ftp://ftp.cwru.edu/pub/bash/readline-6.1.tar.gz

% tar xf readline-6.1.tar.gz
% cd readline-6.1
% ./configure
% make
% sudo cp libreadline.6.1.dylib /usr/local/lib/

openiBootのセットアップ

iDroid-1.0.3-MoJo-IPT1GにもToolは入ってるが、どうせならopeniBootの最新版を使った方が良いかもしれない。今回は0.1.3を使った(iDroid-1.0.3に同梱されてたのは0.1.2だった)。
次に
http://idroid.nickpack.com/openiBoot/Tools/
から
oib-tools-OSX.zip (14-Oct-2010 10:46)
をダウンロードして展開すると、OSX-Toolsというフォルダができる。

http://idroid.nickpack.com/openiBoot/0.1.3-b192eb6-IPT1G.zip

もダウンロードし、上記OSX-Toolsのフォルダ内に入れておく。

openiBootを実行, iPod touchにインストー

iPod touchの電源を一度Sleepボタン長押しで切り、Homeボタンを押しながらUSB接続すると、リカバリモードになる(iTunesが立ち上がっても無視する)。この状態で、
OSX-Toolsディレクトリ内で、

% sudo ./loadibec openiboot.img3

を実行し、パスワードを入力すると、iPod touch上でopenibootが起動する。

ターミナルに

% ./oibc (まだエンターキーは押さない)

と打ち込んでおき、Sleepボタンで中央のConsoleアイコンを選び、Homeを押す。
画面が切り替わるので、素早く(Homeキーのほんの一瞬後に)
ターミナルでEnterキーをおしてoibcを実行する(予めターミナルに文字を打ち込んでおき、Homeを押した直後にenterを押す)。うまくいけば、iPod touchの画面と同じもの(以下まで)がターミナルに表示されるはず。

-----------------------------------------------
              WELCOME TO OPENIBOOT
-----------------------------------------------

この表示がでない場合、接続に失敗しているらしく、後続の処理がうまくいかない。
(下の表示だけが出て止まってしまう。

oiB client connected:
!<filename>[@<address>] to send a file, ~<filename>[@<address>]:<len> to receive a file
---------------------------------------------------------------------------------------------------------

この時は、SleepキーとHomeボタンを押しっぱなしにして強制再起動し、リカバリモードにするところからやり直す。

うまく接続できたら、install と入力してenterキー。1分くらい、以下のようなメッセージがいろいろ出る。

Backing up your NOR to current directory as norbackup.dump
Fetching NOR backup.
file sent.
NOR backed up, starting installation
Starting Install/Upgrade...
......
openiBoot installation complete.

ここまで来たら、reboot と入力して再起動させる。
ctrl-Cとかenterとかを適当に入力してoibcを止める。

再起動

今度は勝手にopeniBootが起動するはずなので、Androidを選ぶ。2,3分でAndroidが起動するはず。(ここでリンゴマークを選べばiOSが起動する。)

が、最初やった時はなぜか

calibration data installed

というメッセージの後、画面がうまく初期化されずハングアップしてしまった。
私の場合、いったん /private/var/idroid 内のファイルを全て削除し、再度アップロードし直したところ、うまく起動できるようになった。(検索したところ、似たような症状になった人が複数いるようで、削除→アップロードし直せ(上書きではダメ)というアドバイスがあった。理由はよく分からないが。)


うまくいけば起動画面が拝める。

Sleepボタンが戻る、HomeボタンがMenuになる。

起動後は、無線LANも無事使えた。iPod touchなので当たり前だが3Gはなし。

twicli動かしてみた。

適当に遊んだら、両方を同時押し+ちょっと長押しで電源OFFとか。