2009年8月26日水曜日



f:id:bs-android:20090826004115p:image


京都GTUG主催のAndroid Hackathonですが、若干名空きが出ているようです。






先着順のうえに8/26の晩に締め切ってしまうそうなので、申し込みはお早めに!





京都GTUG Android Hackathon in Kyoto 追加募集!



f:id:bs-android:20090826004115p:image


京都GTUG主催のAndroid Hackathonですが、若干名空きが出ているようです。






先着順のうえに8/26の晩に締め切ってしまうそうなので、申し込みはお早めに!





2009年8月25日火曜日



f:id:bs-android:20090825135053p:image


8月上旬に予定されていた、Android Developer Challenge 2、略してADC2のサブミッションサイトがオープンしました。





オープンの予定は遅れましたが、締め切りは変わらず、カリフォルニア時間の8月31日の11時59分までということです。





英語での解説が必須なのと、すでに作成されている方でないと難しいと思いますが、


腕に覚えのある方はチャレンジしてみては?





Android Developer Challenge 2 オープン



f:id:bs-android:20090825135053p:image


8月上旬に予定されていた、Android Developer Challenge 2、略してADC2のサブミッションサイトがオープンしました。





オープンの予定は遅れましたが、締め切りは変わらず、カリフォルニア時間の8月31日の11時59分までということです。





英語での解説が必須なのと、すでに作成されている方でないと難しいと思いますが、


腕に覚えのある方はチャレンジしてみては?







f:id:bs-android:20060725140001j:image


Androidのフレームワークのソースコードを日々コンパイルされているみなさん、お元気ですか?


今回はコンパイルする時間を短縮する為のTipsを紹介します。


もちろんAndroid以外にも有効です。



Ubuntuのカーネルの最適化


デフォルトのカーネルでは最近主流のCPUのCore2Duoには最適化されていません。


その為、カーネルをCore2Duo向けに最適化されたコンパイルをしてカーネルを入れ替えてしまいましょう。



VMWareの場合

この方法はVMWare上のUbuntuでも可能ですが、


VMWare上でCore2Duoを有効にするには、手順の一番初めに


vmxファイルに


numvcpus = "2"


の記述を追加して再起動しておいてください。


これだけでも


make -j4


などでのコンパイルが速くなります。



コンパイルに必要なツールのインストール

まずは下記のコマンドで、apt-getを情報を最新の状態にします。



sudo apt-get update





そしてカーネルコンパイルに必要なツールをインストールします。



sudo apt-get install kernel-package libncurses-dev ncurses-dev libqt3-mt-dev





最新カーネルのソースコードの取得とコンパイル

最新カーネルのソースコードを取得します。



sudo apt-get install linux-source





取得できたら、/usr/srcに移動します。



$ cd /usr/src





そして先ほど取得したカーネルのソースコードを解凍しましょう。



$ sudo tar xjvf linux-source-2.6.**.tar.bz2


※**の部分は取得した時点のカーネルのヴァージョンに依存します。





解凍したディレクトリに移動します。



$ cd /user/src/linux-source-2.6.**


※**の部分は取得した時点のカーネルのヴァージョンに依存します。





現在のカーネルのconfigをコピーしておきます。



$ sudo cp /boot/config-2.6.**-**-generic .config


※**の部分は現在のカーネルのヴァージョンに依存します。


 /boot以下にある、最も新しいカーネルのconfigファイルを指定してください。





コピーしたconfigファイルの設定を反映させます。



$ sudo make oldconfig


現在のカーネルと最新のカーネルの間でコンパイルオプションが追加されている場合はいくつか質問されますが、Enterを押してデフォルト値で構いません。





xconfigでGUIでカーネルのconfigを変更します。



$ sudo make xconfig


※xを使っていない場合はmenuconfigで。


以下の項目を変更します。


Processor type and features->Processor family->Core 2/newer Xeon


Processor type and features->Preemptible Kernel(Low-Latency Desktop)


Processor type and features->Timer frequency->1000Hz


f:id:bs-android:20090824205159p:image


f:id:bs-android:20090824205617p:image


変更したらCtrl+Sで保存してウインドウを閉じます。





