侧边栏壁纸
博主头像
潦草地博主等级

行动起来,活在当下

  • 累计撰写 3 篇文章
  • 累计创建 2 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

AOSP源码环境搭建

Storen
2024-03-15 / 0 评论 / 0 点赞 / 38 阅读 / 4217 字

AOSP源码环境搭建

下载源码

AOSP源码是通过Repo和Git管理的,下载之前需进行基本的配置。

配置Repo

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

配置Git

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

开始下载

这里提供两种方式:

1、谷歌官网方式

https://source.android.com/docs/setup/start?hl=zh-cn

2、清华大学镜像方式(推荐)

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

编译源码

在编译源码之前,可先了解下AOSP源码的编译工具相关内容。

SoongMake

Android.bp、Android.mk

Ninja

https://source.android.com/docs/setup/build?hl=zh-cn

经过数小时源码下载后,我们正式开始AOSP代码的编译。

完整编译

整编命令就4个,只是比较耗时,单独编译一次数小时。

官方参考文档

https://source.android.com/docs/setup/build/building?hl=zh-cn

设置环境

source build/envsetup.sh

或者

. build/envsetup.sh

选择产品

lunch

开始构建

make

单独模块编译

以Settings为例,执行完 source lunch 命令后,

cd packages/app/Settings
mm

或者

make Settings

常用命令及说明

  • m :等同于 make ,进行一次完整编译。

  • mm:在当前目录下编译所有模块,但不包括依赖项。

  • mmm [目录]:编译指定目录下的所有模块,但不包括依赖项。只编译指定模块:mmm [dir/:target1,target2]

  • mma:在当前目录下编译所有模块,包括依赖项。

  • mmma [目录]:编译指定目录下的所有模块,包括依赖项。

  • make clean:删除整个 out/ 目录。

  • make clobber:用于清除编译缓存。

  • make snod:当重新编译部分模块完成后,快速生成system.img文件。

  • cgrep:对C/C++文件执行 grep (只搜寻C/C++文件类型,也包括.h类型)。

  • jgrep:只对Java文件执行 grep (只搜寻Java文件类型)。

  • resgrep:只匹配 /res 目录下的 xml 文件。

  • sepgrep:只查找sepolicy文件。

0

评论区