如何制作一个卡刷扩容补丁。用于扩容系统等分区 刷写第三方需要扩容才可以刷写的系统或者GSI GSI系统bug修复【二】

news2024/11/30 2:31:17

前面分享了一期手动扩容系统分区的博文,今天来系统解析下扩容卡刷补丁的制作。因为机型字库不同。挂载的分区方式也有所不同。操作前首先确定自己机型的字库芯片。以一款emmc芯片的扩容补丁为例来解析其操作原理:

安卓系列机型--软扩容“system分区扩容”操作步骤解析 增加系统分区大小

💔💔💔💔💔💔💔💔打开补丁💔💔💔💔

其中的parted文件为扩容分区必须的工具。另外的是刷写脚本。我们需要操作update-binary。打开他脚本如下

ui_print "Step 1/7: Preparing parted."
mkdir /tmp/repart_files # For safe using PATH.
unzip $ZIP -d /tmp/repart_files
chmod +x /tmp/repart_files/parted
PATH=$PATH:/tmp/repart_files/

ui_print "Step 2/7: Unmounting."
umount -l /system
umount -l /vendor
umount -l /data
umount -l /dev/block/mmcblk0p61
umount -l /dev/block/mmcblk0p62
umount -l /dev/block/mmcblk0p63
umount -l /dev/block/mmcblk0p64


ui_print "Step 3/7: Removing partitions."
parted /dev/block/mmcblk0 rm 61
parted /dev/block/mmcblk0 rm 62
parted /dev/block/mmcblk0 rm 63
parted /dev/block/mmcblk0 rm 64

ui_print "Step 4/7: Creating new partitions."
parted /dev/block/mmcblk0 mkpart primary 1141MB 9000MB
parted /dev/block/mmcblk0 mkpart primary 9000MB 11148MB
parted /dev/block/mmcblk0 mkpart primary 11148MB 12020MB
parted /dev/block/mmcblk0 mkpart primary 12020MB 100%
parted /dev/block/mmcblk0 name 61 system
parted /dev/block/mmcblk0 name 62 vendor
parted /dev/block/mmcblk0 name 63 cust
parted /dev/block/mmcblk0 name 64 userdata
ui_print "Step 5/7: Unmounting."
umount -l /data
umount -l /system
umount -l /vendor
umount -l /dev/block/mmcblk0p61
umount -l /dev/block/mmcblk0p62
umount -l /dev/block/mmcblk0p63
umount -l /dev/block/mmcblk0p64
ui_print "Step 6/7: Formatting new partitions (ext4)."
mke2fs -T ext4 /dev/block/mmcblk0p61
mke2fs -T ext4 /dev/block/mmcblk0p62
mke2fs -T ext4 /dev/block/mmcblk0p63
mke2fs -T ext4 /dev/block/mmcblk0p64
ui_print "Step 7/7: Check the FS."
e2fsck -pcfv /dev/block/mmcblk0p61
e2fsck -pcfv /dev/block/mmcblk0p62
e2fsck -pcfv /dev/block/mmcblk0p63
e2fsck -pcfv /dev/block/mmcblk0p64
ui_print "Done. Reboot in 5 sec to FASTBOOT MODE!."
sleep 5
reboot bootloader

从中可以看出脚本的操作步骤。如果你仔细看过我上个帖子就会发现其操作原理大致是相同的。在脚本中mount是挂载分区 。反之umount是取消挂载分区也就是卸载分区。

基本流程为1----取消挂载system vendor data cust分区对应61 62 63 64分区号,友友们可以对照我前一个帖子。

2删除分区--rm为删除指令

3重新分区---mkpart重新分区。依次为61 62 63 64分区重新指定大小进行分区。然后指定分区名字

4格式化分区---使用脚本对分区进行格式化操作。

5检查分区---e2fsck指令检查分区

6完成操作。然后重启到fastboot模式

基本步骤对于emmc分区是通用的。如果你需要自己做扩容补丁。而自己机型也是emmc芯片的那么你只需要对这几出脚本进行修改即可

1---知道自己机型的system分区号和后面分区的分区号

2---然后按自己需要的扩容大小进行分区即可。脚本修改各处都要注意分区号

parted /dev/block/mmcblk0 mkpart primary 1141MB 9000MB
parted /dev/block/mmcblk0 mkpart primary 9000MB 11148MB
parted /dev/block/mmcblk0 mkpart primary 11148MB 12020MB
parted /dev/block/mmcblk0 mkpart primary 12020MB 100%

如果对分区大小设置有疑问,可以参考上个博文有说明。