変更したカーネルを識別できるようにEXTRAVERSIONを変更しておきます。



$ sudo vi Makefile



EXTRAVERSION = -**-core2duo


※**は最新カーネルのヴァージョンに依存します。


「-core2duo」は任意の文字列で構いません。カーネルのヴァージョン番号の最後に付加されます。





コンパイルします。



$ sudo make-kpkg --initrd kernel_image





コンパイルが完了したら、カーネルパッケージをインストールします。


#ひとつ上のディレクトリにカーネルのdebパッケージが作成されているはずです。



$ cd ..
$ sudo dpkg -i linux-image-2.6.**-**-core2duo_2.6.**-**-core2duo-10.00.Custom_i386.deb


※**の部分は取得した時点のカーネルのヴァージョンに依存します。





成功していれば、OS再起動後に起動するカーネルを選択できるようになっているはずです。


適用されているかどうかは「uname -r」か「uname -a」で確認できます。



$ uname -r
2.6.**.**-core2duo






Android自体にはあまり関係ないですが、少しでもお役に立てば幸いです。





Androidコンパイル環境の最適化手法



f:id:bs-android:20060725140001j:image


Androidのフレームワークのソースコードを日々コンパイルされているみなさん、お元気ですか?


今回はコンパイルする時間を短縮する為のTipsを紹介します。


もちろんAndroid以外にも有効です。



Ubuntuのカーネルの最適化


デフォルトのカーネルでは最近主流のCPUのCore2Duoには最適化されていません。


その為、カーネルをCore2Duo向けに最適化されたコンパイルをしてカーネルを入れ替えてしまいましょう。



VMWareの場合

この方法はVMWare上のUbuntuでも可能ですが、


VMWare上でCore2Duoを有効にするには、手順の一番初めに


vmxファイルに


numvcpus = "2"


の記述を追加して再起動しておいてください。


これだけでも


make -j4


などでのコンパイルが速くなります。



コンパイルに必要なツールのインストール

まずは下記のコマンドで、apt-getを情報を最新の状態にします。



sudo apt-get update





そしてカーネルコンパイルに必要なツールをインストールします。



sudo apt-get install kernel-package libncurses-dev ncurses-dev libqt3-mt-dev





最新カーネルのソースコードの取得とコンパイル

最新カーネルのソースコードを取得します。



sudo apt-get install linux-source





取得できたら、/usr/srcに移動します。



$ cd /usr/src





そして先ほど取得したカーネルのソースコードを解凍しましょう。



$ sudo tar xjvf linux-source-2.6.**.tar.bz2


※**の部分は取得した時点のカーネルのヴァージョンに依存します。





解凍したディレクトリに移動します。



$ cd /user/src/linux-source-2.6.**


※**の部分は取得した時点のカーネルのヴァージョンに依存します。





現在のカーネルのconfigをコピーしておきます。



$ sudo cp /boot/config-2.6.**-**-generic .config


※**の部分は現在のカーネルのヴァージョンに依存します。


 /boot以下にある、最も新しいカーネルのconfigファイルを指定してください。





コピーしたconfigファイルの設定を反映させます。



$ sudo make oldconfig


現在のカーネルと最新のカーネルの間でコンパイルオプションが追加されている場合はいくつか質問されますが、Enterを押してデフォルト値で構いません。





xconfigでGUIでカーネルのconfigを変更します。



$ sudo make xconfig


※xを使っていない場合はmenuconfigで。


以下の項目を変更します。


Processor type and features->Processor family->Core 2/newer Xeon


Processor type and features->Preemptible Kernel(Low-Latency Desktop)


Processor type and features->Timer frequency->1000Hz


f:id:bs-android:20090824205159p:image


f:id:bs-android:20090824205617p:image


変更したらCtrl+Sで保存してウインドウを閉じます。





変更したカーネルを識別できるようにEXTRAVERSIONを変更しておきます。



$ sudo vi Makefile



EXTRAVERSION = -**-core2duo


※**は最新カーネルのヴァージョンに依存します。


「-core2duo」は任意の文字列で構いません。カーネルのヴァージョン番号の最後に付加されます。





コンパイルします。



$ sudo make-kpkg --initrd kernel_image





