aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚

编译LineageOS 参考: https://wiki.lineageos.org/devices/lemonadep/install https://wiki.lineageos.org/devices/lemonadep/install 写在前面 做Android的伙伴往往都需要编译Android的源码,之前使用过编译过AOSP源码,搭配 Hikey 系列开发板 和 Pixel系列手机使用,编译AOSP源码和刷镜像的过程太过繁杂,经常会出现各处error,而且新版本的编译方式变化较大。 最近接触LIneageOS,编译烧录都 阅读详情
AI摘要

本文详细介绍了如何为 Nubia Z17 手机刷入 LineageOS 系统,包括 OEM 解锁、刷入第三方 Recovery、下载并刷入 LineageOS 官方系统文件,以及如何构建定制版 LineageOS 的全过程。

hi,学员朋友,大家好!
前期一直有同学在问我这边,学习framework需要什么额外设备么?这里其实我一直前期也是给学员说的,如果你是个新手,刚刚开始可以不用,完全可以跟着课程一起学习(需要可以找我要优惠q群:422901085),用课程里面的模拟器。哈哈资格模拟器不要钱,也不存在变砖的可能性。当你已经学完课程入门部分了,这个时候你觉得模拟器不能满足你了,你可以考虑pixel(相对比较贵)或者其他二手android手机,比如经典小米,联想,一加,nubia等基本上很多二手(基本便宜,而且自己手里一般都有一两个不用的二手机器)。pixel刷入aosp这个我前期已经写过相关文章,可以关注我之前blog,但针对非pixel相关机器今天我这边来分享一下怎么刷入一个基于aosp魔改了的lineage os。

首先确认好自己手上机器到底是否支持,看如下地址:
https://wiki.lineageos.org/devices/

在这里插入图片描述在这里插入图片描述

1 准备机器,oem解锁

设置中开发者选项开启oem开关
在这里插入图片描述

接下来需要进入fastboot模式

执行:
adb reboot bootloader

进入后需要fastboot命令对手机进行解锁,这里我这边手上刚好有nubia的z17,blog就以他为例子,(其他xiaomi解锁相对可能复杂一些,大家自己百度就行,实在不行你可以淘宝花点钱让别人帮你刷个lineageos)

进入fastboot模式后,需要用fastboot命令解锁oem:
1、fastboot devices
//这里只是看看到的fastboot下面有没有设备,没有实际意义
2、fastboot oem nubia_unlock NUBIA_NX563J
//这一部非常关键,相对每个手机还有点区别,大家自己根据机型百度

2 刷入第三方的recovery,并刷入官方lineage os版本

