设为首页 收藏本站
查看: 721|回复: 0

[经验分享] Ubuntu 10.04 64位下源码编译android

[复制链接]

尚未签到

发表于 2018-5-7 06:02:51 | 显示全部楼层 |阅读模式
  Ubuntu 10.04 64位下源码编译android-4.0.4_r2.1
参考网站 http://source.android.com
具体步骤如下:
ubuntu默认情况是用普通用户进行登录系统的,我为了操作简便也就以root用户进行了登录。从普通用户切换的root用户登录需要做如下几个步骤;
我建的普通用户名为joye
$ sudo passwd root      (此处是为root用户设置密码)
然后输入一个为root创建的密码,在输入一次进行确认。再执行以下命令
$ gksu natutilus
之后点击右上角的关机按钮下拉菜单中,有一个切换用户,以root身份登录就行了。
下面我们开始android 环境的搭建:
首先我们需要做一些准备工作,具体如下
1、安装python2.5-2.7
2、GNU Make 3.81-3.82
3、JDK6 JDK5 (注:最好两者都安装上)
4、Git 1.7
安装python2.5-2.7
默认情况下是已经安装过的,我们可以通过以下命令查看是不是安装过python
#dpkg -l python   
提示为 ii python 后面为版本号 则表示已经安装
如果没有安装我们可以使用命令进行安装
#apt-get install python

安装GNU Make
默认已经安装,如果没有安装,使用以下命令进行安装
#apt-get install make
查看是否已经安装使用以下命令
#dpkg -l make

安装jdk6 jdk 5
我先安装的是jdk6
#add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse  
(注:与参考网站上提供的网站不同)
#apt-get update
#apt-get install sun-java6-jdk
然后安装jdk5
#add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
#add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
#apt-get update
#apt-get install sun-java5-jdk
安装完成后使用命令
#java -version
验证是否成功

安装Git
#apt-get install git-core
(关于git后面会在进行设置)

5、安装编译所需软件包
#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 lib32z-dev \
  Libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc

此处要特别注意的是字母“l”和数字“1”的区别,好些人敲了好些次的命令都不正确,才发现把这两个给弄错了。我平时都是把数字“1”替换成“9”,给字母“l”做区别。当然输入一定要认真了。
6、配置USB访问权限
  GNU/Linux系统下(特别是Ubuntu系统下),默认配置下普通用户不能直接访问usb设备,需要对系统进行一些配置。
  root用户创建新配置文件/etc/udev/rules.d/51-android.rules,并将以下内容拷贝到新配置文件中:
# adb protocol on passion (Nexus One)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;18d1&quot;, ATTR{idProduct}==&quot;4e12&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# fastboot protocol on passion (Nexus One)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;0bb4&quot;, ATTR{idProduct}==&quot;0fff&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;18d1&quot;, ATTR{idProduct}==&quot;4e22&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;18d1&quot;, ATTR{idProduct}==&quot;4e20&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;22b8&quot;, ATTR{idProduct}==&quot;70a9&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;18d1&quot;, ATTR{idProduct}==&quot;708c&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;04e8&quot;, ATTR{idProduct}==&quot;6860&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;18d1&quot;, ATTR{idProduct}==&quot;4e30&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# adb protocol on panda (PandaBoard)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;0451&quot;, ATTR{idProduct}==&quot;d101&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;0451&quot;, ATTR{idProduct}==&quot;d022&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;0451&quot;, ATTR{idProduct}==&quot;d00f&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;0451&quot;, ATTR{idProduct}==&quot;d010&quot;, MODE=&quot;0600&quot;, OWNER=&quot;<username>&quot;

并将以上内容中的
&quot;<username>&quot; 修改为用户名 如我的用户名 &quot;joye&quot;

7、下载源码
首先确保在你的用户目录下有一个 bin目录,添加到PATH路径
#mkdir ~/bin
添加环境变量我介绍两种方法
如果你只是临时性的添加修改,下次开机就无效的话,可以输入
PATH=~/bin:$PATH
如果下次开机仍然生效,我把他添加到了/etc/profile文件中,使用以下命令
#nano /etc/profile
在文件的最后添加以下两行
PATH=&quot;/root/bin/:$PATH&quot;
export PATH
Ctrl+x退出 y保存,enter返回终端

下载repo脚本文件,确保这个文件有执行权限,执行以下命令
#curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
#chmod a+x ~/bin/repo
初始化repo客户端
创建工作目录,用于存放android源码
#mkdir working_directory
#cd working_directory
获取repo最新的配置
#repo init -u https://android.googlesource.com/platform/manifest
(上面的-u用来指定在当前目录安装repository ,会在当前目录下创建一个目录&quot;.repo&quot;
-u参数指定一个URL,从这个URL中取得repositorymanifest文件,获取的manifest文件放在.repo目录中。命名为manifest.xml 这个文件的内容其实就是所有被git管理的仓库的列表。)具体内容参见: http://wenku.baidu.com/view/34580eb8fd0a79563c1e729a.html
(上面网址引用别人的)
指定一个manifest分支,使用-b参数
#repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.4_r2.1
获取源码
#repo sync
如果中间出现中断,这个很正常,你可以再次输入 repo sync 命令来进行下载
知道下载完成为止。

8、使用验证
首先在用户宿主目录下新建一个文件 .netrc 然后使用google账号进行验证
点击红色标记部分会提示你输入google账号和密码

使用nano命令打开 .netrc 把标记的这部分内容给粘贴到.netrc.里面 (我的google账号
用户名:xxxxx 密码 xxxxxx  (自己申请)
具体操作如下
在宿主用户目录下新建文件
#touch .netrc
#nano ~/.netrc
然后把上面的那段文字复制到上面 crtl+x  退出,提示是否使用文件名.netrc ,点击 y 确认,然后点击 enter 保存退出。

9、验证git标签
#gpg --import
然后把下面的内容复制粘贴上去 crtl+d 退出
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----

然后初始化git
#git init
#ls -A
如果可以看到.git则表示成功

10、设置ccache
.bashrc 文件中输入以下内容,具体如下
#nano /root/.bashrc
输入下面内容
export USE_CCACHE=1
设置cache目录大小 此处设置为50G (注意:在源码目录下输入以下命令)
prebuilt/linux-x86/ccache/ccache -M 50G

11、搭建系统
初始化 输入命令(在源码目录下 /root/working_directory/)
#source build/envsetup.sh
或者
#. build/envsetup.sh
然后选择编译目标
#lunch full-eng
编译
#make -j4
完成之后输入命令
#emulator
就可以看到虚拟设备了。




                           

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-456711-1-1.html 上篇帖子: Ubuntu 开机如何自动运行程序 下篇帖子: Ubuntu配置PXE+Kickstart+TFTP+DHCP实现快速布署Linux操作系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表