当前位置: 首页 > news >正文

rk3399 安卓7 添加 exfat 格式U 盘支持

主要的修改:

1,内核添加 exfat 文件系统支持
2,vold 添加 exfat 文件系统支持
3,需要 exfat 文件检查,格式化工具的支持,vold 中需要用到

参考:git clone https://gitee.com/rock_telp/android_add_exfat

1,内核 exfat 文件系统支持
复制 android_add_exfat\kernel-4.19\fs\exfat 到 kernel/fs/

2,exfat 相关工具 格式化 检查
复制 external下 exfat fuse 到 安卓源码 external下

3,安卓相关配置 主要是 vold 的修改和对应产品的配置相关

产品配置信息

device/rockchip/rk3399/device.mk

selinux 标签 非必需
device/rockchip/common/sepolicy/file_contexts

4,blkid 添加对 exfat 的识别支持

e2fsprogs

合入以下 patch
https://github.com/tytso/e2fsprogs/commit/1206f6d8c5ed47ba19cfc30a19dba51fcd2cd5cb.patch

5,修改错误

android_add_exfat\external\exfat\Android.mk

LOCAL_STATIC_LIBRARIES += libexfat libfuse

libfuse 不存在,实际编译的为 libfuse_static
LOCAL_STATIC_LIBRARIES += libexfat libfuse_static

vold 的修改对应不上,需要手动修改

参考 vfat 改成 exfat 并添加到 Android.mk vold 的编译中
vold/fs/Exfat.cpp

status_t Mount(const std::string& source, const std::string& target, int ownerUid, int ownerGid,
int permMask) {
int mountFlags = MS_NODEV | MS_NOSUID | MS_DIRSYNC | MS_NOATIME | MS_NOEXEC;
auto mountData = android::base::StringPrintf("uid=%d, gid=%d, fmask=%o, dmask=%o", ownerUid,
ownerGid, permMask, permMask);

if (mount(source.c_str(), target.c_str(), "exfat", mountFlags, mountData.c_str()) == 0) {
return 0;
PLOG(ERROR) << "Mount failed; attempting read-only";
mountFlags |= MS_RDONLY;
if (mount(source.c_str(), target.c_str(), "exfat", mountFlags, mountData.c_str()) == 0) {
return 0;
}
}
return -1;
}

修改完成重新刷机,插入U盘测试,查看 exfat 格式挂载:
x3399:/ # cat /proc/mounts |grep exfat
/dev/block/vold/public:8,1 /mnt/media_rw/public:8,1 exfat rw,dirsync,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,iocharset=utf8,namecase=0,errors=remount-ro 0 0

win11 使用下载软件版本:
AndroidTool_Release_v2.38

http://www.gsyq.cn/news/23577.html

相关文章:

  • 2025年10月ai优化推荐对比榜:十强服务商数据化拆解与选择策略
  • 深入解析:图书馆自习室|基于SSM的图书馆自习室座位预约小程序设计与实现(源码+数据库+文档)
  • 21-java-grpc-demo-1
  • 【AI绘画】你有多久没有打开SD了?
  • 2025年10月geo优化供应商推荐榜:十强对比评测与中立选购指南
  • 标准差和方差
  • 2025年10月geo优化推荐榜单:十强服务商全维度对比与中立选购指南
  • 2025年10月geo公司推荐榜:基于全平台同步优化能力的中立对比与选购指南
  • 2025年10月geo服务商推荐榜:十强对比与中立评测助您精准选型
  • 常见数据结构长度的获取
  • 2025年10月GEO推荐榜单:十家技术服务商深度对比与中立评测
  • 2025年10月办公家具公司推荐榜单:基于真实案例的采购决策参考
  • 逆向 | 对python函数进行hook的最简单方式
  • 从直线到环形:解锁栈、队列背后的空间与效率平衡术 - 教程
  • 2025年10月deepseek关键词排名优化推荐榜单:基于多维度实测与公开数据的对比分析
  • 2025年10月油烟机推荐榜单:以海信为例的顶侧双吸技术深度剖析
  • 详细介绍:人工智能-机器学习day5
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名视觉标记系统需求探索
  • 2025年10月AI搜索营销推荐榜:十强服务商多维对比与中立评测
  • 2025年海信洗碗机深度解析:技术突破与全球市场领导地位揭秘
  • 超详细TCP协议讲解!!! - 实践
  • 深入解析:CTFHub 信息泄露通关笔记2:PHPINFO泄露
  • 2025年10月远程控制软件推荐榜:节点小宝十强对比与中立评价报告
  • 2025年10月geo优化公司推荐榜:十强对比评测与选购避坑指南
  • 第一次博客
  • Lambda架构:实时与批处理的完美融合
  • 2025年10月生成式引擎优化推荐对比:十家服务商资质、案例、售后全维度中立评价
  • 2025年10月生成式引擎优化推荐榜单:十强服务商多维对比与中立选购指南
  • 2025年10月豆包排名优化推荐对比:聚焦资质、案例、售后的十家机构深度解读
  • 【何志丹】蹉跎半生,不知道是否能过45岁的坎