1、解锁完成,解锁后需要刷入第三方recovery,这个recovery我们直接lineageos官网就有,一般刷几包和recovery都是配套的,这里不得不说lineageos真的是服务到位,外国友人无私奉献万岁
(参考地址https://wiki.lineageos.org/devices/nx563j/install)

具体命令:
fastboot flash recovery <recovery_filename>.img

这里的recovery的img可以直接lineage官网下载:
https://download.lineageos.org/nx563j

在这里插入图片描述
左边770多M的是刷机包,右边是对应的recovery.img的包
确定是否刷入成功,这里可以看命令输出,如果出现OKAY。。那就ok了,如果有fail一般可能解锁不成功
2、上面刷入recovery成功,在手机的fastboot模式上按音量上下按键,
选址 : reboot to recovery mode,再按power按键
(注意不要直接重启进入系统)
lineage官方也是这样说的:
Now reboot into recovery to verify the installation. Do not reboot into the existing OS, since it will overwrite the recovery you just installed!

这个非常关键哈
3、进入recovery后,刷入上面下载的770多m刷包系统系统
到达recovery主页

***然后选择 “Apply Update”, then “Apply from ADB”*** 

接下来就需要我们电脑端通过adb发送下载的zip过去:
adb sideload xxxx.zip
(如果提示xxx签名不一致,可以直接选择继续)

3、下载对应的lineagos代码及编译:

前面已经先把手机刷成了lineage os系统了,但是始终系统是别人的,我们自己不可以随便改变,所以我们就要进入最重要的构建我们自己的代码系统,这样再刷入我们自己编译的lineage os才算成功
参考lineage os官方链接:
https://wiki.lineageos.org/devices/nx563j/build

其实也可以通过以下链接直接点击进入:
https://wiki.lineageos.org/devices/nx563j/
在这里插入图片描述
点击上面的“Build for yourself”

这里因为构建部分内容较多,大家严格按照https://wiki.lineageos.org/devices/nx563j/build 链接一步步来就可以,我这里只需要提出以下几个点,也算我这边踩坑点:

1、安装库一定不要省略

安装库和我们以前aosp编译还是有一些区别,所以这里严格按照链接提供的库来


    sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsyncschedtool squashfs-tools xsltproc zip zlib1g-dev


2、ccache 这个部分大家可以根据自己情况,我这边没有配置

3、国内需要对repo下载后需要修改REPO_URL

修改方法:

vi ~/bin/repo

修改后:

  REPO_URL ='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

在这里插入图片描述

4、repo init后,需要对.repo的xml进行修改(非常关键)

如果repo init后直接repo sync,国内会报出很多错误,错误原因还是因为国内网络,解决方法如下
对 .repo/manifests/default.xml进行修改,修改具体点如下,用git diff给大家看:

test@test:~/nx563j/.repo/manifests$ git diff
diff --git a/default.xml b/default.xml
index 672a8c3..da6b283 100644
--- a/default.xml
+++ b/default.xml
@@ -1,20 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <manifest>
 
-  <remote  name="github"
-           fetch=".."
+   <remote  name="github"
+           fetch="https://github.com/" />
+  <remote  name="lineage"
+           fetch="https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/"
            review="review.lineageos.org" />
 
   <remote  name="private"
            fetch="ssh://git@github.com" />
 
   <remote  name="aosp"
-           fetch="https://android.googlesource.com"
:...skipping...
diff --git a/default.xml b/default.xml
index 672a8c3..da6b283 100644
--- a/default.xml
+++ b/default.xml
@@ -1,20 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <manifest>
 
-  <remote  name="github"
-           fetch=".."
+   <remote  name="github"
+           fetch="https://github.com/" />
+  <remote  name="lineage"
+           fetch="https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/"
            review="review.lineageos.org" />
 
   <remote  name="private"
            fetch="ssh://git@github.com" />
 
   <remote  name="aosp"
-           fetch="https://android.googlesource.com"
-           review="android-review.googlesource.com"
+           fetch="https://mirrors.tuna.tsinghua.edu.cn/git/AOSP"
            revision="refs/tags/android-12.1.0_r22" />
 
   <default revision="refs/heads/lineage-19.1"
-           remote="github"
+           remote="lineage"
            sync-c="true"
            sync-j="4" />
 

4、breakfast nx563j第一次有报错

第一次repo sync成功后,开始编译

source build/envsetup.sh
breakfast nx563j

但是发现breakfast nx563j执行非常慢,而且有报错说没有xxxx product

其实这里是正常的,因为这个时候才开来下载和563相关的git,也就是这个时候在repo设备相关的库,当然慢,而且整个系统中当然还没有nx563j这个目标

等待一会后,我们就可以把大部分nx563j的依赖下载豪,但是有一些无法下载的就需要从我们目前已经刷了lineage os手机上拉下来
这里怎么拉呢?当然是我们的adb pull 。。。。,具体拉哪些我们不需要关心,lineage已经给我们写了extract-files.sh脚本(注意一定要保证手机已经可以adb root成功),执行它就行

cd 源码根目录/device/nubia/nx563j //这个目录有就有extract-files.sh
./extract-files.sh 

上面执行完成后再执行

croot
brunch nx563j

最后上一下我们的编译ok截图
在这里插入图片描述

5、刷入编译的压缩包

首先进入recovery

adb reboot recovery
在这里插入图片描述
点击这里的Apply Update

再执行命令:

adb sideload out/target/product/nx563j/lineage-21.0-20240229-UNOFFICIAL-nx563j.zip

执行完成既可以

更多framework干货请关注“千里马学框架”

使用Aosp源码编译安卓ROM(小米,一加,三星,中兴等) 这是一篇实用性很强的文章,除了这段引言,其它的都不是废话;这篇文章教会你如何在你的大部分主流安卓机型上(小米,一加,三星,oppo,华硕,Google,Htc,华为,联想,LG,摩托,索尼,红米)使用Android系统源码(AOSP)定制你自己的Rom; 实现步骤 定制起来非常简单,我相信只要按照文章介绍去做,半个小时就可以学会定制出自己的Aosp安卓系统; 找到手机代号; 准备材料(手机,电脑...... 阅读详情

相关推荐

wsl2-ubuntu20编译Lineage17(Android10)

举个例子,本来虚拟机磁盘里的文件总共只占了150G,但是外面的磁盘文件.vhdx的大小已经到两百多G了。编译avd能使用的包,是一个zip包。实际我是创建了一个100G的磁盘,因为我可能需要对源码进行修改,有时候哪里改错了就重新复制一份。我们编译系统肯定是先编译x86_64位的,在电脑上跑成功了,在编译手机的。其中kanade是我的用户名,你需要换成你刚才装系统指定的,如果不在最后一行增加的话,可能会被后面的覆盖掉不生效。–vhd 后面跟的就是虚拟磁盘的路径,可以在wsl开机前挂载,也可以在开机后挂载。

Qwertyuiop2016的博客 2800

LineageOS编译

目录准备下载并解压SDK安装adb和fastboot安装Repo和python安装依赖设置 git清华源源代码镜像过程摘录异常处理下载机型配置拉取vendor开启缓存开始编译还原代码遇到的错误error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.buil...

yusakul的博客 5054

如何编译lineageOS并刷机

高版本会有更多的镜像,作者也没办法去具体判断需要挂在哪些,但是作者能够给到一个技巧,就是如果这里你挂载的不够,那么在 编译 部分会出现文件找不到的问题,如果你确认了报错的文件在项目中没有,那说明这里少挂载了。运行这个命令的时候也会出现错误,原因是./extract-files.sh脚本中记录的文件路径有问题,需要自己修改,按照错误提示的文件,然后去找到文件的正确路径修改好就可以了,我是用find命令找的错误路径的文件,改好之后运行上面的内容就能够成功提取到了。作者的核心数量是10,所以指定20线程。

2503_90751789的博客 1774

LineageOS20+Pixel6 下的Fart8.0脱壳机迁移和编译流程

​ 之前将Fart8.0的代码编译到Android13下,运行发现在将Java的Method对象转换成C的ArtMethod对象时报错,没找到原因。再加上AOSP的系统太素了,就琢磨是否可以用LineageOS来编译,所以就有了这篇文章。

lvlay79的博客 5399

oneplus6总结记录-Lineage19.1-android12

oneplus6总结: oneplus6的Lineage19.1编译, 高通ramdump日志抓取 以观看linux启动Oops日志,从而确认vendor驱动问题,OTA包的payload.bin解开,两ota包对比,...

_ 1804

aosp定制android系统

全称 Android Open Source Project 是指Android开源项目,它是由Google主导的一个开源项目,旨在提供一个完整的、开放的、自由的移动操作系统平台,为什么要定制自己的安卓系统呢,我们现在用的安卓手机都是基于aosp魔改的,其中许多功能都被厂家限制了,比如root,虽然可以借助面具获取root权限,但是像部分华为手机是不支持解bl锁的,那也就无法root了. 以及root后可能引起的部分软件功能异常,银行类app直接闪退,支付宝无法刷脸.如果可以定制自己的安卓系统,从源码修改

4434

[安卓][编译]Ubuntu 18.04.1 编译LineageOS 16.0 教程.md

Ubuntu 18.04.1 LTS 编译LineageOS 16.0 教程 本文全篇使用普通用户账户($),当然管理用户也是可以的,不受影响 一.repo工具的下载与源码的初始化 1.首先安装需要的依赖 sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gn...

qq_38844263的博客 3819

HTC 10 刷系统 LineageOS 19.1 Android 12

HTC 10 刷系统 LineageOS 19.1 Android 12

风言风语 1743

LineageOS 22系统编译流程概述

本文详细记录了在虚拟机环境下编译LineageOS 22系统到Google Pixel 3设备的过程。主要内容包括:1)硬件配置要求(16G内存建议配置48G虚拟内存);2)环境搭建(Android SDK、编译依赖、JDK、repo等);3)使用清华镜像源拉取系统源码;4)提取设备专用blob文件;5)编译过程中的注意事项(内存不足处理);6)刷机流程及常见错误解决方案(如webview.apk缺失问题)。针对国内网络环境,文章特别提供了镜像源替代方案和优化建议,适合想要自行编译LineageOS的中级用

