Android4.0(Ice Cream Sandwich)のソースビルドまとめ | スマホ新機種情報やサービス・アプリの最新ニュース配信 | スマホ情報は≪アンドロック≫

Android4.0(Ice Cream Sandwich)のソースビルドまとめ

Android4.0(Ice Cream Sandwich)のソースが公開

Android4.0(Ice Cream Sandwich)のビルドまとめ

Android4.0のSource Code(ソースコード)が公開されました。

前回の記事「Android4.0(Ice Cream Sandwich)まとめ」で紹介したように
Android4.0はタブレットの3.X系と携帯プラットフォームの2.X系の統合がされるとのことで、開発者からも大きな関心がよせられていました。

NFCによるAndroid Beamや顔認証(FACE UNLOCK)など様々な新機能があり
Android4.0は日本でもNTT DOCOMOから「GALAXY NEXUS SC-04D」が発表され、登場が期待されているOSです。


エミュレーターでのAndroid4.0レビューは前回行なっているので、今回はソースからAndroid4.0をビルドしてみよう。
Android4.0のビルドはUbuntuで行い、ビルドに必要なパッケージなどもまとめていくので、チェックしてくれ!



Android4.0(Ice Cream Sandwich)のビルド環境構築

AndroidOSをビルドするマシン

今回はUbuntu 10.04.3 LTSを使ってAndroidOSのビルドを行なう。 情報ではAndroid4.0のビルドはメモリー16GB必要との事だったが、Core2DuoE6600のメモリー4Gでどこまでいけるか?試してみよう。
ちなみに、今回ビルドするマシンではAndroidバージョン3.1.4のビルドは時間が掛かったが成功した実績がある。

Ubuntuのインストール

AndroidのビルドはUbuntuの64bitバージョンで行なう。
PCを準備するのが難しい人は、Wubiを使ったり、上級者は自分でブートローダーを設定してUbuntuを準備しよう。
※デュアルブートは設定を間違えるとデータが消えてしまったり、危ない面もあるのでしっかり調べて自己責任で行なうか、別PCで安全にUbuntu環境を用意しましょう。
Ubuntuの64bitバージョンはDownload Ubuntuからダウンロードすることが出来る。
現状、Ubuntu Japanese Teamから提供されているのは32bitのみなので、注意しよう。

Ubuntuへ必要なパッケージのインストール

Ubuntuをインストールしたのち追加したパッケージがいくつかある。 また、OpenJDKではなくSunのパッケージが必要となるので、すでにJava環境が整っている人は注意が必要だ。

まずは、レポジトリーを追加してJDKのインストールを行なう。

sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo add-apt-repository "deb http://archive.canonical.com/ lucid-updates partner"
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
sudo apt-get update
sudo apt-get install sun-java6-jdk
sudo apt-get install sun-java5-jdk

次にまとめて必要なパッケージをインストールしよう。
「lib32readline5-dev」がこちらの環境では見つからなかったので「lib32readline-gplv2-dev」を追加している。

 
sudo apt-get install  git-core gnupg flex bison gperf  \
build-essential zip  curl zlib1g-dev  libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev  libx11-dev lib32readline5-dev lib32readline-gplv2-dev \
lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos \
ython-markdown libxml2-utils


Android4.0(Ice Cream Sandwich)のビルド準備(repo、git、sync)

Android4.0(Ice Cream Sandwich)のビルドまとめ

AndroidOSのソースコードの取得方法はGitというバージョン管理システムからコピーしてくる仕組みになっている。

今回はAndroid4.0のソースコードを指定するが、タグとよばれるバージョンを示す部分を変更すれば、2.Xなどのソースも取得可能だ。
ココからの手順はネット環境やPCのスペックによってはかなり時間が掛かるので、注意が必要だ。

また、repoとGitはChromeOSのビルドでも同じように使われているので、興味があるひとは試してみよう。

repoコマンドのインストール

まずは、repoとよばれるGoogleが提供しているツールを設定する。
repoコマンドはいくつかのGitレポジトリをまとめて管理してくれるので、AndroidやChromeのソース管理では活用されているツールだ。
インストール先はホームディレクトリにbinディレクトリを作成し、curlコマンドでGoogleのサーバから取得し、実行権限を追加する。 また、その際に作成したbinにパスを通すことを忘れないようにしよう、bashrcに追記してもOKだ。

mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
---------出力----------------------------------------------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 19731  100 19731    0     0    668      0  0:00:29  0:00:29 --:--:--  4727
---------出力----------------------------------------------------
chmod a+x ~/bin/repo
gitの設定

AndroidOSのソースをrepoから取得する際にメールアドレスと名前を聞かれる。 あらかじめ設定しておけば、その都度入力する手間が省けるのでgitの設定コマンドで設定を行なう。

