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完成源码下载,下载的过程比较慢,如果中途失败可以多尝试几次。
到这里我们的源码就下载完成了,接下来就是对源码进行编译了
相关文章:
Android AOSP源码编译——AOSP下载(一)
一、电脑配置 Ubuntu16.04 16G,硬盘的大小最好大于300G (我这边是找了个win电脑装了双系统 没有使用虚拟机的方式) 二、基础环境配置 1、安装git sudo apt install git配置git email和name git config --global user.email "youexample.com" git conf…...
Qt 文件对话框使用 Deepin风格
当你在Deepin或UOS 上开发 Qt 程序时,如果涉及到文件对话框功能,那么就会遇到调用原生窗口的问题。 如果你使用的是官方的Qt版本,那么在Deepin或者UOS系统上,弹出的文件对话框会是如下这样: 而Deepin或UOS系统提供的默…...
.net core 配置swagger
要在 ASP.NET Core 中配置 Swagger,您需要遵循以下步骤: 添加 Swagger NuGet 包:将 Swashbuckle.AspNetCore NuGet 包添加到项目中。 在 Startup.cs 文件中进行配置: using Microsoft.OpenApi.Models;public class Startup {// 省…...
leetcode707. 设计链表(单链表+虚拟头指针+双指针遍历)
题目:leetcode707. 设计链表 描述: 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链…...
电脑麦克风没声音?
这3招就可以解决! 在我们使用电脑录制视频时,有时会遇到一个令人头疼的问题:麦克风没有声音。那么,为什么会出现这种情况呢?更重要的是,我们应该如何解决这个问题呢?本文将介绍3种方法…...
React Native元素旋转一定的角度
mMeArrowIcon: {fontSize: 30, color: #999, transform: [{rotate: 180deg}]},<Icon name"arrow" style{styles.mMeArrowIcon}></Icon>参考链接: https://reactnative.cn/docs/transforms https://chat.xutongbao.top/...
LeetCode 1749. 任意子数组和的绝对值的最大值
【LetMeFly】1749.任意子数组和的绝对值的最大值 力扣题目链接:https://leetcode.cn/problems/maximum-absolute-sum-of-any-subarray/ 给你一个整数数组 nums 。一个子数组 [numsl, numsl1, ..., numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 ... nums…...
初学HTML:在线简易画板设计。
最近在HTML,记录下一点点成果。 设计了一个简易画板,通过HTML的Canvas元素实现一个在线画板,用户可以在上面绘制图形或涂鸦。 下面是运行效果: 下面是代码: <!DOCTYPE html> <html> <head><ti…...
IDEA项目实践——Spring框架简介,以及IOC注解
系列文章目录 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——动态SQL、关系映射、注解开发 文章目…...
Scala(第一章Scala入门)
文章目录 1.1 概述 1.1.1 为什么学习Scala1.1.2 Scala发展历史1.1.3 Scala和Java关系1.1.4 Scala语言特点 1.2 Scala环境搭建1.3 Scala插件安装1.4 HelloWorld案例 1.4.1 创建IDEA项目工程1.4.2 class和object说明1.4.3 Scala程序反编译 1.5 关联Scala源码1.6官方编程指南 1.1…...
Linux tcpdump 命令详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的…...
试卷擦除答案的工具,几个步骤轻松搞定
在学生的学习生活中,考试是必不可少的一部分。然而,有时候我们在做完试卷后发现自己填错了答案,或者想要更改答案,但是试卷上已经有了痕迹。这时候,我们就需要一些工具来擦除答案。以下是几个简单的步骤,让…...
vue3部署宝塔后请求接口404以及刷新页面404的问题解决方案
技术:vue3.2.13 UI框架:element-plus 2.1.1 服务器:腾讯云Centos系统宝塔面板 Nginx:1.22.1 前提:宝塔面板》网站PHP项目 已经新建了项目 1.处理vue页面刷新报错404 如上图,在PHP网站》设置》配置文件,新增如下代码…...
java.sql.Date java.util.Date
文章目录 两者关系两者在时间显示上区别 两者关系 sql包中Date是util包子类 public class Date extends java.util.Date 两者在时间显示上区别 /*** 解决sql包中日期和util包日期转换问题*/Testpublic void t3(){Date utilDate new Date();java.sql.Date sqlDate new java.…...
斗象科技-2023攻防演练必修高危漏洞集合百度网盘下载(2版本)
下载地址见最下端: 高危风险漏洞一直是企业网络安全防护的薄弱点,也成为 HW 攻防演练期间红队的重要突破口;每年HW 期间爆发了大量的高危风险漏洞成为红队突破网络边界防护的一把利器,很多企业因为这些高危漏洞而导致整个防御体系被突破甚至靶…...
分布式数据库视角下的存储过程
存储过程很好呀,那些用不好的人就是自己水平烂,不接受反驳!我就有过这样念头,但分布式数据库,更倾向少用或不用存储过程。 1 我从C/S时代走来 C/S架构时代的末期最流行开发套件是PowerBuilder和Sybase数据库…...
深度学习常用的激活函数
深度学习的核心思想是通过多层次的神经网络结构,逐步抽取和表示数据中的高级特征,从而实现对复杂数据模式的学习和识别。 神经网络结构: 深度学习使用多层次的神经网络,包括输入层、隐藏层和输出层。这些网络结构允许模型自动学习…...
深度学习之用PyTorch实现逻辑回归
0.1 学习视频源于:b站:刘二大人《PyTorch深度学习实践》 0.2 本章内容为自主学习总结内容,若有错误欢迎指正! 代码(类比线性回归): # 调用库 import torch import torch.nn.functional as F#…...
04-4_Qt 5.9 C++开发指南_时间日期与定时器
文章目录 1. 时间日期相关的类2. 源码2.1 可视化UI设计2.2 dialog.h2.3 dialog.cpp 1. 时间日期相关的类 时间日期是经常遇到的数据类型,Qt 中时间日期类型的类如下。 QTime:时间数据类型,仅表示时间,如 15:23:13。 QDate:日期数据类型&…...
7个顶级开源数据集来训练自然语言处理(NLP)和文本模型
推荐:使用 NSDT场景编辑器快速助你搭建可二次编辑的3D应用场景 NLP现在是一个令人兴奋的领域,特别是在像AutoNLP这样的用例中,但很难掌握。开始使用NLP的主要问题是缺乏适当的指导和该领域的过度广度。很容易迷失在各种论文和代码中ÿ…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