コンパイルが完了したら、カーネルパッケージをインストールします。


#ひとつ上のディレクトリにカーネルのdebパッケージが作成されているはずです。



$ cd ..
$ sudo dpkg -i linux-image-2.6.**-**-core2duo_2.6.**-**-core2duo-10.00.Custom_i386.deb


※**の部分は取得した時点のカーネルのヴァージョンに依存します。





成功していれば、OS再起動後に起動するカーネルを選択できるようになっているはずです。


適用されているかどうかは「uname -r」か「uname -a」で確認できます。



$ uname -r
2.6.**.**-core2duo






Android自体にはあまり関係ないですが、少しでもお役に立てば幸いです。





2009年8月22日土曜日



http://www.ospn.jp/osc2009-nagoya/


てづくりAndroidケータイを展示します。


f:id:bs-android:20090821113344j:image


日時


2009年8月22日(土) 10:00-18:15


場所


名古屋市立大学 山の畑キャンパス 教養教育棟(2号館) 2階


(地下鉄桜通線『桜山』徒歩15分)


キャンパス内マップ


駅/バス停からのアクセスマップ


会場周辺の地図(GoogleMaps)


費用


無料


その他


セミナでも登壇します。


209教室(108名) 17:10~


手作りAndroidケータイでんわ。





オープンソースカンファレンス2009Nagoyaに出展します



http://www.ospn.jp/osc2009-nagoya/


てづくりAndroidケータイを展示します。


f:id:bs-android:20090821113344j:image


日時


2009年8月22日(土) 10:00-18:15


場所


名古屋市立大学 山の畑キャンパス 教養教育棟(2号館) 2階


(地下鉄桜通線『桜山』徒歩15分)


キャンパス内マップ


駅/バス停からのアクセスマップ


会場周辺の地図(GoogleMaps)


費用


無料


その他


セミナでも登壇します。


209教室(108名) 17:10~


手作りAndroidケータイでんわ。





2009年8月21日金曜日



f:id:bs-android:20090821111049p:image


日時


2009年8月21日 18:30~


場所


京都リサーチパークの4号館 2F 2A会議室です。




JR嵯峨野線(山陰線)丹波口駅下車 西へ徒歩5分


タイムテーブルは以下の通り












18:30受付設置(- 19:15)
19:00 - 19:10 挨拶
19:10~19:35 位置情報、加速度センサ 有限会社シーリス 有山さん
19:35~20:00 OpenGL 日本Androidの会宮川さん
20:00~20:05 休憩
20:05~20:35 待受けウィジェットの作り方 日本Androidの会宮川さん
20:35~21:00 メディア再生 ブリリアントサービス 杉本

メディアの再生系をやります。Androidのver1.5は1.1と同じやりかたでは、videoの再生が出来ないようになっています。


そのあたりのお話しをします。


GTUG京都のURL


http://kyoto-gtug.org/





GTUG KYOTO に講師として登壇させて頂きます



f:id:bs-android:20090821111049p:image


日時


2009年8月21日 18:30~


場所


京都リサーチパークの4号館 2F 2A会議室です。




JR嵯峨野線(山陰線)丹波口駅下車 西へ徒歩5分


タイムテーブルは以下の通り












18:30受付設置(- 19:15)
19:00 - 19:10 挨拶
19:10~19:35 位置情報、加速度センサ 有限会社シーリス 有山さん
19:35~20:00 OpenGL 日本Androidの会宮川さん
20:00~20:05 休憩
20:05~20:35 待受けウィジェットの作り方 日本Androidの会宮川さん
20:35~21:00 メディア再生 ブリリアントサービス 杉本

メディアの再生系をやります。Androidのver1.5は1.1と同じやりかたでは、videoの再生が出来ないようになっています。


そのあたりのお話しをします。


GTUG京都のURL


http://kyoto-gtug.org/





2009年8月2日日曜日



Androidの現時点での最新環境であるdonutブランチを、Android Dev Phone 1で実際に動作させる手順を公開します。


PDFファイルも用意しています。


現在のgit環境では、下記urlに掲載されている公式の手順ではビルドが出来なくなっているので、解決方法も合わせて掲載します。


