为红米Note 5 Pro编译Lineage OS 15.1的各种坑

时间:2024-03-03 18:56:57

安装了ubuntu虚拟机,直接上网repo sync,网速特别慢,中间断了好多次,记得是3天吧,总算是下载成功了。中途还在淘宝上买过付费的VPN代理软件,有时候会打开代理来尝试,也是不太稳定。好歹第1步是完成了。

但在执行breakfast whyred的时候,下载源码总是出错,不管是否使用代理服务器。而且出错后还必须重新下载。这个步骤也折腾了几天。

折腾得快要放弃了。开始考虑使用云服务器来编译,对比了aws和阿里的产品,也申请了免费试用的,以及付费试用的,windows, ubuntu, ftp服务器搭建等等测试了几天。终于咬牙买了一个比较高配的阿里云服务器ubuntu 16.04。启动后结果发现是没有图形界面的,因此又种参考教程,各种折腾,安装了ubuntu desktop图形界面,终于可以又从0开始研究LineageOS的下载编译了。

云服务器网速确实快,在执行repo sync的时候,大概1个小时不到就全部下载完了,看到terminal中打印的下载速度大概是5M,大B。

各种顺利了!好幸福。

根据文档从LineageOS 15.1的zip安装包中提取proprietary文件时,安装包解压后是没有system.new.dat文件的,但是有system.new.dat.br文件,这个br文件是android中的一种压缩文件,必须使用brotli解压才能得到system.new.dat文件。

apt-get install brotli

brotli --decompress --input system.new.dat.br --output system.new.dat

然后继续按照教程中的步骤,来提取proprietary文件。

编译whyred时,按照上述方法从安装包中提取了proprietary文件,在编译的时候,会报错,大意是某些APK文件找不到,无法继续编译。看起来是文件不全,但是因为是在阿里云服务器中编译的,也没有红米手机,因此没办法从设备中提取实际的文件。继续找方法,发现有篇文章:https://blog.csdn.net/fftt516/article/details/78160488 介绍了从github上面获取proprietary的方法,就是gedit打开文件 ~/android/.repo/local_manifests/roomservice.xml文件,添加:

<project name="TheMuppets/proprietary_vendor_xiaomi" path="vendor/xiaomi" remote="github" />

然后repo sync再次执行以下,就会在vendor目录下面生成xiaomi子目录,里面包含了各种小米手机型号对应的proprietary,其中就有我们需要的whyred

继续按照wiki文件进行编译就好了。