前言
首先,关于AOSP
的编译可以查看我的这篇文章:AOSP的编译及刷机
我之前都是在MacOS
上构建的AOSP
的,但是自2021年6月22日起,AOSP
不再支持在Windows
或MacOS
上构建,但我又不想给我的电脑安装Ubuntu
双系统,只得另寻他路,在Windows
上使用WSL
就是一个很好的选择。
其实之前我尝试过用WSL
编译AOSP
,但几次都失败了,这次过年回家潜心研究了几天,总算是成功了,我会将我之前失败的原因和这次成功的心得总结分享给大家,教大家如何避坑
关于NAS
我是将我的AOSP
源码放在NAS
上进行编译的,毕竟磁盘空间够大,而且共享起来也方便,但需要千万注意 不要使用SMB
协议共享AOSP
源码编译,这样做直接就会卡在源码sync
完后的lunch
那一步,可以使用iSCSI
协议将NAS
上的一部分磁盘空间映射成一个虚拟磁盘,这样在Windows
上就可以将这块磁盘当成普通的硬盘使用,几乎完全没有区别
修改大小写敏感
在同步AOSP
源码前一定要做的工作,不然你就等着把辛苦下载好的源码删了重新下吧
在同步AOSP
源码之前,我们会首先创建一个新的目录用来保存它,我们新建完这个目录后,用管理员身份打开Windows
的Powershell
,执行以下命令:
1 | fsutil.exe file setCaseSensitiveInfo <path> enable |
其中的path
就是刚新建用来同步AOSP
源码的目录,需要注意的是,这个命令只对指定的目录有效,不会改变已存在的子目录的大小写敏感,所以千万要在同步代码之前做这件事
重新挂载磁盘
如果你的AOSP
源码放在了Windows
驱动器上,比如说 F:\aosp
,在WSL
中的路径应该是 /mnt/f/aosp
这种形式的,此时需要以drvfs
文件系统重新挂载盘符,否则编译到中途会报错:
1 | sudo umount /mnt/f |
注意,每次WSL
重启,在编译AOSP
之前都需要执行这步操作,当然你也可以将它新建成WSL
的一个开机服务,确保每次打开WSL
都会执行这两段命令
尾声
可以发现,用WSL
编译出错主要还是文件系统的问题,经过以上几步前置工作,相信你一定可以顺利的编译AOSP