Building For Dream – Android Open Source Project


 http://source.android.com/documentation/building-for-dream





確認環境


 本ドキュメントに記載した手順は、以下の環境で確認しました。








ビルド環境その1Ubuntu Linux 8.04LTS (日本語版) をインストール済みのPC(Pentium M 1.5GHz / MEMORY:1GB )
ビルド環境その2Ubuntu Linux 8.04LTS (日本語版) + VMware(ホストPC:Windows)( Core2Duo 3.0GHz / MEMORY:4GB )
実機Android Dev Phone 1 (Firmware Version 1.5)




制限事項


 本ドキュメントに記載の手順で作成したイメージは、本ドキュメント作成時点(2009/7/30)では無線LANが動作しません。





免責事項


 本ドキュメントは、実際に作業を進め、動作確認も行った上で公開しておりますが、その内容について、一切保証しないものとします。


万が一、Dev Phone 1 が起動しなくなった場合・故障してしまった場合等、本ドキュメントに記載の手順を実施した結果生じた損害について、弊社ではその責を一切負わないものとします。





1. ブランチソース取得


 弊社ブログ記事 Android のコンパイル環境を整える方法 を参考に環境構築を行います。


ただし、P.71に記載されているソースファイル取得の初期化 repo init を実行する際に以下のコマンドを実行し、ブランチにdonutを指定した上、ソース取得まで行います。


この際、makeはまだ行わないで下さい。



$ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut
$ repo sync


以降の手順では、ビルド環境の構築を以下の構成で行うものとします。






ビルドホーム/home/bs/mydroid


Note: local_manifest.xmlの扱いについて

Building For Dreamでは、実機ビルド用ソースを取得するために、local_manifest.xml を編集の上、/home/mydroid/.repo フォルダに配置する手順が記載されています。


 しかし、本ドキュメントを作成時点(2009/7/30)では、実機ビルド用のソース取得定義がmanifest.xmlに含まれており、実機カーネルを再構築しない限り、local_manifest.xmlを作成・編集する必要はありません。






2. Dev Phone 1からプロプライエタリファイル取得


 Dev Phone 1から、機種固有ドライバ等、ソース公開が行われていない、プロプライエタリなドライバ/ライブラリを取得します。


なお、取得する前に、必ずDev Phone 1のファームウェアを1.5にアップデートしておいてください。



Flashing your Android Dev Phone with a Factory System Image - htc


 http://www.htc.com/www/support/android/adp.html



2.1 Dev Phone 1をUbuntu PCに接続

 Dev Phone 1をPCに接続するため、以下のurlを参考に、Dev Phone 1用のデバイスファイルを作成します。



Developing on a Device - Android Developers


 http://developer.android.com/intl/ja/guide/developing/device.html



を参考に、ルート権限で以下のデバイスファイルを 50-android.rules という名前で作成し、


/etc/udev/rules.d/ に配置します。


ファイル 1: /etc/udev/rules.d/50-android.rules


SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"


上記ファイル作成後、Dev Phone 1を接続します。


以下のコマンドを実行し、Dev Phone 1がPC上で認識している事を確認します。



$ adb devices
List of devices attached
HTxxxxxxxxxx device





2.2 プロプライエタリファイルの取得

 ディレクトリ /home/bs/mydroid/vendor/htc/dream-open/ に存在する、extract-files.sh を実行し、Dev Phone 1 からプロプライエタリファイルの取得を行います・・・が、このまま取得すると、Dev Phone 1に書き込んだ際に音が鳴りません。不足ファイルを取得するために、以下のファイルに対し、追加修正します。


ファイル 2: /home/bs/mydroid/vendor/htc/dream-open/extract-files.sh (追加分のみ)


adb pull /system/lib/libhtc_acoustic.so proprietary/libhtc_acoustic.so


ファイル 3: /home/bs/mydroid/vendor/htc/dream-open/AndroidBoard.mk (追加分のみ)


PRODUCT_COPY_FILES += \
$(proprietary)/libhtc_acoustic.so:system/lib/libhtc_acoustic.so


上記ファイルの追加修正後、以下のコマンドを実行して、プロプライエタリファイルを取得します。



