Android AOSP源码编译——AOSP下载(一)

一、电脑配置
Ubuntu16.04 + 16G,硬盘的大小最好大于300G (我这边是找了个win电脑装了双系统 没有使用虚拟机的方式)
在这里插入图片描述 二、基础环境配置
1、安装git

sudo apt install git

配置git email和name

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

2、安装依赖工具(需要确认的就一直y就好)

sudo apt install git-core libssl-dev libffi-dev gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libz-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

3、安装python
执行 python --version 可以看到ubuntu自带的python版本是Python 2.7.12,这里我们需要再安装一个python3
这里我是在下载文件夹打开终端执行下面命令进行下载

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

下载完成后解压

tar xvf Python-3.7.1.tgz

进入解压后的文件夹,编译安装python3

./configure
sudo make install

配置update-alternatives(用于处理 Linux 系统中软件版本的切换,使其多版本共存)

sudo update-alternatives --install /usr/bin/python python python的安装地址 权重号

我这边根据安装地址执行下面命令

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 3

现在python2和python3都加入到update-alternatives工具了。

然后可以使用 sudo update-alternatives --config python来选择python版本

在这里插入图片描述4、安装openjdk 8

sudo apt-get install openjdk-8-jdk

到这里我们的基本环境配置已经完成了,接下来开始下载并编译AOSP 源码。

三、下载AOSP源码

参考中科大AOSP镜像使用文档:https://mirrors.ustc.edu.cn/help/aosp.html

1、切换到用户目录下:cd ~
2、按照AOSP镜像使用文档输入命令

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

如果在执行curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo的时候失败了可以直接通过浏览器下载,复制到bin/下面也是那一样的。
接着执行

mkdir aosp
cd aosp

指定版本代码进行仓库初始化

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-11.0.0_r45

如果提示无法连接到 gerrit.googlesource.com
在这里插入图片描述可以按照文档编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:REPO_URL = ‘https://gerrit-googlesource.proxy.ustclug.org/git-repo’
在这里插入图片描述再次执行初始化仓库命令,会发现出现server certificate verification failed,如下
在这里插入图片描述这时候我们可以关闭git的SSL校验

git config --global http.sslverify false
git config --global https.sslverify false

然后再次执行初始化仓库命令,需要y的直接y就好。

最后执行repo sync完成源码下载,下载的过程比较慢,如果中途失败可以多尝试几次。
在这里插入图片描述到这里我们的源码就下载完成了,接下来就是对源码进行编译了

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虹科案例 | 建筑物邻近挖掘工地的结构健康监测

一、 前言 工程与建筑 行业<<<< 工程与建筑——建筑结构健康监测 摘要<<<< 在现代城市环境中&#xff0c;重型建筑施工常常必须在毗邻的邻近建筑和结构附近进行&#xff0c;而这些建筑和结构在挖掘和施工期间必须保持开放以供商业或居住使用。 传…

异步编排CompletableFuture

文章目录 一.简介二.并行加载1.为何需要并行加载2.并行加载的实现方式 三.CompletableFuture使用与原理1.背景和定义2.常用方法3.CompletableFuture的使用3.CompletableFuture原理4.实践总结 一.简介 CompletableFuture由Java 8提供&#xff0c;是实现异步化的工具类&#xff…

【效率提升-Perl脚本】根据Verilog文件自动生成tb文件

文章目录 Verilog端口文件&#xff08;仅做示范用&#xff09;对应的tb文件相应代码 在数字IC设计过程中&#xff0c;根据顶层生成testbench时存在很多重复性工作&#xff0c;因此为了提高工作效率&#xff0c;特地开发此脚本。 相应的python脚本见链接&#xff1a; 【效率提升…

Postgresql15安装插件madlib2.0

madlib2.0简介 Apache MADlib madlib使用指南 MADlib: Main Page madlib安装 Installation Guide - Apache MADlib - Apache Software Foundation 准备 cmake 3.5.2及以上版本python3.9postgresql15&#xff0c;源码编译时必须指定 –with-pythonpostgresql插件plpython3u 源…

Java算法_ LRU 缓存(LeetCode_Hot100)

题目描述&#xff1a;请你设计并实现一个满足 LRU &#xff08;最近最少使用&#xff09; 缓存 约束的数据结构。 获得更多&#xff1f;算法思路:代码文档&#xff0c;算法解析的私得。 运行效果 完整代码 import java.util.HashMap; import java.util.Map;/*** 2 * Author: L…

gitee分支合并

合并dev分支到master&#xff08;合并到主分支&#xff09; git checkout master git merge dev //这里的dev表示你的分支名称 git push //推送到远程仓库 效果如下图 不报错就表示推送成功了&#xff0c;希望能帮助各位小伙伴

ruby send call 的简单使用

refer: ruby on rails - What does .call do? - Stack Overflow Ruby使用call 可以调用方法或者proc m 12.method("") # > method gets the method defined in the Fixnum instance # m.class # > Methodm.call(3) #> 15 # 3 is passed inside the…

测试设计规范:优秀实践的全面指南

测试设计规范是一个定义了与测试项目相关的测试条件、详细的测试方法和高级测试用例的文档。它确定了要运行哪些测试套件和测试用例&#xff0c;以及要跳过哪些。 使用测试设计规范&#xff0c;可以简化对当前测试周期的理解。这个文档回答了像“我们在做什么?”&#xff0c;…

每日一学:什么是 Harbor ?

目录 什么是 Harbor &#xff1f; 一、Harbor 的优势 二、Harbor 架构构成 三、Core services 这是 Harbor 的核心功能 什么是 Harbor &#xff1f; Harbor 是 VMware 公司开源的企业级 Docker Registry 项目&#xff0c;其目标是帮助用户迅速搭建一个企业级的 Docker Reg…

一百五十一、Kettle——Linux上安装的kettle8.2开启carte服务

一、目的 kettle8.2在Linux上安装好可以启动界面、并且可以连接MySQL、Hive、ClickHouse等数据库后&#xff0c;准备在Linux上启动kettle的carte服务 二、实施步骤 &#xff08;一&#xff09;carte服务文件路径 kettle的Linux运行的carte服务文件是carte.sh &#xff08;二…

【MFC】10.MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化-笔记

运行时类信息&#xff08;RTTI&#xff09; C: ##是拼接 #是替换成字符串 // RTTI.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <afxwin.h>#ifdef _DEBUG #define new DEBUG_NEW #endifCWinApp th…

pytest fixture 高级使用

一、fixture中调用fixture 举例&#xff1a; 输出&#xff1a; 说明&#xff1a;登录fixture 作为参数传递到登出方法中&#xff0c;登录方法的返回值就可以被登出方法使用 二、在fixture中多参数的传递&#xff08;通过被调用函数传参&#xff09; 举例&#xff1a; 输出&a…