Ubuntu 10.04.3 LTSでAndroidのOSをビルド

AndroidのOSをビルドをしてみた。

マシンが余ったので、Ubuntu 10.04.3LTS(2.6.32-35-generic)をインストールしてAndroidのOSをビルドしてみた。
chromeOSのビルドをしたときもそうですが、yum、aptで育ったのでmakeは苦手です。
androidOSのビルドもrepoやgitは見よう見まねなところがあります。

Androidをビルドするマシンを準備

Android4.0のビルドは16GBのメモリを必要とか噂が出てますが、android2系と3系をとりあえずビルドして
エミュレータで動かしてみたいのが目的なので、PenDのメモリ2GマシンにUbuntu 10.04.3 LTSをUNetbootinを使ってUSBからインストールします。
GUIでは特に設定はせず、後でまとめてapt-getします。

AndroidOSビルドに必要なパッケージのインストール

何度もビルド中にエラーとなり調べると、-m32オプションがあるので、32bitライブラリも必要とのこと。
後になって足りなくなったりしたので、Androidビルドに必要なパッケージは重複してるかもしれません。

sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
sudo apt-get install libreadline5-dev
sudo apt-get install lib32z1-dev lib32ncurses5-dev
sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse"
sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy-updates multiverse"
sudo apt-get update
sudo apt-get install sun-java5-jdk
sudo apt-get install sun-java6-jdk

gitやrepoの設定

何度もビルド中にエラーとなり調べると、-m32オプションがあるので、32bitライブラリも必要とのこと。
後になって足りなくなったりしたので、Androidビルドに必要なパッケージは重複してるかもしれません。

mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo

bashrcへ忘れずに書き込む

export PATH=$PATH:~/bin

ava-1.5.0-sunでエラーが連発していたのでjava-6-sunへ切り替えました。

sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
  Selection    Path                                      優        Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-sun/jre/bin/java       63        auto mode
  1            /usr/lib/jvm/java-1.5.0-sun/jre/bin/java   53        manual mode
* 2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

bashrcにも書いておきます。

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH

メールアドレスとユーザ名を入力します。(何でも良い)

git config --global user.email "root@doroidpanic.com"
git config --global user.name "doroidpanic.com"

Androidのソースを取得

Androidのソースを取得
repo initは時間もあるので、バージョン指定のタグをつけずに行ないます。

doroidpanic@localhost:~/doroidpanic$mkdir doroidpanic
doroidpanic@localhost:~/doroidpanic$cd doroidpanic
doroidpanic@localhost:~/doroidpanic$repo init -u https://android.googlesource.com/platform/manifest
doroidpanic@localhost:~/doroidpanic$repo sync -j4
remote: Counting objects: 15, done
remote: Finding sources: 100% (13/13)
remote: Getting sizes: 120% (6/5)
remote: Compressing objects: 100% (3/3)
remote: Total 13 (delta 2), reused 13 (delta 2)
Unpacking objects: 100% (13/13), done.
From https://android.googlesource.com/platform/prebuilt
 * [new branch]      eclair-passion-release -> aosp/eclair-passion-release
 * [new branch]      eclair-release -> aosp/eclair-release
 * [new branch]      eclair-sholes-release -> aosp/eclair-sholes-release


doroidpanic@localhost:~/doroidpanic$source build/envsetup.sh
including device/htc/passion/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
including device/samsung/crespo4g/vendorsetup.sh
including sdk/bash_completion/adb.bash

doroidpanic@localhost:~/doroidpanic$  lunch generic-eng
============================================
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=3.1.4.1.5.9.2.6.5
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
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=OPENMASTER
============================================

指定してrepo initする人はこんな感じです。

repo init -u https://android.googlesource.com/platform/manifest -b android-2.3_r1