$ cd /home/bs/mydroid/vendor/htc/dream-open
$ ./extract-files.sh





3. ビルド


3.1 ビルド用ファイル buildspec.mk の作成

 以下の内容のファイルを buildspec.mk というファイル名で作成し、ビルドホーム /home/bs/mydroidに配置します。


ファイル 4: /home/bs/mydroid/buildspec.mk


TARGET_PRODUCT:=htc_dream





3.2 ビルド実行

 ビルドホームに移動して、ビルドを行います。



$ cd /home/bs/mydroid
$ make


 ビルドが無事に成功すると、ディレクトリ /home/bs/mydroid/out/target/products/dream-open に、以下のイメージファイルが作成されます。









ブートイメージboot.img
システムイメージsystem.img
リカバリイメージrecovery.img
ユーザーデータuserdata.img




4. Android Dev Phone 1への書き込み


4.1 実機書き込みツール fastboot の準備

4.1.1 Ubuntu PC環境の場合

 Dev Phone 1へ書き込むためのツール fastboot が ディレクトリ /home/mydroid/out/host/linuxx86/


bin/ にあるので、~/bin 等、パスの通ったディレクトリにコピーしておきます。



$ cp /home/bs/mydroid/out/host/linux-x86/bin/fastboot ~/bin





4.1.2 VMware環境(ホストPCがWindows)の場合

Vmware上では、Linux版fastbootが動作しないため、Dev Phone 1のファームウェアダウンロードサイト(以下のurl)にて、Windows版fastboot(fastboot.exe)のダウンロードを行います。



Flashing your Android Dev Phone with a Factory System Image - htc


 http://www.htc.com/www/support/android/adp.html



ダウンロード後、パスの通ったディレクトリにコピーしておきます。





4.2 ビルドイメージの書き込み

ディレクトリ /home/bs/mydroid/out/target/dream-open に生成された各ビルドイメージファイルをfastbootで Dev Phone 1に書き込みます。





4.2.1 Dev Phone 1 をFASTBOOTモードに設定

Dev Phone 1の電源をOFFにした状態で、backキーを押しながら電源ON します。


Serial0 という文字列が表示される事を確認し、USBケーブルでPCに接続します。


その際、FASTBOOT という文字列に変わる事を確認します。





4.2.2 fastbootを使用してビルドイメージを書き込む

以下のコマンドを実行し、Dev Phone 1に書き込みます。



$ fastboot flash recovery recovery.img
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot flash userdata userdata.img





4.2.3 リブート

Dev Phone 1を以下のコマンドでリブートします。



$ fastboot reboot


Dev Phone 1を再起動後、ランチャーから、Setting アプリを起動し、 About phone を選択します。


Firmware version で “Donut” の表示を確認してください。



Note:端末がロックされてしまった場合の対処方法

 Dev Phone 1を起動後、SIMカードを挿入していない場合は、端末がロックされ緊急発呼しか行えない場合があります。この状態を回避し、Menuキーを有効にする方法は以下の通りです。



参考url:


Not able to enter full phone functionality when no SIM - why?


http://groups.google.com/group/android-porting/browse_thread/thread/4f0fdc5c2b1fd9fa



1. adb shell コマンドを実行し、Dev Phone 1上のシェルを起動します。



$ adb shell


2. 以下のコマンドを実行し、/data/local.prop を生成後、リブートを行います。



# echo "keyguard.no_require_sim=1" > /data/local.prop
# sync
# reboot






5. 最後に


 本手順で作成したイメージには、Maps、Gmail、Android Marketが含まれない等、制約が多いですが、実機で動作させつつ、ネイティブフレームワーク部のログ出力等、コアなデバッグを行う上で有用なのではないかと考えています。


また、弊社では、自社製作のAndroid端末を開発していますが、個人レベルでハードウェアまで製作することは非常に困難だと思います。しかし、ソフトウェアレベルであれば、世界に一つだけの端末を作る…等とった事も可能です。





donutブランチをAndroid Dev Phone 1で動作させる方法



Androidの現時点での最新環境であるdonutブランチを、Android Dev Phone 1で実際に動作させる手順を公開します。


