高通 Android 8/9/12/13 兼容U盘识别extfat模式

news2025/1/17 6:07:03

Android本身不支持extfat格式 需要通过nofuse 打kernel补丁方式去实现 

Android 8/9

1、kernel/msm-4.9/arch/arm64/configs/sdm670-perf_defconfig 增加代码如下(需要提交编译kernel记得git add sdm670-perf_defconfig 不需要commit哈!否则编译会还原这个文件,切记!)

--- a/LINUX/android/kernel/msm-4.9/arch/arm64/configs/sdm670-perf_defconfig
+++ b/LINUX/android/kernel/msm-4.9/arch/arm64/configs/sdm670-perf_defconfig
@@ -314,6 +314,7 @@ CONFIG_INPUT_UINPUT=y
 # CONFIG_DEVMEM is not set
 # CONFIG_DEVKMEM is not set
 CONFIG_SERIAL_MSM_GENI=y
+CONFIG_SERIAL_MSM_GENI_CONSOLE=y
 CONFIG_DIAG_CHAR=y
 CONFIG_HW_RANDOM=y
 CONFIG_HW_RANDOM_MSM_LEGACY=y
@@ -602,6 +603,9 @@ CONFIG_QFMT_V2=y
 CONFIG_FUSE_FS=y
 CONFIG_MSDOS_FS=y
 CONFIG_VFAT_FS=y
+CONFIG_EXFAT_FS=y
+CONFIG_EXFAT_DEFAULT_CODEPAGE=437
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
 CONFIG_TMPFS_POSIX_ACL=y
 CONFIG_ECRYPT_FS=y
 CONFIG_ECRYPT_FS_MESSAGING=y

2、kernel/msm-4.9/arch/arm64/configs/sdm670_defconfig中增加如下代码

diff --git a/kernel/msm-4.9/arch/arm64/configs/sdm670_defconfig b/kernel/msm-4.9/arch/arm64/configs/sdm670_defconfig
index 934e100174..f2302ecd52 100644
--- a/kernel/msm-4.9/arch/arm64/configs/sdm670_defconfig
+++ b/kernel/msm-4.9/arch/arm64/configs/sdm670_defconfig
@@ -603,6 +603,9 @@ CONFIG_QFMT_V2=y
 CONFIG_FUSE_FS=y
 CONFIG_MSDOS_FS=y
 CONFIG_VFAT_FS=y
+CONFIG_EXFAT_FS=y
+CONFIG_EXFAT_DEFAULT_CODEPAGE=437
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
 CONFIG_TMPFS_POSIX_ACL=y
 CONFIG_ECRYPT_FS=y
 CONFIG_ECRYPT_FS_MESSAGING=y

Android 12/13 

3、kernel/msm-4.19/arch/arm64/configs/vendor/device-perf_defconfig 增加(需要提交编译kernel记得git add device-perf_defconfig 不需要commit哈! 否则编译会还原这个文件,切记!)

diff --git a/kernel/msm-4.19/arch/arm64/configs/vendor/device-perf_defconfig b/kernel/msm-4.19/arch/arm64/configs/vendor/device-perf_defconfig

index a072c626fe7..b150b127880 100644

--- a/kernel/msm-4.19/arch/arm64/configs/vendor/device-perf_defconfig

+++ b/kernel/msm-4.19/arch/arm64/configs/vendor/device-perf_defconfig

@@ -28,6 +28,9 @@ CONFIG_CGROUP_CPUACCT=y

CONFIG_CGROUP_BPF=y

CONFIG_SCHED_CORE_CTL=y

CONFIG_NAMESPACES=y

+CONFIG_EXFAT_FS=y

+CONFIG_NTFS_FS=y

+CONFIG_NTFS_RW=y

# CONFIG_PID_NS is not set

CONFIG_SCHED_AUTOGROUP=y

CONFIG_SCHED_TUNE=y

4、kernel/msm-4.19/arch/arm64/configs/vendor/device_defconfig中增加

diff --git a/kernel/msm-4.19/arch/arm64/configs/vendor/bengal_defconfig b/kernel/msm-4.19/arch/arm64/configs/vendor/bengal_defconfig

index 4bb8f0343e6..5e66d553d36 100644

--- a/kernel/msm-4.19/arch/arm64/configs/vendor/bengal_defconfig

+++ b/kernel/msm-4.19/arch/arm64/configs/vendor/bengal_defconfig

@@ -29,6 +29,10 @@ CONFIG_CGROUP_BPF=y