git config --global user.email "androckjp@gmail.com"
git config --global user.name "AndRock"
Android4.0のソース取得(init、sync)

repoコマンドの設定は完了したので、ついにAndroid4.0のソースを取得する。
作業用のディレクトリを作成し、repo initしよう。
repoコマンドでオプションに「-b android-4.0.1_r1」とあるが、これはブランチが「android-4.0.1_r1」のソースを指定した場合なので 他のバージョンが欲しい場合は、それに対応したタグを指定しよう。

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
---------出力----------------------------------------------------
Get https://android.googlesource.com/tools/repo
remote: Counting objects: 1414, done
remote: Finding sources: 100% (78/78)
remote: Total 1414 (delta 917), reused 1414 (delta 917)
Receiving objects: 100% (1414/1414), 429.88 KiB, done.
Resolving deltas: 100% (917/917), done.
From https://android.googlesource.com/tools/repo
 * [new branch]      maint      -> origin/maint
 * [new branch]      master     -> origin/master
 * [new branch]      stable     -> origin/stable
 * [new tag]         v1.0       -> v1.0
 * [new tag]         v1.0.1     -> v1.0.1
 * [new tag]         v1.0.2     -> v1.0.2
続く・・・・・
Your Name  [AndRock.jp]: 
Your Email [androckjp@gmail.com]: 

Your identity is: AndRock.jp 
is this correct [y/n]? y

repo initialized in /home/androckjp/WORKING_DIRECTORY
androckjp@test:~/WORKING_DIRECTORY$ 
---------出力----------------------------------------------------

initの最後にNameとEmailを確認されるので、入力してy応答すれば、完了
次に、ソースのsyncを行なう。 今回のマシンはCore2なのでjオプションで4を指定して時間短縮を狙います。 同時に実行するスレッド数なので、ビルドするマシンのCPU×2倍ほどを設定すると効果があります。

 
repo sync -j4
---------出力----------------------------------------------------
 * [new tag]         android-2.2_r1.1 -> android-2.2_r1.1
 * [new tag]         android-2.2_r1.2 -> android-2.2_r1.2
 * [new tag]         android-2.2_r1.3 -> android-2.2_r1.3
 * [new tag]         android-2.3.5_r1 -> android-2.3.5_r1
 * [new tag]         android-2.3.6_r0.9 -> android-2.3.6_r0.9
 * [new tag]         android-2.3.6_r1 -> android-2.3.6_r1
 * [new tag]         android-2.3.7_r1 -> android-2.3.7_r1
 * [new tag]         android-4.0.1_r1 -> android-4.0.1_r1
remote: Counting objects: 7, done
続く・・・・・
---------出力----------------------------------------------------

下記の様にsyncが完了したら、Android4.0のソース取得は完了だ。

---------出力----------------------------------------------------
 * [new tag]         android-2.3_r1 -> android-2.3_r1
Fetching projects: 100% (221/221), done.  
Checking out files: 100% (13480/13480), done. files:  42% (5668/13480)   
Checking out files: 100% (4876/4876), done.out files:  35% (1750/4876)   
Checking out files: 100% (24598/24598), done.ut files:  40% (9947/24598)   
Checking out files: 100% (18692/18692), done.ut files:   0% (2/18692)   
Checking out files: 100% (184/184), done.ng out files:   3% (7/184)   
Checking out files: 100% (23382/23382), done.ut files:   0% (19/23382)   
Syncing work tree: 100% (221/221), done.  
---------出力----------------------------------------------------


Android4.0(Ice Cream Sandwich)のビルド

Android4.0(Ice Cream Sandwich)のビルドまとめ

ココからは実際にAndroidOSのビルドを行なう。
makeコマンドの実行前に取得した中にある「envsetup.sh」を実行し、ビルドのターゲットを指定する。
今回ビルドしたOSはエミュレーターで実行させるので、ビルド名はfullでビルドタイプは開発タイプのengを設定した。
ブートローダーを解除した端末や、テストボードなどを持っている人は自分の環境に合わせてビルドタイプを変更しよう。

筆者はXperia Playのブートローダーを解除したので、fastbootで書き込めないか今後試す予定だ。

「envsetup.sh」の実行と「lunch」の設定

作業用ディレクトリで「envsetup.sh」の実行と「lunch」の設定を行なう。

source build/envsetup.sh
---------出力----------------------------------------------------
including device/samsung/maguro/vendorsetup.sh
including device/samsung/tuna/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including sdk/bash_completion/adb.bash
---------出力----------------------------------------------------
lunch generic-eng
---------出力----------------------------------------------------
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ITL41D
============================================
---------出力----------------------------------------------------
Android4.0のMake実行

ココまで設定が完了すれば、ついにMakeをおこなう。 Android4.0のビルドは時間がかかりそうなので、jオプションはもちろん、ログを取得するようにした。

