Ubuntu12.04下编译和下载Android4.0.3源码

[Android]Ubuntu12.04 下编译和下载 Android4.0.3 源码
原创文章,谢绝转载
官方页面 :
initialize -> http://source.android.com/source/initializing.html
download -> http://source.android.com/source/downloading.html
build -> http://source.android.com/source/building.html
1 安装 JDK1.6.0
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-
513648.html
1.1 将下载到的 jdk-6u29-linux-i586.bin 移动到/usr/lib/jvm/java 目录下,若不存在 jvm 和 java 目录,请使
用 root 身份创建。
命令为:
sudo -s(之后,输入登录 ubuntu 的密码)
cd /usr/lib
mkdir jvm
cd jvm
mkdir java
创建完 jvm 和 java 目录之后,使用 mv 命令将 jdk-6u29-linux-i586.bin 拷贝到 java 目录下。
1.2 安装 JDK
切换至/usr/lib/jvm/java 目录下,执行下面的命令:
chmod +x jdk-6u29-linux-i586.bin(增加可执行权限)
./jdk-6u29-linux-i586.bin
安装的时候,需要的时候按下 enter 就 Ok 了。
1.3 配置 JDK
gedit /etc/environment
在打开的文件中,添加如下几行:
PATH=$PATH:$JAVA_HOME/bin($PATH 为之前的 PATH 环境变量的内容)
CLASSPATH=".:$JAVA_HOME/bin"
JAVA_HOME="/usr/lib/jvm/java/jdk1.6.0_29"
接下来,需要安装 java/javac/jar 命令了,执行如下命令:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_29/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_29/bin/javac 300
update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java/jdk1.6.0_29/bin/jar 300
update-alternatives --config java
update-alternatives --config javac
update-alternatives --config jar
在执行后面三条命令的时候,可能会出现选择的提示,这时候一定要选择 jdk1.6.0,而不是系统中的
openJDK,切忌。
最后,可以使用 java -version 命令,查看下当前的 java 版本是否为 1.6.0.
作者:南都布衣
2 安装必要的编译包
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-
dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-
dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386(与官方
的命令相比,我删除了 openjdk 的安装包)
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so(执行下,提示失
败也没关系)
3 安装 repo
3.1 创建 bin 目录,并设置路径,执行命令如下:
mkdir ~/bin
PATH=~/bin:$PATH
3.2 安装 repo,执行命令如下:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
4 下载 android4.0.3 源码
4.1 创建你的 Google 登录的用户名和密码
打开网址 https://android.googlesource.com/new-password,使用你的 Google 账户登录进去,然后点击
“Allow Access”按钮,回出现一个页面,上面有 Google 分配给你的用户名和密码。拷贝下方文本框内的
内容,在终端中执行命令:gedit ~/.netrc,之后,将拷贝的内容粘帖到.netrc 文件中。
4.2 初始化 repo
执行命令:repo init -u https://android.googlesource.com/a/platform/manifest
4.3 下载源码
执行命令:repo sync
5 错误处理
5.1 错误 1
Fetching projects: 22% (51/228) fatal: Not a git repository:
'/home/android/.repo/projects/external/fdlibm.git'
出现如上的错误,使用 rm 命令直接删除对应的文件,重新 repo sync 即可。
执行命令:rm -rf /home/android/.repo/projects/external/fdlibm.git
5.2 其他错误
将错误信息到 Google 上面搜索下,就会有答案的。当然了,有时候需要使用翻墙软件才行,因为可能会
访问到 google group 和 blogspot 等网站,而这些网站被和谐了。
6 编译 Android4.0.3
6.1 编译前的准备工作
请确认以下包的版本是否 OK:
1. gcc4.4,而不是 gcc4.6,如果是 4.6,需要安装 gcc4.4,命令如下:
作者:南都布衣
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
cd /usr/bin
ls -l gcc*
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
ls -l g++*
sudo mv g++ g++.bak
sudo ln -s g++-4.4 g++
gcc -v
g++ -v
2 python2.5-2.7,ubuntu12.04 版本,默认的 python 版本是 2.7,所以,这个没什么问题
3 java 版本微 1.6.0,而不是 openJDK,前面我已经删除了 openJDK 的安装包,所以这里应该没有才对。
6.2 编译源码
按照官方的提示,依次执行如下命令:
source build/envsetup.sh
lunch full-eng
make -j4
建议:最后一条命令使用 make showcommands,这样可以显示编译命令,使得编译的时候,屏幕没有输
出的时候,不会感觉无聊。
7 编译错误处理
7.1
错误:You are attempting to build with the incorrect version of java.
解决方法:sudo update-alternatives --config java,同时最好确认下 javac 和 jar 命令。
7.2
错误:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 1
make: *** 正在等待未完成的任务....
解决方法:
修改源码目录下/build/core/combo/HOST_linux-x86.mk 文件:
将以下语句
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
修改为
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
7.3
错误:make: *** [out/host/linux-
x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o] 错误 1
解决方法:
gedit external/mesa3d/src/glsl/linker.cpp
在头文件段中,添加#include <stddef.h>
7.4
错误:make: *** [out/host/linux-

x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o]
解决方法:确认你使用的 gcc 和 g++的 4.4 版本,而不是更高的版本。
7.5
错误:make: *** [out/target/common/obj/APPS/CtsVerifier_intermediates/classes-full-debug.jar]
解决方法:sudo update-alternatives --config javac,选择 jdk1.6.0,而不是 openjdk。
7.6
错 误:make: *** [out/target/common/obj/APPS/android.core.tests.libcore.package.com.no-core-tests-
res_intermediates /noproguard.classes-with-local.dex] Killed
解决方法:此问题是因为编译 android4.0 需要 4GB 的 RAM 或 SWAP 空间,而 ubuntu 默认的 1GB 的,
所以,增加 swap 空间即可,执行命令如下:
sudo dd if=/dev/zero of=/boot/swapfile bs=1024 count=4194304
sudo mkswap -v1 /boot/swapfile
sudo swapon /boot/swapfile
free
sudo vi /etc/fstab
/boot/swapfile swap swap defaults 1 1
7.7 其他错误,请 Google 下,还是那句话,你很可能需要翻墙。
8 编译成功
8.1 编译成功之后,会在 out/target/product/generic 下面看到 system.img,ramdisk.img,userdata.img
8.2 但是我编译成功之后,在终端运行 emulator 命令,却提示:
No command 'emulator' found, did you mean:
Command 'qemulator' from package 'qemulator' (universe)
emulator: command not found
解决方法:
重新运行以下命令:
source build/envsetup.sh
lunch full-eng

