获取AOSP源码

下载AOSP源码

学习Android源码首先要下载一套AOSP源码,国内无法直接访问到AOSP网站。
AOSP源:https://source.android.com/source/downloading
可以用国内清华源或中科大源代替
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
中科大镜像:https://lug.ustc.edu.cn/wiki/mirrors/help/aosp

开发环境要求

硬件要求

您的开发工作站应该达到或超过这些硬件要求:

Android 2.3.x(姜饼)和更高版本(包括主分支)需要64位环境。您可以在32位系统上编译旧版本。 至少100GB的可用磁盘空间用于检出代码,另外还有额外的150GB可用于构建它。如果您执行多个构建或使用ccache,则需要更多空间。 如果您在虚拟机中运行Linux,则至少需要16GB的RAM /交换空间。

软件要求

在Android开源项目(AOSP) master的分支传统开发和Ubuntu的长期支持测试(LTS)版本,但也可以使用其他发布版本。
初次建议使用ubuntu发布版本,之后可以尝试其他例如Deepin。

开始下载

准备环境

  1. repo
    在ubuntu user 根目录执行
    mkdir ~/bin
    PATH=~/bin:$PATH
    curl https://storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
复制代码
  1. git
   $ sudo apt-get install git
   $ git config --global user.name "Your Name" 
   $ git config --global user.email "email@example.com"
复制代码
  1. 下载初始化包
    https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
    http://mirrors.ustc.edu.cn/aosp-monthly/
  2. 安装JDK
   $ sudo apt-get update
   $ sudo apt-get install openjdk-8-jdk
复制代码
  1. 处理初始化包 下载的初始化包 aosp-latest.tar
    在user 目录下新建 project 目录
   $ mkdir project  
   $ cd project  
复制代码

将aosp-latest.tar解压到project下,得到aosp-lastet文件夹。 (更名为aosp) 压缩

tar -xvf aosp-latest.tar //解压 tar包
复制代码
  1. 获得源码
    *直接获得aosp源码
  ~/project/aosp$ repo sync 
复制代码

*获取特定分支
在解压后的aosp目录下,需要修改repo分支(默认是master)
remotes/origin/android-8.1.0_r13
remotes/origin/android-p-preview-4

    查看可切换的分支
    ~/project/aosp$ cd .repo/manifests
    ~/project/aosp/.repo/manifests$ git branch -av   //查看可用分支
    ~/project/aosp$ git reset --hard remotes/origin/android-p-preview-4
            //~/project/aosp$ git reset --hard remotes/origin/android-8.1.0_r13  
    ~/project/aosp$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-p-preview-4   
           //~/project/aosp$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-8.1.0_r13   
    ~/project/aosp$ repo ysnc
复制代码

android-8.0.0_r13 对应版本:Oreo 对应设备:Pixel XL、Pixel、Pixel C
特定分支 https://source.android.com/source/build-numbers#source-code-tags-and-builds
由于网络原因repo sync容易断开,建议使用以下脚本:

    #!/bin/sh
    echo "---------start-----------"
    repo sync
    while [ $? == 1 ] ;do
    echo "---------gg--------------"
    sleep 3
    repo sync
    done
复制代码

复制以上保存为 dl.sh 在代码目录执行:

   ~/project/aosp$ ./dl.sh 
复制代码

等待结束就可以获得aosp源码

如果不需要全部代码,仅需要部分参考翻阅。
可以在repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-8.1.0_r13 之后
修改 android-O.repo\manifests\default.xml
将不需要的<project ... >注释掉,再repo sync 即可

可能遇到的问题

/usr/bin/env: ‘python’: No such file or directory
解决方案

这个问题出现是由于,解压的aosp镜像包默认分支为master,而解压后不想拉取master分支代码,希望获得 P 代码,则需要以下操作:

    查看可切换的分支
    ~/project/aosp$ cd .repo/manifests
    ~/project/aosp/.repo/manifests$ git branch -av   //查看可用分支
    ~/project/aosp$ git reset --hard remotes/origin/android-p-preview-4
    ~/project/aosp$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-p-preview-4   
    ~/project/aosp$ repo ysnc    //建议使用上面的 dl.sh 脚本
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值