type
status
date
slug
summary
tags
category
icon
password
aosp现在使用soong编译工具进行编译了,比之前的老版本编译要容易方便得多了.
步骤
- 配置好repo等工具
- 下载aosp源码
- 开始编译
- 模拟器演示或者刷写到真实设备上
其实这几个步骤都没什么好说的.第一二步按照要求下载工具和源码即可,当然最好有一个科学上网的环境,不行的化用清华的镜像源也是可以的.
查看分支/切换分支
在已经下载好源码之后:
- 查看分支
cd .repo/manifests git branch -a | cut -d / -f 3
- 切换分支
repo forall -c git checkout xx_branch repo sync
重置修改的代码
repo forall -c git reset --hard
编译
进入源码根目录,然后执行:
. build/envsetup.sh
lunch
这一步会让你选择构建的Android系统类型
m droid
大概需要编译10万个C/C++文件,耗时1~4个小时.
编译时可能出现的问题
- 大小写敏感的磁盘格式问题
Android官方文档有格式化的办法构建编译环境
- too many files
我用的是MacOS,出现这种问题是因为系统对打开的文件个数有限制.
可以在环境变量中设置最大打开文件的个数(.bash_profile,或者.zshrc之类的):
# set the number of open files to be 1024 ulimit -S -n 2048
- 证书错误
Downloading Repo source from <https://gerrit.googlesource.com/git-repo> fatal: Cannot get <https://gerrit.googlesource.com/git-repo/clone.bundle> fatal: error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) fatal: cloning the git-repo repository failed, will remove '.repo/repo'
初始化repo的时候添加
--no-clone-bundle
:repo init -u <https://android.googlesource.com/platform/manifest> --no-clone-bundle
- 作者:姜康
- 链接:https://jiangkang.tech/article/72406822-adf8-4527-953d-e3c1f916fe59
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章