CONFIG_CGROUP_DEBUG=y

CONFIG_SCHED_CORE_CTL=y

CONFIG_NAMESPACES=y

+CONFIG_EXFAT_FS=y

+CONFIG_NTFS_FS=y

+CONFIG_NTFS_RW=y

+

# CONFIG_PID_NS is not set

CONFIG_SCHED_AUTOGROUP=y

CONFIG_SCHED_TUNE=y

5、kernel/msm-4.19/fs/Kconfig b/kernel/msm-4.19/fs/Kconfig 增加+source "fs/exfat/Kconfig"

diff --git a/kernel/msm-4.19/fs/Kconfig b/kernel/msm-4.19/fs/Kconfig

index b8d003f02b7..947e731b316 100644

--- a/kernel/msm-4.19/fs/Kconfig

+++ b/kernel/msm-4.19/fs/Kconfig

@@ -137,6 +137,8 @@ menu "DOS/FAT/NT Filesystems"

source "fs/fat/Kconfig"

source "fs/ntfs/Kconfig"

+source "fs/exfat/Kconfig"

+

6、kernel/msm-4.19/fs/Makefile b/kernel/msm-4.19/fs/Makefile 中增加+obj-$(CONFIG_EXFAT_FS)      += exfat/

diff --git a/kernel/msm-4.19/fs/Makefile b/kernel/msm-4.19/fs/Makefile

index 9d1caea038f..56aca48a51d 100644

--- a/kernel/msm-4.19/fs/Makefile

+++ b/kernel/msm-4.19/fs/Makefile

@@ -80,6 +80,7 @@ obj-$(CONFIG_HUGETLBFS)               += hugetlbfs/

obj-$(CONFIG_CODA_FS)          += coda/

obj-$(CONFIG_MINIX_FS)         += minix/

obj-$(CONFIG_FAT_FS)           += fat/

+obj-$(CONFIG_EXFAT_FS)      += exfat/

obj-$(CONFIG_BFS_FS)           += bfs/

obj-$(CONFIG_ISO9660_FS)       += isofs/

obj-$(CONFIG_HFSPLUS_FS)       += hfsplus/ # Before hfs to find wrapped HFS+

diff --git a/kernel/msm-4.19/fs/exfat/.gitignore b/kernel/msm-4.19/fs/exfat/.gitignore

new file mode 100644

index 00000000000..241505f47ee

--- /dev/null

7、

+++ b/kernel/msm-4.19/fs/exfat/.gitignore

kernel/msm-4.19/fs/exfat/.gitignore                             |    7 +

kernel/msm-4.19/fs/exfat/Kconfig                                |   39 +

kernel/msm-4.19/fs/exfat/LICENSE                                |  339 ++++++++

kernel/msm-4.19/fs/exfat/Makefile                               |   56 ++

kernel/msm-4.19/fs/exfat/README.md                              |   98 +++

kernel/msm-4.19/fs/exfat/dkms.conf                              |    7 +

kernel/msm-4.19/fs/exfat/exfat-km.mk                            |   11 +

kernel/msm-4.19/fs/exfat/exfat_api.c                            |  528 ++++++++++++

kernel/msm-4.19/fs/exfat/exfat_api.h                            |  206 +++++

kernel/msm-4.19/fs/exfat/exfat_bitmap.c                         |   63 ++

kernel/msm-4.19/fs/exfat/exfat_bitmap.h                         |   55 ++

kernel/msm-4.19/fs/exfat/exfat_blkdev.c                         |  197 +++++

kernel/msm-4.19/fs/exfat/exfat_blkdev.h                         |   73 ++

kernel/msm-4.19/fs/exfat/exfat_cache.c                          |  784 +++++++++++++++++

kernel/msm-4.19/fs/exfat/exfat_cache.h                          |   85 ++

kernel/msm-4.19/fs/exfat/exfat_config.h                         |   69 ++

kernel/msm-4.19/fs/exfat/exfat_core.c                           | 5138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

kernel/msm-4.19/fs/exfat/exfat_core.h                           |  671 +++++++++++++++

kernel/msm-4.19/fs/exfat/exfat_data.c                           |   77 ++

kernel/msm-4.19/fs/exfat/exfat_data.h                           |   58 ++

kernel/msm-4.19/fs/exfat/exfat_nls.c                            |  448 ++++++++++

kernel/msm-4.19/fs/exfat/exfat_nls.h                            |   91 ++

kernel/msm-4.19/fs/exfat/exfat_oal.c                            |  196 +++++

