oneplus3t-lineageos-16.1编译-android9,

oneplus3t-lineageos-16.1编译-android9

oneplus3t 前提

  1. 救砖线刷 OnePlus3t android9

  2. OTA卡刷 OnePlus3t android9

  3. APatch root

  4. debian11(标准GNU工具集) arm 工具盘(chroot 风格rootfs, 含有 比如sshd 、gdb) : tinan/eadb.git

本仓库开发已经完毕,使用请直接从4.2开始

** LineageOS16_oneplus3t仓库群克隆 、 编译 、 刷机**

  • 编译过程若ctrl+c强制终止,请重新从头编译

LineageOS16_oneplus3t仓库群克隆过程

LineageOS16_oneplus3t仓库群克隆过程描述: LineageOS16_oneplus3t_gitRepoLs_clone_desc.pdf

0_clone_me


git clone --branch zzz-stable https://gitlab.com/lineage16_oneplus3t/manifest-parser/git-repo.git /app4/git-repo
#/app4/git-repo/.git/config

1_lineageOS16_android9_repo_pull

仅开发时执行,产物已在本仓库,用户无需执行

此步骤执行了修改的repo命令,从而获得LineageOS-16.0–oneplus3t仓库群

执行内容
bash -x <(curl https://gitlab.com/lineage16_oneplus3t/manifest-parser/git-repo/-/raw/zzz-stable/projGit_ls/lineageOS16_android9_repo_pull.sh)

lineageOS16(android9)代码仓库拉取 ( 执行展开 ),

输入

manifest/lineageos-android–oneplus3t/lineage-16.0/default.xml

产物
  • 仓库群描述 : projGit_ls/gen/[projGit_ls.*.json|projGit_ls.*.md]

  • 本地目录下仓库群 中 的 软链接命令、复制文件命令 : projGit_ls/gen/[projCopyAndSoftLinkLs_ls.*.sh]

2_gitlabWebBatchImportReqXmlFile_gen

仅开发时执行,产物已在本仓库,用户无需执行

gitlab网页端批量导入请求生成

执行内容

bash /app4/git-repo/projGit_ls/json__to__gitlabWebBatchImportReqXmlFile/main.sh ( main.sh )

输入

即上一步产物: projGit_ls/gen/[projGit_ls.*.json|projGit_ls.*.md]

产物

gitlabWebBatchImportReq/*.xml

3_gitlabWebBatchImport

仅开发时执行, 产物已在本仓库,用户无需执行

gitlab网页批量导入LineageOS-16.0–oneplus3t仓库群**

执行内容

浏览器人工打开此网页批量导入仓库: gitlab网页批量导入

文档和例子manifest.xml

输入

即上一步产物: gitlabWebBatchImportReq/*.xml

产物

https://gitlab.com/lineage16_mirror

4_lineage16_clone

4.1

准备

仓库群描述 转换为 仓库群克隆文件

仅开发时执行, 产物已在本仓库,用户无需执行

产物 projGit_ls/gen/gitCloneCmd.sh 已在本仓库 。

bash /app4/git-repo/projGit_ls/json__to__cloneCmd/main.sh
4.2

执行内容

克隆LineageOS-16.0–oneplus3t仓库群


#克隆LineageOS-16.0--oneplus3t仓库群 , gitCloneCmd.sh 中 已写明 --depth=1 (只要以指定分支为起点的1个提交,以减小仓库尺寸) 
root_dir=/app4/lineage16_oneplus3t_newdir   bash /app4/git-repo/projGit_ls/gen/gitCloneCmd.sh

projGit_ls/json__to__cloneCmd/main.sh

projGit_ls/gen/gitCloneCmd.sh

输入

即 步骤2_gitlabWebBatchImportReqXmlFile_gen的产物: gitlabWebBatchImportReq/*.xml

产物

projGit_ls/gen/gitCloneCmd.sh

5_projCopyAndSoftLinkLs

本地目录下仓库群 中 的 软链接命令、复制文件命令 执行

root_dir=/app4/lineage16_oneplus3t_new bash -x /app4/git-repo/projGit_ls/gen/projCopyAndSoftLinkLs_ls.*.sh
#比如 projCopyAndSoftLinkLs_ls.1730372866.43542.sh

projGit_ls/gen//projCopyAndSoftLinkLs_ls.*.sh

LineageOS16_oneplus3t仓库群 编译

6_build

已在前几步完成 保留注释作为警醒

本文中注释掉的部分 都已在前几步完成了,保留注释只是为了保持警醒

主要由以下几处 完成了注释中的内容

  • https://gitlab.com/lineage16_oneplus3t/manifest/lineageos-android/-/blob/lineage-16.0/default.xml
  • https://gitlab.com/lineage16_oneplus3t/resource

### '已在前几步完成 保留注释作为警醒' 开始
#curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /app/bin/repo#export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
#repo init --manifest-url https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git --manifest-branch $GitBranch # GitBranch=lineage-16.0#解决报错, resource layout/preference_category_material_settings (aka org.lineageos.settings.device:layout/preference_category_material_settings) not found
#git clone -b lineage-16.0  https://githubfast.com/LineageOS/android_packages_resources_devicesettings.git    $D/packages/resources/devicesettings#git clone https://github.com/TheMuppets/proprietary_vendor_oneplus.git/oneplus3 -b  lineage-16.0 $D/vendor/oneplus/oneplus3#$D/repo/manifests/default.xml
#<remote  name="aosp" fetch="https://android.googlesource.com"  fetch替换为 "https://mirrors.tuna.tsinghua.edu.cn/git/AOSP"#repo sync --current-branch --no-tags --prune#oneplus3t linux内核、第三方厂商vendor
#git clone -b $GitBranch  https://github.com/LineageOS/android_device_oneplus_oneplus3.git  $D/device/oneplus/oneplus3
#git clone -b $GitBranch  https://github.com/LineageOS/android_device_oppo_common.git       $D/device/oppo/common
#git clone -b $GitBranch  https://github.com/LineageOS/android_kernel_oneplus_msm8996.git   $D/kernel/oneplus/msm8996
#git clone -b $GitBranch  https://github.com/LineageOS/android_packages_resources_devicesettings.git  $D/packages/resources#解决编译错误, /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x50): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here### '已在前几步完成 保留注释作为警醒' 结束
编译步骤正文
#编译步骤正文开始export PATH_BASE=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/app/bin/
export PATH=$PATH_BASED=/app4/lineage16_oneplus3t_new
cd $D
#GitBranch=lineage-16.0source build/envsetup.sh#export V=1
export LC_ALL=C
export ALLOW_MISSING_DEPENDENCIES=true
lunch lineage_oneplus3-userdebug && mka showcommands bacon  # lineage_oneplus3-eng
#编译步骤正文结束

参考: gitee/android_framework/oneplus3/lineage-build-simple-manual.md

某次编译产物举例
  • 编译完成消耗时长为 53分钟(电脑配置: intel-12代i7+16GB内存),

  • 获得的OTA全量卡刷包lineage-16.0-20241101-UNOFFICIAL-oneplus3.zip尺寸为630MB

  • /app4占据空间128GB, out目录大小为77GB, 源码目录大小为50GB

cat /proc/cpuinfo  | grep 'model name' | uniq
#model name	: 12th Gen Intel(R) Core(TM) i7-12650Hsudo dmidecode -t memory #16GB内存#Package Complete: /app4/lineage16_oneplus3t/out/target/product/oneplus3/lineage-16.0-20241101-UNOFFICIAL-oneplus3.zip# build completed successfully (53:32 (mm:ss)) ####ls -lh /app4/lineage16_oneplus3t/out/target/product/oneplus3/lineage-16.0-20241101-UNOFFICIAL-oneplus3.zip
#-rwxrwxrwx   630M  2024年11月1日 22点18分 /app4/lineage16_oneplus3t/out/target/product/oneplus3/lineage-16.0-20241101-UNOFFICIAL-oneplus3.zipdf -h  /app4
#Filesystem      Size  Used Avail Use% Mounted on
#/dev/nvme0n1p1  239G  128G  111G  54% /app4###编译产物中的调试符号 比如 libandroid_runtime.so.debug
find out/ -type f -path "*/oneplus3*/*/libandroid_runtime.so*"
#out/target/product/oneplus3/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/libandroid_runtime.so.debug
#out/target/product/oneplus3/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/libandroid_runtime.so#pwd==/app4/lineage16_oneplus3t/
#out目录大小为77GB
du --threshold=1G --max-depth=1 --human-readable out/
#4.9G	out/host
#30G	out/soong
#42G	out/target
#77G	out/#源码目录大小为50GB
du --exclude=out --threshold=1G --max-depth=1 --human-readable .
#1.4G	./cts
#8.3G	./external
#2.5G	./frameworks
#31G	./prebuilts
#2.3G	./tools
#50G	.

LineageOS16_oneplus3t仓库群 刷机

7_OTA_package_flush

刷机(OTA全量卡刷包)

前提: 已获得root 、 已解锁OEM

adb reboot bootloader 
fastboot boot /app4/twrp-3.5.2_9-0-oneplus3.img #twrp界面 进入 sideload等待: Advance -> 'adb sideload' -> 清除 'davld cache' 、 `user cache' (双请) -> 底部进度条拉到右端
adb sideload /app4/lineage16_oneplus3t/out/target/product/oneplus3/lineage-16.0-20241101-UNOFFICIAL-oneplus3.zip

缺少依赖的报错解决记录

libncurses.so.5: cannot open shared object file
报错现象

m V=1 -j 1 bacon # 或mka showcommands bacon 报错如下

prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
报错解决
apt-file search libncurses.so.5
#libncurses5: /lib/x86_64-linux-gnu/libncurses.so.5sudo apt install libncurses5
m4: command not found

sudo apt install -y build-essential m4

libtinfo.so.5: cannot open shared object file
报错现象

m V=1 -j 1 bacon # 或mka showcommands bacon 报错如下

prebuilts/clang/host/linux-x86/clang-4691093/bin/clang++.real: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
报错解决
apt-file search libtinfo.so.5
#libtinfo5: /lib/x86_64-linux-gnu/libtinfo.so.5
sudo apt install -y libtinfo5
The boot animation could not be generated, as ImageMagick is not installed in your system.
报错现象

m V=1 -j 1 bacon # 或mka showcommands bacon 报错如下

The boot animation could not be generated 
as ImageMagick is not installed in your system.
报错解决
apt-file search ImageMagick
sudo apt install -y imagemagick

其他报错解决记录

aarch64-linux-android-gcc: No such file or directory
报错现象

m V=1 -j 1 bacon # 或mka showcommands bacon 报错如下

/OP3TLos16Build/kernel/oneplus/msm8996/Makefile:671: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
make[1]: aarch64-linux-android-gcc: No such file or directory
报错分析

aarch64-linux-android-gcc是个python2.7脚本,且指定了需要解释器路径为#!/usr/bin/python

head -n 1 /OP3TLos16Build/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gcc
##!/usr/bin/python/OP3TLos16Build/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gcc
#-bash: /OP3TLos16Build/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gcc: /usr/bin/python: bad interpreter: No such file or directory
报错解决
sudo apt install -y python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python
which python #/usr/bin/python
cp: preserving permissions for
报错现象

m V=1 -j 1 bacon # 或mka showcommands bacon 报错如下

/bin/bash -c "(rm -f /app4/lineage16_oneplus3t/out/target/common/obj/JAVA_LIBRARIES/apache-xml_intermediates//classes*.dex ) && (cp -fp /app4/lineage16_oneplus3t/out/target/common/obj/JAVA_LIBRARIES/apache-xml_intermediates/dex-hiddenapi//classes*.dex /app4/lineage16_oneplus3t/out/target/common/obj/JAVA_LIBRARIES/apache-xml_intermediates/ )"
cp: preserving permissions for '/app4/lineage16_oneplus3t/out/target/common/obj/JAVA_LIBRARIES/apache-xml_intermediates/classes.dex': Operation not permitted
报错解决

/app4所在分区挂载选项中增加 uid=1000,gid=1000, ,其中的数值是举例(表示ubuntu22当前登陆的用户的)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络 序列化与反序列化

概念 序列化&#xff08;Serialization&#xff09;是将对象的状态信息转换为可以存储或传输的形式的过程。以下是关于序列化与反序列化的介绍&#xff1a; 序列化&#xff1a;将对象的状态信息转换为可以存储或传输的格式&#xff0c;通常是字节序列或文本格式。反序列化&am…

使用 spring boot 2.5.6 版本时缺少 jvm 配置项

2.5.6我正在使用带有版本和springfox-boot-starter版本的Spring Boot 项目3.0.0。我的项目还包括一个WebSecurityConfig扩展WebSecurityConfigurerAdapter并实现WebMvcConfigurer的类。但是&#xff0c;我面临的问题是指标在端点jvm_memory_usage_after_gc_percent中不可见/act…

python在财务领域的应用

财务岗位在处理数据时&#xff0c;经常会遇到一些复杂的场景&#xff0c;Excel 虽然功能强大&#xff0c;但在某些情况下可能无法高效或灵活地解决问题。以下是一些常见的、需要用编程&#xff08;如 Python、R 或 SQL&#xff09;来解决的数据问题&#xff1a; 1. 大规模数据处…

ZooKeeper 中的 ZAB 一致性协议与 Zookeeper 设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色)

参考Zookeeper 介绍——设计目的、使用场景、相关概念&#xff08;数据模型、myid、事务 ID、版本、监听器、ACL、角色&#xff09; ZooKeeper 设计目的、特性、使用场景 ZooKeeper 的四个设计目标ZooKeeper 可以保证如下分布式一致性特性ZooKeeper 是一个典型的分布式数据一致…

Objective-C语言的数据类型

Objective-C数据类型详解 Objective-C是一种面向对象的编程语言&#xff0c;主要用于macOS和iOS应用程序的开发。作为C语言的超集&#xff0c;Objective-C继承了C语言的基本数据类型&#xff0c;同时也引入了一些独特的特性。本文将对Objective-C的各种数据类型进行详细的介绍…

Spring Boot自动配置原理:如何实现零配置启动

引言 在现代软件开发中&#xff0c;Spring 框架已经成为 Java 开发领域不可或缺的一部分。而 Spring Boot 的出现&#xff0c;更是为 Spring 应用的开发带来了革命性的变化。Spring Boot 的核心优势之一就是它的“自动配置”能力&#xff0c;它极大地简化了 Spring 应用的配置…

大模型GUI系列论文阅读 DAY2续2:《使用指令微调基础模型的多模态网页导航》

摘要 自主网页导航的进展一直受到以下因素的阻碍&#xff1a; 依赖于数十亿次的探索性交互&#xff08;通常采用在线强化学习&#xff09;&#xff0c;依赖于特定领域的模型设计&#xff0c;难以利用丰富的跨领域数据进行泛化。 在本研究中&#xff0c;我们探讨了基于视觉-语…

在视频汇聚平台EasyNVR平台中使用RTSP拉流的具体步骤

之前有用户反馈&#xff0c;在EasyNVR平台中添加Pull时使用海康设备的RTSP流地址无法播放。经过研发的优化及一系列严谨的验证流程&#xff0c;我们已确认优化后的EasyNVR平台&#xff0c;通过Pull方式添加海康设备的RTSP流已经能够正常播放。以下是具体的操作步骤&#xff1a;…

Debezium日常分享系列之:对于从Oracle数据库进行快照的性能优化

Debezium日常分享系列之&#xff1a;对于从Oracle数据库进行快照的性能优化 源数据库Kafka Connect监控测试结果 源数据库 Oracle 19c&#xff0c;本地&#xff0c;CDB数据库主机的I/O带宽为6 GB/s&#xff0c;由此主机上运行的所有数据库共享临时表空间由42个文件组成&#x…

C++书籍 第一部分专业C++程序设计概述

1&#xff0c;必不可少的“hello world” #include<iostream>int main(int argc, char** argv) {std::cout << "hello world" << std::endl;return 0; } 这个是一个极其简单的程序&#xff0c;虽然没有多大简直&#xff0c;但是可以体现c程序格式方…

VIVADO ILA IP进阶使用之任意设置ILA的采样频率

VIVADO ILA IP进阶使用之任意设置ILA的采样频率 VIVADO ILA IP和VIO IP结合使用任意设置ILA的采样频率 目录 前言 一、VIO IP的配置 二、ILA IP的配置 三、测试代码 四、测试结果 总结 前言 VIVADO中编写完程序上板测试时经常会用到viavdo自带的ILA逻辑分析仪IP核&#x…

spring @EnableAspectJAutoProxy @Aspect的使用和源码流程

目录 测试代码EnableAspectJAutoProxyAspectJAutoProxyRegistrarAnnotationAwareAspectJAutoProxyCreatororg.springframework.context.support.AbstractApplicationContext#registerBeanPostProcessors 实例化AnnotationAwareAspectJAutoProxyCreator bean "a"的代理…

Mono里运行C#脚本29—mono_trampolines_init

一、概念解释 在计算机编程中,trampoline 通常是一段代码,它起到一个中间跳转的作用。它就像一个跳板,程序可以先跳转到这个跳板上,然后再从跳板跳转到最终的目的地。这种技术在许多不同的场景中都有应用,以下是一些主要方面: 函数调用方面: 当涉及到不同执行环境或不…

【BUUCTF】[GXYCTF2019]BabySQli

进入页面如下 尝试万能密码注入 显示这个&#xff08;qyq&#xff09; 用burp suite抓包试试 发现注释处是某种编码像是base编码格式 MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5 可以使用下面这个网页在线工具很方便…

重生之我在异世界学编程之算法与数据结构:深入堆篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 正文一、堆的基本概念二、堆的存储表示三…

《自动驾驶与机器人中的SLAM技术》ch8:基于预积分和图优化的紧耦合 LIO 系统

目录 1 预积分 LIO 系统的经验 2 预积分图优化的顶点 3 预积分图优化的边 3.1 NDT 残差边&#xff08;观测值维度为 3 维的单元边&#xff09; 4 基于预积分和图优化 LIO 系统的实现 4.1 IMU 静止初始化 4.2 使用预积分预测 4.3 使用 IMU 预测位姿进行运动补偿 4.4 位姿配准部…

软件测试—— 接口测试(HTTP和HTTPS)

软件测试—— 接口测试&#xff08;HTTP和HTTPS&#xff09; HTTP请求方法GET特点使用场景URL结构URL组成部分URL编码总结 POST特点使用场景请求结构示例 请求标头和响应标头请求标头&#xff08;Request Headers&#xff09;示例请求标头 响应标头&#xff08;Response Header…

【Excel超实用,VLOOKUP函数,通过excel数据精准匹配,将一个excel文件的某列数据,用另一个excel文件快速填充】

1、使用背景 如下图1所示&#xff0c;1.xlsx文件&#xff0c;有两列数据&#xff0c;一列序号&#xff0c;一列内容&#xff0c; 我现在需要将第二列的内容快速完成填充&#xff0c;并且有相应的excel模板作为参照。 图1 如图2所示&#xff0c;2.xlsx是模板文件&#xff0c;序…

FastExcel 新一代的潮流 (EasyExcel)

目录 简介 FastExcel的特点 FastExcel使用方法详解 创建实体类和监听器 实现写入和读取功能 Excel转换为PDF 小结 FastExcel与EasyExcel的区别 结论 简介 FastExcel是由原EasyExcel作者在阿里巴巴宣布停止维护EasyExcel之后推出的升级版框架。它继承了EasyExcel的所有…

Transformer详解:Attention机制原理

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;本系列文章是作者参加DataWhale2025年1月份学习赛&#xff0c;旨在讲解Transformer模型的理论和实践。&#x1f632; 本文将详细探讨Attention机制的原理…