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

article/2025/9/20 8:09:05

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

  • 背景说明
  • 编译
  • 安装
  • GApps 安装
  • windows下推送更新

背景说明

AOSP装谷歌服务,遇到很多问题,于是选择其它的rom,之前装了piexlExperience没有成功,后来又换了LineageOS,终于成功了。官方的教程写的都很好,但是仍遇到了一些坑,所以做些记录。
这里只记录遇到的坑,具体流程,不同手机也有不同,所以跟随官方教程。
我的手机是:Google Piexl 3xl 安装Android 12 选则最新的 19.1分支

编译

https://wiki.lineageos.org/devices/crosshatch/build
前面没啥好说的,就是注意改路径的话,各个地方都得改,比如你的bin目录换地方了,后面把bin加到.profile文件的路径都记得改。
值得提的三点:

  1. 更改清华源的问题,我这里没有改,我按照清华镜像网站上的教程,改完了反而报错了,不知道什么情况,我自己有挂代理所以也不存在下载问题,所以就没有换源了。
  2. repo sync 问题,至少加个 -c命令,减少硬盘空间需求。顺便,我在源码修改后,仅运行 repo sync -c是没有把我的更改覆盖的,可能需要force 之类的命令才会覆,对repo没有特别了解。
  3. 提取专有 blob ,里面有说 将 blob 拉入~/android/lineage/vendor/google文件夹中 但是我没明白怎么个拉入法,我比较了下我这个文件夹和我其它rom仓库下同样文件夹的区别,我发现已经没有区别了,所以就没管,也成了。
  4. 提取blob的时候 https://wiki.lineageos.org/extracting_blobs_from_zips
    a. 我的手机是基于负载的 OTA:系统分区的内容存储.img为payload.bin 我从官方zip中提取了payload.bin
    b. 安装sudo apt-get install python-protobuf,但是这样之后还是报错,根据报错网上查了一下,单独分别安装了 pip install protobuf,就成了,应该还有个包,根据报错网上查一下应该就能找到
    c. 好像还有个包需要降级,但是也都不是什么困难的问题,根据报错很容易就能解决
    d. 挂载的时候,我的手机分区就没有odm,所以这一步 sudo mount -o ro odm.img system/odm/包括后面有一不可能也会有报错,但是不影响。
    e. 在~/android/lineage/device/google/crosshatch文件夹下运行脚本后就完成了。

安装

官方教程:https://wiki.lineageos.org/devices/bluejay/install
我这里流程简化为:
刷入:

  1. 官方recovery安装:
    fastboot模式下输入命令:fastboot flash boot <recovery_filename>.img (fastboot flash 和 fastboot boot的合体命令)
    这里刷入我们编译好后给的boot.img文件

Use the menu to navigate to and to select the Recovery option

  1. 使用recovery刷入:

选择,Factory Reset, then Format data / factory reset
需要清理数据,不然好像会有问题。

“Apply Update”, then “Apply from ADB” 电脑上输入命令adb sideload filename.zip

如果不装GApps可以重启开机了,但是装的话千万不能直接重启。

GApps 安装

