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

您所在的位置:网站首页 mix2s扩容分区 如何制作一个卡刷扩容补丁。用于扩容系统等分区 刷写第三方需要扩容才可以刷写的系统或者GSI GSI系统bug修复【二】

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

2024-07-12 00:06| 来源: 网络整理| 查看: 265

前面分享了一期手动扩容系统分区的博文,今天来系统解析下扩容卡刷补丁的制作。因为机型字库不同。挂载的分区方式也有所不同。操作前首先确定自己机型的字库芯片。以一款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,添加这个代码并保存即可。 true 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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3