给自己的小米8青春版手机编译LineageOS类原生安卓系统
编译
❗注意事项
Windows启用WSL2,可以看看我这篇文章Windows11启用WSL2并安装ArchLinux
❗官方文档推荐Ubuntu20.04 LTS,所以这里演示的是WSL2 + Ubuntu20.04 LTS编译的操作,>或<20.04 LTS版本安装生成包与本篇文章有区别,请自行查看官方文档。
1 | [Windows下载安装Ubuntu20.04 LTS] |
安装完成后会自动打开Linux
1 | [用户名] |
💾安装生成包
如果安装太慢,就换源,详情看
1 | [安装生成包] |
安装Python
下载设备的特定配置和内核时,一直出错,眼瞎最后才发现需要Python - w -
1 | sudo apt-get install python-is-python3 |
创建目录
💾安装 repo
谷歌源可能会卡顿,你可以换清华镜像源,详情请看清华lineageOS 源代码镜像使用帮助
将 ~/bin 目录放在执行路径中
新版本的 Ubuntu 中, /bin 应该已经在您的 PATH 中,检查/.profile文件验证是否有以下代码,没有自行添加。
1 | [打开~/.profile文件编辑] |
配置 git
1 | [简单配置以下账户与邮箱,貌似不需要真实的,但推荐用真的-w-] |
打开缓存以加快构建速度
1 | [编辑~/.profile文件,并键入以下命令] |
初始化 LineageOS 源存储库
注意这段的可用分支
小米8青春版官方推荐构建lineage-18.1,但我这里选择最新版21.0
1 | [到/android/lineage目录下] |
🪞清华镜像源
1 | [到/android/lineage目录下] |
打开窗户🪟,坐在椅子💺上戴着耳机🎧听几首歌🎵或者啃着薯条🍟喝着可乐🧃追部番剧🎞️,静静等待完成。
预计用时:50m5+2m49 7m11.206s+1h13m9.209s
在准备构建前你可能需要增加交换空间
没有交换分区会导致构建失败
根据自己内存与设备储存自行更改数值大小
WSL2下修改交换内存,原系统下如何修改自行搜索。
用户目录自动跳转路径%UserProfile%
在用户目录下创建.wslconfig文件
1 | [wsl2] |
默认情况下
swap 为 Windows 上内存大小的 25%
主要修改swap的值,推荐64G
memory 为 Windows 总内存的 80%
processsors 与 Windows 上的处理器核心数量相同
详情请看WSL 中的高级设置配置
1 | [关闭WSL2] |
1 | [查看交换空间大小] |
准备特定于设备的代码
1 | [到源代码的根目录] |
::: warning
某些设备需要在成功之前填充供应商目录。如果在此处收到有关生成文件的错误,需要提取专有Blob,完成后可以重新运行 breakfast platina。
:::
从基于有效负载的 OTA 中提取专有 blob
创建一个临时目录来提取 zip 的内容并移动到那里
1 | mkdir ~/android/system_dump/ |
要使用 payload.bin 提取器,您将需要 python3-protobuf,如果您还没有它
1 | sudo apt-get install python3-protobuf |
提取世系中的payload.bin-*.zip:
1 | unzip path/to/lineage-*.zip |
其中 path/to/ 是可安装 zip 的路径。
1 |
|
会有双红色‼️感叹号,但这不是问题。
重新尝试准备特定于设备的代码
1 | [到源代码的根目录] |
开始构建
1 | [到源代码根目录] |
签名
1 | [到android根目录下] |
参数代表
C —> Country Name (2 letter code)
ST —> State or Province Name (full name)
L —> Locality Name (eg, city)
O —> Organization Name (eg, company)
OU —> Organizational Unit Name (eg, section)
CN —> Common Name (eg, your name or your server’s hostname)
emailAddress —> Contact email address
C —> 国家/地区名称(2 个字母代码)
ST —> 州或省名称(全名)
L —> 地点名称(例如城市)
O —> 组织名称(例如公司)
OU —> 组织单位名称(例如,部门)
CN —> 通用名称(例如,您的姓名或服务器的主机名)
emailAddress —> 联系电子邮件地址
有可能遇到 error: Cannot locate config makefile for product “lineage_platina”. 的问题
解决方案 科学上网,自行搜索
WSL2 Ub v2
clash 开启tun模式在常规里安装服务模式就行。service mode
tun 模式
tun:
enable: false # enable ‘true’
mtu: 1500
stack: system # or ‘gvisor’
dns-hijack:
- “any:53”
- “tcp://any:53”
auto-route: true
auto-detect-interface: true
[[[ ]]] /home/bakaxiaofang/.android-certs/bluetooth
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.adbd
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.adservices
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.adservices.api
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.appsearch
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.art
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.bluetooth
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.btservices
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.cellbroadcast
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.compos
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.configinfrastructure
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.connectivity.resources
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.conscrypt
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.devicelock
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.extservices
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.graphics.pdf
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.hardware.biometrics.face.virtual
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.hardware.biometrics.fingerprint.virtual
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.hardware.boot
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.hardware.cas
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.hardware.wifi
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.healthfitness
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.hotspot2.osulogin
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.i18n
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.ipsec
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.media
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.media.swcodec
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.mediaprovider
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.nearby.halfsheet
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.networkstack.tethering
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.neuralnetworks
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.ondevicepersonalization
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.os.statsd
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.permission
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.resolv
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.rkpd
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.runtime
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.safetycenter.resources
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.scheduling
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.sdkext
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.support.apexer
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.telephony
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.telephonymodules
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.tethering
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.tzdata
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.uwb
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.uwb.resources
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.virt
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.vndk.current
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.vndk.current.on_vendor
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.wifi
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.wifi.dialog
[[[ ]]] /home/bakaxiaofang/.android-certs/com.android.wifi.resources
[[[ ]]] /home/bakaxiaofang/.android-certs/com.google.pixel.camera.hal
[[[ ]]] /home/bakaxiaofang/.android-certs/com.google.pixel.vibrator.hal
[[[ ]]] /home/bakaxiaofang/.android-certs/com.qorvo.uwb
[[[ ]]] /home/bakaxiaofang/.android-certs/media
[[[ ]]] /home/bakaxiaofang/.android-certs/networkstack
[[[ ]]] /home/bakaxiaofang/.android-certs/platform
[[[ ]]] /home/bakaxiaofang/.android-certs/releasekey
[[[ ]]] /home/bakaxiaofang/.android-certs/sdk_sandbox
[[[ ]]] /home/bakaxiaofang/.android-certs/shared