由于本人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 写到这里踩的坑先放一放,再遇见再更新