💔💔💔💔💔💔💔💔ufs芯片扩容💔💔💔💔💔💔💔💔

其实参考emmc芯片字库扩容补丁也是可以的。扩容补丁种类较多。有不同的扩容方法。有的用sgdisk方式进行扩容的。sgdisk是Linux下操作GPT分区的工具.下例

SDAPATH="/dev/block/sda"
SDEPATH="/dev/block/sde"
SGDISKBIN="/tmp/krtmp/sgdisk"

mkdir /tmp/krtmp
cd /tmp/krtmp
unzip -o "$ZIP"
chmod 0755 $SGDISKBIN

$SGDISKBIN --delete=21 $SDAPATH
$SGDISKBIN --delete=47 $SDEPATH
$SGDISKBIN --delete=48 $SDEPATH

$SGDISKBIN --new 0:0:+5G --change-name=21:system --typecode=21:97D7B011-54DA-4835-B3C4-917AD6E73D74 $SDAPATH
$SGDISKBIN --new 0:0:0 --change-name=22:userdata --typecode=22:1B81E7E6-F50D-419B-A739-2AEEF8DA3335 $SDAPATH
$SGDISKBIN --new 0:0:0 --change-name=47:vendor --typecode=47:97D7B011-54DA-4835-B3C4-917AD6E73D74 $SDEPATH

sleep 3

reboot recovery

exit 0

另外很多工具箱也具有扩容分区的操作。在此提醒。操作失误严重后导致不开机 黑屏状态。这种情况就需要深刷就砖了。

💔💔💔💔💔💔💔💔gsi镜像bug修复💔💔💔💔💔💔💔💔

继续补充gsi镜像bug修复,感兴趣的可以参考

1---卡第一屏。可以正常开机的系统里提取/system/etc/selinux。替换到gsi镜像里尝试

2---.如何修改GSI或SGSI开机提示Android 报错?:
只需用mt管理器打开并编辑system/framework/framework-res.apk/resources.arsc。搜索开机报错内容并修改即可。适用于Android O~Android R修复flyme gsi和sgsi系统闪屏无法正常使用问题:
3.cpu频率占用过高:
删除以下文件即可:
system/bin/hdrfix.sh
system/etc/init/hdrfix.sh
4.修复gsi发热,可以删除以下文件夹:
system/priv-app/dpmservice或system/priv-app/dpmserviceapp再重启手机即可
5.去除部分gsi首次提示Android正在升级界面:
删除system/bin/packages.rc和system/etc/init/packages.rc即可修正

6.miui关于手机频率信息:
修改system/etc/device_features/xxx.xml,比如关于手机显示的频率是2.9,那就搜索290,修改即可,改成220就是2.2,230就是2.3,以此类推......

7.修复gsi蓝牙音频无效问题:
你可以尝试在system/build.prop和vendor/build.prop都加这些代码试试。
仅在Android 9生效,Android10无效。
persist.vendor.btstack.enable.splita2dp=false
persist.vendor.btstack.a2dp_offload_cap=false

8.修复flyme gsi信号图标偏大偏小:
删除system/product/overlay/Flyme-Notch-Height-Fix-By-Shiv.apk和flyme-systemui.apk再重启手机即可修复

9.zui关于手机配置信息显示:
修改system\etc\deviceinfo里面的内容即可。

10.修复miui状态栏手电筒:
修改system/etc/device_features里面的xml,添加这个代码并保存即可。
<!-- Support Android Flashlight Controller -->
<bool name="support_android_flashlight">true</bool>

11.修复关于手机配置信息显示问题:
手机logo图片位置:
Settings.apk/res/drawable-xxhdpi-v4/oneplus_other.png
配置信息修改:
用mt管理器2编辑Settings.apk,用Dex编辑器++全选所有dex,进入com/oneplus/settings/aboutphone 搜索noce,修改那3个noce,那3个noce分别对应处理器信息,相机信息和屏幕信息。

12.修复ColorOS7亮度调节问题:
用mt管理器2找到 /sys/class/leds/light-backlight,把0改成160。

13. 解决诺基亚gsi、sgsi不显示桌面图标:
长按桌面,进入桌面设置,把单层显示改为双层显示即可

14.去除flyme,miui,zui,h2os的屏幕指纹通常只需要把SystemUI.apk里面的所有指纹图标ps成透明的再替换即可

15.如何修复屏幕闪屏和亮度调节闪屏?
修复方案:
用mt管理器2修改/system/framework/framework-res.apk,编辑resources.arsc,integer/integer:
config_screenBrightnessSettingDefault:100
config_screenBrightnessSettingMaximum:255
config_screenBrightnessSettingMinimum:10
如果修改后亮度过低请修改成底包或者官方包的数值!

