フローズンヨーグルトを食べる

Android 2.2、Froyo のコードがようやく公開されましたね。

ADP1、ADP2、Nexous One でもビルドできるよ、ってあるのが嬉しいですね。

私は Cupcake ( Android 1.5 )、Donut ( Android 1.6 ) はビルドしたことがありますが、
Android 2.x はビルドしたことがないので早速やってみました。

基本的には、公式ドキュメントに従います。

まずはコードのチェックアウト。1 〜 2 時間かかります。

mkdir mydroid
cd mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
repo sync

チェックアウトが終わったら、ADP1 用の準備をしましょう。

いろいろと書いてありますが、重要なのは四つ。

1. プラットフォームに合わせた fastboot を入手してパスが通った場所に置いておく。
2. HTC が公開しているプロプライエタリバイナリを用意する

$ cd mydroid/device/htc/dream
$ wget http://member.america.htc.com/download/RomCode/Source_and_Binaries/htc-adp1.sfx.tgz?
$ tar xzvf htc-adp1.sfx.tgz
$ ./htc-adp1.sfx

3. Android 1.6 用の recovery image を用意する
wget などでダウンロードできないので、手動でダウンロードしてから
mydroid ディレクトリにファイルを置いて以下を実行します。

$ cd mydroid/device/htc/dream
$ ./unzip-supplementary-files.sh
Archive:  ../../../signed-dream_devphone_userdebug-ota-14721.zip
  inflating: ../../../vendor/htc/dream/proprietary/AudioPara4.csv  
  inflating: ../../../vendor/htc/dream/proprietary/brf6300.bin  

4. ADP1 を接続して必要なファイルを抽出する

$ cd mydroid/device/htc/dream
$ ./extract-files.sh
556 KB/s (149428 bytes in 0.262s)
6 KB/s (85 bytes in 0.013s)
319 KB/s (1898 bytes in 0.005s)
867 KB/s (44542 bytes in 0.050s)
587 KB/s (5220 bytes in 0.008s)
862 KB/s (14087 bytes in 0.015s)
1115 KB/s (194188 bytes in 0.170s)
remote object '/system/lib/egl/libGLES_qcom.so' does not exist
932 KB/s (33514 bytes in 0.035s)
975 KB/s (43604 bytes in 0.043s)
994 KB/s (80012 bytes in 0.078s)
844 KB/s (17564 bytes in 0.020s)
1079 KB/s (277880 bytes in 0.251s)
remote object '/system/lib/liblvmxipc.so' does not exist
211 KB/s (5240 bytes in 0.024s)
remote object '/system/lib/liboemcamera.so' does not exist
471 KB/s (9432 bytes in 0.019s)
1196 KB/s (159688 bytes in 0.130s)
982 KB/s (164980 bytes in 0.163s)
1147 KB/s (140816 bytes in 0.119s)
910 KB/s (22760 bytes in 0.024s)
665 KB/s (5284 bytes in 0.007s)
remote object '/system/lib/libstagefrighthw.so' does not exist

一部のファイルが存在していないのが不安ですね。

次にビルドターゲットの指定を行います。
ADP1 で動作させてみたいので、そのような構成を指定します。

. build/envsetup.sh
lunch full_dream-eng

ようやくビルドの開始です。これまた 1 〜 2 時間かかります。

make -j4

すると、不安が的中して
libGLES_qcom.so がないためにビルドが停止しました・・・。

確か、GLES は Android 2.x で導入されたはずなので、
ADP1 にはないのもうなずけるんですが、なんとか入手できないものか・・・。
ちょっと調べてみよう。