Android AOSP基础(二)AOSP源码和内核源码下载

刘望舒
• 阅读 2925

title: "Android AOSP基础(二)AOSP源码和内核源码下载" date: 2019-3-9 00:18 cover: https://s2.ax1x.com/2019/05/27/VZRBi4.jpg tag:

  • AOSP基础 categories:
  • Android框架层

本文首发于微信公众号「后厂技术官」

前言

这篇文章我们来学习如何下载AOSP 源码,如果你还没有Linux 环境,请查看Android AOSP基础(一)VirtualBox 安装 Ubuntu这篇文章,另外如果你不需要编译源码,或者不需要最新的源码,可以直接从百度网盘:https://pan.baidu.com/s/1ngsZs 将源码下载下来。

1.关于AOSP

AOSP(Android Open Source Project)是Google开放的Android 开源项目,中文官网为:https://source.android.google.cn/。 AOSP通俗来讲就是一个Android系统源码项目,通过它可以定制 Android 操作系统,国内手机厂商都是在此基础上开发的定制系统。因为墙的缘故,如果无法连接谷歌服务器获取AOSP源码,可以从 清华大学镜像站或者 中科大镜像。本篇文章以清华大学镜像站为例。

2. 下载 repo工具

Android源码包含数百个git库,光是下载这么多的git库就是一项繁重的任务,所以Google开发了repo,它是用于管理Android版本库的一个工具,使用了Python对git进行了一定的封装,简化了对多个Git版本库的管理。 安装 Git,在Ubuntu输入如下命令:

sudo apt-get install git

可能会报如下的错误: Android AOSP基础(二)AOSP源码和内核源码下载

这个问题是有另外一个程序正在运行,导致资源被锁不可用,输入如下命令进行解决:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

接下来创建bin,并加入到PATH中。

mkdir ~/bin
PATH=~/bin:$PATH

安装curl库:

sudo apt-get install curl

下载repo并设置权限:

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

最后安装python,repo初始化时会用到:

sudo apt-get install python

重启虚拟机后,开始下载源码。

3. 下载源码

建立工作目录 :

mkdir aosp
cd aosp

repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc里:

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

设置身份,添加自己的邮箱和姓名:

git config --global user.email "piratemorgen@gmail.com"
git config --global user.name "piratemorgen"

初始化仓库:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

初始化并指定版本:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r8

同步源码:

repo sync

源码下载完成后,看到下面的信息可以说明下载成功。整个源码的大小为36.5 g

Android AOSP基础(二)AOSP源码和内核源码下载

4. 下载内核源码

AOSP源码中并不包括内核源码,需要单独下载,内核源码有很多版本,比如common是通用的Linux内核,msm是用于使用高通MSM芯片的Android设备,goldfish是用于Android模拟器的内核源码,这里以goldfish为例。

和下载AOSP源码一样,我们需要先建立工作目录 :

mkdir kernel
cd kernel

使用清华的镜像:

git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git

Android AOSP基础(二)AOSP源码和内核源码下载 这时kernel目录中会生成一个goldfish文件夹,进入goldfish目录并使用git命令。

cd goldfish
git branch -a

这时会列出有哪些内核的版本分支可以下载。 Android AOSP基础(二)AOSP源码和内核源码下载 这里选择下载goldfish 3.4版本。

git checkout remotes/origin/android-goldfish-3.4

感谢: https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ https://blog.csdn.net/counsellor/article/details/86591081 http://wuxiaolong.me/2018/07/07/AOSP1/ https://github.com/tuna/issues/issues/362

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
刘望舒 刘望舒
3年前
Android AOSP基础(三)Android系统源码的整编和单编
AOSP基础Android框架层本文首发于微信公众号「刘望舒」前言在上一篇文章中,我们顺利的将AOSP下载了下来,很多时候我们不仅仅需要去查看源码,还有以下的几个需求:动态调试Android系统源码定制Android系统将最新版本的Android系统刷入到自己的Android设备中将系统源码导入到AndroidStudio中为了实现这些需求,就
刘望舒 刘望舒
3年前
Android AOSP基础(五)Android Studio调试系统源码的三种方式
AOSP基础Android框架层本文首发于微信公众号「刘望舒」前言作为应用开发,我们将AOSP源码下载下来后,去查看源码已经足够用,如果想更进一步,可以学习调试源码,这样有助于了解系统源码和原理。调试系统源码的方式有很多种,今天分享出来的是比较适合应用开发的三种,分别是AOSP源码项目调试、导入部分源码调试、新建Android项目调试。需要注意的是,这三
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
病尉迟 病尉迟
1年前
Android AOSP基础(二)AOSP源码和内核源码下载
title:“AndroidAOSP基础(二)AOSP源码和内核源码下载”date:20193900:18cover:https://s2.ax1x.com/2019/05/27/VZRBi4.jpgtag:AOSP基础categories:Android
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这