Android 9.0 支持NTFS和exFAT格式U盘开发
该项目旨在为Android 9.0系统提供NTFS和exFAT格式U盘的支持,以便用户可以方便地读取和写入这些格式的U盘。
项目介绍
该项目基于开源项目 Shawnsongs/Android_P_external_exfat_ntfs-3g,为Android 9.0系统提供NTFS和exFAT格式U盘的支持。通过修改内核和用户空间的代码,使Android设备能够识别和挂载NTFS和exFAT格式的U盘,并允许用户进行读写操作。
项目快速启动
准备工作
-
克隆项目到本地:
git clone https://github.com/Shawnsongs/Android_P_external_exfat_ntfs-3g.git cd Android_P_external_exfat_ntfs-3g
-
准备Android 9.0源代码:
下载Android 9.0的源代码,并解压到本地。
-
准备编译环境:
安装必要的编译工具和环境,例如交叉编译器、构建系统等。
修改内核代码
-
将
kernel-no-fuse/exfat
目录下的exfat
文件复制到Android源代码的vendor/nxp-opensource/kernel_imx/fs/
目录下。 -
修改
kernel_imx/arch/arm64/configs/android_f202_p_car_defconfig
配置文件,添加以下内容:CONFIG_EXFAT_FS=y CONFIG_EXFAT_DEFAULT_CODEPAGE=437 CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
-
修改
kernel_imx/fs/Kconfig
文件,添加以下内容:source "fs/exfat/Kconfig"
-
修改
kernel_imx/fs/Makefile
文件,添加以下内容:obj-$(CONFIG_EXFAT_FS) += exfat/
-
编译内核:
make dtboimage make bootimage
-
烧录内核到设备。
修改用户空间代码
-
将
external-exfat-fuse/exfat
和external-exfat-fuse/fuse
目录下的文件复制到Android源代码的external/
目录下。 -
修改
external-exfat-fuse/exfat/Android.mk
文件,添加以下内容:LOCAL_CFLAGS := \ -D_FILE_OFFSET_BITS=64 \ -DFUSE_USE_VERSION=26 \ -Wno-error=format-security \ -Wno-sign-compare \ -Wno-unused-parameter \ -Wno-pointer-arith \ -Wno-address-of-packed-member \ -Wno-missing-field-initializers \ -Wno-logical-not-parentheses
-
编译用户空间代码:
make -j128
-
将编译生成的
mount.exfat
和mkfs.exfat
等文件复制到设备上。
测试
-
将NTFS或exFAT格式的U盘插入设备。
-
使用命令
mount.exfat /dev/sdb1 /mnt/usb
挂载U盘。 -
查看U盘内容:
ls /mnt/usb
应用案例和最佳实践
-
使用NTFS或exFAT格式的U盘进行文件存储和传输。
-
将NTFS或exFAT格式的U盘用作备份设备。
-
使用NTFS或exFAT格式的U盘作为媒体库。
典型生态项目
-
NTFS-3G for Android:一个开源的NTFS文件系统驱动程序,用于在Android设备上读取和写入NTFS格式的U盘。
-
exFAT for Android:一个开源的exFAT文件系统驱动程序,用于在Android设备上读取和写入exFAT格式的U盘。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考