MACOS下从零开始编译AOSP踩坑记录

由于本人macos硬盘只有256G大,也不想特意换个硬盘刷系统,于是准备了一块外置移动硬盘和外置硬盘线就开搞了。

一定一定一定一定要确保硬盘线稳定,因为无论是 下载、编译、解压 都是特别耗时的操作,这时候硬盘线断了,你懂的

还有个人强烈建议:系统设置->锁定屏幕->所有休眠相关的全都改为从不,一旦休眠就哭吧

首先在 启动台->其他->磁盘工具 把硬盘格式化一下,AOSP需要区分大小写,那就把硬盘格式化成APFS区分大小写的版本

 AOSP的源码大概为66G左右,算上预留虚拟机,AndroidStudio等工具的空间,准备200G应该差不多

AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

接着按照清华大学AOSP镜像文档提示,下载repo工具。

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

在终端里输入即可

接下来为了下载AOSP源码有两种选择,一是https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar直接把源码下载下来,也是我个人比较推荐的一种。另一种是建立目录,自己选定版本重新下

一、直接下载源码

curl -OC - https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP   # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码

建立你想放置代码的目录,下载,解压,在AOSP源码文件夹根目录下repo sync即可,简单省事儿

二、传统方式

新建目录

mkdir AOSP
cd AOSP

配置环境变量

nano ~/.bashrc

//将这段代码复制到下面
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

control+x 退出 y确定 enter确定

//更新环境变量
source ~/.bashrc

repo下载

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-4.0.1_r1

安卓版本列表 (需要翻墙)
https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds

下载完成后repo sync即可

至此源码下载结束

————————————————————————————————————————

将AOSP源码编译到模拟器运行->原文Mac下Android源码(AOSP)编译环境搭建方法_macos外置硬盘下载编译aosp_匿影寻踪的博客-CSDN博客

写在最前面,为了避免耽误时间,如果是最新版macos可能会有这种问题:

笔者见到最经常的是不支持macos 13

"Unsupported macOS SDK version \"13.3\" not in [11 12]"

 编译期间可能的踩坑-> 在MacOS编译AOSP时遇到的问题和解决方案 - 简书

与之略有出入的是build/soong/cc/config/x86_darwin_host.go文件笔者没找到,转而修改darwin_host.go也能通过编译

	darwinSupportedSdkVersions = []string{
		"11",
		"12",
		"10",
		"13",
	}

在最后一个数字后千万别忘了“,” 逗号,go语法是要求有逗号的

——————————————————————————————————————————

为了避免bug和加快速度,先做这一步

//查看可执行文件数
ulimit -S -n
//设置为1024个
ulimit -S -n 1024

之后开始编译

//配置环境变量,可能会卡主
source build/envsetup.sh

//启动编译,查看可编译列表。根据个人环境可能会卡死很久
lunch

//根据个人喜好选择编译目标,输入序号或者名称皆可。个人建议aosp_arm-eng
lunch aosp_arm-eng

//根据电脑核心数和线程数选择编译并行数,可以不加直接使用make,但是慢的要命。笔者是2核4线程所以并行8个,一般是一到2倍所以选择-j16
//然后就是非常非常漫长的等待
make -j16

模拟器运行可以直接使用

emulator

如果需要在AndroidStudio中导入代码,参考一步一步教你如何在AndroidStudio查看Android源码(AOSP源码)_android studio项目源码_卜大爷的博客-CSDN博客 生成android.ipr等文件
执行下面的命令即可生成android.ipr等文件:

cd ~/aosp //具体的源码根目录
source build/envsetup.sh //用于初始化环境变量
mmm development/tools/idegen/  //生成文件out/host/linux-x86/framework/idegen.jar
./development/tools/idegen/idegen.sh//源码根目录生成文件android.ipr(工程相关设置), android.iml(模块相关配置)

启动as后在根目录打开android.ipr即可

——————————————————————————————————————

2023-07-05 写到这里踩的坑先放一放,再遇见再更新

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值