16.相机和扫码都不能用该如何修复?
提取底包的system/lib和lib64:
libcamera开头的驱动全部替换即可

17.oneui卡主题,请检查手机屏幕是否为16:9

18.系统全局圆角
提取system/framework下的framework-res.apk.在mt下选择查看
然后选中resources.arsc 打开方式选择arsc编辑器

一路选择Android,dimen , dimen
之后右上角选择过滤 弹出的搜索框搜索config(随意)
,目的是筛出这两个值,一个按钮,菜单的角,一个通知栏的角。config_dialogCornerRadius和

config_buttonCornerRadius
在搜索结果中找到config_dialogCornerRadius和 config_buttonCornerRadius,编辑这两个值为8dp(这是pixel的官方pie默认的值 也是大部分ROM默认的值 如果你需要更大圆角可以自行加大 比如12dp)

最后一路返回弹出提示选择保存,更新压缩文件选择确定。大功告成。然后用这个修改后的framework res.apk.替换掉system/framework下原来的,修改权限r-w-r-r(644),重启。

19.无基带,从底包替换vendor.qti.qcril
vendor.qti.atcmdfwd,到lib/lib64

如果给对你有帮助。请点个赞赞呗,关注我了解玩机搞机基本常识和一些故障解决

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

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

相关文章

003微信小程序云开发API数据库-新增集合-删除集合-获取集合信息

文章目录 1.微信小程序云开发API数据库-新增集合案例代码 2.微信小程序云开发API数据库-删除集合案例代码 3.微信小程序云开发API数据库-获取集合信息案例代码 1.微信小程序云开发API数据库-新增集合 微信小程序云开发API数据库是一个方便快捷的数据库解决方案&#xff0c;可以…

快捷支付是什么?怎么申请支付接口?

快捷支付是什么&#xff1f;怎么申请支付接口&#xff1f; 快捷支付&#xff0c;又称电子支付或第三方支付&#xff0c;在行业中得到了广泛的应用。用户只需通过银行完成交易。方便快捷意味着银行可以在任何条件下支持用户之间的转账、支付和其他即时结算服务。快捷支付意味着…

阿里云APP备案操作流程_新手看过来

阿里云APP备案流程分为6步&#xff0c;APP备案成功后应用可以上架&#xff0c;登录阿里云账号填写APP信息&#xff0c;等待阿里云初审&#xff0c;初审通过后进行工信部短信核验&#xff0c;管局审核通过后APP即可备案成功&#xff0c;最后移动APP应用可以分发平台上架&#xf…

Linux中select poll和epoll的区别

在Linux Socket服务器短编程时&#xff0c;为了处理大量客户的连接请求&#xff0c;需要使用非阻塞I/O和复用&#xff0c;select、poll和epoll是Linux API提供的I/O复用方式&#xff0c;自从Linux 2.6中加入了epoll之后&#xff0c;在高性能服务器领域得到广泛的应用&#xff0…

Fastchat:基于fastapi构建大模型加载服务

Fastchat&#xff1a;基于fastapi构建大模型加载服务 Fastapi LLM支持FastChat 服务架构安装方法一&#xff1a;pip方法二&#xff1a;源文件 加载大模型推理1.命令行2.Web启动控制器启动模型工作启动 Gradio Web 服务器注册多个模型 3.兼容 OpenAI 的 RESTful API RESTful API…

CSS 滚动驱动动画 view()

CSS 滚动驱动动画 view 语法例子 两个 inset一个 inset CSS 滚动驱动动画 view() animation-timeline 通过 view() 表示一个元素 A 将提供匿名的、 用来控制动画的 view progressive timeline. 通过 A 在其最近的滚动祖先元素中的可见性来推动 view progressive timeline. 也…

PHP自己的框架2.0版本目录结构和命名空间自动加载类(重构篇一)

目录 1、目录结构演示效果 2、搭建目录结构&#xff0c;以及入口public->index.php 3、引入core下面core->base.php 4、自动加载实现core->fm->autoload.php 5、框架运行文件core->fm->core.php 6、最终运行index.php结果 1、目录结构演示效果 2、搭…

单目标应用:基于成长优化算法(Growth Optimizer,GO)的微电网优化调度MATLAB

一、微网系统运行优化模型 微电网是由分布式电源、储能装置和能量转换装置等组成的小型发配电系统&#xff0c;具有成本低、电压低、污染小等特点。由于环保和能源压力&#xff0c;清洁可再生能源和分布式能源工业发展潜力巨大。微电网控制器可实现对电网的集中控制&#xff0…

