Android x86 Oreo代码下载和编译

本文详细介绍了在Ubuntu16.04环境下编译Android-x86 Oreo-x86版本镜像的全过程,包括虚拟机配置、代理设置、软件安装、代码下载、编译环境准备及常见错误解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明
(1) 以Ubuntu16.04为模板创建虚拟机,然后下载android x86的oreo-x86版本进行编译生成ISO镜像。
(2) 硬盘配置250G,内存配置12G。(代码大致就要占用51G,内存配置为4G最后会提示内存不足无法进行编译)。

1.搭建Ubuntu虚拟机环境。

2.安装openssh-server

apt-get install openssh-server

3.设置代理

1)GIT代理设置
git config --global http.proxy http://ipAddress:Port
git config --global https.proxy https://ipAddress:Port

git config --global user.name “stone”
git config --global user.email "xxx@xx.com"

2)REPO代理设置
export http_proxy=http://ipAddress:Port
export https_proxy=https://ipAddress:Port

4.安装Git

sudo apt-get install git

5.安装Repo

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

6.安装和配置samba

1)安装samba
apt-get install samba
2)配置samba
关于Samba服务:共享“/”目录与“/root”目录
在/etc/samba/smb.conf文件中添加:
[sd]
path = /
valid users = root
browseable = yes
writeable = yes
然后执行:
smbpasswd -a root 设置用户密码
再执行:
systemctl restart smbd

7.Android X86代码下载

cd /home
mkdir android-x86
cd android-x86
mkdir oreo-x86
cd oreo-x86
repo init -u git://git.osdn.net/gitroot/android-x86/manifest -b oreo-x86
repo sync --no-tags --no-clone-bundle

8.编译环境准备

1)安装JDK
如果 Ubuntu >= 15.04
请运行以下命令:
apt-get update
apt-get install openjdk-8-jdk
2)安装所需的程序包
apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip libssh-dev python-mako
3)使用单独的输出目录
export OUT_DIR_COMMON_BASE=
4)安装调试工具。
在Ubuntu上执行以下命令:
apt-get install valgrind
5)配置jdk到 P A T H 中 c d / h o m e / t o o l s t a r − x z v f j d k − 8 u 201 − l i n u x − x 64. t a r . g z P A T H = PATH中 cd /home/tools tar -xzvf jdk-8u201-linux-x64.tar.gz PATH= PATHcd/home/toolstarxzvfjdk8u201linuxx64.tar.gzPATH=PATH:/home/tools/jdk1.8.0_201/bin:/home/tools/jdk1.8.0_201/jre/bin

9.编译Android X86镜像

cd oreo-x86
. build/envsetup.sh
lunch android_x86-eng
m -jX iso_img //X指并发数,比如1, 2

10.常见错误

1)repo init、mkdir等多个命令报没有权限
原因:Ubuntu18默认没有root账户
解决办法:Ubuntu18创建ROOT账户以及登录过程见下链接
https://blog.csdn.net/weixin_41923456/article/details/81001179

2)apt-get install curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
解决办法:
强制解锁命令
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
(见https://www.cnblogs.com/drizzlewithwind/p/5922414.html)

3)javac:command not found
根本原因:没有配置jdk
解决办法:解压jdk-8u201-linux-x64.tar.gz,并设置相关路径到系统PATH中。
https://blog.csdn.net/lyl_lyf/article/details/48767143

4)GC overhead limit exceeded
根本原因:内存不足
解决办法:
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx12g"
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
参考见: https://blog.csdn.net/csdn_zyp2015/article/details/56277765

5)Kernel/scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory
根本原因:缺少依赖库ssl头文件
解决办法:apt-get install libssh-dev

6)File “external/mesa/src/compiler/nir/nir_opcodes_h.py”, line 45, in from mako.template import Template
ImportError: No module named mako.template
解决方法:apt-get install python-mako

11.参考链接

https://blog.csdn.net/weixin_41923456/article/details/81001179
https://www.cnblogs.com/drizzlewithwind/p/5922414.html
https://blog.csdn.net/lyl_lyf/article/details/48767143
https://blog.csdn.net/csdn_zyp2015/article/details/56277765

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值