CN103218227B - 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置 - Google Patents

一种安卓设备内置硬盘上兼容多种文件系统的方法及装置 Download PDF

Info

Publication number
CN103218227B
CN103218227B CN201310123285.3A CN201310123285A CN103218227B CN 103218227 B CN103218227 B CN 103218227B CN 201310123285 A CN201310123285 A CN 201310123285A CN 103218227 B CN103218227 B CN 103218227B
Authority
CN
China
Prior art keywords
file system
source code
android
hard disk
corresponding mount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310123285.3A
Other languages
English (en)
Other versions
CN103218227A (zh
Inventor
蒋世民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201310123285.3A priority Critical patent/CN103218227B/zh
Publication of CN103218227A publication Critical patent/CN103218227A/zh
Application granted granted Critical
Publication of CN103218227B publication Critical patent/CN103218227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开一种安卓设备内置硬盘上兼容多种文件系统的方法及装置,所述方法包括:添加多种文件系统的驱动可执行文件;对所述可执行文件进行源码修改并记录所述文件系统的类型;编译所述修改后的源码生成系统镜像并加载到安卓平台;根据文件系统类型使用其对应的文件系统进行挂载。本方法针对多种常用的文件系统采用其对应的驱动进行挂载,提高了设备的通用性,可用性。

Description

一种安卓设备内置硬盘上兼容多种文件系统的方法及装置
技术领域
本发明涉及通讯设备应用技术领域。尤其涉及一种安卓设备内置硬盘上兼容多种文件系统的方法及装置。
背景技术
安卓(Android)系统是新一代的智能平台,越来越多的电子终端使用Android系统作为其操作系统。文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。文件系统负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
当前Android设备内置硬盘只实现了对FAT(FileAllocationTableFileSystem文档分配表文件系统)文件系统的支持,该系统由于其出色的兼容性,在各种手持设备上都得到了非常成功的应用,但安卓设备上没有实现对其它常见的文件系统的支持。当将Android设备内置硬盘格式化或者转换为其它文件格式如:NTFS(NewTechnologyFileSystem新技术文件系统),exFAT(ExtendedFileAllocationTableFileSystem扩展的文档分配表文件系统)等,设备将无法挂载,也无法进行数据的读写,从而导致设备不可用。此外,FAT文件系统都是定义在操作系统内核层面上的,如果采用其他文件系统替代FAT文件系统或者与FAT文件系统共同存在时,为了使操作系统能够识别新的文件系统,必需重写内核,操作复杂,而且内核态代码难以调试,生产率较低。
发明内容
本发明所要解决的技术问题是提供一种安卓设备内置硬盘上兼容多种文件系统的方法及装置,以解决除FAT文件系统外其它常见文件系统在安卓平台无法正常使用的问题。
一种安卓设备内置硬盘上兼容多种文件系统的方法,所述方法包括:
添加多种文件系统的驱动可执行文件;
对所述可执行文件进行源码修改并记录所述文件系统的类型;
编译所述修改后的源码生成系统镜像并加载到安卓平台;
根据文件系统类型使用其对应的文件系统进行挂载。
进一步地,当需要添加的文件系统为安卓平台内核支持的文件系统时,通过vold进程添加相应的mount及格式化操作源码;或者,通过vold进程添加相应的mount操作源码。
进一步地,所述通过vold进程添加相应的mount操作源码包括,
读取超级块数据,确定文件系统的类型,
指定文件系统类型使用内核通用的mount操作源码。
进一步地,当需要添加的文件系统为安卓平台内核不支持的文件系统时,基于fuse框架通过vold进程添加相应的mount及格式化操作源码;或者,基于fuse框架通过vold进程添加相应的mount操作源码。
进一步地,所述基于fuse框架通过vold进程添加相应的mount操作包括,
读取超级块数据,确定文件系统的类型;
指定文件系统类型使用自身在fuse框架实现的mount操作源码。
相应地,本发明还公开一种安卓设备内置硬盘上兼容多种文件系统的装置,所述装置包括,
编译模块,用于编译待添加的多种文件系统生成相应的驱动可执行文件;
修改模块,用于对所述可执行文件进行源码修改;
记录模块,用于记录所述文件系统的类型;
所述编译模块还用于编译所述修改后的源码生成系统镜像;
其中,所述生成的系统镜像由安卓平台进行加载,根据文件系统类型使用其对应的文件系统进行挂载。
进一步地,当需要添加的文件系统为安卓平台内核支持的文件系统时,修改模块通过vold进程添加相应的mount及格式化操作源码;或者,通过vold进程添加相应的mount操作源码。
进一步地,当需要添加的文件系统为安卓平台内核不支持的文件系统时,修改模块基于fuse框架通过vold进程添加相应的mount及格式化操作源码;或者,基于fuse框架通过vold进程添加相应的mount操作源码。
本发明的技术方案针对多种常用的文件系统采用其对应的驱动进行挂载,提高了设备的通用性,可用性。
附图说明
图1为本发明第一实施例提供的安卓设备内置硬盘上兼容多种文件系统的方法流程图;
图2为本发明实施例所述fuse工作过程示意图;
图3为vold进程框图;
图4为本发明第二实施例提供的安卓设备内置硬盘上兼容多种文件系统的装置结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
图1为本发明第一实施例提供的安卓设备内置硬盘上兼容多种文件系统的方法流程图。如图1所示,具体流程如下:
步骤101:配置android设备软件编译环境。
步骤102:添加多种文件系统的驱动可执行文件。
所述多种文件系统包括但不仅限于常见的文件系统,例如NTFS(NewTechnologyFileSystem,新技术文件系统),exFAT(ExtendedFileAllocationTableFileSystem,扩展的文档分配表文件系统)等。android设备软件编译模块对所述多种文件系统进行编译生成相应文件系统的驱动可执行文件。优选地,所述可执行文件为二进制形式的常见文件系统。
步骤103:对所述可执行文件进行源码修改并记录所述文件系统的类型。
本步骤中需要根据添加的文件系统在android系统的文件管理服务中做相应的修改,主要涉及对可执行文件mount及格式化操作源码的修改。具体的,
当需要添加的文件系统为安卓平台内核支持的文件系统时,通过vold进程添加相应的mount及格式化操作源码;或者,通过vold进程添加相应的mount操作源码。
所述通过vold进程添加相应的mount操作源码包括,
读取超级块数据,确定文件系统的类型,
指定文件系统类型使用内核通用的mount操作源码。
所述超级数据块(SuperBlock)包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。
当需要添加的文件系统为安卓平台内核不支持的文件系统时,基于fuse框架通过vold进程添加相应的mount及格式化操作源码;或者,基于fuse框架通过vold进程添加相应的mount操作源码。
本实施步骤中,所述基于fuse框架通过vold进程添加相应的mount操作源码包括,
读取超级块数据,确定文件系统的类型;
指定文件系统类型使用自身在fuse框架实现的mount操作源码。
所述超级数据块(SuperBlock)包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。linux中超级数据块在文件系统中的个数是不唯一的。一个文件系统(分区)的详细信息每个分区都有一个超级块记录了分区大小inode的使用信息(编号等)
图2为本发明实施例所述fuse工作过程示意图。Fuse(FilesysteminUserspace,用户空间文件系统)提供一个完整的接口让用户可以轻松的创建一个属于自己的用户级文件系统。如图2所示,Fuse由一个内核模块(fuse.ko),一个用户级函数(libfuse.*)以及一套文件系统加载机制(mount工具)组成。内核模块仅仅提供内核的接入口,给了文件系统一个框架,由文件系统本身的主要实现代码位于用户空间中。开发者通过实现fuse提供的两组接口fuse_lowlevel_ops,fuse_operations之一即可实现一个用户空间文件系统。用户级函数库给用户提供了编程的接口,具体实现操作有开发者在用户空间实现。文件系统加载机制用于挂载用户编写的文件系统。Fuse工作过程如下:
使用fuse框架实现的hello实例程序被调用,用户级文件系统被挂载到当前系统中,挂载点为/tmp/fuse。当用户执行ls-1/tmp/fuse命令时,VFS相关接口函数被调用,并交给FUSE内核模块处理。内核模块通过一种映射机制,调用hello文件系统相关函数来处理相应请求。
Fuse是建议在VFS机制之上的,它与Ext2、Ext3等实际的文件系统处于同一个层面上,区别于这些实际的文件系统,Fuse将来自于VFS的请求,转换到用户级函数来处理。使用fuse开发文件系统,开发者不需要与VFS打交道,不需要了解Linux文件系统的架构、文件系统内核模块开发的流程以及相关的背景知识。
本实施例中,通过vold进程对生成的可执行文件进行源码修改。vold进程用于管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等;vold进程接收来自内核的外部设备消息。
图3为vold进程框图。如图3所示,Vold接收来自内核的事件,通过netlink机制。Netlink是一种特殊的socket;Netlink是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的socketAPI就可以使用netlink提供的强大功能;Netlink是一种异步通信机制,在内核与用户态应用之间传递的消息保存在socket缓存队列中;内核通过Netlink发送uEvent格式消息给用户空间程序;外部设备发生变化,Linux内核发送uevent消息。
步骤104:编译所述修改后的源码生成系统镜像。
所述系统镜像是一种文件,和装载有操作系统的光盘一样,只不过光盘是一个看得见的实物,系统镜像是一个是看不见的文件。
步骤105:将所述生成的系统镜像加载到安卓设备中。
通过安卓平台的指定路径即可加载所述系统镜像,通过NTFS文件系统进行内置磁盘管理。
步骤106:根据文件系统类型使用其对应的文件系统进行挂载。
在linux操作系统中,挂载指将一个设备(通常是存储设备)挂接到一个上已存在的目录上,此目录可以不为空,但挂载后这个目录下以前的内容将不可用。通过访问这个目录来访问存储设备。
图4为本发明第二实施例提供的安卓设备内置硬盘上兼容多种文件系统的装置,所述装置包括,
编译模块401,用于编译待添加的多种文件系统生成相应的驱动可执行文件;
修改模块102,用于对所述可执行文件进行源码修改;
记录模块403,用于记录所述文件系统的类型;
所述编译模块401还用于编译所述修改后的源码生成系统镜像;
其中,所述生成的系统镜像由安卓平台进行加载,根据文件系统类型使用其对应的文件系统进行挂载。
当需要添加的文件系统为安卓平台内核支持的文件系统时,修改模块402通过vold进程添加相应的mount及格式化操作源码;或者,通过vold进程添加相应的mount操作源码。
当需要添加的文件系统为安卓平台内核不支持的文件系统时,修改模块402基于fuse框架通过vold进程添加相应的mount及格式化操作源码;或者,基于fuse框架通过vold进程添加相应的mount操作源码。
上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (8)

1.一种安卓设备内置硬盘上兼容多种文件系统的方法,其特征在于,所述方法包括:
配置android设备软件编译环境;
添加多种文件系统的驱动可执行文件;
对所述可执行文件进行源码修改并记录所述文件系统的类型;
编译所述修改后的源码生成系统镜像并加载到安卓平台;
根据文件系统类型使用其对应的文件系统进行挂载。
2.根据权利要求1所述的安卓设备内置硬盘上兼容多种文件系统的方法,其特征在于,当需要添加的文件系统为安卓平台内核支持的文件系统时,通过vold进程添加相应的mount及格式化操作源码;或者,通过vold进程添加相应的mount操作源码。
3.根据权利要求2所述的安卓设备内置硬盘上兼容多种文件系统的方法,其特征在于,所述通过vold进程添加相应的mount操作源码包括,
读取超级块数据,确定文件系统的类型,
指定文件系统类型使用内核通用的mount操作源码。
4.根据权利要求1所述的安卓设备内置硬盘上兼容多种文件系统的方法,其特征在于,当需要添加的文件系统为安卓平台内核不支持的文件系统时,基于fuse框架通过vold进程添加相应的mount及格式化操作源码;或者,基于fuse框架通过vold进程添加相应的mount操作源码。
5.根据权利要求4所述的安卓设备内置硬盘上兼容多种文件系统的方法,其特征在于,所述基于fuse框架通过vold进程添加相应的mount操作包括,
读取超级块数据,确定文件系统的类型;
指定文件系统类型使用自身在fuse框架实现的mount操作源码。
6.一种安卓设备内置硬盘上兼容多种文件系统的装置,其特征在于,所述装置包括,
编译模块,用于编译待添加的多种文件系统生成相应的驱动可执行文件;
修改模块,用于对所述可执行文件进行源码修改;
记录模块,用于记录所述文件系统的类型;
所述编译模块还用于编译所述修改后的源码生成系统镜像;
其中,所述生成的系统镜像由安卓平台进行加载,根据文件系统类型使用其对应的文件系统进行挂载。
7.根据权利要求6所述的安卓设备内置硬盘上兼容多种文件系统的装置,其特征在于,当需要添加的文件系统为安卓平台内核支持的文件系统时,修改模块通过vold进程添加相应的mount及格式化操作源码;或者,通过vold进程添加相应的mount操作源码。
8.根据权利要求6所述的安卓设备内置硬盘上兼容多种文件系统的装置,其特征在于,当需要添加的文件系统为安卓平台内核不支持的文件系统时,修改模块基于fuse框架通过vold进程添加相应的mount及格式化操作源码;或者,基于fuse框架通过vold进程添加相应的mount操作源码。
CN201310123285.3A 2013-04-10 2013-04-10 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置 Active CN103218227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310123285.3A CN103218227B (zh) 2013-04-10 2013-04-10 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310123285.3A CN103218227B (zh) 2013-04-10 2013-04-10 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置

Publications (2)

Publication Number Publication Date
CN103218227A CN103218227A (zh) 2013-07-24
CN103218227B true CN103218227B (zh) 2016-01-06

Family

ID=48816056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310123285.3A Active CN103218227B (zh) 2013-04-10 2013-04-10 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置

Country Status (1)

Country Link
CN (1) CN103218227B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639553B (zh) * 2015-02-13 2018-03-27 福州瑞芯微电子股份有限公司 数据交互方法、装置及系统
CN105160211B (zh) * 2015-09-25 2018-06-29 广东欧珀移动通信有限公司 一种内核模块中设备文件权限的设置方法及装置
CN105898577A (zh) * 2015-12-21 2016-08-24 乐视致新电子科技(天津)有限公司 安卓智能电视管理ntfs磁盘的方法及安卓智能电视
CN106775488A (zh) * 2016-12-27 2017-05-31 维沃移动通信有限公司 一种文件的存储方法及移动终端
CN106709056B (zh) * 2017-01-09 2020-11-20 苏州浪潮智能科技有限公司 一种nfs挂载目录导出方法及装置
CN107463652A (zh) * 2017-07-27 2017-12-12 北京小米移动软件有限公司 外接存储设备的连接控制方法及装置
CN112579545B (zh) * 2020-12-28 2024-03-29 惠州华阳通用电子有限公司 一种Linux文件系统挂载方法及存储介质
CN112860187B (zh) * 2021-02-09 2023-03-21 联想(北京)有限公司 外接存储设备的访问方法及装置、设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377958B1 (en) * 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
CN101902502A (zh) * 2010-08-08 2010-12-01 北京大学 一种基于Android的透明数据存储方法和系统
CN102682088A (zh) * 2012-04-23 2012-09-19 Tcl集团股份有限公司 一种存储设备的挂载方法、系统及电视
CN102981990A (zh) * 2012-11-09 2013-03-20 青岛海信移动通信技术股份有限公司 采用Android平台终端设备的数据传输方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377958B1 (en) * 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
CN101902502A (zh) * 2010-08-08 2010-12-01 北京大学 一种基于Android的透明数据存储方法和系统
CN102682088A (zh) * 2012-04-23 2012-09-19 Tcl集团股份有限公司 一种存储设备的挂载方法、系统及电视
CN102981990A (zh) * 2012-11-09 2013-03-20 青岛海信移动通信技术股份有限公司 采用Android平台终端设备的数据传输方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
一种属性文件系统的设计与实现;赖广全;《中国优秀硕士学位论文全文数据库》;20130215(第2期);全文 *
在Android平台上开发FUSE文件系统;张艳玲等;《电脑编程技巧与维护》;20120228;全文 *
基于Fuse的用户态文件系统的设计;吴一民等;《微计算机信息》;20120225;第26卷(第2-3期);全文 *
基于Fuse的资源搜索文件系统设计与实现;吴宗坤;《中国优秀硕士学位论文全文数据库》;20111215(第12期);全文 *

Also Published As

Publication number Publication date
CN103218227A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
CN103218227B (zh) 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置
US8370835B2 (en) Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
CN102193817B (zh) 简化物理和虚拟部署的管理
CN110019498B (zh) 日志同步方法及装置、存储介质、电子设备
CN107209681A (zh) 一种存储设备访问方法、装置和系统
TW201109956A (en) Data storage access device
CN105446826A (zh) 虚拟机备份、恢复的方法及设备
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
CN105320578A (zh) 一种备份和恢复app的方法及装置
US9015022B2 (en) Simulating non-volatile memory in virtual distributed switches
CN111596930B (zh) 根文件系统镜像制作方法、装置、存储介质及嵌入式设备
CN110704392B (zh) 区块链网络的升级方法及装置、存储介质、电子设备
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
CN103853535A (zh) 修改中间件的方法和装置
EP2669806B1 (en) Storage system
CN110688145B (zh) Android MVP代码自动生成方法、装置、介质、电子设备
CN103218228B (zh) 一种安卓设备内置硬盘实现ntfs文件系统的方法及装置
CN103229150A (zh) 数据控制方法及系统
CN104517067A (zh) 访问数据的方法、装置及系统
CN111158858A (zh) 一种虚拟机的克隆方法和装置,及计算机可读存储介质
US20160170869A9 (en) Systems and methods for in-place reorganization of device storage
US20120179885A1 (en) Write control system
JPWO2010044150A1 (ja) プログラム変更管理装置、プログラム変更管理プログラムおよびプログラム変更管理方法
CN108334453B (zh) 一种文件调试方法、装置、终端设备及存储介质
CN110681153B (zh) 游戏存档管理系统、方法、计算机设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.