-
-
Android 10.0 源码编译
-
发表于: 2022-10-31 09:41 18503
-
macOS 13寸,2020款,CPU:2.3 GHz 四核;内存:32 GB;三星 T7 固态硬盘 500G ( mac 的硬盘过于昂贵,为长治久安计,接纳了大佬朋友的建议,使用了移动硬盘。)。
请打开 macOS 自带的 "磁盘工具" ,选中自己的移动硬盘/ 自己本身的电脑硬盘分区出来一份,点击抹掉,并且选中 "Mac os 扩展 (区分大小写,日志式)"。
tips:记得备份硬盘已经存在的重要数据,此操作会删除选中硬盘 or 分区所有数据。
Android 系统的源代码统一由 repo 管理,Android 7.0 之后系统的构建由 GNU Make 逐渐改为 Soong 。
文档整理资料参考于:清华大学开源软件镜像站 、源代码控制工具、谷歌官方构建文档、以及几位大佬的指导。
我似乎没遇到这个问题,但是大家还是加上吧。毕竟编译俩小时了突然失败,还是很难受的。
执行 vi ~/.zshrc 或者 vi ~/.bash_profile ,最后添加下面两行:
tips:
如果科学上网工具不给力,建议使用清华源。
替换方式:
不设置会报错,强制的。
切换到需要同步源码的硬盘/分区对应的目录下
使用清华源:
牛人请用谷歌官方提供地址:
-b 后面是你需要同步的源码标记,谷歌提供了这些版本可以下载:可选列表
我这里要编译 10.0 ,选择了:android-10.0.0_r42
这一步操作完,基本不会报错了,剩下的就是等待。我自己同步大概需要:3.5 H 左右。
tips:此步骤可能会遇到一堆问题。具体问题可具体讨论~
切换 shell 到 WORKING_DIRECTORY 下
直接执行 lunch ,命令行会列出所有可以编译的架构。我这里选择 aosp_x86_64-eng ,编号 24。
ps: 这一步会有很多问题~ 再议~
tips: m/make 有一个参数:-j ,设置并行任务数。不设置的话 x一般取你的cpu核心数*2+2(谷歌文档未找出对应说明,这里是从其他作者博客上看到的。)实测如果直接 m/make,在同时使用 Android Studio 时我电脑 cpu 会被打满……
这里建议单独抽时间来编译,不要影响正常的电脑使用。
即可启动模拟器运行刚编译好的 android-10.0.0 aosp_x86_64-eng 架构的 Android 系统。
实测:
编译 aosp_arm
-
eng ,需要
1.7
小时左右。编译 aosp_x86_64
-
eng 耗费了
3.5
小时左右。
解决错误时偶遇一位大佬,使用的是
15
款 mac pro,大概编译了
8H
左右!各位同学编译时要对这个时间做好心理建设~
实测:
编译 aosp_arm
-
eng ,需要
1.7
小时左右。编译 aosp_x86_64
-
eng 耗费了
3.5
小时左右。
解决错误时偶遇一位大佬,使用的是
15
款 mac pro,大概编译了
8H
左右!各位同学编译时要对这个时间做好心理建设~
因为编译使用到 clang ,所以需要下载 xcode。 xcode 大概有:
15G
左右。
执行命令:xcode
-
select
-
-
install 或者去 App Store 直接下载 xcode。
因为编译使用到 clang ,所以需要下载 xcode。 xcode 大概有:
15G
左右。
执行命令:xcode
-
select
-
-
install 或者去 App Store 直接下载 xcode。
set
the number of
open
files to be
1024
ulimit
-
S
-
n
1024
set
the number of
open
files to be
1024
ulimit
-
S
-
n
1024
因为:Repo 是基于 Python
2.x
中的特定功能构建的,与 Python
3
不兼容。要使用 Repo,请安装 Python
2.x
:
因为:Repo 是基于 Python
2.x
中的特定功能构建的,与 Python
3
不兼容。要使用 Repo,请安装 Python
2.x
:
mkdir ~
/
bin
/
/
在根目录下创建
bin
目录。此处复制自文档,其实你创建啥名字,在哪个目录都行。
PATH
=
~
/
bin
:$PATH
/
/
将此目录加入环境变量。(也可以 vi ~
/
.zshrc
or
vi ~
/
.bash_profile 自己加入)
curl https:
/
/
storage.googleapis.com
/
git
-
repo
-
downloads
/
repo > ~
/
bin
/
repo
/
/
curl 下载 repo 到
bin
目录
chmod a
+
x ~
/
bin
/
repo
/
/
给与 repo 文件可执行权限。a 是针对所有用户,x 是可执行权限。
mkdir ~
/
bin
/
/
在根目录下创建
bin
目录。此处复制自文档,其实你创建啥名字,在哪个目录都行。
PATH
=
~
/
bin
:$PATH
/
/
将此目录加入环境变量。(也可以 vi ~
/
.zshrc
or
vi ~
/
.bash_profile 自己加入)
curl https:
/
/
storage.googleapis.com
/
git
-
repo
-
downloads
/
repo > ~
/
bin
/
repo
/
/
curl 下载 repo 到
bin
目录
chmod a
+
x ~
/
bin
/
repo
/
/
给与 repo 文件可执行权限。a 是针对所有用户,x 是可执行权限。