wsl编译android13源码并刷入pixel6

发布时间 2023-06-15 16:39:02作者: 怎么可以吃突突

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中