Android AOSP和Android-X86源码下载编译终极普法
创始人
2024-03-28 14:06:12
0

    Android AOSP和Android-X86源码下载编译终极普法



引言

  最近有朋友在询问怎么下载Android AOSP源码和Android-X86源码,编译学习!其实这个说简单也简单,说复杂吗也不复杂。但是难在真的干起来!凯子哥的风格吗,既然朋友们有这个需求,那就必须满足,这不就给朋友们安排上了。这是一门实操博客,没有过多啰嗦的,直接开干!

1.由于国内的环境,此处默认大伙是不能翻墙的情况下进行相关源码的下载,如果能翻墙的话那就比较简单了。
2.这里的操作系统环境,以ubunut 20.04为准
3.如果读者只是仅仅阅读源码,不需要编译调试可以直接在线查阅Android源码,这个有好几个网站国内不需要翻墙也可以访问




一.下载编译Android-X86源码

这是实操博客,啥也不多说,直接开车就是了,错了直接开干。朋友们,一起动起来!

1.1 创建下载脚本目录构建环境

  • 新建一个存放下载脚本文件的目录

    mkdir ~/bin
    PATH=~/bin:$PATH
    
  • 下载repo脚本文件

    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    
  • 打开bin文件夹下的repo文件,将REPO_URL进行替换:

    REPO_URL = 'https://gerrit.googlesource.com/git-repo'改为REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'


1.2 创建x86下载目录,准备开始下载

创建相应的下载目录开始下载

mkdir android-x86cd android-x86repo init -u git://git.osdn.net/gitroot/android-x86/manifest -b r-x86

这里关于具体的Android版本号对应的branch,这里简单给出一下:

Android版本号英文简称
Android 12S
Android 11R
Android 10Q
Android 9Pie

另外这里还有一点必须说明一下的是,如果你是可以翻墙忽略下一步,直接下载:
因为Android仓库的源我们国内无法直接下载,需要翻墙,因为我们无法翻墙,所以这里在将谷歌的源替换成清华的源,如下:

vi .repo/manifests/default.xmldiff --git a/default.xml b/default.xml
index c59ca95..d82cd9c 100644
--- a/default.xml
+++ b/default.xml
@@ -2,7 +2,7 @@
+           fetch="https://aosp.tuna.tsinghua.edu.cn" />


1.3 开始下载

开始同步下载:

repo sync

如果仅仅是想获取代码,不需要tag或者git信息,可以有一种更加快速的方法,repo sync --no-tags --no-clone-bundle



1.4 开始编译

这里的编译就比较简单了,直接执行如下的几个命令就OK了:

souce build/envsetup.sh //输入lunch选择目标CPU类型lunch android_x86_64-userdebugmake  -j32 iso_img

最后生成的镜像如下:

在这里插入图片描述




二.下载编译Android AOSP源码

啥也不多说,直接开干就是了。尼玛真是烦躁啊!

2.1 创建下载脚本目录构建环境

  • 新建一个存放下载脚本文件的目录

    mkdir ~/bin
    PATH=~/bin:$PATH
    
  • 下载repo脚本文件

    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    
  • 打开bin文件夹下的repo文件,将REPO_URL进行替换

    REPO_URL = 'https://gerrit.googlesource.com/git-repo'改为REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'


2.2 创建aosp下载目录,开始下载

  • 创建相应的下载目录

    mkdir android_source
    cd android_sourcerepo init -u git://git.osdn.net/gitroot/android-x86/manifest -b r-x86
    
  • 下载初始化包:

    wget -c -t 0 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
    tar xvf aosp-latest.tar
    
  • 解压后看到一个aosp的目录,进到该目录,同步到android-11.0.0_r37版本

    cd aosp
    repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r37
    repo sync
    

1.此处我们通过wget下载的是清华打包好的源,由于地域或者网络因素可能下载会很慢而且可能wget会异常退出,这个建议开发者最好是最清晨或者网络比较空闲的时候下载

2.如果使用清华的源下载的速度非常慢的话,建议开发者可以切换到中科大的源进行先关的操作,具体可以详见博客使用清华或中科大AOSP源镜像下载Android源码和中科大AOSP 镜像使用帮助。



2.3 开始编译

怎么编译,这就不是本文介绍的重点了,读者可以根据具体需要编译的project自行选择。这里我要重点说的是,假如读者是第一次编译,可能需要安装如下的相关编译依赖工具:

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libncurses5

如果在安装的过程中遇到,无法定位软件包 libesd0-dev,请执行如下操作:

sudo vim /etc/apt/sources.list //在行尾添加如下两行的内容
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe
sudo apt-get update && sudo apt-get install libesd0-dev

在具体的编译过程中,可能会遇到各种错误提示,通常是有一些依赖没有安装造成的,朋友可以在编译的过程中自行安装即可。




写在最后

  好了,打卡收工下班。今天的博客Android AOSP和Android-X86源码下载编译终极普法件就到这里了。总之,青山不改绿水长流先到这里了。如果本博客对你有所帮助,麻烦关注或者点个赞,如果觉得很烂也可以踩一脚!谢谢各位了!

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...