PDFファイルも用意しています。


現在のgit環境では、下記urlに掲載されている公式の手順ではビルドが出来なくなっているので、解決方法も合わせて掲載します。


Building For Dream – Android Open Source Project


 http://source.android.com/documentation/building-for-dream





確認環境


 本ドキュメントに記載した手順は、以下の環境で確認しました。








ビルド環境その1Ubuntu Linux 8.04LTS (日本語版) をインストール済みのPC(Pentium M 1.5GHz / MEMORY:1GB )
ビルド環境その2Ubuntu Linux 8.04LTS (日本語版) + VMware(ホストPC:Windows)( Core2Duo 3.0GHz / MEMORY:4GB )
実機Android Dev Phone 1 (Firmware Version 1.5)




制限事項


 本ドキュメントに記載の手順で作成したイメージは、本ドキュメント作成時点(2009/7/30)では無線LANが動作しません。





免責事項


 本ドキュメントは、実際に作業を進め、動作確認も行った上で公開しておりますが、その内容について、一切保証しないものとします。


万が一、Dev Phone 1 が起動しなくなった場合・故障してしまった場合等、本ドキュメントに記載の手順を実施した結果生じた損害について、弊社ではその責を一切負わないものとします。





1. ブランチソース取得


 弊社ブログ記事 Android のコンパイル環境を整える方法 を参考に環境構築を行います。


ただし、P.71に記載されているソースファイル取得の初期化 repo init を実行する際に以下のコマンドを実行し、ブランチにdonutを指定した上、ソース取得まで行います。


この際、makeはまだ行わないで下さい。



$ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut
$ repo sync


以降の手順では、ビルド環境の構築を以下の構成で行うものとします。






ビルドホーム/home/bs/mydroid


Note: local_manifest.xmlの扱いについて

Building For Dreamでは、実機ビルド用ソースを取得するために、local_manifest.xml を編集の上、/home/mydroid/.repo フォルダに配置する手順が記載されています。


 しかし、本ドキュメントを作成時点(2009/7/30)では、実機ビルド用のソース取得定義がmanifest.xmlに含まれており、実機カーネルを再構築しない限り、local_manifest.xmlを作成・編集する必要はありません。






2. Dev Phone 1からプロプライエタリファイル取得


 Dev Phone 1から、機種固有ドライバ等、ソース公開が行われていない、プロプライエタリなドライバ/ライブラリを取得します。


なお、取得する前に、必ずDev Phone 1のファームウェアを1.5にアップデートしておいてください。



Flashing your Android Dev Phone with a Factory System Image - htc


 http://www.htc.com/www/support/android/adp.html



2.1 Dev Phone 1をUbuntu PCに接続

 Dev Phone 1をPCに接続するため、以下のurlを参考に、Dev Phone 1用のデバイスファイルを作成します。



Developing on a Device - Android Developers


 http://developer.android.com/intl/ja/guide/developing/device.html



を参考に、ルート権限で以下のデバイスファイルを 50-android.rules という名前で作成し、


/etc/udev/rules.d/ に配置します。


ファイル 1: /etc/udev/rules.d/50-android.rules


SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"


上記ファイル作成後、Dev Phone 1を接続します。


以下のコマンドを実行し、Dev Phone 1がPC上で認識している事を確認します。



$ adb devices
List of devices attached
HTxxxxxxxxxx device





2.2 プロプライエタリファイルの取得

 ディレクトリ /home/bs/mydroid/vendor/htc/dream-open/ に存在する、extract-files.sh を実行し、Dev Phone 1 からプロプライエタリファイルの取得を行います・・・が、このまま取得すると、Dev Phone 1に書き込んだ際に音が鳴りません。不足ファイルを取得するために、以下のファイルに対し、追加修正します。


ファイル 2: /home/bs/mydroid/vendor/htc/dream-open/extract-files.sh (追加分のみ)


adb pull /system/lib/libhtc_acoustic.so proprietary/libhtc_acoustic.so


ファイル 3: /home/bs/mydroid/vendor/htc/dream-open/AndroidBoard.mk (追加分のみ)


PRODUCT_COPY_FILES += \
$(proprietary)/libhtc_acoustic.so:system/lib/libhtc_acoustic.so