【C++笔记】C++string类模拟实现

【C笔记】Cstring类模拟实现 一、实现模型和基本接口1.1、各种构造和析构1.2、迭代器 二、各种插入和删除接口2.1、插入接口2.2、删除接口2.3、resize接口 三、各种运算符重载3.1、方括号运算符重载3.2、各种比较运算符重载 四、查找接口4.1、查找字符4.2、查找子串 五、流插入…

【7z密码】如何给7z压缩包加密、解密?

7z压缩包是压缩率最大的格式&#xff0c;也有很多朋友会使用7z格式&#xff0c;那么7z压缩包如何进行加密、解密&#xff1f;今天给大家介绍详细教程。 7-zip加密 右键文件选择7-zip打开压缩软件进行压缩或者在打开7-zip软件找到需要压缩的文件&#xff0c;点击添加&#xff…

【大数据】基于 Flink CDC 高效构建入湖通道

基于 Flink CDC 高效构建入湖通道 1.Flink CDC 核心技术解析2.CDC 数据入湖入仓的挑战2.1 CDC 数据入湖架构2.2 CDC 数据 ETL 架构 3.基于 Flink CDC 的入湖入仓方案3.1 Flink CDC 入湖入仓架构3.2 Flink CDC ETL 分析3.3 存储友好的写入设计3.4 Flink CDC 实现异构数据源集成3…

ECharts数据可视化项目

Echarts 可视化面板介绍01-使用技术02- 案例适配方案03-基础设置04-header 布局05-mainbox 主体模块06-公共面板模块 panel07-柱形图 bar 模块(布局)08-中间布局09-Echarts-介绍10-Echarts-体验11-Echarts-基础配置12- 柱状图图表&#xff08;两大步骤&#xff09;13-柱状图2定…

基于Java+SpringBoot+Vue前后端分离交通管理在线服务系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

地形有通挂支隘险远六种情况

地形有通、挂、支、隘、险、远六种情况 【安志强趣讲《孙子兵法》第34讲】 第十一篇&#xff1a;地形篇 【全文大白话】 地形有各种情况&#xff0c;行军有各种情况&#xff0c;用好地形获得交战的主动权。 【原文】 孙子曰&#xff1a;地形有通者&#xff0c;有挂者&#xff0…

百家号创业项目:小白即可日入30到100,寻找爆款文案技术教程免费分享

百家号项目&#xff1a;月入1K-3K不费力&#xff0c;寻找爆款文案的秘诀&#xff01; 当下&#xff0c;有一个备受关注的项目——百家号&#xff0c;许多人以 300-800 元不等的价格提供培训&#xff0c;声称每个号每月可以轻松赚取1K-3K。 然而&#xff0c;据我个人测试&…

容器编排学习(一)容器技术

一 容器 1 Linux 容器的起源 容器的起源可以追溯到1979年 UNIX 系统中提供的chroot命令&#xff0c;容器的最初的设计目标是为了隔离计算机中的各类资源以便降低软件开发、测试阶段的风险&#xff0c;或者充当蜜罐&#xff0c;吸引黑客的攻击&#xff0c;以便监视黑客的行为…

Logstash--logstash-syslog-putput插件安装及使用

这篇文章讲的是如何在Linux服务器上安装logstash-syslog-output插件及使用&#xff0c;是集网上之大成&#xff0c;择选出一条正确有效简短的路。 安装 插件logstash-syslog-output&#xff0c;如果你的logstash没有&#xff0c;则需要安装。 查看logstash是否含有这个插件的…

代码生成商业化一些思考

代码生成解决方案 生成项目代码有3大类的解决思路&#xff1a; 1.从底到上的生成&#xff0c;部分代码生成生成一行代码或者一个方法种一小块代码生成&#xff0c;ide插件代码生成基本这种思路 2.大语言模型作为软件工程不同角色agent&#xff0c;用户给出idea每个agent自动…

vue3:16、Pinia的基本语法

选项式APi 组合式API src/store/counter.js import { defineStore } from "pinia"; import { computed, ref } from "vue";export const userCounterStore defineStore("counter",()>{//声明数据 state - countconst count ref(100)//声…

ATTENTION, LEARN TO SOLVE ROUTING PROBLEMS!

ATTENTION, LEARN TO SOLVE ROUTING PROBLEMS! 1、背景2、基于注意力层的模型4、解码器 1、背景 本篇论文基于Transformer模型提出了一个基于注意力层的模型&#xff0c;并采用REINFORCE方法训练模型&#xff0c;来求解以下几种组合优化问题&#xff1a; 旅行商问题(Travellin…