参考:
https://wiki.lineageos.org/devices/lemonadep/build
https://wiki.lineageos.org/devices/lemonadep/install
https://mirrors.tuna.tsinghua.edu.cn/help/lineageOS/

写在前面

做Android的伙伴往往都需要编译Android的源码,之前使用过编译过AOSP源码,搭配 Hikey 系列开发板 和 Pixel系列手机使用,编译AOSP源码和刷镜像的过程太过繁杂,经常会出现各处error,而且新版本的编译方式变化较大。

最近接触LIneageOS,编译烧录都很简单,记录下流程和遇到的问题。

1. 解锁手机

拿到手机后,手机默认的OS系统都是原始出厂的,例如OnePlus 9Pro 的是 ColorOS,这是没有解锁的,adb root 之后就会初现下面的错误:

解锁操作如下:

  1. 在设置里面多次点击系统版本号打开开发者模式
  2. 进入开发者选项,找到OEM 解锁,点击解锁,但是可能会打不开(按钮是灰色的),科学上网后,在设置里面登入google账号即可激活按钮
  3. 进入fastboot 模式,进行解锁:
adb reboot fastboot
fastboot devices
# 解锁命令因设备而异:
fastboot oem unlock             # oneplus 9 pro
fastboot flashing unlock        # pixel 4

2. 下载源码

跟着官网教程从仓库拉取源码会出现各种网络连接错误,需要使用科学上网才能顺利拉取完整仓库,但是我尝试了科学上网仍然没有成功。
这里推荐使用清华镜像站下载源码:
https://mirrors.tuna.tsinghua.edu.cn/help/lineageOS/

在repo init 时将版本修改为目标版本即可:

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

3. 刷入初始镜像

部分型号手机在编译阶段会需要手机一些配置信息,因此需要先向手机刷入初始镜像,然后从手机中提取这些配置信息
lineageOS for OnePlus 9 Pro 镜像下载网址:https://download.lineageos.org/lemonadep
其他型号在里面也能找到

adb reboot revocery          # 进入recovery 模式
# 通过音量按键 擦除数据:
Factory Reset  => Format data / factory reset
adb sideload ***.zip        # 刷入镜像
reboot

4. 编译

cd ~/android/lineage
source build/envsetup.sh        # 配置环境变量
breakfast lemonadep             # 预编译 lemonadep为手机型号代号# 将手机连接到服务器然后从手机端拉取配置信息到源码目录
cd device/oneplus/lemonadep
./extract-files.sh                  # 拉取配置信息cd ~/android/lineage
croot
brunch lemonadep                    # 正式编译

编译完会在 ~/android/lineage/out/target/product/***/lemonadep 目录生成 lineage-18.1-20220509-UNOFFICIAL-lemonadep.zip 和各个.img镜像
在recovery 模式下通过 adb sideload **.zip刷入即可

5. 问题

在拉取手机配置信息阶段,直接运行extract-files.sh应该就能完成
但是我没有成功,会报缺少配置文件
解决方法:
直接通过adb从已经刷入lineageOS的手机上拉取缺失的文件,丢到源码目录android/lineage/vendor即可
手机目录与源码目录存在对应关系

6. 变砖

如果在刷镜像的过程中出现变砖的情况,可以参考大佬的方法救砖(for OnePlus 9pro):https://www.bilibili.com/s/video/BV18h411S73L

就完砖之后,系统又变成ColorOS了,重复上面的过程可以再次刷成lineageOS

如果在recovery 模式无法使用adb,可以考虑先通过fastboot模式刷入 boot.img 镜像,让启动镜像变成lineageOS匹配,然后就可以使用adb sideload

