開発環境概要

OS、、クロスコンパイル環境、Androidのソースコード、boot.img の作成、、c Native プログラム等の開発環境。
一応、上から下に作業可能な順にしようと思う。
現状、日記状態。
具体的な修正箇所(パッチ)は修正(パッチ)を参照。

開発環境のOS(私の場合)

WindowsXP 上に VMware Player を導入し、WMware Player に Ubuntu をインストール
ゲスト用バーチャルマシン設定:CPU 4コア、mem 2GB、HDD raw接続、USB高速有効
Ubuntu 10.04 LTS (x64版)
vmware tool インストール

クロスコンパイル環境

面倒なときは、Android NDK をダウンロードして、gcc の部分を使用。
boot.img を作成する場合、面倒なのだが mkbootimage をコンパイルしないといけないので、
Androidのソースコードも必要になってくる。

Android 2.2 ソースコードの入手

repo の導入は他のサイトに譲るとして、
Android 2.2_r1.3 は下記のように入手。
$repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2_r1.3
$repo sync

Linux で adb や ddms を利用するには?

重要な事を忘れていました。
Linux で adb や ddms を利用するには次の設定が必要です
/etc/udev/rules.d/51-android.rules
に下記のように書いています。
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"

以下、別ページにまとめ中

一応、make する。

boot.img 作成の為だけに使用するなら、
mkbootimg.c の変更だけでよい。
IS01向けにコンパイルするなら、共有ライブラリのアドレスを修正しなければならない。
修正(パッチ)←詳細ページ

boot.img の作成

unubinze した後、splitしてカーネルとcpioファイルに分割。
出てきた、cpioファイルを展開して ramdisk ディレクトリを得る。
boot.img の作成←詳細ページ

c Nativeプログラムの作成

結構コツが必要。
特に、linker とか。
 hello world 出すだけで、12時間くらい試行錯誤…。。。

Android 2.2_r1.3の bin と lib を動かす

とりあえず、完了。
以下、ヒント。
JN-DK01
# 0x80000000 - 0xFFFFFFFF Kernel
# 0x70100000 - 0x7FFFFFFF Thread 0 Stack
# 0x70000000 - 0x700FFFFF Linker
# 0x60000000 - 0x6FFFFFFF Prelinked System Libraries
# 0x50000000 - 0x5FFFFFFF Prelinked App Libraries
# 0x40000000 - 0x4FFFFFFF Non-prelinked Libraries
# 0x2AAAAAAA - 0x3FFFFFFF mmap'd stuff
# 0x10000000 - 0x2AAAAAA9 Thread Stacks
# 0x00000000 - 0x0FFFFFFF .text / .data / heap
詳細は修正(パッチ)参照。

Andoroid 2.2_r1.3 を動かす!

とりあえず、運が良ければ起動する。

コメント、突っ込み、間違い指摘、要望など有りましたら下記までどうぞ。
名前:
コメント:






















最終更新:2011年01月27日 19:09
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。