oneplus6总结记录-Lineage19.1-android12

本文只是自用笔记、备忘、…

解决思路

修改linux内核的rootfs的某个必然会被执行的脚本 以监控android启动进度

我自编译的LineageOS-19.1 内核启动正常、卡在LineageOS弧形图标(android门口)

由于我不太熟悉android源码,

因此最容易办法是 修改linux内核启动后的第一个进程之后的根文件系统rootfs中的某个必然会被执行的脚本,

在其中增加类似监控的脚本 并将结果日志写入sd卡文件,该脚本自身必须具备侦测当前启动阶段、确保自身只能有一份运行,

因为 android不能正常启动,所以无法从外部操作手机,而该监控脚本相当于是从外部操作手机的

失败记录

增加android服务失败(对android源码不熟悉)

试图增加android服务,

重新编译、手机启动到android卡住界面,

重启到fastboot、到twrp ,

twrp的adb查看手机sd卡中 vendor/myLogScript.sh 都没有 ,更不用说脚本运行了,

充分说明 对android源码不熟悉的问题, 应该修改linux内核的rootfs的某个必然会被执行的脚本 以监控android启动进度,更容易

https://github.com/LineageOS/android_system_core.git : /app4/lineage19_oneplus6/system/core
/app4/lineage19_oneplus6/system/core/libcutils/fs_config.cpp
/app4/lineage19_oneplus6/system/core/rootdir/init.rc

https://github.com/TheMuppets/proprietary_vendor_oneplus.git /sdm845-common: /app4/lineage19_oneplus6/vendor/oneplus/sdm845-common
/app4/lineage19_oneplus6/vendor/oneplus/sdm845-common/sdm845-common-vendor.mk
/app4/lineage19_oneplus6/vendor/oneplus/sdm845-common/myLogScript.sh

问题

1. oneplus6主板电路可能有不同版本

不充分的理由是 LineageOS官方OTA包(16.1, 17.1)在此oneplus6设备上启动变砖(应该是内核崩溃), 而LineageOS-17.1也应该有其存在用途(旧版电路主板的oneplus6)


  • Lineage-17.1(android10) 启动变砖: 下载网页/lineage-17.1-20210420-nightly-enchilada-signed.zip

这说明 该OTA包中的vendor、设备树 可能是针对 前一期的oneplus6,

由此可知 一加厂商 销售的 oneplus6 的电路板 并不统一 可能存在后续更新,

因此才造成LineageOS-17.1中的旧设备树 在我这台oneplus6设备上 内核崩溃

2. LineageOS也并非全开源,其构建过程被其隐藏


OTA包LineageOS-19.1-nightly-enchilada.zip正常启动手机,但并未提供构建过程,

使用LineageOS19.1编译出的OTA包LineageOS-19.1-enchilada-UNOFFICIAL.zip内核启动正常但卡在android门口(LineageOS的弧形LOGO)

由此猜测 LineageOS的OTA的编译过程中有更多设置是隐藏的 不愿提供的

后续比对我编译的OTA包(内核正常启动、卡在android门口)和同版本LineageOS提供的正常OTA包, 会进一步验证此猜测

步骤

1. oneplus6线刷

oneplus6 线刷包(android9)

  • 主 OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11.zip/readme.md

  • 备 enchilada_22_K.52_210716_repack–HOS-10.0.11.zip/readme.md

2. oneplus6手机root

oneplus6 APatch-root.md

Magisk不支持自定义/system/bin/su路径?而APatch支持

3. 放弃oneplus官方伪开源,选择支持更多设备的LineageOS

既然 oneplus官方开源是伪的、毫无优势,那么何必拘泥于该厂商?不如选择支持更多这类设备的LineageOS

当然LineageOS也并非全开源,其构建过程也是自有隐藏的问题/2


oneplus官方伪开源 OnePlus Open Source Software,

oneplus官方明确声明自oneplus3t起, 不再发布linux内核设备树,

