HTC Dream(aka T-Mobile G1, Android Dev Phone 1)用Android(cupcake)のビルドをしてみる

Debian上にAndroidのビルド環境を構築しようとしている。DebianじゃなくてUbuntuでも同じようなものだと思う。
ターゲットはHTC Dream(所謂Android Dev Phone 1)。
せっかくなのでcupcakeをビルドしてみる。ソフトキーボードを使ってみたいので。
ファームを上書きしてしまうと、もともと入っていた機器固有ライブラリ類が消えてしまうので、extract-files.shでファイルを吸い出しておくのを忘れないこと。

GitとGNU PGのインストール

$ sudo apt-get install git-core gnupg

JDKのインストール

$ sudo apt-get install sun-java6-jdk

ビルドに必要なツール

$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

オプションツール

$ sudo apt-get install valgrind

Repoのインストール

$ mkdir ~/bin
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod +x ~/bin/repo

add $HOME/bin into $PATH

リポジトリの準備

$ mkdir ~/mydroid
$ cd ~/mydroid
$ git config --global user.email "tetsuyasu@gmail.com"
$ git config --global user.name "Tetsuyasu YAMADA"
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

HTC Dream用追加ソースの設定

http://source.android.com/documentation/building-for-dreamからlocal_manifest.xmlをもらってくる。

$ cp local_manifest.xml ~/mydroid/.repo/

ソースの取得

$ cd ~/mydroid 
$ repo sync 

機器固有ライブラリ類のバックアップ

sdkが必要

$ cd ~/mydroid/vendor/htc/dream
$ ./extract-files.sh

ビルド

$ cp ~/mydroid/build/buildspec.mk.default ~/mydroid/buildspec.mk

edit buildspec.mk

56c56
< #TARGET_PRODUCT:=generic
---
> TARGET_PRODUCT:=htc_dream
$ cd ~/mydroid 
$ make

~/mydroid/out/target/product/dreamにsystem.img, boot.imgが出来上がった。

書き込み (自己責任)

バックボタンを押しながら起動してfastbootモードにする。上記のimgをflashする。
ただし、これらのimgにはGmail, YouTube, Market, IMは含まれていないので要注意。
あなたのHTC Dreamがレンガになったりしても、私は何も補償できませんのであしからず。

$ cp ~/mydroid/out/host/linux-x86/bin/fastboot ~/bin
$ cd ~/mydroid/out/target/product/dream
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot reboot