编译LineageOS相关推荐

  1. 给红米Note 4X编译LineageOS 14.1刷机包过程【详细】

    最近忙着找工作,今天就把以前的一篇文章放上来,防止自己搞忘,也帮助他人少走冤枉路.小米的MIUI确实做得很不错,但是可能你不会知道,它背后收集了大量你的系统数据和用户使用数据,现在是一个强调网络安全, ...

  2. 编译 LineageOS 源码,并重定义 kernel log

    1.下载清华源的 repo curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo ../repo i ...

  3. LineageOS编译

    目录 准备 下载并解压SDK 安装adb和fastboot 安装Repo和python 安装依赖 设置 git 清华源源代码镜像 过程摘录 异常处理 下载机型配置 拉取vendor 开启缓存 开始编译 ...

  4. 为一加七Pro(LineageOs17.1 4.14内核版本)编译KernelSu

    编译内核 因为一加七的内核版本是4.14,所以想使用kernelsu,需要自己将kernelsu编译到内核里. 我使用的系统是:LineageOS17.1,对于之后的lineage版本同样适用,只是拉 ...

  5. 使用Aosp源码编译安卓ROM(小米,一加,三星,中兴等)

    这是一篇实用性很强的文章,除了这段引言,其它的都不是废话:这篇文章教会你如何在你的大部分主流安卓机型上(小米,一加,三星,oppo,华硕,Google,Htc,华为,联想,LG,摩托,索尼,红米)使用 ...

  6. Ubuntu 小米6 LineageOS源码编译

    小米6 LineageOS 源码编译官方教程:https://wiki.lineageos.org/devices/sagit/build#extract-proprietary-blobs 1. 安 ...

  7. 最新 lineageos 编译过程 详细过程

    sudo apt-get update https://github.com/MiCode/Xiaomi_Kernel_OpenSource repo init -u https://mirrors. ...

  8. OnePlus 7T LineageOS 编译向导

    OnePlus 7T LineageOS 编译向导 安装编译所需依赖 sudo apt install bc bison build-essential ccache curl flex g++-mu ...

  9. 小米Max2 LineageOS编译过程 ubuntu

    第一步:配置环境,我的环境是ubuntu 17.10 sudo apt update sudo apt upgrade sudo apt install bc bison build-essentia ...

最新文章

  1. 数据蒋堂 | 大清单报表的打印?
  2. Bzoj3168 [Heoi2013]钙铁锌硒维生素
  3. 体绘制(Volume Rendering)概述之4:光线投射算法(Ray Casting)实现流程和代码(基于CPU的实现)...
  4. [转]Photoshop Lab模式下保细节修复偏暗人物照片
  5. 【收藏】使用Docker搭建MySQL服务
  6. 更新yum源并重建缓存
  7. 计算机windows xp怎么操作,电脑密码怎么设置
  8. 插入始终是1_OneNote使用小记(1)——针对PPT做笔记及最合适的PPT插入方式
  9. Ubuntu中SVN的安装和使用
  10. 解决多个py模块调用同一个python的logging模块,打印日志冲突问题
  11. paip.快捷方式分组管理最佳实践ObjectDock
  12. jsp小区停车收费管理系统
  13. 基于单片机的GPS开发 (five) GPS数据获取解析思路
  14. android ntfs u盘,NTFS让U盘短命?想多了
  15. 疫情下的远程办公,充满了崩溃与机遇
  16. 金立android怎么升级包,金立S6升级刷机教程[多图]
  17. Wireshark抓取TCP三次握手包
  18. iQQ 学习笔记2 :借助新浪微博输入验证码、远程控制退出
  19. OCR(光学字符识别)
  20. 杨毅:不够优秀就不要腆着脸继续占便宜

热门文章

  1. 情感失忆的伤感空间日志_如果说回忆是甜蜜的
  2. 使用 spark sql extensions 实现 skew join
  3. SDN网络下有哪些SDN交换机选择?
  4. Go语言如何高效的进行字符串拼接(6种方式进行对比分析)
  5. 智能网联建设核心评价指标探讨
  6. JavaSE练习题之不死神兔
  7. [个人资料整理]游戏类型总结
  8. 父母不会用智能机?这几个功能可要教会他们
  9. 数据库开发工具:Navicat Premium 15 mac中文版
  10. 接口的方式获取bing必应每天壁纸