欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Windows环境下,用VMware编译Lineage15.1安卓源码,并刷机RedmeNote5

时间:2023-07-02
为什么网上那么多分享了,还要再写一篇?

因为真的踩了太多的坑了。
一开始接到这个任务,我一搜网上那么多的分享,我也没当回事。可当我真的仔细去看,去实操的时候,发现了问题的严重性。

作者的各种环境、版本不清楚环境搭建不是从头开始的,经常编译了好几十分钟报错缺少依赖软件包教程很简单,基本就跟官网差不多。咱也不知道咋回事,每次到我这里就各种问题。一搜索也有很多人遇到,可就是分享教程的人遇不到。。。

注意: Lineage 15.1 本身是为 Redmi Note 5Pro 适配的系统,相关的厂商文件我没有抽取到也可能是因为这个。如果你有这两款机型,可以直接按照本教程操作。如果手头是其他机型,也可以去 Lineage 官网查看是否支持(相近机型也可以试试)。但是相信我,本分享十分完整,看完应该都会有些收获。

所需配置 硬盘空间 350GB 以上 内存 12GB以上 科学上网

虽然 lineage OS 有国内镜像源,但是部分资源在 Github 上,我这里的网络正常是无法访问 Github 的,有时浏览器能访问但是终端不行。

相关网站

Lineage 官网
Lineage whyred 编译教程

搭建虚拟机

Windows: windows 10 专业版
VMware: VMware Workstation 16 Pro
Ubuntu: ubuntu-20.04.3-desktop-amd64
注意事项:

ubuntu 硬盘大小 300GB 以上

下载并完整编译一次,需要不到 280 GB 空间。以后模块编译、多次编译肯定还需要更多的空间,目前我还没不知道,建议初始最少 300 GB。如果后面发现空间不够,VMware 也是可以扩容的。

ubuntu 内存 8GB以上 + ubuntu 核心 12 核

我的 windows 宿主机是 16GB 内存 + i5 10400f,第一次完整编译大概 2 小时左右

搭建 ubuntu 的软件环境

确定需要的

sudo apt install -y gcc m4 git openjdk-8-jdk libncurses5 imagemagick adb bison g+±multilib gcc-multilib curl python ccache libssl-dev

从 Google 官网 copy 的,里面可能有不需要的软件包。但是作为虚拟机,多安装了几个软件,也无所谓。

sudo apt install -y gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

软件配置修改 Git 配置 name,email。可以随便配置合法的值,不需要是 Github 或者某个 Gitlab 的账号

git config --global user.email “you@example.com”
git config --global user.name “Your Name”

取消 Git http 的 ssl 验证

git config --global http.sslVerify false

open-sdk

如果是其他高版本的源码可能不需要 open-sdk ,也就不用此步。
文件位置: /etc/java-8-openjdk/security/java.security
变量名:jdk.tls.disabledAlgorithms
要删除的值:TLSv1, TLSv1.1

jack-server

如果是其他高版本的源码,可能弃用了 jack 编译器,那么也就不需要这步。

打开 vi ~/.bashrc添加 export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -Xmx4096m"更新环境变量 source ~/.bashrc ccache 打开 vi ~/.bashrc添加

export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache

更新环境变量 source ~/.bashrc终端运行一下两个命令,可以提升编译速度,具体解释可以看官方文档

ccache -M 30G
ccache -o compression=true

下载 源码

此步骤基本参考以下链接,有部分细节补充
链接

下载 repo

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

repo 的源配置为清华大学的镜像地址 打开bash vi ~/.bashrc添加 export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'更新bash source ~/.bashrc 建立工作目录

这里可以自由创建

mkdir android-system
cd android-system
mkdir lineage-15.1
cd lineage-15.1

初始化仓库

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git -b lineage-15.1

修改系统源码的下载地址,使用清华大学镜像 设置 ubuntu 显示隐藏文件
2.1 >nautilus
2.2 在弹出的文件管理器的空白处,按 ctrl + h
2.3 如果出现了 .repo 文件夹就是设置成功了打开配置文件

cd .repo/manifests
nautilus

右键 default.xml ,用 文本编辑器打开
3、修改源
链接
参照链接中对 .repo/manifest.xml 的改动,修改 default.xml 就可以了

开启虚拟机 ubuntu 的科学上网

参考链接

我曾经就遇到过:浏览器可以打开 Github,命令行 curl https://github.com 也是秒回,但是源码下载的 Github 部分就时不时
的报错 链接不上。所以有条件的话,一开始就为虚拟机打开科学上网模式吧。

同步源码树

repo sync --no-clone-bundle

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。