android に bash を入れる

参考サイト
http://lbdaberi.blogspot.com/2009/01/androidbash.html
http://d.hatena.ne.jp/shinichiro_h/20081226


ホストOSはUbuntu 9.04(ja)

デフォルトのシェルが使い辛いのでbashを入れることに。
手順は以下
1. クロスコンパイラをDL
ここからクロスコンパイラをダウンロード
>Target OS : GNU/Linux
>Download : IA32 GNU/Linux Installer
ファイル名は[arm-2009q1-203-arm-none-linux-gnueabi.bin]
今回はホームディレクトリにダウンロード


2. クロスコンパイラ導入

$ cd ~
$ ./arm-2009q1-203-arm-none-linux-gnueabi.bin

注)ここで失敗する場合はここを参考に /bin/sh を dash から bashに変更する。(shebang変更はうまくいかなかった)
インストーラが起動するのでインストール(デフォルトの設定で良い)

今回は[~/CodeSourcery] 以下にインストール


3. bashコンパイル

$ wget http://www.busybox.net/downloads/busybox-1.13.2.tar.bz2
$ CC=~/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc CFLAGS=-static LDFLAGS=-static ./configure --prefix=/media/disk/system --host=arm-none-linux-gnueabi
注) CCはクロスコンパイラの実行ファイル, prefixはインストール先
$ make
注) 足りないパッケージは適宜入れる。自分の環境では[yacc]が入っていなかった。
$ make install

あとは

adb shell

で入って実行すれば良い