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.rchttps://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是展开的目录

…更多差异待分析

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vue+Springboot实现简单文件上传到本地

实现效果 点击上传文件按钮后&#xff0c;选择需要上传的文件&#xff0c;如果是图片的话&#xff0c;上传成功后可以直接在下面预览。 前端页面 <template><div class"file-upload"><el-upload:headers"getUploadConfig(token).headers"…

闯关leetcode——3206. Alternating Groups I

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/alternating-groups-i/description/ 内容 There is a circle of red and blue tiles. You are given an array of integers colors. The color of tile i is represented by colors[i]: colors[i…

QT Unknown module(s) in QT 以及maintenance tool的更详细用法(qt6.6.0)

不小心接了同事的委托&#xff0c;帮改一个qt的工程代码。然后出事了&#xff0c;那个proj是qt5.9版本的吧&#xff0c;搞到6.6版本的环境中各种问题。至少有3个是这样的&#xff1a; :-1: error: Unknown module(s) in QT: multimedia 直接百度&#xff0c;好像很简单&#x…

Springboot苍穹外卖实战:四、分页查询(PageHelper实现、日期格式转换)

分页查询 使用PageHelper插件实现。其实可以升级为MybatisPlus的。 接口设计 设计DTO类 com.sky.dto.EmployeePageQueryDTO 已设计好&#xff0c;为EmployeePageQueryDTO&#xff1b; 封装PageResult com.sky.result.PageResult com.sky.result.Result 已封装好&#xff0…

0x00基础算法 -- 0x03 前缀和与差分

1、前缀和 对于一个给定的数组A&#xff0c;它的前缀和数列S是通过递推求得的&#xff1a;//A[]和S[]的有效数据从下标1开始&#xff0c;方便后续计算 s[0] 0; for (int i 1; i < n; i) {s[i] s[i - 1] A[i]; } 作用&#xff1a;用于快速求得某一部分的和&#xff1a;对…

四焦距聚焦型光场计算成像系统的设计

摘要: 光场相机是一种在图像传感器前增加微透镜阵列的新型相机结构&#xff0c;除了记录不同位置下光的强度及颜色外&#xff0c;也记录不同位置下光线的方向信息&#xff0c;从而能够计算目标场景的深度图和高阶相位图。该技术由于景深和分辨率相互制约&#xff0c;获得大景深…

ubuntu18.04 配置安卓编译环境

目前有个项目&#xff0c;验收时有个要求是在linux中进行编译打包生成apk文件。我平时都是在windows环境android studio中进行打包的&#xff0c;花了半天时间研究了一下&#xff0c;记录如下&#xff1a; 安装安卓sdk cd /opt wget https://dl.google.com/android/reposito…

qt QWidgetAction详解

1、概述 QWidgetAction是Qt框架中的一个类&#xff0c;它继承自QAction类。QWidgetAction允许开发者将自定义的小部件&#xff08;widget&#xff09;插入到基于QAction的容器中&#xff0c;如工具栏或菜单项中。这使得QWidgetAction成为创建复杂用户界面和自定义菜单项的强大…

工位管理革新:Spring Boot企业级系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理企业级工位管理系统的相关信息成为必然。开…

mysql查询语句(基础)

查询所需要的关键字 select 先在图形化工具导入数据库文件。 1&#xff1a;查询一个表中的所有列&#xff0c;使用通配符 * 。 select * from 表名 ; 2&#xff1a;查询表中的某列字段。 select 字段1,字段2,... from 表名; 字段之间使用逗号隔开。 …

Zookeeper的安装与使用

一、简介 1.1、概念 ZooKeeper 是一个开源的分布式协调服务&#xff0c;主要用于解决分布式系统中的数据一致性问题。它提供了一种可靠的机制来管理和协调分布式系统的各个节点。ZooKeeper 的设计目标是简化分布式应用的开发&#xff0c;提供简单易用的接口和高性能、高稳定性…

【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型

【论文阅读】医学SAM适配器&#xff1a;适应医学图像分割的任意分割模型 文章目录 【论文阅读】医学SAM适配器&#xff1a;适应医学图像分割的任意分割模型一、介绍二、联系工作三、方法四、实验 Medical SAM Adapter: Adapting Segment Anything Model for Medical Image Segm…

caozha-ip(IP地址查询源码)

caozha-ip&#xff0c;是基于原生PHP写的一套完整的IP转地址模块源码&#xff0c;支持自动获取IP&#xff0c;也支持查询指定IP&#xff0c;同时支持输出json、jsonp、text、xml、js等多种IP和地址格式&#xff0c;还可以细分为国家、省、市、地区&#xff0c;方便在各种系统里…

【Android、IOS、Flutter、鸿蒙、ReactNative 】文本Text显示

XML布局 参考 android:text <TextViewandroid:id"id/textview"android:layout_width"wrap_content"android:layout_height"wrap_content"android:text"Android Java TextView"app:layout_constraintBottom_toBottomOf"paren…

FPGA学习笔记#7 Vitis HLS 数组优化和函数优化

本笔记使用的Vitis HLS版本为2022.2&#xff0c;在windows11下运行&#xff0c;仿真part为xcku15p_CIV-ffva1156-2LV-e&#xff0c;主要根据教程&#xff1a;跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 学习笔记&#xff1a;《FPGA学习笔记》索引 FPGA学习笔记#1 HLS简介及…

深入浅出JUC常用同步器

文章目录 1.JUC下同步器1.1 CountdownLatch 倒计数锁存器1.2 CyclicBarrier回环屏障1.3 Semephone 信号量 2.小结 1.JUC下同步器 日常开发会遇到主线程开启多个子线程去并行执行任务&#xff0c;并且主线程需要等待所有子线程执行完后在进行汇总的场景。 同步器出现之前&…

工位管理新策略:Spring Boot企业级应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

CAN总线物理层特性详细分析

目录 1. 简介 2. CAN总线拓扑图 3. CAN硬件电路 4. CAN电平标准 5. CAN收发器-TJA1050&#xff08;高速CAN&#xff09; 6. CAN物理层特性 1. 简介 CAN总线&#xff08;Controller Area Network Bus&#xff09;控制器局域网总线&#xff0c;是由BOSCH公司开发的一…

2024AAAI | DiffRAW: 利用扩散模型从手机RAW图生成单反相机质量的RGB图像

文章标题&#xff1a;《DiffRAW: Leveraging Diffusion Model to Generate DSLR-Comparable Perceptual Quality sRGB from Smartphone RAW Images》 原文链接&#xff1a;DiffRAW 本文是清华大学深圳研究院联合华为发表在AAAI-2024上的论文&#xff08;小声bb&#xff1a;华…

idea出现的问题

1.idea正常的运行,但是debug失败 原因&#xff1a;debug模式中使用的jdk和你在环境变量中配置的不是同一个jdk。或者说三处地方修改一致即可 1.File/Project Structure/Project Settings/Modules中的SDK 2.File/Project Structure/Platform Settings 中的SDKS 3.Run/Debug Conf…