首先提前下载和自己版本一致的 GApps的包。
https://wiki.lineageos.org/gapps

  1. 在第一次打开OS之前进行刷入(也就是说上面刷机完成不要打开系统!!先选择Advanced,重新Reboot to Recovery
  2. 即使您已经在恢复中,请单击Advanced,然后Reboot to Recovery
  3. Apply Update - ADB sideload - MineGApps.zip文件

windows下推送更新

刷机的方式需要清除数据,所以很多时候不太方便,这时可以考虑如何系统更新,而不是直接刷机。(因为修改源码后重新编译打包,经常有系统更新的需求)

这里的更新指的是一个版本下的更新,另外还有不同版本的升级更新,官方另有教程。

官方提供的教程中,推送更新脚本只能在linux和macOS上运行。https://wiki.lineageos.org/devices/crosshatch/update
在这里插入图片描述

首先,需要解决在windows下执行shell脚本的问题。
这里通过搜索我选择的办法是安装 cygwin http://www.cygwin.com/
直接官网上下载,按照教程安装就行。安装完成后即得到可以运行的脚本的命令行。

事实上,安装好之后,问题就解决了。
按照教程:

  1. 打开开发者选项中的 adb root
  2. 下载脚本并设置权限
wget https://raw.githubusercontent.com/LineageOS/android_packages_apps_Updater/lineage-19.1/push-update.sh
chmod +x push-update.sh

wget并不内置在cgywin中,需要安装,如果直接打开浏览器下载复制保存脚本,可能有‘\r’这种空白符的问题,但是我并不确定,不想安装可以仓库的Linux系统下下载然后转移过来。
3.运行脚本,注意 /cygdrive/cygwin对自己电脑和它路径的映射,具体可以使用mount命令看一下,在运行脚本的时候,push-update.sh 是要在cygwin中运行,所以是给cygwin看的路径,但是后面刷机包的路径,是给脚本内的adb命令看的路径,所以要使用实际真实的路径名。

/cygdrive/f/LinOS/push-update.sh F:/LinOS/build/lineage-19.1-20230508-UNOFFICIAL-crosshatch.zip

在这里插入图片描述
这里我有个报错:Error: UNIQUE constraint failed: updates.download_id 是sqlite的报错,可能的原因是不可重复字段冲突。
查看了下脚本中 download_id的 来源 :
echo "$zip_name" | sha1sum | cut -d' ' -f1
发现是zip_name进行哈希,所以猜测可能是我的文件名和我之前推送的是一样的,导致有重复,所以插入失败。

实际进入 setting - system- updater后,检测到新的安装包,可以直接安装。


http://chatgpt.dhexx.cn/article/DEHAZIX9.shtml

相关文章

iOS 和 Android 的后台推送原理各是什么?有什么区别?

2019独角兽企业重金招聘Python工程师标准>>> 郑紫阳&#xff0c;ziyangzhihu.com 炉门、尘规、陈汤姆 等人赞同 • 收录于 知乎周刊 iOS 系统的推送&#xff08;APNS&#xff0c;即 Apple Push Notification Service&#xff09;依托一个或几个系统常驻进程运作&…

android 版本选择,谷歌服务框架版本如何选择 我该下载哪个版本解析

谷歌服务框架版本如何选择 我该下载哪个版本解析 来源&#xff1a;www.18183.com作者&#xff1a;似水流年时间&#xff1a;2017-06-29 谷歌服务框架版本如何选择呢&#xff1f;本文小编为您带来谷歌服务框架版本如何选择 我该下载哪个版本解析。 谷歌服务框架版本如何选择呢?…

GAPPS版本区别

细雨灯花落&#xff0c;泪眼若为容。 Open Gapps GAPPS是谷歌软件服务集合&#xff08;Google Apps&#xff09;的缩写形式。由于移动设备生产厂商的某些限制&#xff0c;一些运行Android系统的设备没有安装谷歌服务框架。这类设备在无法运行一些基于谷歌服务框架开发的应用软…

线性代数(矩阵和向量)

目录 矩阵和向量加法和标量乘法矩阵向量乘法矩阵乘法矩阵乘法特征逆和转置 矩阵和向量 矩阵&#xff1a; 下图为一个R(4x2)和一个R(2x3)的矩阵 矩阵优点&#xff1a;快速整理&#xff0c;索引和访问大量数据。 向量&#xff1a; 下图为一个R(4)的向量 加法和标量乘法 加…

线性代数(7):矩阵的应用

一、简化矩阵 &#xff08;1&#xff09;阶梯形矩阵 1.1.1 定义 a. 如果矩阵有零行&#xff08; 元素全为 0 的行 &#xff09;&#xff0c; 零行 全在下面&#xff1b; b. 各非零行的第一个非零元素列标随行标增大而增大&#xff1b; 1.1.2 展示 下图两个矩阵都是阶梯矩阵 …

线性代数之矩阵

矩阵&#xff08;Matrix&#xff09;是一个按照长方阵列排列的复数或实数集合&#xff0c;矩阵是许多学科中常用的数学工具。 1 矩阵运算 m*n个数aij(i1,2,...,m;j1,2,...,n)排成m行n列的矩形数表&#xff1a; 称为m*n矩阵&#xff0c;一般记为Am*n。 元素是实数就是实矩阵&…

线性代数2:矩阵(1)

目录 矩阵&#xff1a; 矩阵的定义&#xff1a; 0矩阵 方阵 同型矩阵&#xff1a; 矩阵相等的判定条件 矩阵的三则运算&#xff1a; 乘法的适用条件 矩阵与常数的乘法&#xff1a; 矩阵的乘法&#xff1a; 矩阵的乘法法则&#xff1a; Note1&#xff1a; Note2&…

线性代数:矩阵运算之乘法?

线性代数&#xff1a;矩阵运算之乘法&#xff1f; 分步阅读 授人予鱼不如授人予渔&#xff0c;在《线性代数》的学习中&#xff0c;方法尤为重要。下面就让我们一起解决《线性代数》中令人头痛的——矩阵的乘法运算吧&#xff01; 如果您对——矩阵乘法的学习比较吃力&#…

线性代数:矩阵及其运算

总体结构图&#xff1a; 矩阵的定义&#xff1a; 由m*n个数&#xff0c;组成的m行n列的表格&#xff08;注意&#xff0c;这里的表格&#xff0c;表明了矩阵和行列式的本质区别&#xff0c;行列式本质桑是一个数&#xff0c;并且行列式一定是方方正正的&#xff0c;行数和列数…

3.线性代数-矩阵

矩阵和Tensor 1. Tensor2.矩阵3.线性代数正确打开方式3.1 行视图3.2 列视图 4.线性相关和线性无关5. Span、基和子空间(Subspace)6.四个基本的子空间6.1 列空间6.2 零空间6.3 行空间6.4 左零空间6.5 四个基本子空间的关系 7.可逆矩阵8.方阵的特征值与特征向量9.特征分解9.1一般…

【线性代数】矩阵及其运算

【线性代数】矩阵及其运算 写在前面从向量到矩阵线性在何处&#xff0c;矩阵怎么来的秩&#xff0c;矩阵&#xff0c;逆矩阵 具体运算乘法行列式点乘和叉乘 线性方程组和矩阵的关系Gramer法则高斯消元法求逆矩阵解方程组 参考资料 写在前面 本文是笔者用于复习本科期间所学线性…

人工智能数学基础-线性代数4:矩阵及矩阵运算

☞ ░ 老猿Python博文目录░ 本节用到了行列式的相关知识&#xff0c;而在行列式中用到了矩阵知识&#xff0c;但总体来说先介绍矩阵再介绍行列式更合适一些&#xff0c;行列式的知识大家只需要知道一个矩阵A对应的行列式记为符号|A|&#xff0c;其结果为一个标量&#xff0c;…

矩阵【线性代数系列(二)】

矩阵【线性代数系列&#xff08;二&#xff09;】 文章目录 1.线性方程组2.矩阵的概念3. 对角矩阵 与 单位矩阵4.矩阵的运算4.1 矩阵的加法4.2 矩阵的数乘4.3 矩阵的乘法4.4 矩阵的幂4.5 交换率结合率分配率汇总4.6 矩阵的转置 5. 矩阵的行列式6.矩阵的线性变换6.逆矩阵7.克拉…

线性代数(3):矩阵

一、矩阵是什么 &#xff08;1&#xff09;矩阵的概念 矩阵就是 m x n 个数排列成 m 行 n 列的表格&#xff0c;其具体形式为&#xff1a; &#xff08;2&#xff09;矩阵与行列式的区别 a. 矩阵是一个数表&#xff0c;而行列式只是一个n阶的方阵; b. 矩阵的行数和列数可以不…

矩阵如何运算?——线性代数

同样是对李永乐老师的笔记做个总结和叙述&#xff08;我不写过于难懂的概念&#xff0c;只写有利于解题的干货&#xff09;&#xff0c;方便大家复习巩固 关于行列式的计算&#xff1a;<点这里> 文章目录 一、矩阵的概念及其运算1.1 矩阵的概念1.2 矩阵的运算1.2.1 基本运…

线性代数矩阵运算

线性代数的概念对于理解机器学习背后的原理非常重要&#xff0c;尤其是在深度学习领域中。它可以帮助我们更好地理解算法内部到底是怎么运行的&#xff0c;借此&#xff0c;我们就能够更好的做出决策。所以&#xff0c;如果你真的希望了解机器学习具体算法&#xff0c;就不可避…

矩阵和线性代数的应用

矩阵和线性代数是数学中重要的概念&#xff0c;它们被广泛应用于物理、工程、计算机科学、经济学等众多领域。本文将讨论矩阵和线性代数的一些基本概念以及它们在实际应用中的重要性和影响。 一、矩阵和线性代数的基本概念 矩阵是由数字组成的矩形数组。它可以表示线性方程组…

线性代数—矩阵

矩阵 矩阵的定义同型矩阵运算1、同型矩阵可加减2、矩阵乘以k&#xff08;≠0&#xff09;&#xff0c;矩阵中所有元素乘以k3、Amn * Bns Cms4、转置矩阵5、 伴随矩阵6、逆矩阵(矩阵的逆理论&#xff09;7、行阶梯矩阵8、正交矩阵 矩阵的初等变换矩阵理论矩阵的逆理论—见逆矩阵…

线性代数:如何最通俗地理解矩阵的「秩」?

小时候老师总告诉我们「要有n个方程才能确定地解出n个未知数」——这句话其实是不严格的&#xff0c;如果你想确定地解出n个未知数&#xff0c;只有n个方程是不够的&#xff0c;这n方程还必须都是「干货」才行。从这个角度&#xff0c;初学者可以更好地理解「矩阵的秩」。 其实…

线性代数[向量]

系列文章目录 第一章 线性代数[初等变换(一)] 第二章 线性代数[初等变换(二)] 第三章 线性代数[初等变换(三)] 第四章 线性代数[矩阵的秩] 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一.引入 二.向…