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 12 S
Android 11 R
Android 10 Q
Android 9 Pie

另外这里还有一点必须说明一下的是,如果你是可以翻墙忽略下一步,直接下载:
因为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 @@<manifest><remote  name="aosp"
-           fetch="https://android.googlesource.com/" />
+           fetch="https://aosp.tuna.tsinghua.edu.cn" /><default revision="refs/tags/android-11.0.0_r48"remote="aosp"sync-c="true"

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源码下载编译终极普法件就到这里了。总之,青山不改绿水长流先到这里了。如果本博客对你有所帮助,麻烦关注或者点个赞,如果觉得很烂也可以踩一脚!谢谢各位了!

Android AOSP和Android-X86源码下载编译终极普法相关推荐

  1. Android 4.4 Kit Kat 源码下载

    Android 4.4 Kit Kat源码下载 为了能够顺利的下载Android的源码,同时也为了避免在网络上再次搜寻如何下载源码的麻烦,我把下载过程记录在这篇文档中.       官网中也有详细的介 ...

  2. Linux自带的五子棋游戏,Android 五子棋游戏示例图与源码下载

    Android 五子棋游戏源码很多,下面是一款不错的Android五子棋游戏示例图及源码,导入Eclipse工程就可以使用了. Android 五子棋游戏部分源码: package five.itca ...

  3. Ubuntu20.4 Android-9.0.0_r46源码下载编译

    Ubuntu20.4 Android-9.0.0_r46源码下载编译调试 安装Ubuntu虚拟机 ubuntu镜像下载地址: https://ubuntu.com/download 官网下载地址较慢可 ...

  4. Android FrameWork学习(一)Android 7 0系统源码下载 编译

    最近计划着研究下 Android 7.0 的系统源码,之前也没做过什么记录,这次正好将学习的内容记录下来,方便以后复习巩固. 既然要学习我们的系统源码,那我们第一步要做的就是下载源码并进行编译了. # ...

  5. Android FrameWork学习(一)Android 7.0系统源码下载\编译

    重点内容 转载. http://blog.csdn.net/cjpx00008/article/details/60474883 硬件环境要求 1. 编译环境 按照官方的说法,编译Android 2. ...

  6. linux编译android源码,ubuntu16.04 Android源码下载编译

    本次编译源码的电脑为Ubuntu 16.04,4核 + 4G内存. 注. 对于电脑配置低的建议不要编译7.0以上的版本,就像我这台电脑,基本编译7.0以上都会报内存不足问题,因为在7.0版以上andr ...

  7. android 源码下载编译

    引用:http://www.2cto.com/kf/201202/121175.html 最新的android4.0源代码公布以后,相信很多人和我一样都跃跃欲试,其实4.0的代码下载和编译和以前的版本 ...

  8. android源码下载,编译及编译时遇到的错误整理

    一.环境搭建 因为android的源码编译只支持linux和mac,所以无法在windows下编译.我的电脑也没有双系统,因此只有装一个虚拟机.我用的是VMware workstation 我放到了百 ...

  9. 【转】Android用NDK和整套源码下编译JNI的不同

    原文网址:http://www.devdiv.com/android_ndk_jni_-blog-99-2101.html 前些天要写个jni程序,因为才几行代码,想着用ndk开发可能容易些,就先研究 ...

最新文章

  1. AI项目成功的4要素
  2. java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。
  3. 三角网导线平差实例_导线测量平差实例
  4. 蓄电池单格电压多少伏_蓄电池充电规范手册
  5. 21 | 哈希算法(上):如何防止数据库中的用户信息被脱库?
  6. 为什么会有这么多种程序设计语言?
  7. java数据类型转换方向_java基础学习篇02(数据类型转换和基本面试题)
  8. sql server从数据库导出导入教程
  9. OSWatcher使用简介
  10. 算法:回溯二 生成有效括号对Generate Parentheses
  11. vb2010 连接mysql,VB连接数据库方式汇总
  12. linux 程序的权限设置,Linux权限设置详解
  13. 批量将 txt 记事本文件按照固定行数拆分成单个独立的 txt 小文件
  14. 超详细:安装Linux系统教程
  15. 超宽屏幕比例_选择合适的21:9超宽带鱼屏屏幕(普通屏幕也可)
  16. mingw-w64-install.exe
  17. Flume之生产正确的使用方式一(Singel Agent)
  18. php 26个字母输出三角形,php使用for语句输出三角形的方法
  19. ng配置解决跨域请求
  20. 原创+转载 四大软件-军港速达直播厅,屏幕录像专家,电脑安全工具箱,红客专用电脑安全工具箱...

热门文章

  1. 学习Android启动初始化 App StartUp
  2. 十一、总结一下今天在SpringAOP中遇到的一个坑,事务控制一直失败,自己感觉代码没错的感觉,往底层看,很明了了
  3. linux 重建ext4分区表,Linux 格式化U盘为ext4格式以及修复分区表方法
  4. LODOP.ADD_PRINT_TEXT 参数解释说明
  5. python 游戏(记忆拼图Memory_Puzzle)
  6. 字体在ppt中可以整体替换吗_PPT字体替换其实很简单
  7. C# WAV音乐多音轨合并
  8. 诚之和:字节再迎裁员潮温州百人“大撤退”、ohayoo应届生“团灭”
  9. PHP 留言板功能需求分析
  10. 数值计算笔记之数值积分(一)