kernel/msm-4.19/fs/exfat/exfat_oal.h                            |   74 ++

kernel/msm-4.19/fs/exfat/exfat_super.c                          | 2711 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

kernel/msm-4.19/fs/exfat/exfat_super.h                          |  171 ++++

kernel/msm-4.19/fs/exfat/exfat_upcase.c                         |  405 +++++++++

kernel/msm-4.19/fs/exfat/exfat_version.h                        |   19 +

8、添加好之后记得将device-perf_defconfig文件git add  平台(rk/全志/展锐/高通)/kernel/msm-4.19/arch/arm64/configs/vendor/device_defconfig 否则编译的时候会恢复到原来没修改状态 会导致无法在out/target/product/bengal/obj/kernel/msm-4.19/fs/exfat 生成对应.o文件 切记

9、执行编译就ok 编译成功之后在 window 下面 adb shell cat /proc/filesystems ,如果列表出现exfat格式说明当前设备已经支持exfat格式 如下图所示

10、到这里基本结束了,其他平台具体以实际平台情况为主,有问题可以评论区或者讨论哈!转载请注明出处 谢谢!有学习framework大佬们可以一起交流 加我WeChat   一起学习 一起进步 kdanmobile 

转载请注明出处 谢谢 高通 Android 13 兼容extfat模式_KdanMin的博客-CSDN博客

其他源码补丁源码下载 mirrors / dorimanx / exfat-nofuse · GitCode

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

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

相关文章

