ubuntu 14.04安装 android 4.4编译环境
来源:互联网 发布:信捷触摸屏编程实例 编辑:程序博客网 时间:2024/06/10 00:41
基于Ubuntu 14.04 LTS编译Android4.4.2源代码 Dennis Hu 2014-4-21环境准备:基本环境:ubuntu14.04 64bit LTS(裸机或者Windows下虚拟机安装均可,12.04也可以,但10.04目前不支持了)其他要求:空闲磁盘空间100G以上,代码部分接近10G,其他为git和编译中间和目标文件准备
==========================================第一部分:环境初始化==========================================1. 安装Oracle JDK注意:如果编译Android4.4不能用OpenJDK,必须用Oracle JDK1.6,1.7目前是不支持的。具体如何安装Oracle JDK,请参见我的另一篇单独的文章,[Ubuntu Linux下安装Oracle JDK] http://blog.csdn.net/gobitan/article/details/24322561.2. 安装必备工具软件注意:这里与官方的有个包不同,官方的包会报错.3. 配置USB访问权限将如下内容加入到/etc/udev/rules.d/51-android.rules文件中4. 配置ccache安装ccache并将export USE_CCACHE=1加入到~/.bashrc中。
==========================================第二部分:源代码下载==========================================1. 安装repo(1) 创建目录(2) 下载repo工具注:由于防火墙的原因,官方提供的链接无法使用,需替换为如下:官方的为curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo可用的:(3) 增加可执行权限2. 初始化Repo客户端(1)创建目录
(2) 初始化repo注:后面可能出现网络错误,请先将如下内容加入到/etc/hosts中然后做后面的步骤。至于为什么要出现网络错误,你懂的!注意:如果是在虚拟机中执行,需要采用email验证的方式,详细参见参考资料[2].设置git的用户名和邮件地址,将您的真实email地址和name替换了:修改aosp/.resp/manifest.xml,将fetch=".."改为:fetch="https://android.googlesource.com/"
3. 下载源代码注意:系统可能会提示你升级repo,最好不要升级,除非你有十足信息解决升级后的一系列问题。
好了,慢慢等吧,短则数小时,长则几天几夜!我花了5个小时
==========================================第三部分:源代码编译 ==========================================1. 设置ccache注:aosp为源代码根目录2. 设置输出目录略:由于我未分区,因此采用默认的out目录3. 初始化编译环境4. 选择编译目标包注:目标包的选择跟你的硬件有关。我这里选择9,mako注:j4中的数字跟你的CPU个数和核数有关,详细参见参考资料[3].整个编译过程,大约花了三个小时。编译成功后会在out目录下生成img文件。
5. 将img加载到物理机(1) 将手机用USB数据线连接到机器(2) 安装fastboot工具(3) 设置ANDROID_PRODUCT_OUT环境变量将如下部分加入~/.bashrc文件中:
然后保存执行". .bashrc"使其生效。(4) 以fastboot模式重启手机此时手机会重启,呈现一个与往不同的fastboot界面
(5) 将编译的img刷到目标机(注:由于我的物理机三星I9250在lunch里没有对应的型号,因此会加载失败,这里这是记录过程)===================================如果需要编译其他版本,可执行如下步骤,这里选择虚拟机用的通用版本aosp_arm-eng。编译完成,如果再次装载,需要修改ANDROID_PRODUCT_OUT环境变量,这里不多述。
转载请注明出处: http://blog.csdn.net/gobitan/article/details/24367439
==========================================第一部分:环境初始化==========================================1. 安装Oracle JDK注意:如果编译Android4.4不能用OpenJDK,必须用Oracle JDK1.6,1.7目前是不支持的。具体如何安装Oracle JDK,请参见我的另一篇单独的文章,[Ubuntu Linux下安装Oracle JDK] http://blog.csdn.net/gobitan/article/details/24322561.2. 安装必备工具软件注意:这里与官方的有个包不同,官方的包会报错.
1.
$sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
2.
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.
1
/usr/lib/i386-linux-gnu/libGL.so
01.
<pre
class
=
"brush:java;"
># adb protocol on passion (Nexus One)
02.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4e12"
, MODE=
"0600"
, OWNER=
"<username>"
03.
# fastboot protocol on passion (Nexus One)
04.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"0bb4"
, ATTR{idProduct}==
"0fff"
, MODE=
"0600"
, OWNER=
"<username>"
05.
# adb protocol on crespo/crespo4g (Nexus S)
06.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4e22"
, MODE=
"0600"
, OWNER=
"<username>"
07.
# fastboot protocol on crespo/crespo4g (Nexus S)
08.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4e20"
, MODE=
"0600"
, OWNER=
"<username>"
09.
# adb protocol on stingray/wingray (Xoom)
10.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"22b8"
, ATTR{idProduct}==
"70a9"
, MODE=
"0600"
, OWNER=
"<username>"
11.
# fastboot protocol on stingray/wingray (Xoom)
12.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"708c"
, MODE=
"0600"
, OWNER=
"<username>"
13.
# adb protocol on maguro/toro (Galaxy Nexus)
14.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"04e8"
, ATTR{idProduct}==
"6860"
, MODE=
"0600"
, OWNER=
"<username>"
15.
# fastboot protocol on maguro/toro (Galaxy Nexus)
16.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4e30"
, MODE=
"0600"
, OWNER=
"<username>"
17.
# adb protocol on panda (PandaBoard)
18.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"0451"
, ATTR{idProduct}==
"d101"
, MODE=
"0600"
, OWNER=
"<username>"
19.
# adb protocol on panda (PandaBoard ES)
20.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"d002"
, MODE=
"0600"
, OWNER=
"<username>"
21.
# fastboot protocol on panda (PandaBoard)
22.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"0451"
, ATTR{idProduct}==
"d022"
, MODE=
"0600"
, OWNER=
"<username>"
23.
# usbboot protocol on panda (PandaBoard)
24.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"0451"
, ATTR{idProduct}==
"d00f"
, MODE=
"0600"
, OWNER=
"<username>"
25.
# usbboot protocol on panda (PandaBoard ES)
26.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"0451"
, ATTR{idProduct}==
"d010"
, MODE=
"0600"
, OWNER=
"<username>"
27.
# adb protocol on grouper/tilapia (Nexus
7
)
28.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4e42"
, MODE=
"0600"
, OWNER=
"<username>"
29.
# fastboot protocol on grouper/tilapia (Nexus
7
)
30.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4e40"
, MODE=
"0600"
, OWNER=
"<username>"
31.
# adb protocol on manta (Nexus
10
)
32.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4ee2"
, MODE=
"0600"
, OWNER=
"<username>"
33.
# fastboot protocol on manta (Nexus
10
)
34.
SUBSYSTEM==
"usb"
, ATTR{idVendor}==
"18d1"
, ATTR{idProduct}==
"4ee0"
, MODE=
"0600"
, OWNER=
"<username>"
</pre>然后执行如下命令,将上述文件中的username替换为你的用户名。
1.
$sudo sed -i
's/username/dennis/g'
/etc/udev/rules.d/
51
-android.rules
1.
$sudo apt-get install ccache
2.
$source ~/.bashrc
==========================================第二部分:源代码下载==========================================1. 安装repo(1) 创建目录
1.
$ mkdir ~/bin
2.
$ PATH=~/bin:$PATH
1.
curl http:
//git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo
1.
$ chmod a+x ~/bin/repo
1.
$mkdir aosp
2.
$cd aosp
(2) 初始化repo注:后面可能出现网络错误,请先将如下内容加入到/etc/hosts中然后做后面的步骤。
1.
74.125
.
71.82
www.googlesource.com
2.
74.125
.
31.82
android.googlesource.com
3.
203.208
.
46.172
cache.pack.google.com
4.
59.24
.
3.173
cache.pack.google.com
1.
$repo init -u https:
//android.googlesource.com/platform/manifest -b android-4.4.2_r2
1.
git config --global user.email
"you@example.com"
2.
git config --global user.name
"Your Name"
3. 下载源代码
1.
$repo sync
好了,慢慢等吧,短则数小时,长则几天几夜!我花了5个小时
==========================================第三部分:源代码编译 ==========================================1. 设置ccache注:aosp为源代码根目录
1.
$ cd aosp
2.
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
1.
$cd aosp
2.
$source build/envsetup.sh
01.
dennis
@dubuntu1404
:~/devenv/aosp$ lunch
02.
You're building on <a href=
"http://www.it165.net/os/oslin/"
target=
"_blank"
class
=
"keylink"
>Linux</a>
03.
Lunch menu... pick a combo:
04.
1
. aosp_arm-eng
05.
2
. aosp_x86-eng
06.
3
. aosp_mips-eng
07.
4
. vbox_x86-eng
08.
5
. aosp_manta-userdebug
09.
6
. mini_mips-userdebug
10.
7
. mini_armv7a_neon-userdebug
11.
8
. mini_x86-userdebug
12.
9
. aosp_mako-userdebug
13.
10
. aosp_hammerhead-userdebug
14.
11
. aosp_tilapia-userdebug
15.
12
. aosp_deb-userdebug
16.
13
. aosp_grouper-userdebug
17.
14
. aosp_flo-userdebug
18.
Which would you like? [aosp_arm-eng]
9
19.
============================================
20.
PLATFORM_VERSION_CODENAME=REL
21.
PLATFORM_VERSION=
4.4
.
2
22.
TARGET_PRODUCT=aosp_mako
23.
TARGET_BUILD_VARIANT=userdebug
24.
TARGET_BUILD_TYPE=release
25.
TARGET_BUILD_APPS=
26.
TARGET_ARCH=arm
27.
TARGET_ARCH_VARIANT=armv7-a-neon
28.
TARGET_CPU_VARIANT=krait
29.
HOST_ARCH=x86
30.
HOST_OS=linux
31.
HOST_OS_EXTRA=Linux-
3.13
.
0
-
24
-generic-x86_64-with-Ubuntu-
14.04
-trusty
32.
HOST_BUILD_TYPE=release
33.
BUILD_ID=KVT49L
34.
OUT_DIR=out
35.
============================================
36.
dennis
@dubuntu1404
:~/devenv/aosp$ make -j4
5. 将img加载到物理机(1) 将手机用USB数据线连接到机器(2) 安装fastboot工具
1.
$ sudo apt-get install android-tools-fastboot
1.
export ANDROID_PRODUCT_OUT=/home/dennis/devenv/aosp/out/target/product/mako
1.
$ adb reboot bootloader
(5) 将编译的img刷到目标机
01.
dennis
@dubuntu1404
:~/devenv/aosp/out$ fastboot flashall -w
02.
--------------------------------------------
03.
Bootloader Version...: PRIMEMD04
04.
Baseband Version.....: I9250XXLJ1
05.
Serial Number........: 0146A0D00600900B
06.
--------------------------------------------
07.
checking product...
08.
FAILED
09.
Device product is
'tuna'
.
10.
Update requires
'mako'
.
11.
finished. total time:
0
.035s
01.
$ cd aosp
02.
dennis
@dubuntu1404
:~/devenv/aosp$ . build/envsetup.sh
03.
including device/samsung/manta/vendorsetup.sh
04.
including device/generic/mips/vendorsetup.sh
05.
including device/generic/armv7-a-neon/vendorsetup.sh
06.
including device/generic/x86/vendorsetup.sh
07.
including device/lge/mako/vendorsetup.sh
08.
including device/lge/hammerhead/vendorsetup.sh
09.
including device/asus/tilapia/vendorsetup.sh
10.
including device/asus/deb/vendorsetup.sh
11.
including device/asus/grouper/vendorsetup.sh
12.
including device/asus/flo/vendorsetup.sh
13.
including sdk/bash_completion/adb.bash
14.
dennis
@dubuntu1404
:~/devenv/aosp$ lunch aosp_arm-eng
15.
============================================
16.
PLATFORM_VERSION_CODENAME=REL
17.
PLATFORM_VERSION=
4.4
.
2
18.
TARGET_PRODUCT=aosp_arm
19.
TARGET_BUILD_VARIANT=eng
20.
TARGET_BUILD_TYPE=release
21.
TARGET_BUILD_APPS=
22.
TARGET_ARCH=arm
23.
TARGET_ARCH_VARIANT=armv7-a
24.
TARGET_CPU_VARIANT=generic
25.
HOST_ARCH=x86
26.
HOST_OS=linux
27.
HOST_OS_EXTRA=Linux-
3.13
.
0
-
24
-generic-x86_64-with-Ubuntu-
14.04
-trusty
28.
HOST_BUILD_TYPE=release
29.
BUILD_ID=KVT49L
30.
OUT_DIR=out
31.
============================================
32.
dennis
@dubuntu1404
:~/devenv/aosp$ make -j4
33.
============================================
34.
PLATFORM_VERSION_CODENAME=REL
35.
PLATFORM_VERSION=
4.4
.
2
36.
TARGET_PRODUCT=aosp_arm
37.
TARGET_BUILD_VARIANT=eng
38.
TARGET_BUILD_TYPE=release
39.
TARGET_BUILD_APPS=
40.
TARGET_ARCH=arm
41.
TARGET_ARCH_VARIANT=armv7-a
42.
TARGET_CPU_VARIANT=generic
43.
HOST_ARCH=x86
44.
HOST_OS=linux
45.
HOST_OS_EXTRA=Linux-
3.13
.
0
-
24
-generic-x86_64-with-Ubuntu-
14.04
-trusty
46.
HOST_BUILD_TYPE=release
47.
BUILD_ID=KVT49L
48.
OUT_DIR=out
49.
============================================
50.
including ./abi/cpp/Android.mk ...
51.
including ./art/Android.mk ...
52.
....中间过程省略
53.
Install system fs image: out/target/product/generic/system.img
54.
out/target/product/generic/system.img+ maxsize=
588791808
blocksize=
2112
total=
576716800
reserve=
5947392
转载请注明出处: http://blog.csdn.net/gobitan/article/details/24367439
0 0
- ubuntu 14.04安装 android 4.4编译环境
- Ubuntu 14.04 安装搭建Android开发编译环境
- Ubuntu 9.04安装Android编译环境
- Ubuntu 11.10 Android编译环境安装
- ubuntu安装android系统编译环境
- ubuntu 12.04 下安装android编译环境
- ubuntu安装编译环境
- ubuntu编译环境android
- ubuntu 14.04下安装nuttx编译环境
- ubuntu jdk7的安装,和android编译环境到安装
- [ubuntu 14.04] android 编译环境搭建
- ubuntu 14.04搭建android编译环境
- Ubuntu 14.04 android 的编译环境搭建
- Ubuntu 14.04配置Android编译环境
- ubuntu 14.04 配置android编译环境
- Android 编译环境快速安装(基于ubuntu 12.04 64bits)
- Android编译环境搭建-ubuntu下AndroidStudio安装
- ubuntu安装开发编译环境
- 12-5Java面向对象笔记(一)
- php一句话后门分析
- delphi调用java编写的http接口
- Jlink在使用的过程中的一些实用问题
- 服从广义高斯分布样本的参数估计
- ubuntu 14.04安装 android 4.4编译环境
- Android官方技术文档翻译——构建工作流
- easyUI基本组件的使用
- 主题模型-LDA浅析
- SpringMVC-初体验之显示用户项目
- 固定管线和可编程管线的区别
- win7下nexus的安装与配置
- android 实现listview动态加载
- 创建动态链接库的时候出现的一些问题