无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2653|回复: 16
打印 上一主题 下一主题

[原创] 红米10x 5G用squashfs overlayfs压缩数据,提升流畅度,大幅度降低空间占用方法

  [复制链接]
跳转到指定楼层
1#
发表于 2022-4-10 16:58:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 510819776 于 2022-4-10 17:14 编辑

如题所述,手机是红米10x 5G,系统版本miui 12.0.5 已解除miui系统保护
{mt文件管理器 dex编辑器++ 修改/system/system/framework/services.jar中的dex中的.method private checkSystemSelfProtection(Z)V的函数内容即可

可以参考 https        ://mrzgh.top/posts/2b1d269d/}


本文主要讲的是利用linux的squashfs和overlay两个文件系统来压缩手机的部分软件,从而提升软件流畅度,大幅度降低软件空间占用.所以root是必须的.
我直接贴代码了!

insmod xxhash.ko
insmod zstd_decompress.ko
insmod squashfs.ko
busybox losetup /dev/block/loop9 /data/ubuntu.sq

mount -t squashfs /dev/block/loop9 /data/o
mount -t overlay overlay lowerdir=/data/o,upperdir=/data/w,workdir=/data/wk /data/ubuntu
简单解释一下,三句insmod是加载squashfs文件系统的驱动,这些驱动是我利用小米开源的10x 5g 安卓10内核编译的,squashfs文件系统是一种压缩文件系统,我编译的squashfs支持lz4 gzip lzo zstd压缩算法,我本人使用的是lz4算法,因为这个算法解压速度最快.
ubuntu.sq这个文件是使用
mksquasfs /data/ubuntu /data/ubuntu.sq -comp lz4 -Xhc -processors 8   生成的,你可以把某些app的data目录进行压缩 然后用上面的命令挂载使用.
需要注意squashfs挂载之后是只读的,无法写入,因此必须用overlay再次挂载,overlay是一种叠加文件系统,可以让只读目录和可写目录叠加合并成一个新的可读写目录,这样才能被app正常使用.
接下来说一下我都压缩了什么把!
1.我压缩了ubuntu 21.10 arm64的chroot包,大小3G 压缩后1G不到
2.我压缩了exagear的数据包,大小2.7G,压缩后780M
压缩后挂载使用实际测试,流畅度没有任何变化,但是空间占用却降低了三分之二.
我在思考是否可以用压缩的方法把元神这种游戏给压缩了!

同时我也给10x 5g编译了btrfs文件系统驱动,这个驱动也是支持lz4 zstd压缩算法,这个可以支持透明压缩读写,
insmod xor.ko
insmod raid6_pq.ko
insmod xxhash.ko
insmod zstd_compress.ko
insmod zstd_decompress.ko
busybox losetup /dev/block/sdc62 /data/btrfs
mount -t btrfs -o compress=zstd /dev/block/loop10 /data/u1
这个btrfs文件系统,配合overlay文件系统 可把部分app的data目录替换掉,从而实时压缩app的目录.

想要深入研究的同志  可以留言 只适用于红米10x 5g 安卓10系统














2#
发表于 2022-4-10 17:11:01 | 只看该作者
字太大影响阅读!

点评

已经改正了错误  发表于 2022-4-10 17:14
回复

使用道具 举报

3#
发表于 2022-4-10 18:37:21 | 只看该作者
#在这里快速回复#只适用于红米10x 5g 安卓10系统
回复

使用道具 举报

4#
发表于 2022-4-10 18:39:10 | 只看该作者
神一般的存在啊
max3 可以吗

点评

一般出场原生安卓10的机器都自带overlay支持 squashfs不带那可以使用squashfuse来挂载 不过这个玩意 基于fuse 性能低一些了 只能说能用 节省空间能做到 但是流畅度 还是有些影响的 内核模式下squashfs才会不影  详情 回复 发表于 2022-4-10 19:21
需要编译内核模块 这些功能想要完善的编译使用 估计得要linux内核源码4.14或更高版本才行了 理论上小米有源码的 内核源码版本比较高都可以的  详情 回复 发表于 2022-4-10 19:17
回复

使用道具 举报

5#
 楼主| 发表于 2022-4-10 19:17:14 | 只看该作者
进士小站 发表于 2022-4-10 18:39
神一般的存在啊
max3 可以吗

需要编译内核模块

这些功能想要完善的编译使用 估计得要linux内核源码4.14或更高版本才行了
理论上小米有源码的  内核源码版本比较高都可以的

点评

以前玩linux系统时弄过 现在早就忘记了  详情 回复 发表于 2022-4-11 13:28
回复

使用道具 举报

6#
发表于 2022-4-10 19:20:25 | 只看该作者
谢谢分享。
回复

使用道具 举报

7#
 楼主| 发表于 2022-4-10 19:21:09 | 只看该作者
进士小站 发表于 2022-4-10 18:39
神一般的存在啊
max3 可以吗

一般出场原生安卓10的机器都自带overlay支持
squashfs不带那可以使用squashfuse来挂载 不过这个玩意 基于fuse 性能低一些了  只能说能用  节省空间能做到
但是流畅度 还是有些影响的
内核模式下squashfs才会不影响速度

点评

太高端了不懂了  详情 回复 发表于 2022-4-11 13:27
回复

使用道具 举报

8#
发表于 2022-4-11 09:32:44 | 只看该作者
压缩了文件以节省空间,那么这些文件在使用时不是需要解压缩出来才能使用吗?这应该会造成流畅度下降吧

点评

流畅度的问题 简单说 主要是 1.看cpu是否满载,一旦满载,就会拖慢系统. 这点压缩 解压 还不会让cpu满负荷 不是瓶颈 2.看程序执行完毕的时间需要多久 程序的执行时间 主要是程序本身执行时间 加上硬盘io时间  详情 回复 发表于 2022-4-11 15:13
回复

使用道具 举报

9#
发表于 2022-4-11 13:27:30 | 只看该作者
510819776 发表于 2022-4-10 19:21
一般出场原生安卓10的机器都自带overlay支持
squashfs不带那可以使用squashfuse来挂载 不过这个玩意 基 ...

太高端了不懂了
回复

使用道具 举报

10#
发表于 2022-4-11 13:28:10 | 只看该作者
510819776 发表于 2022-4-10 19:17
需要编译内核模块

这些功能想要完善的编译使用 估计得要linux内核源码4.14或更高版本才行了
...

以前玩linux系统时弄过
现在早就忘记了

点评

我也没想到 用了squashfs 可以把4k读取弱问题转换成128k 读取 能提升性能呀 这个优化非常好 既能大幅度节省手机空间 也能提升性能 是我需要的技术  详情 回复 发表于 2022-4-11 15:14
回复

使用道具 举报

11#
 楼主| 发表于 2022-4-11 15:13:29 | 只看该作者
2012qianyuanain 发表于 2022-4-11 09:32
压缩了文件以节省空间,那么这些文件在使用时不是需要解压缩出来才能使用吗?这应该会造成流畅度下降吧

流畅度的问题  简单说
主要是
1.看cpu是否满载,一旦满载,就会拖慢系统.    这点压缩 解压 还不会让cpu满负荷  不是瓶颈
2.看程序执行完毕的时间需要多久  程序的执行时间 主要是程序本身执行时间 加上硬盘io时间
实际使用中 硬盘io才是程序运行流畅的瓶颈所在  硬盘io的主要问题就是4k读取   这里会极大的造成延时  
squashfs文件系统 默认使用128k的读取 所以 这里其实就是将4k io转换成了 128k io读取 会加速硬盘io的过程 同时由于数据压缩了 读取硬盘的数据量大幅度降低  最后的结果就是 流畅度提升
你放大了解压缩需要的时间,实际上解压缩需要的时间远远低于 硬盘io需要的时间

实际上  我之前用usb 2.0的优盘做ubnntu安装盘 启动到livecd的流畅度 比机械硬盘已经安装好的ubuntu更流畅 就足以说明问题了  
squashfs完美的避开了优盘4k读取性能弱的问题 采用128k 或更大的块读取   充分发挥了优盘的读取性能  
机械硬盘上装好的ubuntu仍然受限机械硬盘的弱4k读取 所以性能慢是合理的  
实际使用过程中 比如zfs btrfs这种支持透明数据压缩存取的文件系统 只要cpu不满载  对比不压缩的清空下
硬盘io时间都是有减少的
回复

使用道具 举报

12#
 楼主| 发表于 2022-4-11 15:14:56 | 只看该作者
进士小站 发表于 2022-4-11 13:28
以前玩linux系统时弄过
现在早就忘记了

我也没想到 用了squashfs 可以把4k读取弱问题转换成128k 读取
能提升性能呀  
这个优化非常好 既能大幅度节省手机空间 也能提升性能
是我需要的技术
回复

使用道具 举报

13#
发表于 2022-10-13 15:12:28 | 只看该作者
楼主啥时候把手机docker搞出来啊
回复

使用道具 举报

14#
发表于 2022-11-10 20:37:03 | 只看该作者
谢谢分享!
回复

使用道具 举报

15#
发表于 2022-11-20 22:42:23 | 只看该作者
神一般的存在啊
回复

使用道具 举报

16#
发表于 2023-1-14 07:26:30 | 只看该作者
红米10x 5G我用过,性能和体验都不错啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-25 18:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表