wsl编译环境
环境依赖参考编译android 10时设置的环境 https://www.cnblogs.com/revercc/p/16826591.html,这里注意wsl使用的ext4文件系统,此文件系统区分大小写,而windows由于历史原因使用的是NTFS文件系统,此文件系统默认是不区分大小写的。所以在wsl的共享目录中需要开启区分大小写,通过windows的fsutil.exe工具进行设置。
// 开启share_path共享目录区分大小写
fsutil.exe file setCaseSensitiveInfo <share_path> enable
// 查询是否开启成功
fsutil.exe file queryCaseSensitiveInfo <share_path>
同时需要注意需要在下载源码前就为共享目录开启区分大小写,原因是区分大小的设置只会对当前目录已有的文件生效,对其子目录以及子目录中的文件并不会生效,只有新创建的文件才会继承此设置。具体原因请参考https://learn.microsoft.com/zh-cn/windows/wsl/case-sensitivity
源码下载
源码下载和android10源码编译一样: https://www.cnblogs.com/revercc/p/16826591.html。
开始编译
source build/envsetup.sh
lunch
//选择 aosp_oriole-userdebug
make -j8
在ubuntu虚拟机环境下应该会正常编译,但是在wsl中编译会产生问题(源码放在windows目录中)。这个问题应该是wsl不兼容的问题,编译时调用fstat
函数获取文件信息会失败。具体报错代码位置如下。
需要对代码进行修改,在fstat
函数调用失败后调用SeekFile64
获取文件大小。
修改代码再次编译即可成功。
刷入pixel6中
标签:android13,区分,wsl,编译,源码,大小写,windows From: https://www.cnblogs.com/revercc/p/17483324.html