编译环境说明
- 适用硬件:XiaoMi Max3 (代号nitrogen)
- 编译系统:Debian For Win10 WSL2
- 参考借鉴:Redmi Note 7 | MIX2 9.0 | Ubuntu 16.04 | Redmi Note 4X
搭建编译环境
1 | sudo apt update |
获取系统源码
- 安装源码管理工具REPO
1 | # 谷歌的repo需要python2而清华的repo则是python3 |
- 获取LineageOS系统源码的清单
1 | mkdir lineage && cd lineage |
- 也可改用清华源来加速下载
1 | repo init -b lineage-16.0 -u \ |
- 根据repo的清单下载LineageOS系统源码
1 | # 开始下载LineageOS系统源码,可能需要几小时 |
获取设备资源
需要的设备资源包括但不限于设备源码,内核源码,厂商闭源驱动vendor
如果有LineageOS官方维护的设备那么可以根据如下获取设备资源
1 | # 通过网络下载官方支持的设备源码及内核源码 |
- 若无官方维护但已有对应的非官方设备源码
1 | # 小米Max3的非官方设备源码:https://github.com/kirillinda/device_xiaomi_nitrogen |
- 对于设备既没有官方维护,也没有非官方源码,但是有其他ROM的源码可参考这个移植
开始编译系统
- 设置优化编译环境
1 | # 先把项目源文件用ccache编译器编译,然后缓存编译生成的信息 |
- 开始编译系统源码
1 | source build/envsetup.sh # 配置环境变量和编译工具路径等 |
- 刷入生成的LineageOS包前应刷入MIUI 9.9.3的底包
1 | # 查看device_xiaomi_nitrogen/board-info.txt显示为: |
- 生成文件刷入设备
1 | # 生成的LineageOS系统相关文件在如下位置: |
其他问题集锦
1 | # 编译源码时内存不足解决方案,注意是在执行完source和lunch之后 |