时间: 2024-11-02 13:09:42

Ubuntu12.04下编译和下载Android4.0.3源码的相关文章

Android4.0.3源码分析——开机流程之Zygote

Zygote Zygote启动是从 /frameworks/base/cmds/app_process/app_main.cpp 中的main()函数开始的. 启动JavaVM: main()函数中有启动VM: if(zygote) { runtime.start("com.android.internal.os.ZygoteInit", startSystemServer? "start-system-server" : ""); 而runti

vsftpd-3.0.2源码编译安装配置指南

风信网(ithov.com)原创文章:今天我们向大家来讲解说明vsftpd-3.0.2通过源码进行编译及安装.配置的详细说明!首先,下载vsftpd-3.0.2源码包,地址如下: https://security.appspot.com/downloads/vsftpd-3.0.2.tar.gz 如果链接无效,大家可以通过百度或是http://www.aliyun.com/zixun/aggregation/9464.html">Google搜索vsftpd的官方网站进行下载! 详细的安装

mac 下编译 ffmpeg的 libaacplus-2.0.2 总是报错求大神解决办法,谁能教我再mac下编译ffmpeg也行

问题描述 mac 下编译 ffmpeg的 libaacplus-2.0.2 总是报错求大神解决办法,谁能教我再mac下编译ffmpeg也行 make[2]: Nothing to be done for `all'. Making all in frontend gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../src -g -O2 -c -o main.o main.c main.c:89:46: warning: data argument not

tcp/ip详解源代码在ubuntu14.04下编译出错

问题描述 tcp/ip详解源代码在ubuntu14.04下编译出错 源代码下载地址:http://www.kohala.com/start/tcpipiv1.html 毕竟是20年前的代码了.不知道在linux环境下要怎么编译? 解决方案 没有太好的办法,变化太大,只能改,而且如果我没记错那本书好像不是在Linux平台上讲的吧,貌似是Unix之类的 解决方案二: 只能根据错误自己对应的修改了.看错误提示. 解决方案三: 发出错误提示来,一起看看啊

Centos 6.5系统下编译安装PHP 7.0.13的方法_php基础

PHP7.0正式版也出来了,今天编译安装了一下,写下安装步骤,我是在centos6.6 环境中编译的,下面是详细的安装步骤 环境依赖 yum install gcc gcc-c++ libxml2 libxml2-python libxml2-devel -y 下载 wget http://cn2.php.net/distributions/php-7.0.13.tar.gz 解压 tar -zxvf php-7.0.13.tar.gz cd php-7.0.13 ./configure --e

ubuntu12.04下安装freetype出错处理

  ubuntu12.04下安装freetype出错处理 configure: creating ./config.status config.status: creating unix-cc.mk config.status: creating unix-def.mk config.status: creating freetype-config config.status: creating freetype2.pc config.status: creating ftconfig.h ww

ubuntu12.04下设置IPv6操作技巧

本博文将为您介绍ubuntu12.04下设置IPv6 的步骤与方法.  1.安装miredo. $sudo apt-get install miredo 2.修改防火墙IPv6设置 以root权限打开ufw的配置文件: "/etc/default/ufw",找到"IPV6=no"这一行,将其改为"IPV6=yes". 最后禁用/启用防火墙来使刚刚的改动生效: $ sudo ufw disable $ sudo ufw enable 3.重启网络

android4 3-Android4.3源码编译过程中出错

问题描述 Android4.3源码编译过程中出错 虚拟机Ubuntu12.04 64bit 编译Android4.3过程中出现以下问题: make: *** 没有规则可以创建"out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/mterp/out/InterpAsm-x86.o"需要的目标"dalvik/vm/mterp/out/InterpAsm-x86.S". 停止. 源码在ubuntu12.

安卓程序逆向分析,反编译,希望得到准确无误的源码

问题描述 安卓程序逆向分析,反编译,希望得到准确无误的源码 请教大神, 我在安卓市场下一个app,但是我想要反编译,添加功能,并重新编译. 目前我的做法是 用eclipse新建工程,将jd-gui查看的源码copy过来,修改错误,直到无误,正在进行中,不知能否成功.请问有什么办法,好急! 解决方案 你这样是不行的,逆向修改改动很小的,而且你不能修改源码,你可以学习源码. 解决方案二: 可以修改,只是修改的地方很小,你需要修改汇编代码,你不能导入Eclipse中.所以你能修改的很少,毕竟这东西看起