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

news2024/12/22 19:02:40

    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-x86
 
cd android-x86
 
repo 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.xml

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaSe

软件&#xff1a; 一系列按照特定顺序组织的计算机数据和指令的集合、有系统软件&#xff08;window、linux&#xff09;和应用软件&#xff08;QQ、微信&#xff09;之分。 人机交互方式&#xff1a; 图形化界面&#xff08;GUI&#xff09;鼠标直接点击&#xff08;简单直观…

留学Assignment写作方法和步骤整理

Assignment主要讨论的是研究性话题&#xff0c;深入剖析和研究主题&#xff0c;对于Assignment的主题进行探讨&#xff0c;从而更深入的了解&#xff0c;科技类Assignment偏向科技实用性&#xff0c;而对于文科类Assignment则偏向于探讨。要让Assignment更具价值&#xff0c;应…

【LSTM时序预测】基于卷积神经网络结合BiLSTM实现时序数据预测附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

最佳实践 | 如何基于GitHub Actions创建 DolphinScheduler Python API的CI/CD?

点亮 ⭐️ Star 照亮开源之路https://github.com/apache/dolphinscheduler01.DolphinScheduler 和 Python API 介绍Apache DolphinScheduler 是一个分布式、可扩展的工作流调度器平台&#xff0c;具有强大的 DAG 可视化界面。它可以帮助用户更轻松地构建和维护任何规模的工作流…

计算机毕业设计springboot+vue基本微信小程序的二手车交易平台

项目介绍 首先,论文一开始便是清楚的论述了小程序的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了小程序的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据…

木字楠后台管理系统开发(2):SpringBoot项目代码生成以及基础接口测试

&#x1f3b6; 文章简介&#xff1a;木字楠后台管理系统开发(2)&#xff1a;SpringBoot项目代码生成以及基础接口测试 &#x1f4a1; 创作目的&#xff1a;为了带大家完整的体验木字楠后台管理系统模版的开发流程 ☀️ 今日天气&#xff1a;一场秋雨一场寒&#xff0c;天气越来…

云原生之使用Docker部署docker-compose-ui工具

云原生之使用Docker部署docker-compose-ui工具一、Docker Compose UI介绍二、检查本地docker环境1.检查系统版本2.检查docker状态三、下载Docker Compose UI镜像四、部署Docker Compose UI服务1.新建安装目录2.创建Docker Compose UI容器3.检查Docker Compose UI容器状态4.查看…

3 - 线程池 Java内置的线程池

1、ExecutorService的介绍 ExecutorService 接口继承了Executor 接口&#xff0c;是Executor 的子接口。 Executors类 提供工厂方法用来创建不同类型的线程池。Executors是工具类&#xff0c;他提供对ThreadPoolExecutor的封装&#xff0c;会产生几种线程池供大家使用。 关于…

20 个超级实用的 CSS 技巧,帮助你成为更好的开发者

在开发项目中&#xff0c;修改输入占位符样式&#xff0c;多行文本溢出&#xff0c;隐藏滚动条&#xff0c;修改光标颜色&#xff0c;水平和垂直居中等等&#xff0c;这些都是我们非常熟悉的开发场景&#xff01;前端开发者几乎每天都会和它们打交道&#xff0c;因此&#xff0…

Visual Studio 平台下基于 C# /.NET 的 Android 开发

文章目录Part.I IntroductionChap.I 环境搭建Part.II ExamplePart.I Introduction 因为想尝试一下移动端的开发&#xff0c;所以在网上简单搜了一下移动端开发可以使用的语言&#xff0c;发现 Java, C# 等都可以。虽然用Java的居多&#xff0c;但是笔者对C#较为熟悉一些&#x…

TikTok变现冲不冲?这些TikTok选品方法赶快用上

TikTok电商商家们通常最忧愁的就是不知道如何有效进行TikTok选品。有时候因为选到难卖的产品&#xff0c;就会导致库存积压、资金紧缺等问题。今天&#xff0c;为TikTok电商商家们分享一些好用、有效的TikTok选品方法~ TikTok选品方法一——利用电商平台数据选品 除了一些偏地…

[附源码]JAVA毕业设计文物管理系统(系统+LW)

[附源码]JAVA毕业设计文物管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

速卖通官方公告:“不活跃商品”管理规则,将于12月12日生效!

最新平台动向&#xff1a;速卖通“黑色星期五”大促开始。作为海外最火的促销购物节黑五与世界杯重叠&#xff0c;速卖通上热销海外的国货有了显著的新趋势&#xff1a;越来越多具有更高科技含量的国货在海外走红。其中&#xff0c;速卖通上国产VR眼镜成为今年最火的商品&#…

Kubernetes 调度器详解

kube-scheduler是 kubernetes 系统的核心组件之一&#xff0c;主要负责整个集群资源的调度功能&#xff0c;根据特定的调度算法和策略&#xff0c;将 Pod 调度到最优的工作节点上面去&#xff0c;从而更加合理、更加充分的利用集群的资源&#xff0c;这也是我们选择使用 kubern…

构建高性能内存队列:Disruptor yyds~

Java中有哪些队列 ArrayBlockingQueue 使用ReentrantLockLinkedBlockingQueue 使用ReentrantLockConcurrentLinkedQueue 使用CAS等等 我们清楚使用锁的性能比较低&#xff0c;尽量使用无锁设计。接下来就我们来认识下Disruptor。 Disruptor简单使用 github地址&#xff1a;P…

R语言建立和可视化混合效应模型mixed effect model

全文下载链接&#xff1a;http://tecdat.cn/?p20631我们已经学习了如何处理混合效应模型。本文的重点是如何建立和_可视化_ 混合效应模型的结果&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。相关视频设置本文使用数据集&#xff0c;用于探索草食动物种群对…

Linux Capabilities

Linux Capabilities 入门教程&#xff1a;基础实战篇 为了对 root 权限进行更细粒度的控制&#xff0c;实现按需授权&#xff0c;Linux 引入了另一种机制叫capabilities。Capabilites 作为线程&#xff08;Linux 并不真正区分进程和线程&#xff09;的属性存在&#xff0c;每个…

极客时间Kafka - 06 Kafka 消费者组 Consumer Group 到底是什么?

文章目录1. 消费者组到底是什么&#xff1f;2. Consumer Group下的Consumer实例个数3. 消费者位移Offset4. 重平衡1. 消费者组到底是什么&#xff1f; 消费者组&#xff0c;即 Consumer Group&#xff0c;应该算是 Kafka 比较有亮点的设计了。那么何谓 Consumer Group 呢&…

JAVA SCRIPT设计模式--行为型--设计模式之State状态者模式(20)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能&#xff0c;所以不可能像C&#xff0c;JAVA等面向对象语言一样严谨&#xff0c;大部分程序都附上了JAVA SCRIPT代码&#xff0c;代码只是实现了设计模式的主体功能&#xff0c;不代…

ToDesk企业版使用测试:破解企业远程办公难题,更安全更高效

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作者&#x1f3c6;&#xff0c;阿里云专家博主&#x1f3…