2012/10/22
Nexus7 用に Android をビルドしてみた (2)
ダウンロード先は任意に決められますが、今回は ~/android_src というディレクトリにソースコードをダウンロードすることにしました。
また、Building for devices | Android Open Sourceによると、Nexus7 用のブランチは 「android-4.1.1_r4 or master」 と書かれています。
ただ、先日のアップデートで Nexus7 は Android 4.1.2 になってしまいました。
後ほど書きますが、ビルドに必要なバイナリも 4.1.2 用しか提供されていません。
とりあえず、今回は android-4.1.2_r1 を取ってくることにしました。(Nexus7 のデバイスネームは grouper って言うらしい)
2013/2/5 追記
現在の最新ブランチ(タグ)は android-4.2.1_r1.2 です。
Nexus 系はどんどん新しいバージョンが出るので、どのブランチを取って来るべきか悩みます。
基本的には提供されているバイナリ(下記)を見て決定すればよいでしょう。
指定できるブランチ(タグ)名は https://android.googlesource.com/platform/manifest にブラウザなどでアクセスするとわかります
現在の最新ブランチ(タグ)は android-4.2.1_r1.2 です。
Nexus 系はどんどん新しいバージョンが出るので、どのブランチを取って来るべきか悩みます。
基本的には提供されているバイナリ(下記)を見て決定すればよいでしょう。
指定できるブランチ(タグ)名は https://android.googlesource.com/platform/manifest にブラウザなどでアクセスするとわかります
$ mkdir ~/android_src $ cd ~/android_src $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r1 $ repo sync
結構長い時間がかかりますが、ソースコードの取得が終了するまで気長に待ちます。
その間に、Nexus7 の動作に必要なバイナリを取得しておきます。
Building for devices | Android Open Source によると、ICS 以降、オープンソースに出来ないハードウェアドライバのバイナリが必要であるとのこと。
それらを、Google's Nexus driver page からダウンロードしておく必要があるそうです。
ちなみに、2012/12/22 現在のスクリーンショットは以下です。
既に 4.1.2 のものしか提供されていませんので、これらをダウンロードしてきます。
ダウンロードしたファイルをソースツリーのルートに置きます。
今回は ~/android_src です。
tar ball を展開すると、シェルスクリプトが作成されますので、それらを実行します。
$ ls *.tgz broadcom-grouper-jzo54k-26240daf.tgz nvidia-grouper-jzo54k-56de148f.tgz elan-grouper-jzo54k-c889b8f4.tgz nxp-grouper-jzo54k-4bfb1fb6.tgz invensense-grouper-jzo54k-aae1cd0c.tgz widevine-grouper-jzo54k-aca0e725.tgz $ for i in *.tgz > do > tar zxf $i > done $ for i in *.sh > do > ./${i} > done
この時、各スクリプトを実行すると、ライセンスに同意するよう求められます。
同意するには、Y や Yes ではなく、I ACCEPT と書かなければいけません。
全てうまく行くと、vendor というディレクトリに必要なファイルが展開されます。
過去のビルドがあって、バイナリを新規に追加した場合は、以下のコマンドを実行して残骸を消しておく必要があるようです。
$ make clobber
うまく行ったら、もとのファイルは削除してしまってかまいません。
rm *.tgz *.sh
穀風: Nexus7 用に Android をビルドしてみた (3)
0 件のコメント:
コメントを投稿