上記ファイルの追加修正後、以下のコマンドを実行して、プロプライエタリファイルを取得します。



$ cd /home/bs/mydroid/vendor/htc/dream-open
$ ./extract-files.sh





3. ビルド


3.1 ビルド用ファイル buildspec.mk の作成

 以下の内容のファイルを buildspec.mk というファイル名で作成し、ビルドホーム /home/bs/mydroidに配置します。


ファイル 4: /home/bs/mydroid/buildspec.mk


TARGET_PRODUCT:=htc_dream





3.2 ビルド実行

 ビルドホームに移動して、ビルドを行います。



$ cd /home/bs/mydroid
$ make


 ビルドが無事に成功すると、ディレクトリ /home/bs/mydroid/out/target/products/dream-open に、以下のイメージファイルが作成されます。









ブートイメージboot.img
システムイメージsystem.img
リカバリイメージrecovery.img
ユーザーデータuserdata.img




4. Android Dev Phone 1への書き込み


4.1 実機書き込みツール fastboot の準備

4.1.1 Ubuntu PC環境の場合

 Dev Phone 1へ書き込むためのツール fastboot が ディレクトリ /home/mydroid/out/host/linuxx86/


bin/ にあるので、~/bin 等、パスの通ったディレクトリにコピーしておきます。



$ cp /home/bs/mydroid/out/host/linux-x86/bin/fastboot ~/bin





4.1.2 VMware環境(ホストPCがWindows)の場合

Vmware上では、Linux版fastbootが動作しないため、Dev Phone 1のファームウェアダウンロードサイト(以下のurl)にて、Windows版fastboot(fastboot.exe)のダウンロードを行います。



Flashing your Android Dev Phone with a Factory System Image - htc


 http://www.htc.com/www/support/android/adp.html



ダウンロード後、パスの通ったディレクトリにコピーしておきます。





4.2 ビルドイメージの書き込み

ディレクトリ /home/bs/mydroid/out/target/dream-open に生成された各ビルドイメージファイルをfastbootで Dev Phone 1に書き込みます。





4.2.1 Dev Phone 1 をFASTBOOTモードに設定

Dev Phone 1の電源をOFFにした状態で、backキーを押しながら電源ON します。


Serial0 という文字列が表示される事を確認し、USBケーブルでPCに接続します。


その際、FASTBOOT という文字列に変わる事を確認します。





4.2.2 fastbootを使用してビルドイメージを書き込む

以下のコマンドを実行し、Dev Phone 1に書き込みます。



$ fastboot flash recovery recovery.img
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot flash userdata userdata.img





4.2.3 リブート

Dev Phone 1を以下のコマンドでリブートします。



$ fastboot reboot


Dev Phone 1を再起動後、ランチャーから、Setting アプリを起動し、 About phone を選択します。


Firmware version で “Donut” の表示を確認してください。



Note:端末がロックされてしまった場合の対処方法

 Dev Phone 1を起動後、SIMカードを挿入していない場合は、端末がロックされ緊急発呼しか行えない場合があります。この状態を回避し、Menuキーを有効にする方法は以下の通りです。



参考url:


Not able to enter full phone functionality when no SIM - why?


http://groups.google.com/group/android-porting/browse_thread/thread/4f0fdc5c2b1fd9fa



1. adb shell コマンドを実行し、Dev Phone 1上のシェルを起動します。



$ adb shell


2. 以下のコマンドを実行し、/data/local.prop を生成後、リブートを行います。



# echo "keyguard.no_require_sim=1" > /data/local.prop
# sync
# reboot






5. 最後に


 本手順で作成したイメージには、Maps、Gmail、Android Marketが含まれない等、制約が多いですが、実機で動作させつつ、ネイティブフレームワーク部のログ出力等、コアなデバッグを行う上で有用なのではないかと考えています。


また、弊社では、自社製作のAndroid端末を開発していますが、個人レベルでハードウェアまで製作することは非常に困難だと思います。しかし、ソフトウェアレベルであれば、世界に一つだけの端末を作る…等とった事も可能です。





Related Posts Plugin for WordPress, Blogger...