最强算法视频公开课!(内容硬核,完全免费!

和录友们汇报一下,代码随想录算法公开课已经更新完毕了。 由我亲自录制了140期算法视频,覆盖了 《代码随想录》纸质版上全部题目的讲解。 视频全部免费开放在B站:代码随想录 目录就在视频播放的右边,完全按照代码随想录的顺序讲…

利用Redis的SetNx一步步实现分布式锁并改进

文章目录 1 基本原理和实现方式对比2 Redis分布式锁的实现核心思路3 利用setnx方法实现分布式锁加锁逻辑释放锁逻辑修改业务代码 4 Redis分布式锁误删情况说明5 解决Redis分布式锁误删问题6 分布式锁的原子性问题7 Lua脚本解决多条命令原子性问题8 利用Java代码调用Lua脚本改造…

DevOps产品开发实践

背景 2022年11月,公司启动了智能运维产品的研发项目,该项目基于zabbix进行二次开发,对行业客户的数据中心的基础软硬件设施进行数据采集和分析,通过持续的数据采集和监控,及时发现数据中心软硬件的异常状态并预警&…

k8s集群部署 | 三节点(复用)高可用集群过程参考

文章目录 1. kubeadm 部署三节点(复用)高可用 k8s 集群1.1 环境规划阶段1.1.1 实验架构图1.1.2 系统版本说明1.1.3 环境基本信息1.1.4 k8s 网段划分 1.2 基础安装及优化阶段1.2.1 系统信息检查1.2.2 静态 IP 地址配置1.2.3 配置主机名1.2.4 配置/etc/hos…

open3d 源码阅读kd_tree_search.py

核心函数接口: search_radius_vector_3d search_knn_vector_3d # ---------------------------------------------------------------------------- # - Open3D: www.open3d.org - # ----------------------…

基于Html+css的图展示52

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

ubuntu脚本解释器踩坑:#!/bin/bash 与 #!/bin/sh

前言: 博主正在写linux的脚本的时候遇到:xx.sh: 3: Syntax error: "(" unexpected 查看shell脚本语法没有问题,后面发现是解释器的原因。 一、不同的解释器 #!是特殊的表示符,其后面根的是此解释此脚本的shell的路径…

【Linux】Linux安装Nexus(图文解说详细版)

文章目录 1.下载2.解压3.启动4.打开防火墙(云服务器)5.访问nexus 1.下载 https://help.sonatype.com/repomanager3/product-information/download/download-archives—repository-manager-3 新建nexus文件夹,上传到服务器中 2.解压 tar -zxvf nexus-3.…

Java序列化引发的血案

1、引言 阿里巴巴Java开发手册在第一章节,编程规约中OOP规约的第15条提到: **【强制】**序列化类新增属性时,请不要修改serialVersionUID字段,避免反序列失败;如果完全不兼容升级,避免反序列化混乱&#x…

【大数据之Hadoop】二十七、生产调优-HDFS多目录

1 NameNode多目录配置 NameNode本地目录可以配置多个&#xff0c;每个目录存放内容相同&#xff0c;增加可靠性。 在hdfs-site.xml中添加&#xff0c;每台服务器节点的磁盘不同&#xff0c;可以选择不分发。 <property><name>dfs.namenode.name.dir</name>…

All in AI,现在开始算不算太晚?

编者按&#xff1a;目前大模型近乎可以帮助人类处理方方面面的事情&#xff0c;如对话、写文章、写代码等等。在大模型“狂飙”趋势下&#xff0c;想要从事AI领域的小伙伴可能会犹疑&#xff1a;现在进入AI领域会不会已经太晚了&#xff1f; 本文作者结合自身转型经历和对AI市场…

蓝牙耳机哪个牌子好?无线蓝牙耳机前十排名

现如今&#xff0c;蓝牙耳机品牌越来越多&#xff0c;很多人都不知道怎么选。下面&#xff0c;我来给大家推荐十款很不错的蓝牙耳机&#xff0c;有需要的朋友可以参考一下。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xff1a;239 蓝牙版本&#xff1a;5.3 南卡作为国产影音数码…

[数据库系统] 四、分组操作符与聚集函数

第1关&#xff1a;数据统计&#xff08;初级&#xff09; 使用 group by 语句结合聚集函数解决数据统计问题 数据统计 一般的数据统计关系代数表达式如下&#xff1a; 其中L是属性集。含义是在属性集L上分组&#xff0c;分组后用函数fun运算 &#xff0c;如 表示按性别sex的…

Android UI深度理解:Activity UI视图结构

Activity UI视图结构 每个Activity都会获得一个窗口&#xff0c;那就是Window&#xff0c;它用于绘制用户的UI界面 Window是一个抽象类&#xff0c;提供了绘制窗口的一组通用API&#xff0c;PhoneWindow是它的唯一实现类 DecorView是所有应用窗口的根节点。是FrameLayout的子类…

java 生产者消费者问题解决办法

Java的生产者消费者模式是 Java的核心之一&#xff0c;它可以提供很好的性能和扩展性。但是在 Java的生产环境中&#xff0c;生产者消费者模式并不是很稳定&#xff0c;因为如果出现网络问题、程序崩溃等情况&#xff0c;生产者消费者模式可能会不稳定&#xff0c;给业务带来影…

实例七:MATLAB APP design- 灰色预测-G(1,1)

注:该算法主要用来做预测,不需更改调试程序,可以直接导入数据使用。在下面会详细介绍APP制作的过程以及使用方法。 一、灰色预测-G(1,1)的原理解析 1. 生成累加数据 k表示时刻, 表示 t=k 时刻某量的观测值,不妨设 , 将原始数据列记成

工控机AllInOne——篇5,pve安装istoreos

工控机AllInOne——篇5&#xff0c;pve安装istoreos 1、准备 istoreos img镜像 2、镜像解压 3、镜像上传到pve iso 4、虚拟盘挂载 qm importdisk 10X XXX local-lvm其中10X代表是pve虚拟机序号&#xff0c;XXX代表iso文件上传位置 之后将虚拟盘设为sata 5、启动pve虚拟机…

腾讯云轻量8核16G18M服务器带宽CPU系统盘性能测评

腾讯云轻量应用服务器8核16G18M带宽配置&#xff0c;18M公网带宽下载速度峰值可达2304KB/秒&#xff0c;折合2.25M/s&#xff0c;系统盘为270GB SSD盘&#xff0c;3500GB月流量&#xff0c;折合每天116GB流量。腾讯云百科分享腾讯云轻量服务器8核16G18M配置、CPU型号、公网带宽…

全年前装出货超200万台,W/AR HUD赛道进入新竞争周期

作为座舱智能化、体验升级的关键环节&#xff0c;HUD赛道仍处于快速变化周期。 本周&#xff0c;水晶光电宣布&#xff0c;已经正式获得捷豹路虎全球下一代EMA电气化平台多个车型的WHUD和AR HUD定点&#xff0c;后者作为捷豹路虎的全新纯电动平台&#xff0c;预计将于2025年量…

数据可视化第二版-拓展-和鲸网约车分析一等奖作品

文章目录 数据可视化第二版-拓展-网约车分析案例竞赛介绍 1等奖作品-IT从业者张某某的作品结论过程数据和思考数据处理数据探索数据分析方法选择数据分析相关性分析转化率分析分析结论 完单数量分析分析结论 司机数量分析分析结论 时间分析每日订单分析 工作日各时段分析周六日…