make -j4 2>&1 | tee android4_make.log
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ITL41D
============================================
Checking build tools versions...
続く・・・・・
---------出力----------------------------------------------------

14時:Make実行開始
15時:実行中・・・
15時40分:「target thumb C++: libv8 <= external/v8/src/arm/debug-arm.c」javascriptエンジンのあたりか?
16時:ビルド完了

Install: out/target/product/generic/system/app/Phone.odex
Install: out/target/product/generic/system/app/Phone.apk
 'out/target/common/obj/APPS/Settings_intermediates//classes.dex' as 'classes.dex'...
Processing target/product/generic/obj/APPS/Settings_intermediates/package.apk
Done!
Install: out/target/product/generic/system/app/Settings.odex
Install: out/target/product/generic/system/app/Settings.apk
Finding NOTICE files: out/target/product/generic/obj/NOTICE_FILES/hash-timestamp
Combining NOTICE files: out/target/product/generic/obj/NOTICE.html
Installed file list: out/target/product/generic/installed-files.txt
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/generic/system.img

2時間ほどかけて、Android4.0のビルドが成功したので、次はAVD Managerを使って、作成したIMGから起動してみよう。

ビルドしたAndroid4.0(Ice Cream Sandwich)を起動

Android4.0(Ice Cream Sandwich)のビルドまとめAVD編

Android4.0のOSビルドに成功したので、AVD Managerで起動させてみよう。
AVD ManagerはAndroid SDKに同梱されているツールで、エミュレータの作成や編集を行うツールだ。
ビルドしたAndroidOSは実機に書き込むか、エミュレータで起動させてテストすることができる。
AVDでAndroid4.0のエミュレーターを作成し、その設定をもとに作成したIMGを入れ替えて起動させよう。

AVDでのエミュレータ起動は今回はWindows7で解説するのが、エミュレーターの設定はAVDなら基本的に同じなのでディレクトリなどは自分の環境に読み替えてくれ。

AVD ManagerでAndroid4.0を作成

まずはビルドしたOSを起動させるための設定ファイルを作成する。
今回はAndroid4.0をビルドしたので、AVD ManagerでAVD純正の4.0を作成する。

Windowsであれば、AndroirSDKのフォルダにAVD Manager.exeがあるのでそれを起動させよう。
Linuxであれば、AndroirSDKのtoolsに「android」があるので、それを起動してメニューバーから「AVD Manager」を選択しよう。

AndroirSDKのAVD Managerを起動させたら、「New」を選択して新規の仮想Androidを作成する。
「Name」にわかりやすい名前をつけて、「Target」は「Android 4.0 - API Level 14」を選択し「SD Card」は任意で設定しよう、今回は512MiBを割り当てた。
「Snapshot」は今回利用しないのでチェックをつけずに、「Skin」は「Default(WVGA800)」を選択した。
最後に「Create AVD」をクリックすると、ポップアップで作成した仮想Androidの情報が表示され
「OK」をクリックすると、AVDマネージャーの仮想マシン一覧に作成したAndroid4.0の仮想マシンが追加される。

次に作成したAndroid4.0の仮想マシンを選択して、右メニューの「Details...」を選択する。
ポップアップが開き、仮想マシンの情報が表示されるので、仮想マシンが保存されているディレクトリ「Path」を確認し該当のディレクトリへ移動しよう。

Android4.0(Ice Cream Sandwich)のビルドまとめAVD編

仮想マシンのディレクトリには「config.ini」というテキストファイルが保存されているので、テキストエディターで開き、「image.sysdir.1」の項目をチェックしよう。

「image.sysdir.1」はシステムイメージが置いてあるディレクトリで筆者の環境では「system-images\android-14\armeabi-v7a\」となっていた。
これは「AndroidSDK」のインストールディレクトリからのパスなので筆者の場合はこうなる「C:\Program Files\android-sdk-windows\system-images\android-14\armeabi-v7a」

今回は必要なファイルは「system-images\android-14\armeabi-v7a\」からコピーして、ビルドしたAndroid4.0のイメージを別のディレクトリに配置して、「config.ini」を書き換えることでAndroid4.0をエミュレータから起動する。

設定ファイルをコピーしてビルドしたOSを起動

まず、「armeabi-v7a」と同じディレクトリにフォルダを作成して「AndRock4.0」と名前をつける。
次に「AndRock4.0」へUbuntuから「system.img」、「userdata.img」、「ramdisk.img」を「AndRock4.0」へコピーする。

/home/ユーザ名/WORKING_DIRECTORY/out/target/product/generic/system.img
/home/ユーザ名/WORKING_DIRECTORY/out/target/product/generic/userdata.img
/home/ユーザ名/WORKING_DIRECTORY/out/target/product/generic/ramdisk.img
↓ コピー
C:\Program Files\AndroidSDKのインストールディレクトリ\system-images\android-14\AndRock4.0

