使わなくなった iPhone 3GS に
    Android とか
  色々いれてみたかった
誰?

    ストリート系エンジニアになりたい
    もうすぐ23歳の社会人1年目


    仕事は主に JavaScript やら Ruby on Rails を
    使ったブラウザゲーム開発


 最近、スマホアプリやらセキュリティにも
なんとな~く関心がある


    趣味はストリートダンス (lockin') とか DJ とか
    ダーツ
誰?
  Twitter:


@zunjp
アジェンダ

    iPhone に Android を入れようと考えた動機


    導入の具体的な手順


    失敗した原因


    iDroid の現状


    まとめ
ある日
仕事で関わっている
ブラウザゲームのスマホ版の
 テストをしていました。
そこで Android の
  テストもしたいので
Nexus を会社から借りる
10 分後…
Nexus 、かっこいい。
( 仕事そっちのけで触りまく
          る)
Android
欲しい。
Java とか頑張って覚えて
Android アプリとか作りたい
ShootingStar 使って
Twitter で中指飛ばしたい
     (´ へ ω へ `*)
でも、 iPhone で事足りるの
        に、
わざわざ Android 端末を何万
もかけて買いたくない……
できればタダで
 Android をつかいたい……
エミュレータではなく、実機
          で。
なんとか用意する方法は
  無いものか……
思考をめぐらせつつ
    後日
部屋に、
使わなくなった
 iPhone 3GS
    を発見
なんてことはない、ただの iPhone 3GS
( 刺さっている SIM は既に解約して iPhone4S に乗り換えているので圏外 )




                         画面割れ……
( ^o^) 自宅に使わなくなった iPhone3GS あったった
wwwww
( ˘⊖˘ )。 o( 待てよ、 iPod touch 以外の使い道がある
のでは? )
( ˘⊖˘ )。 o( できるかわからんけど
       Android とか入れたら面白そうだ…… )
( ˘⊖˘ )。 o( すまべんで話しても面白そうだ、
       ウケるかわかんないけど )
| すまべん | ┗(☋ ` )┓ 三
( ◠‿◠ )☛ 次回 30 分枠だ そこではなしてもらおう
( 某 totoro さん )

( ◠‿◠ )☛ バックレたら殺す
( 某 smellman さん )
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ うわああああああ
そんなわけで、すまべんの偉大な
   先輩方の粋なはからい
    ( またの名をパワハラ )
      によって
 今回ここに立っております。
生暖かく見守っていただけると
    嬉しいです
 よろしくお願いします
本
題。
いかにして iPhone に
Android を同居させるか?
Answer:
      iDroid
と呼ばれるものを使います。
■ 手順(自己責任)
1、対象の端末 (iPhone) を jailbreak
2、 Cydia から Bootlace をインストール
3、 Bootlace を起動して、カーネルにパッ
チを当てる
4、 OpeniBoot をインストール
5、 OpeniBoot を起動して iDroid をインス
トール
6、インストール後、 Bootlace を介して
Android が使えるように!
(入れ方はとっても簡単 !! )
なはずだった
実は、 iPhone3G じゃないと
 Bootlace が使えない。
じゃあ Bootlace 使わずに
  自力で入れよう!
ところで
期待を持たれる前に
 言っておきますが
結末から先に言うと
最終的には
失敗しました。
とりあえず iOS4.1 の
状態で jailbreak
※redsn0w が推奨。

OS5 以上では Bootlace は動かないので、
それ以上の人は 4.2.1 以下に落としましょう。
待つこと数分、無事 JB 完了
Cydia から
  Bootlace をインストール、起動するも
            前述のように、
「このデバイスは対応していない」と怒られる
   起動すらさせてくれないという……
Bootlace を使わずに自力で iDroid
            を
         導入する方法
■ 必要なもの
・ Windows 、 Mac 、または Linux
( 今回は Linux での手順 )

・ redsn0w で jailbreak 済みの iPhone3G
(3GS で果敢に今回挑戦したが、断念 )

・ OpeniBoot
・ iDroid Wiki から手に入る Android OS
・ Wi-Fi ファームウェア ( 後述 )
・ Termial に関する知識
・自己責任と強い気持ち、強い執念
手順
1. http://www.idroidproject.org/ から iDroid と OpeniBoot を手に
   入れる
・ iDroid
android.img.gz   cache.img
system.img   userdata.img
zImage

・ OpeniBoot
Loadibec   oibc
openiboot.img3
手順
2. iDroid を iPhone に転送


・転送方法は様々
例: iFunBox を使って USB で転送、 Filezilla を
 使って無線 LAN 経由で接続…
(Filezilla を使う場合、
ユーザー名 root 、パスワード alpine)
手順
2. iDroid を iPhone に転送


iPhone 内の /private/var 以下に
・ idroid
・ sdcard
・ firmware
ディレクトリを作る。


android.img.gz   cache.img
system.img   userdata.img
zImage
を /private/var/idroid に転送。
転送後、ファイルサイズが転送元と正しいか比較
手順
2. FW の抽出と転送


Cydia から「 iokittools 」をインストール
                                       ↓
SSH で iPhone に入った後
$ cat /usr/share/firmware/multitouch/iPhone.mtprops | grep -B2 0x0049 | grep
   data | sed 's/^tt<data>//' | sed 's/</data>$//' | base64 -d > zephyr2.bin

を実行する
手順
2. FW の抽出と転送
http://www.marvell.com/ から
  Wi-Fi の FW を手に入れる
(Version は Linux 2.6 – Fedora)


helper_sd.bin を sd8686_helper.bin にリネーム
  し、 sd8686.bin と一緒にとっておく
手順
2. FW の抽出と転送
sd8686_helper.bin
sd8686.bin
zephyr2.bin
これら3つのファイルを /private/var/firmware 以
 下に配置
手順
3. Openiboot のインストール
$ sudo apt-get install で以下をインストール
libusb-1.0-0
libusb-1.0-0-dev
libreadline6-dev
readline-common
Libreadline6
libreadline-dev
手順
3. Openiboot のインストール
iPhone の電源を切り、リカバリモードで起動。
                       ↓
PC 側で先ほど用意した openiboot のディレクト
 リに移動し、
$ sudo ./loadibec openiboot.img3
を叩く。
手順



          本当はここで
openiboot が入るはずだったが… 3GS では動か
               ず。


   ※ 真偽は不明だが、動作報告はある
手順
3. Openiboot のインストール
インストールに成功すると、 iPhone で
openiboot が動いているはず。
動いているのを確認したら

$ sudo ./oibc を入力後、 ( まだ Enter は押さな
  い)
iPhone 側ホームボタンを押して1~2秒待って
  実行
(これをやらないと、 iPhone と PC の接続がう
  まくいかない)
手順
4. iDroid のインストール
OpeniBoot のアスキーアートが出てきたら
  Terminal で
$ install
をすることで iDroid がインストールされる
                 ↓
インストール完了後に
$ reboot
で iPhone 再起動
完了…!?
再起動するとこんな画面が出る


・電源ボタンで OS 選択
・ホームボタンで決定


起動する Android は 2.3.2
完了…!?
・ Wi-Fi は使えるが 3G 回線は使えない
・ GPS 、 Bluetooth 、
 カメラは使えない
・当然、 Google Play 、
 Android マーケットは
 入っていない
・ホームボタン、
 戻る等は iPhone の
 電源ボタンやホームボタンに
 割り当てられているので、
 シャットダウンには tReboot などが必要
・電池の消耗と発熱が激しい
完了…!?
・ iTunes に繋いで通常の同期等、
 iPhone としての使用も可能
・復元や iOS アップデートでは
 当然消える


やはり、まだまだ発展途上?
失敗した原因
1. 3GS での成功報告は何件かあるため今回ト
 ライしてみたが、「3 GS 向け」の手法として
 確立されたものはなく、そういった記事も現
 在のところ確認できない
2. YouTube やニコニコ動画に、起動の様子を
 撮った映像があったが、本当に 3GS かの真偽
 不明
3. iDroid プロジェクトそのものに関わる人が
 少ない
iDroid の現状
1. GitHub でソースが共有されている
2.が、先日某ニュースサイトにて
The iDroid Project - Where It Presently Stands
という記事がアップされた。
それによる ( ざっくり意訳 ) と、
「メインで関わっている開発陣は現在興味を
 失ってプロジェクトを抜けている or 仕事が
 忙しいため、現在開発がストップしている ( 故
 に、 3GS や 4 、 4S は当分未対応 ) 」

 とのこと。
iDroid の現状
■ 今後の開発の展望(メンバーが戻り次第の)
OpeniBoot を含め、 iDroid は今後 A4 系
 (iPhone4, touch 4G 等 ) を中心に開発が進めら
 れる
ただし、現在は人が居ないことを除くと
 OpeniBoot の開発中 A4 系バージョンが深刻な
 バグを抱えているので、リリースはまだ先に
 なりそう……
まとめ と 今後のこと
1.今回、 3GS での起動成功例があるにもかか
 わらず、起動できず(原因も未だに不明)
2. 3G 以下での起動は確立されている
 が、 3GS に関しては現在未だに確立されてい
 ない
3.やりたいと思っていたことは志半ばで力尽
 きましたが、普段見えづらい iPhone の中身を
 少し垣間見れて楽しかった
4.機会があれば、安く古い iOS 端末を手に入
 れて、リベンジしてみたいです!
※ 同様に試して失敗しましたが、似たプロジェ

使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)