oneplus3t-lineageos-16.1编译-android9,

news2025/1/21 14:38:53

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_BASE

D=/app4/lineage16_oneplus3t_new
cd $D
#GitBranch=lineage-16.0


source 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-12650H

sudo 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.zip





df -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.5

sudo 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.coloradmin.cn/o/2279857.html

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

相关文章

Langchain+FastApi+Vue前后端Ai对话(超详细)

一、引入 首先可以先看下作者的文章 FastApi相关文章&#xff1a;创建最简单FastApi的项目Vue相关文章&#xff1a;最简单的aixos二次封装Langchain相关文章&#xff1a;如何使用LangSmith跟踪deepseek模型 二、后端搭建 1 项目文件结构 routers&#xff1a;存放api接口se…

leetcode49-字母异位词分组

leetcode 49 思路 通过一个哈希表进行记录每个分组&#xff0c;遍历strs&#xff0c;然后对每个字符串item进行排序&#xff0c;比如&#xff1a;acb bac cab都会被排序为’abc’,然后以abc作为map的key&#xff0c;value就是存放所有匹配出来为key的值&#xff0c;最后把ma…

深度学习 DAY1:RNN 神经网络及其变体网络(LSTM、GRU)

实验介绍 RNN 网络是一种基础的多层反馈神经网络&#xff0c;该神经网络的节点定向连接成环&#xff0c;其内部状态可以展示动态时序行为。相比于前馈神经网络&#xff0c;该网络内部具有很强的记忆性&#xff0c;它可以利用它内部的记忆来处理任意时序的输入序列&#xff0c;…

跨境电商使用云手机用来做什么呢?

随着跨境电商的发展&#xff0c;越来越多的卖家开始尝试使用云手机来协助他们的业务&#xff0c;这是因为云手机具有许多优势。那么&#xff0c;具体来说&#xff0c;跨境电商使用云手机可以做哪些事情呢&#xff1f; &#xff08;一&#xff09;实现多账号登录和管理 跨境电商…

【Linux】gawk编辑器二

一、变量 gawk编程语言支持两种变量&#xff1a;内建变量和自定义变量。 1、内建变量 gawk使用内建变量来引用一些特殊的功能。 字段和记录分隔符变量 数据字段变量 此变量允许使用美元符号&#xff08;$&#xff09;和字段在记录中的位置值来引用对应的字段。要引用记录…

部署Metricbeat监测ES

官方参考文档 安装Metricbeat curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.17.27-linux-x86_64.tar.gztar xzvf metricbeat-7.17.27-linux-x86_64.tar.gz设置 Metricbeat连接到 Elasticsearch 进入metricbeat目录配置metricbeat.yml …

Linux--运维

Mysql主从同步 通过将MySQL的某一台主机&#xff08;master&#xff09;的数据复制到其他主机&#xff08;slaves&#xff09;上&#xff0c;并重新执行一遍来执行 复制过程中一台服务器充当主服务器&#xff0c;而其他一个或多个其他服务器充当从服务器 为什么要做主从复制 …

【odbc】odbc连接kerberos认证的 hive和spark thriftserver

hive odbc驱动&#xff0c;以下两种都可以 教程&#xff1a;使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: &#xff08;1&#xff09;可以…

家政服务小程序,打造智慧家政新体验

春节即将来临&#xff0c;家政市场呈现出了火热的场景&#xff0c;大众对家政服务的需求持续增加。 近年来&#xff0c;家政市场开始倾向数字化、智能化&#xff0c;借助科学技术打造家政数字化平台&#xff0c;让大众在手机上就可以预约家政服务&#xff0c;减少传统家政市场…

SQL在线格式化 - 加菲工具

SQL在线格式化 - 加菲工具 打开网站 加菲工具 https://www.orcc.online 选择“SQL 在线格式化” 或者直接访问网址 https://www.orcc.online/tools/sql 输入sql&#xff0c;点击上方的格式化按钮即可 输入框得到格式化后的sql结果

WPF1-从最简单的xaml开始.md

1. 最简单的WPF应用 1.1. App.config1.2. App.xaml 和 App.xaml.cs1.3. MainWindow.xaml 和 MainWindow.xaml.cs 2. 正式开始分析 2.1. 声明即定义2.2. 命名空间 2.2.1. xaml的Property和Attribute2.2.2. xaml中命名空间2.2.3. partial关键字 学习WPF&#xff0c;肯定要先学…

cursor重构谷粒商城02——30分钟构建图书管理系统【cursor使用教程番外篇】

前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶到中高阶程序员。 本项目将基于谷粒商城…

Linux探秘坊-------3.开发工具详解(1)

1 初识vim编辑器 创建第一个vim编辑的代码 1.新建文件 2.使用vim打开 3.打开默认是命令模式&#xff0c;写代码需要在屏幕上输出“i”字符 1.写完代码后要按Esc键退出到指令模式2.再按shift:wq即可保存并退出vim &#xff08;因为不支持鼠标&#xff0c;通常 使用键盘上的箭…

ESP-Skainet语音唤醒技术,设备高效语音识别方案,个性化交互应用

在当今数字化、智能化飞速发展的时代&#xff0c;物联网&#xff08;IoT&#xff09;与人工智能&#xff08;AI&#xff09;的深度融合正在重塑我们的生活和工作方式。 在智能家居的生态系统中&#xff0c;语音唤醒技术不仅能够为用户提供个性化的服务&#xff0c;还能通过定制…

25西湖ctf

2025西湖冬季 图片不全去我blog找&#x1f447; 25西湖 | DDLS BLOG 文章所有参考将在文末给出 web web1 ssti 太简单的不赘述&#xff0c;知道用就行 {{cycler.__init__.__globals__.__builtins__[__import__](os).popen($(printf "\150\145\141\144\40\57\146\1…

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践&#xff08;第2版&#xff09;》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践&#xff08;第2版&#xff09;&#xff08;Linux技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 Lin…

python轻量级框架-flask

简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用&#xff0c;适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架&#xff0c;是因为它与一些大型 Web 框架…

python+pygame+pytmx+map editor开发一个tiled游戏demo 05使用object层初始化player位置

代码 import mathimport pygame# 限制物体在屏幕内 import pytmxdef limit_position_to_screen(x, y, width, height):"""限制物体在屏幕内"""x max(0, min(x, SCREEN_WIDTH - width)) # 限制x坐标y max(0, min(y, SCREEN_HEIGHT - height))…

上位机工作感想-2024年工作总结和来年计划

随着工作年限的增增长&#xff0c;发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了&#xff0c;或许是逐渐被工作逼得“成熟”了吧。2024年&#xff0c;学到了很多东西&#xff0c;做了很多项目&#xff0c;也帮别人解决了很多问题&#xff0c;唯独没有涨工资。来这…

Ubuntu离线docker compose安装DataEase 2.10.4版本笔记

1、先准备一个可以正常上网的相同版本的Ubuntu系统&#xff0c;可以使用虚拟机。Ubuntu系统需要安装好docker compose或docker-compose 2、下载dataease-online-installer-v2.10.4-ce.tar在线安装包&#xff0c;解压并执行install.sh进行安装和启动 3、导出docker镜像 sudo d…