次に「armeabi-v7a」から必要なファイルを「AndRock4.0」へコピーする。

C:\Program Files\AndroidSDKのインストールディレクトリ\system-images\android-14\armeabi-v7a\build.prop
C:\Program Files\AndroidSDKのインストールディレクトリ\system-images\android-14\armeabi-v7a\kernel-qemu
C:\Program Files\AndroidSDKのインストールディレクトリ\system-images\android-14\armeabi-v7a\source.properties
↓ コピー
C:\Program Files\AndroidSDKのインストールディレクトリ\system-images\android-14\AndRock4.0

最後に「config.ini」の「image.sysdir.1」を「system-images\android-14\androck\」へ変更して完了。

image.sysdir.1=system-images\android-14\armeabi-v7a\
↓ 変更
image.sysdir.1=system-images\android-14\androck\
Android4.0(Ice Cream Sandwich)のビルドまとめAVD編

AVD Managerに戻り、作成したAndroid4.0のエミュレーターを「Start...」させれば起動する。

Android4.0(Ice Cream Sandwich)のビルドまとめAVD編

「About phone」から確認すると「Android version」は4.0.1で、BuildNumberにユーザ名が入っている。

Android4.0(Ice Cream Sandwich)のビルドまとめAVD編

Android4.0対応予定のスマートフォン

国内端末では下記のモデルがAndroid4.0(Ice Cream Sandwich)への対応を予定している。


AndRock関連リンク



この記事を共有する

  • このエントリーをはてなブックマークに追加

スマホ情報のAndRockを共有する



follow us in feedly


アンドロイド携帯向けアプリの人気ランキングページです。ビジネスに、遊びに、とてもお役立ちのアンドロイドアプリが勢ぞろい。どのアプリも人気のある「10個」です。厳選されたラインナップ。もしかしたらあなたの携帯ライフを劇的に変えるアプリも現れるかもしれません!日々変わるこのアプリのランキング動向を、ぜひチェックしてください。




人気・定番のアンドロイドアプリレビュー

FINAL FANTASY BRAVE EXVIUS

FINAL FANTASY BRAVE EXVIUS

FFエクスヴィウスしようよ!

Omiai-フェイスブックで出会い-

Omiai-フェイスブックで出会い-

累計300万カップル誕生!最高の恋人探しアプリ

Cytus

Cytus

台湾が生んだ新感覚音ゲーを体感せよ!




スマートフォン、アンドロイド、アプリの使い方を解説

LINE アプリの使い方 完全マニュアル(Android,iPhone)

6000万ダウンロードを突破した無料通話・チャットが使える神アプリLINEの使い方のまとめ


Viberの使い方、設定まとめ (Android , iPhone)

無料通話のできるViberの使い方から、初期設定、日本語化などなどのまとめ


Skypeの使い方、設定(Android , iPhone)

無料通話・無料チャットの定番Skypeの使い方まとめ


無料・おトク電話アプリ「050 plus」のまとめ

スマートフォンで月額を抑えたい人におススメのアプリ!「050 plus」の使い方を解説




キングダムセブンフラッグス攻略情報
ONE PIECE トレジャークルーズ攻略情報
ドラゴンボールZドッカンバトル攻略情報
VR情報総合メディアVRinfo
LINE アプリの使い方 完全マニュアル(Android,iPhone)

アプリ人気ランキング

Androidアプリ
iPhone/iOSアプリ

1
Battery Mix (バッテリーミックス) Battery Mix (バッテリーミックス)

バッテリーの使用状況を分かりやすくグラフで表示

カテゴリ: バッテリー管理

2
Cerberus(サーベラス) Cerberus(サーベラス)

世界最強の盗難防止用セキュリティーアプリ

カテゴリ: セキュリティ

4
ファイルマネージャ ファイルマネージャ

使いやすい国産フォルダ管理アプリ

カテゴリ: システム全般

5
ディズニーきせかえ ディズニーきせかえ

あなたのアンドロイドをディズニー一色に

カテゴリ: ホーム


▼アンドロイドアプリのランキング

LINEで絶対使いたいLINEスタンプ検索
ポケモンGO攻略情報
FINAL FANTASY BRAVE EXVIUS攻略情報
AppLink(アプリンク)

新着スマホ情報


▼アプリ・記事の新着一覧へ

LINEで使えるオススメのスタンプアプリ まとめ20選

アンドロック人気記事


スマホアプリ カテゴリ一覧

スマートフォンサイト
QR-code AndRock(アンドロック)は、スマートフォンでもご利用いただけます。 QRコードスキャナーで読み取ってご利用ください。
Follow Us