至此oneplus其实也只比小米等厂商多一个优势: 更容易解锁bootloader的优势而已

oneplus和小米等设备的 vendor驱动 、设备树 都只能 从其真机或已验证正常的OTA包中提取设备树

比如 vendor驱动仓库 OnePlusOSS/android_vendor_oneplus_SDM845.git 提供的是二进制文件

4. oneplus6正常刷入、正常启动的Lineage-OTA包LineageOS-[19.1,20.0,21.0].nightly-enchilada-signed.zip

既然LineageOS官方OTA包(16.1, 17.1)在此oneplus6设备上启动变砖(崩溃),那么我自己编译这两版本肯定也是结果相同的

因此 自己编译应该选择LineageOS(19.1,20.0,21.0),不要选择LineageOS(16.1, 17.1)


  • Lineage-16.1(android9) TODO

  • Lineage-17.1(android10) 启动变砖: 下载网页/lineage-17.1-20210420-nightly-enchilada-signed.zip

  • Lineage-18.1(android11) 启动变砖: 下载网页/lineage-18.1-20220421-nightly-enchilada-signed.zip

  • Lineage-19.1(android12) 正常进android: 下载网页/lineage-19.1-20221227-nightly-enchilada-signed.zip

  • Lineage-20.0(android13) 正常进android: 下载网页/lineage-20.0-20240214-nightly-enchilada-signed.zip

  • Lineage-21.0(android14) 正常进android: 下载页面/lineage-21.0-20241106-nightly-enchilada-signed.zip

  • Lineage-22.1(android15) TODO

参考1 oneplus6-lineage-ota.md

5. LineageOS-19.1 编译(启动内核崩溃)

sdm845(oneplus6)的启动漰溃ramdump被提交3e7f37解析-内核启动日志报错(空指针、Oops)

6. qualcomm的ramdump抓取(串口900E端口)

ramdump日志获取正常: sketch–qualcomm-QXDM-QPST-boot_stuck_log.md#qpst-get-ramdump-log

7. qualcomm的ramdump解析(linux内核启动控制台日志表明可能是vendor驱动错)

ramdump解析正常(拿到linux内核崩溃日志): lineage-17.1/ramdump-parse.md

8. LineageOS-19.1(官方)OTA包解开(payload.bin解包、system.img挂载、vendor.img挂载)与TheMuppets/proprietary_vendor_oneplus.git/sdm845-common作文件列表md5sum比对(补全后者PRODUCT_COPY_FILES少复制文件后,则我自编译19.1内核启动正常,但卡在LineageOS弧形图标即android门口)

vendor提取: lineage-17.1–otaExtractVendor-19.1-Official/vendor-extract/OTA-payload.bin-extract–oneplus6-LineageOS16.1.md

vendor比较:lineage-17.1–otaExtractVendor-19.1-Official/otaOfficialVentor-compare-to-TheMuppets----proprietary_vendor_oneplus-sdm845Common/compare.md

修复内核崩溃,
TheMuppets/proprietary_vendor_oneplus.git不缺少文件,只是 编译过程 TheMuppets/proprietary_vendor_oneplus.git : vendor/oneplus/sdm845-common/sdm845-common-vendor.mk 的 PRODUCT_COPY_FILES 少复制了一些文件

9. LineageOS-19.1(官方)OTA包和我自编译OTA包 作 目录树扩展名统计比对(发现差异)