qq_35993502的博客 1823

编译LineageOS-20并刷入Pixel 2XL

一定要小于8,推荐4~8, 因为LineageOS大部分是去拉AOSP的仓库,Google每个IP限制8个线程,超过就禁止连接,同步失败,由于时差,国内白天时,全球拉取的人数少,拉取速度快于晚上。是Google更新的关于手势的开源仓库,lineage没有及时纳入到Pixel 2XL 的device更新,所以需要我们手动导入这个模块,也是一个坑点之一,Pixel 2XL Google也是有一些文件,处于vendor分区的,并不开源,我们需要从已经刷入相同Lineage 20的Pixel 2XL中通过。

qq_40731414的博客 3637

力扣(Leetcode)第1题:两数之和(C语言版本)

题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6

qq_39855356的博客 3309

编译LineageOS模拟器镜像,导出到AndroidStudio

源码大概需要150GB的硬盘空间,编译完成差不多300G找到 repo 所在路径which repo编辑 repo可以看到repo会优先取环境变量中的REPO_URL,否则默认使用googlesourceCtrl +X 退出nano通过下面的命令设置 REPO_URL 环境变量,设置为清华大学镜像源,解决国内访问不了 googlesource 问题创建目录进入到 lineageos 目录如果可正常访问 github,使用下面的命令初始化 repo。