また、なんどか試していると「期待してない token `newline’ のあたりにシンタックスエラー」と表示されたので、潔くrepoを削除して、やり直しました。
initするときに表示されたので、タグはこれらがあるみたいです。

 * [new branch]      android-1.6_r1 -> origin/android-1.6_r1
 * [new branch]      android-1.6_r1.1 -> origin/android-1.6_r1.1
 * [new branch]      android-1.6_r1.2 -> origin/android-1.6_r1.2
 * [new branch]      android-1.6_r1.3 -> origin/android-1.6_r1.3
 * [new branch]      android-1.6_r1.4 -> origin/android-1.6_r1.4
 * [new branch]      android-1.6_r1.5 -> origin/android-1.6_r1.5
 * [new branch]      android-1.6_r2 -> origin/android-1.6_r2
 * [new branch]      android-2.0.1_r1 -> origin/android-2.0.1_r1
 * [new branch]      android-2.0_r1 -> origin/android-2.0_r1
 * [new branch]      android-2.1_r1 -> origin/android-2.1_r1
 * [new branch]      android-2.1_r2 -> origin/android-2.1_r2
 * [new branch]      android-2.1_r2.1p -> origin/android-2.1_r2.1p
 * [new branch]      android-2.1_r2.1p2 -> origin/android-2.1_r2.1p2
 * [new branch]      android-2.1_r2.1s -> origin/android-2.1_r2.1s
 * [new branch]      android-2.2.1_r1 -> origin/android-2.2.1_r1
 * [new branch]      android-2.2.1_r2 -> origin/android-2.2.1_r2
 * [new branch]      android-2.2.2_r1 -> origin/android-2.2.2_r1
 * [new branch]      android-2.2_r1 -> origin/android-2.2_r1
 * [new branch]      android-2.2_r1.1 -> origin/android-2.2_r1.1
 * [new branch]      android-2.2_r1.2 -> origin/android-2.2_r1.2
 * [new branch]      android-2.2_r1.3 -> origin/android-2.2_r1.3
 * [new branch]      android-2.3.1_r1 -> origin/android-2.3.1_r1
 * [new branch]      android-2.3.2_r1 -> origin/android-2.3.2_r1
 * [new branch]      android-2.3.3_r1 -> origin/android-2.3.3_r1
 * [new branch]      android-2.3.3_r1.1 -> origin/android-2.3.3_r1.1
 * [new branch]      android-2.3.4_r0.9 -> origin/android-2.3.4_r0.9
 * [new branch]      android-2.3.4_r1 -> origin/android-2.3.4_r1
 * [new branch]      android-2.3.5_r1 -> origin/android-2.3.5_r1
 * [new branch]      android-2.3.6_r0.9 -> origin/android-2.3.6_r0.9
 * [new branch]      android-2.3.6_r1 -> origin/android-2.3.6_r1
 * [new branch]      android-2.3.7_r1 -> origin/android-2.3.7_r1
 * [new branch]      android-2.3_r1 -> origin/android-2.3_r1

AndroidOSをビルド

Androidのビルドを開始してみる。
仮想CPUを入れれば4スレッドなので、j4のオプションを付けてみる。

make -j4

まだまだ終わりません、オプション-j4は利いてそうですがPenDの2Gでは荷が重いようです。
そろそろVAIO TypeZをデュアルブートでubuntuインストールしておこうかな。。

16519 doroidpanic  20   0  271m  11m 5848 R 13.8  0.6   0:00.42 cc1          
16553 doroidpanic  20   0  270m 9660 5456 R  4.9  0.5   0:00.15 cc1          
16555 doroidpanic  20   0  270m 9372 5384 R  4.6  0.5   0:00.14 cc1          
11478 doroidpanic  20   0  156m 148m  988 S  2.0  7.4   0:41.91 make         
16564 doroidpanic  20   0  269m 5500 2848 R  1.6  0.3   0:00.05 cc1          
    4 root      20   0     0    0    0 S  0.3  0.0   0:01.98 ksoftirqd/0     
13505 root      20   0 19224 1376 1028 R  0.3  0.1   0:06.32 top             
16516 doroidpanic  20   0  1952  608  520 S  0.3  0.0   0:00.01 arm-eabi-gcc 
16551 doroidpanic  20   0  1952  608  520 S  0.3  0.0   0:00.01 arm-eabi-gcc 
16554 doroidpanic  20   0  1952  608  520 S  0.3  0.0   0:00.01 arm-eabi-gcc 
16563 doroidpanic  20   0  1952  608  520 S  0.3  0.0   0:00.01 arm-eabi-gcc 
New Posts
Android APIよく忘れるのでメモ

Android 1.0 1 Base Android 1.1 2 Base1.1 Android 1.5 3 Cupcake Android 1.6 4 Donut Android 2.0 5 Eclair Android 2.0.1 6 Eclair 0.1 Android 2.1.x 7 Eclair mr1 Android 2.2.x 8 Froyo Android 2.3 9 Gingerbread Android 2.3.1 Android 2.3.2 Android 2.3.3 10 Gingerbread mr1 Android 2.3.4 Andr

Android minSdkVersion の引き上げ

昔のアプリを久しぶりに修正しようと思ったら、minSdkVersionを引き上げる必要があった。 Error:Execution failed for task ':flatalk:processDebugManifest'. > Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 14 declared in library [com.android.support:appcompat-v7:26.0.0-alpha1] /Users/admin/.android/build-cache/df7faf3c442bb6a7448aef64241ef184a528/output/An

Cordova Android Runtime Permission Plugin - cordova-plugin-android-permissionsでパーミッション要求が行われない。 requestPermission is not work

cordova-plugin-android-permissions permissions.requestPermission(successCallback, errorCallback, permission); ステップ実行で確認すると、hasPermissionではstatus.hasPermissioがFALSEになっているのですが 、デバック実行しても、パーミション要求が動かないことがありました。 原因はpluginの入れ替えで、要求するパーミンションがAndroidManifest.xmlから消えていたのが原因でした、Manifestに無いパーミッションはリクエストしても要求画面は開きません。 cordova-plugin-cameraを入れ直した際に、Manif

Youtube API - ユーチューブのカテゴリを取得する( VideoCategories: list)

GET https://www.googleapis.com/youtube/v3/videoCategories partのみ必須になっていたけど、regionCodeも必要だった。。今回はJPを指定。 参照:https://developers.google.com/youtube/v3/docs/videoCategories/list#try-it { "kind": "youtube#videoCategoryListResponse", "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/siiWQ_WM0OtxtxK7NUUJKFwqDRc\"", "items": [ { "kind": "youtube#videoC

Cordova Plugin作成 ( plugin.xml記載ミスでassets全部消えた。。)

<resource-file src="res/assets/cordova-plugin-4assets.js" target="assets" /> target-dirとtargetを記載ミスしてました。 正しくは、 <resource-file src="res/assets/cordova-plugin-4assets.js" target="assets/cordova-plugin-4assets.js" /> <resource-file src="res/assets/cordova-plugin-4assets.js" target-dir="assets/" /> プラグイン削除時にtargetも消されるので、assetsご


Share Link

Web Contents & Apps


Tags


Posts


Category