比较目录树扩展名统计结果文件 bcompare <(curl https://gitlab.com/oneplus6_enchilada/wiki/-/raw/dev/lineage-17.1--otaExtractVendor-19.1-Official/vendor-extract/Sys_imgMntD_tree_extendAggregate.txt) <(curl https://gitlab.com/oneplus6_enchilada/wiki/-/raw/dev/lineage-17.1--otaExtractVendor-19.1-My/vendor-extract/Sys_imgMntD_tree_extendAggregate.txt) 得到差异

  1. OTA包/:payload.bin:/system.img:/system/apex/x.apex : 我未展开 而 官展开

我自编译OTA包的比如com.android.adbd.apex是未展开的单独文件,

而官方OTA包的比如com.android.adbd是展开的目录

…更多差异待分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/915664.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

专题十八_动态规划_斐波那契数列模型_路径问题_算法专题详细总结

目录 动态规划 动态规范五步走&#xff1a; 1. 第 N 个泰波那契数&#xff08;easy&#xff09; 解析&#xff1a; 1.状态表达式&#xff1a; 2.状态转移方程&#xff1a; 3.初始化&#xff1a; 4.填表顺序&#xff1a; 5.返回值 编写代码&#xff1a; 总结&#xff…

MySQL技巧之跨服务器数据查询:基础篇-更新语句如何写

MySQL技巧之跨服务器数据查询&#xff1a;基础篇-更新语句如何写 上一篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以及用同样的…

C/C++语言 多项式加法和乘法

多项式加法和乘法 多项式的加法题目描述输入输出样例步骤代码段全局变量设定新建结点合并链表 完整代码 多项式乘法题目描述输入输出样例代码段计算两多项式结果输入 完整代码 多项式的加法 题目描述 输入输出 样例 步骤 总体思想是用链表来做 ① 我们发现输入样例中&#xf…

ArkTs面向对象编程

ArkTs面向对象编程 1.1 面向对象编程概述 1.1.1 什么是面向对象编程 面向对象编程是一种编程范式&#xff0c;它使用“对象”来设计软件和创建可重用的程序设计 对象是包含数据和方法的实体&#xff0c;可以与其他对象进行交互 面相对象编程鼓励使用已有的对象来组合或修改以…

乳腺癌诊断分析——基于聚类分析实现

一、研究背景 乳腺癌属于恶性肿瘤&#xff0c;在早期发现后需要及早将病变组织切除&#xff0c;而且术后还要化疗和放射等辅助治疗&#xff0c;能够抑制癌细胞的扩散和增长。 二、研究目的 研究乳腺癌病人的患病特征通过聚类分析方法对特征进行分类通过上述聚类结果对乳腺诊…

丹摩征文活动|FLUX.1 和 ComfyUI:从部署到上手,轻松驾驭!

FLUX.1 和 ComfyUI&#xff1a;从部署到上手&#xff0c;轻松驾驭&#xff01; FLUX.1历史曲线 黑森林实验室推出了一款名为FLUX.1的先进图像生成模型&#xff0c;根据不同用户需求&#xff0c;提供了三种独特的版本。 FLUX.1-pro&#xff1a;作为专为企业打造的强大闭源版本…

数据分析:16s差异分析DESeq2 | Corncob | MaAsLin2 | ALDEx2

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍DESeq2原理计算步骤结果Corncob原理计算步骤结果MaAsLin2原理计算步骤结果ALDEx2原理计算步骤结果加载R包数据链接数据预处理微生物数据样本信息提取物种名称过滤零值保留结果读取…

OCR识别铁路电子客票

随着中国铁路客运领域进入全面数字化时代&#xff0c;国家税务总局、财政部和国铁集团于2024年10月18日联合发布公告&#xff0c;自2024年11月1日起&#xff0c;推广使用“电子发票&#xff08;铁路电子客票&#xff09;”。这一举措不仅为旅客出行提供了极大的便利&#xff0c…

【MySQL基础刷题】总结题型(三)

十题左右&#xff0c;便于复习 1.查询结果的质量和占比2.每月交易I3.销售分析III4.只出现一次的最大数字5.买下所有产品的客户6.员工的直属部门7.指定日期的产品价格 1.查询结果的质量和占比 avg大神啊… SELECT query_name, ROUND(avg(rating / position), 2) as quality, …

python 同时控制多部手机

在这个智能时代,我们的手机早已成为生活和工作中不可或缺的工具。无论是管理多个社交媒体账号,还是处理多台设备上的事务,如何更高效地控制多个手机成为了每个人的痛点。 今天带来的这个的软件为你提供了一键控制多部手机的强大功能。无论是办公、娱乐,还是社交,你都能通过…

外星人入侵

学习于Python编程从入门到实践&#xff08;Eric Matthes 著&#xff09; 整体目录&#xff1a;外星人入侵文件夹是打包后的不必在意 图片和音效都是网上下载的 音效下载网站&#xff1a;Free 游戏爆击中 Sound Effects Download - Pixabay 运行效果&#xff1a;可以上下左右移…

前端监控与埋点 全总结

一、概念 前端埋点是指在网页或者应用程序中插入特定的代码&#xff0c;用于收集用户的行为数据并发送给服务器进行分析。这些数据可以包括用户的点击、浏览、输入等操作&#xff0c;帮助开发者了解用户的在其网站中的行为&#xff0c;从而进行针对性的优化和改进。 前端埋点…

Python简单文件操作day9

1、文件操作的重要性和场景 重要性&#xff1a; 数据持久化、跨平台兼容性、数据备份与恢复、数据共享、配置管理、日志记录 应用场景&#xff1a; 数据分析、web开发、文本处理 2、文件的概念 文件是一个存储在某种持久性存储介质【硬盘、光盘、磁盘等】上的数据的结合。 …

指令存储和指令流水线

要求存储器的编址单位&#xff0c;首先观察到计算机采用的是32位定长指令字&#xff0c;因此一条指令就是32位&#xff0c;即4B&#xff0c;根据表中可知一条指令所占地址空间为08048104H-08048100H4H&#xff0c;因此所用的编制单位为字节&#xff08;B&#xff09; 将所有指令…

kafka管理工具

文章目录 前言一、Kafka Assistan1.1 描述1.2、配置安装 二、Conduktor2.1、描述2.2、配置安装 三、kafka-maneger3.1、描述3.2、配置安装3.3、命令启动3.4、[refer to](https://www.ctyun.cn/document/10000120/10033218#section-39755766f4910e4b) 前言 提示&#xff1a;这里…

JavaWeb常见注解

1.Controller 在 JavaWeb 开发中&#xff0c;Controller是 Spring 框架中的一个注解&#xff0c;主要用于定义控制器类&#xff08;Controller&#xff09;&#xff0c;是 Spring MVC 模式的核心组件之一。它表示该类是一个 Spring MVC 控制器&#xff0c;用来处理 HTTP 请求并…

axios平替!用浏览器自带的fetch处理AJAX(兼容表单/JSON/文件上传)

fetch 是啥&#xff1f; fetch 函数是 JavaScript 中用于发送网络请求的内置 API&#xff0c;可以替代传统的 XMLHttpRequest。它可以发送 HTTP 请求&#xff08;如 GET、POST 等&#xff09;&#xff0c;并返回一个 Promise&#xff0c;从而简化异步操作 基本用法 /* 下面是…

window任务计划记录中显示操作成功,但是代码只执行了第一句命令

一、创建定时任务 1. Windows键R 调出此窗口&#xff0c;输入compmgmt.msc &#xff08;调用的是计算机管理&#xff09; 2. 创建基本任务 在任务计划程序中右键 选择 创建基本任务。 输入任务名称及描述。 下一步中选择触发器的时间&#xff0c;这里选择每天。 选择开始时间&…

使用VSCode远程连接服务器并解决Neo4j无法登陆问题

摘要&#xff1a;本文介绍了如何通过VSCode连接内网部署的Neo4j服务器&#xff0c;并启动服务。在访问Neo4j登录界面时&#xff0c;遇到了端口映射问题导致无法登录。通过手动添加7687端口的映射后&#xff0c;成功登录Neo4j。 我在内网部署了一台服务器&#xff0c;并在其上运…

【异常解决】Linux shell报错:-bash: [: ==: 期待一元表达式 解决方法

博主介绍&#xff1a;✌全网粉丝21W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…