3999

Win10系统VS2019+Cmake+qhull_8.0.0环境配置

1 qhull 1.1 简要介绍 qhull是一个强大的计算几何库,可以用于计算高维的convex hull, Delaunay triangulation, Voronoi diagram等。 1.2 依赖库 qhull不依赖其他库。 1.3 源码包下载 qhull源码地址:github:https://github.com/qhull/qhull.git 2 Cmake构建项目 2.1 路径 源代码路径:D:/ThirdParty/qhull/qhull_8.0.0构建项目路径:D:/Thi.

wangchenxue的博客 2491

lineage编译教程

【代码】lineage编译教程。

iyue_t的博客 675

C51编程25-应用篇(单片机与电脑端实现wifi通讯)

单片机使用ESP-01S wifi模块与电脑端进行数据通讯。

qq_34343637的博客 1万+

Windows Server+SqlServer Always On实战:5步搞定高可用集群搭建

本文详细介绍了在Windows Server环境中,通过5个关键步骤搭建SQL Server Always On高可用集群的实战指南。内容涵盖从底层故障转移集群配置、SQL Server实例启用Always On功能,到创建可用性组和侦听器的完整流程,并提供了核心运维与故障排查思路,帮助企业构建稳定可靠的数据库高可用架构。

milk5的博客 858

【LineageOS】编译安装及windows下推送更新记录

wget并不内置在cgywin中,需要安装,如果直接打开浏览器下载复制保存脚本,可能有‘\r’这种空白符的问题,但是我并不确定,不想安装可以仓库的Linux系统下下载然后转移过来。前面没啥好说的,就是注意改路径的话,各个地方都得改,比如你的bin目录换地方了,后面把bin加到.profile文件的路径都记得改。进行哈希,所以猜测可能是我的文件名和我之前推送的是一样的,导致有重复,所以插入失败。这里的更新指的是一个版本下的更新,另外还有不同版本的升级更新,官方另有教程。后,检测到新的安装包,可以直接安装。

