Android 11.0 支持exFAT文件系统
Android 11.0 支持exFAT文件系统
U盘常见文件系统类型有FAT32、NTFS、exFAT, Android默认支持FAT32, 一般也有NTFS类型编译选项, 但是exFAT由于版权或者其他原因,默认是不支持的。网上已有android N、P exFAT文件系统支持的移植,但是过程中可能会遇到不少小问题。为了方便有Android 11支持exFAT需求的你快速完成, 结合其他优秀作者的文章,写下此篇供遇到坑的你参考。与Android 9移植该功能基本一样,下面记录一下移植过程。
不知道前人是不是有说过只需要移植nofuse即可, 我是同时移植nofuse和fuse, 才完成exfat支持的。
系统信息:
Android 11
kernel: 4.19.172
过程分两大步骤:
步骤一:kernel中移植nofuse
源码:https://github.com/dorimanx/exfat-nofuse
将代码下载解压后,更名exfat放到kernel/fs下, 修改kernel下Kconfig、Makefile:
在kernel默认编译配置文件中,修改编译选项打开:
在系统配置devices.mk中增加,一般在device/vendor/xxx.mk中
完成上述, 编译kernel, 升级。串口查看cat /proc/filesystems(如果没有exfat 将会mount失败, PublicVolume.cpp中的内容,不做展开):
命令dmesg | grep FAT,查看有如下信息:(如果无mount信息,后面再说)
另外要注意system/vold/fs/Exfat.cpp中的内容:
步骤二:移植fuse
https://github.com/Shawnsongs/Android_P_external_exfat_ntfs-3g/tree/master/external-exfat-fuse
下载上述源码,并放到external下, 修改两个路径下的Android.mk。一般会有一些警告和错误,不过上述源码前面作者已经debug过, 所以我这里不需要修改。编译时,可以source build/envsetup.sh;lunch后,在exfat路径下mm单独编译节省时间,如果编译通过,则可以编译整包升级查看。
其他文章没有提到这个修改,参考ntfs配置,我在下面加了下面的修改:
编译警告或错误, 可以阅读文末连接,看看是否有你遇到的情况。我是换了上述的源码去编译,无报错和异常。都正确的话,输入命令 ls -l /system/bin/*.exfat, 可以看到下图打印
如果一切顺利,主板插入exFAT格式U盘有如下打印:
-----------------------附---------------------------
如果不那么顺利,遇到前文提到的挂载失败,就要阅读system/vold下的代码了。可以输入:clear;logcat -c;logcat -s vold, 查看相关代码分析是否是mount失败. 下图是mount成功的打印
参考链接:
https://blog.csdn.net/an_times/article/details/106858104
https://blog.csdn.net/wolfnx/article/details/106745236
Android 11.0 支持exFAT文件系统相关推荐
- Android 11.0 支持exfat格式
点滴积累,记录自己的成长. 最近系统要支持exfat格式,参考了大佬们的帖子之后,终于搞定了. 由于之前都是Android.mk,自己系统中使用的Android.bp,而且要求以模块的形式调用对应的k ...
- Android 7.0支持exfat文件系统
网上看了一圈,关于Android移植exfat支持的文章大多停留在Android 4.x,Android 6.0或7.0以上的基本空缺,所以决定自己写一篇,本文实践环境是MTK的Android 7.0 ...
- Android 9.0 支持NTFS和Exfat 格式U盘开发
前言 最近有个需求要求在Android 9.0上面支持NTFS和Exfat 格式的U盘.网上有很多资料都是基于Android 4.4 的系统,系统版本太陈旧没有办法借鉴,通过两周的摸索终于搞定了这个功 ...
- Android11还能自定义相机吗,安卓用户又少了一项自由,Android 11不再支持更改默认相机程序...
原标题:安卓用户又少了一项自由,Android 11不再支持更改默认相机程序 来源:量子位 关注前沿科技 萧萧 发自 凹非寺 量子位 报道 | 公众号 QbitAI 萧萧 发自 凹非寺 量子位 报道 ...
- Android 11.0 Settings源码分析 - 主界面加载
Android 11.0 Settings源码分析 - 主界面加载 本篇主要记录AndroidR Settings源码主界面加载流程,方便后续工作调试其流程. Settings代码路径: packag ...
- Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限
目录 1.概述 2.Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限的核心类 3.Android 11.0 无源码apk授予QUERY_ALL_
- Android 11.0 锁屏页面时钟显示样式
一.需求分析 Android 11.0系统默认的锁屏时钟 年月日 显示的样式不符合需求,现在需要定制化.下图是系统默认的时间样式. 目标是改成这样: 二.核心代码路径 frameworks/base/ ...
- MTK Android 11.0:充电低电指示灯会被未读消息信号灯灭掉,无优先级控制。
MTK Android 11.0:充电低电指示灯会被未读消息信号灯灭掉,无优先级控制: 1.电池充电.低电状态提示(红绿双色).(LIGHT_ID_BATTERY) 小于15%时: A 正在充电 亮红 ...
- android不装电池打开无线,你用或者不用,Android 11都支持反向无线充电
原标题:你用或者不用,Android 11都支持反向无线充电 谷歌刚正式发布的Android 11开发者预览版中被XDA大神发现了名为"Battery share"的隐藏新功能.B ...
最新文章
- GitHub 报告显示香港码农大爆发,诚实的程序员:转行只因工资高!
- ASP.NET Calendar 控件
- mysql的三大引擎是什么_MySQL常用三大存储引擎
- STM32F10x之RCC
- .NET 4.0 任务(Task)
- Lua 操作 MongoDB 数据库实例
- 高性能服务器 - window篇
- TP3.2之WHERE组合条件处理
- Vue菜单栏边框参差不齐,修整完美
- 通过注册表修改我的文档等系统文件夹默认位置
- python自动生成报告_python实现自动生成oracle awr报告
- 黑马程序员-学习日记(单例设计模式的两种类型)
- 实例化Spring容器的两种常用方式
- #今日论文推荐# 莫纳什大学最新《长文档摘要》综述,39页pdf长文档摘要的实证研究:数据集、模型和指标
- java 屏蔽广告js_用js屏蔽被http劫持的浮动广告实现方法
- 移动通信技术发展历程及未来趋势
- Django Rest_framework 4(APIView、GenericAPIView、ViewSet)
- css动画——语音播报小喇叭动效
- 灰度重心法提取光条纹中心
- 南邮计算机科学与技术专业本科2014级课程设计II题目