Mac上下载及编译android源码

本文档详细介绍了如何在Mac上搭建AOSP(Android Open Source Project)开发环境,包括创建大小写敏感的磁盘镜像、安装必备工具如Homebrew、Git等,以及解决编译过程中的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:

     https://blog.youkuaiyun.com/u010963246/article/details/71480684

     https://blog.youkuaiyun.com/qq_25333681/article/details/79838325

     https://blog.youkuaiyun.com/h649305597/article/details/80322488

     

在Mac上下载aosp时,虽然有很多网上的教程可以参考,如清华大学开源软件镜像站,但是还是碰到了很多不常见的问题,以此记录,无法翻墙,使用清华大学镜像进行下载.

1. 创建大小写敏感的磁盘镜像。

   可以通过mac自带的磁盘工具进行创建。也可以通过命令行的方式进行创建,由于命令行相对简单,在此只介绍命令行的方式:

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 100g ~/android.dmg 己由于源码较大及需要编译的话需要的空间更大,故将磁盘镜像设置为100g的大小。创建完后,可以双击将其挂在到/Volumes/android 下,后续可以在此路径下查看镜像中的文件。创建此磁盘镜像是为后续存放源码,至于为何需要创建,是由于源码中有些文件是通过大小写进行区分的,即其文件名一样,只是大小写不一样。如果在不区分大小写的磁盘上,通过git status等时,会无法区分是修改的哪个文件中的内容。

 

2.安装brew(Homebrew)。

   Homebrew简称brew,是OSX上的软件包管理工具,通过终端便可以通过brew安装、更新、卸载软件。为之后通过brew来安装软件做准备。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  

 3.安装gnupg。

   通过brew安装gpg。

brew install gpg

   为何需要安装,原因是在进行repo init的时候:

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

   会提示如下错误:

warning: gpg (GnuPG) is not available.
warning: Installing it is strongly encouraged.

  原因是没有安装gpg,安装即可。

4.安装git。

  用于后续使用git管理分支用,及通过git拉取repo。

  通过下面的命令进行git安装,配置在github文章中有介绍:

brew install git

5.在家目录下创建存放repo的目录,并加入到环境变量中

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

6.下载repo并复制到bin下,并赋予权限

git clone https://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
cp git-repo/repo ~/bin/
chmod a+x ~/bin/repo

7.建立源码目录

cd /Volumes/Android
mkdir aosp

8.在源码目录初始化仓库

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

9.如果步骤8中提示无法连接到gerrit.googlesource.com,则需要修改bin/repo中的REPO_URL进行如下修改。再初始化仓库。

REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

10.如果继续提示[Errno 8] nodename nor servname provided, or not known,则在源码目录下新建.repo目录,将git-repo复制到其下,并重命名为repo。然后再进行步骤8。

11.同步代码

repo sync

 

编译:

 

编译流程一致,主要记录编译过程中遇到的问题:

1.找不到对应版本的的macOS.sdk  

internal error: Could not find a supported mac sdk: [“10.10” “10.11” “10.12”]

由于/Library/Developer/CommandLineTools/SDKs/ 中只有MacOSX10.13.sdk 没有要求的版本,所以需要下载对应的MacOSX10.13.sdk。通过此地址下再对应的sdk,然后解压到上述路径中。至于.xz文件的解压可通过一下命令

xz -d *.tar.xz 
tar -xvf *.tar

解压如果碰到找不到xz命令,则需要安装xz即可。

2.bison不能正常使用

8.1上具体报错为:

[  0% 310/89583] //external/selinux/ch...eckpolicy yacc policy_parse.y [darwin
FAILED: out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.c out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.h 
BISON_PKGDATADIR=external/bison/data prebuilts/misc/darwin-x86/bison/bison -d  --defines=out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.h -o out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.c external/selinux/checkpolicy/policy_parse.y
[  0% 317/89583] //system/core/bootstat:bootstat clang++ bootstat.cpp
ninja: build stopped: subcommand failed.
12:58:42 ninja failed with: exit status 1

解决办法参考 https://blog.youkuaiyun.com/h649305597/article/details/80322488 即可。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值