m0_54352040的博客 1694

手把手教你学基带SOC芯片(4.4.9)--基带芯片的电源管理实例:高通 Snapdragon 系列实例(十)

Snapdragon 888 通过支持多种深度睡眠模式,如 AOAC 模式、低功耗模式和深度睡眠模式,以及智能电源管理技术,实现了对功耗的精细管理。这些模式不仅延长了设备的电池寿命,还确保了用户在各种使用场景下的良好体验。无论是保持网络连接、限制后台活动,还是完全关闭不必要的功能,Snapdragon 888 都能够灵活应对,提供高效的功耗管理方案。

MHD0815的博客 740

LineageOS-21 编译大作战!—— 一个萌新的心路历程 ☆

手把手指导您编译LineageOS-21.0

滚滚长江,却只留有过去,不知未来 2513

基于YOLO26深度学习框架的文档表格识别系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的文档表格识别系统实现方法。系统采用YOLO26网络架构,通过数据预处理、模型训练、检测推理和表格分析四个模块实现高效表格识别。研究详细阐述了数据归一化、增强等技术处理,以及采用迁移学习策略优化模型训练过程。实验表明,该系统能有效识别多种表格结构并生成结构化数据,为文档自动化处理提供了可靠解决方案。

一键难忘的博客 972

杰理蓝牙SPP用户接口详细文档

本文档详细介绍了基于JL701n芯片的蓝牙SPP用户接口实现。主要内容包括:1) 文件结构分析,包含必要的头文件和调试配置;2) 核心数据结构,如全局变量和TWS功能ID定义;3) 五大功能模块实现:数据发送、状态管理、数据接收、TWS支持和初始化清理;4) API接口说明,包括公共接口函数和回调函数;5) 使用教程,涵盖基本流程和高级应用示例。该接口支持虚拟串口连接,实现蓝牙设备间数据传输,特别针对TWS场景进行了优化,提供连接状态管理、数据收发等功能。文档还包含错误处理、重试机制等实用建议,适合蓝牙SP

qq_42014563的博客 1179

Android 搞机之编译 LineageOS 内核

lineageOS Github 提供了预编译的工具链,根据手机架构,手机中安装的 lineageOS 版本,选择合适的预编译版本进行下载。进入到源码目录,执行下面命令开始编译。编译过程中,可能会因为编译环境缺少特定命令而报错。将 Anykernel3 根目录下的所有文件打包成 zip 压缩包。将下载的编译工具链配置到环境变量中。编译成功后,产物会在。查看内核版本是否为刚刚刷入的版本。下载 kernel 源码。安装缺少的命令即可。

悖论的技术小屋-优快云 分屋 2432

2.0 电子凸轮 西门子1500电子凸轮使用研究1

本文研究了S7-1500T电子凸轮同步控制技术,通过仿真实验得出以下结论:1)通过比例系数可调整凸轮曲线形状;2)解除同步需调用从轴其他运动指令;3)详细阐述了凸轮同步的5个实施步骤。重点分析了三种同步类型(主值距离同步、动态参数同步和直接同步)的特点及应用场景,并探讨了缩放系数、偏移量等参数对凸轮曲线的影响。同时介绍了凸轮应用模式及常见异常处理方法,为工程应用提供了重要参考。

qq_34047402的博客 809

Lineage OS (CM)移植

笔者近期做了关于联想新出的一款pad (TAB 4 8 plus)代号tb8704f 的CM 系统的适配和移植工作。其中走了不少弯路,也学习了不少知识,有时候弯路也是一种成长,看到了不一样的风景。 废话不多说,直接进入主题。分为以下几个部分讲解: 1、fastboot 解锁; 2、前期准备工作; 3、源码编译; 4、recovery 适配; 5、zip 包升级; 6...

xyyjxa的博客 7694

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LineageOS 线刷包 小米红米 Note 4 (Mido)

官方 rom目录。

qq_24768591的博客 1767

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: clearCallingIdentity与restoreCallingIdentity-千里马framework系统源码实战详解
下一篇: 安卓车机系统adb shell cmd 源码原理分析
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值