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

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

Info

Publication number
CN103218227A
CN103218227A CN2013101232853A CN201310123285A CN103218227A CN 103218227 A CN103218227 A CN 103218227A CN 2013101232853 A CN2013101232853 A CN 2013101232853A CN 201310123285 A CN201310123285 A CN 201310123285A CN 103218227 A CN103218227 A CN 103218227A
Authority
CN
China
Prior art keywords
file system
source code
android
operation source
hard disk
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.)
Granted
Application number
CN2013101232853A
Other languages
English (en)
Other versions
CN103218227B (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

Images

Abstract

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

Description

一种安卓设备内置硬盘上兼容多种文件系统的方法及装置
技术领域
本发明涉及通讯设备应用技术领域。尤其涉及一种安卓设备内置硬盘上兼容多种文件系统的方法及装置。
背景技术
安卓(Android)系统是新一代的智能平台,越来越多的电子终端使用Android系统作为其操作系统。文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。文件系统负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
当前Android设备内置硬盘只实现了对FAT(File Allocation Table FileSystem文档分配表文件系统)文件系统的支持,该系统由于其出色的兼容性,在各种手持设备上都得到了非常成功的应用,但安卓设备上没有实现对其它常见的文件系统的支持。当将Android设备内置硬盘格式化或者转换为其它文件格式如:NTFS(New Technology File System新技术文件系统),exFAT(ExtendedFile Allocation Table File System扩展的文档分配表文件系统)等,设备将无法挂载,也无法进行数据的读写,从而导致设备不可用。此外,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(NewTechnology File System,新技术文件系统),exFAT(Extended File AllocationTable File System,扩展的文档分配表文件系统)等。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(Filesystem inUserspace,用户空间文件系统)提供一个完整的接口让用户可以轻松的创建一个属于自己的用户级文件系统。如图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是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的socket API就可以使用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.一种安卓设备内置硬盘上兼容多种文件系统的方法,其特征在于,所述方法包括:
添加多种文件系统的驱动可执行文件;
对所述可执行文件进行源码修改并记录所述文件系统的类型;
编译所述修改后的源码生成系统镜像并加载到安卓平台;
根据文件系统类型使用其对应的文件系统进行挂载。
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 true CN103218227A (zh) 2013-07-24
CN103218227B 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)

Cited By (8)

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

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
吴一民等: "基于Fuse的用户态文件系统的设计", 《微计算机信息》 *
吴宗坤: "基于Fuse的资源搜索文件系统设计与实现", 《中国优秀硕士学位论文全文数据库》 *
张艳玲等: "在Android平台上开发FUSE文件系统", 《电脑编程技巧与维护》 *
赖广全: "一种属性文件系统的设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639553A (zh) * 2015-02-13 2015-05-20 福州瑞芯微电子有限公司 数据交互方法、装置及系统
CN104639553B (zh) * 2015-02-13 2018-03-27 福州瑞芯微电子股份有限公司 数据交互方法、装置及系统
CN105160211A (zh) * 2015-09-25 2015-12-16 广东欧珀移动通信有限公司 一种内核模块中设备文件权限的设置方法及装置
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 维沃移动通信有限公司 一种文件的存储方法及移动终端
CN106709056A (zh) * 2017-01-09 2017-05-24 郑州云海信息技术有限公司 一种nfs挂载目录导出方法及装置
CN107463652A (zh) * 2017-07-27 2017-12-12 北京小米移动软件有限公司 外接存储设备的连接控制方法及装置
CN112579545A (zh) * 2020-12-28 2021-03-30 惠州华阳通用电子有限公司 一种Linux文件系统挂载方法及存储介质
CN112579545B (zh) * 2020-12-28 2024-03-29 惠州华阳通用电子有限公司 一种Linux文件系统挂载方法及存储介质
CN112860187A (zh) * 2021-02-09 2021-05-28 联想(北京)有限公司 外接存储设备的访问方法及装置、设备、存储介质

Also Published As

Publication number Publication date
CN103218227B (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN103218227A (zh) 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置
CN107506258B (zh) 用于数据备份的方法和设备
US10055216B2 (en) Minimizing image copying during partition updates
CN109522154B (zh) 数据恢复方法及相关设备与系统
CN105027070A (zh) 卷操作的安全性
CN105320578A (zh) 一种备份和恢复app的方法及装置
EP2819016B1 (en) Storage controller, storage system, and control program
KR20140042430A (ko) 컴퓨팅 시스템 및 그 데이터 관리 방법
US11340785B1 (en) Upgrading data in a storage system using background processes
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
CN107798063B (zh) 快照处理方法和快照处理装置
CN103229150A (zh) 数据控制方法及系统
CN103218228B (zh) 一种安卓设备内置硬盘实现ntfs文件系统的方法及装置
CN111158858A (zh) 一种虚拟机的克隆方法和装置,及计算机可读存储介质
US9411871B2 (en) Merging data volumes and derivative versions of the data volumes
CN102662870A (zh) 基于vfs层拦截读写请求的安卓操作系统保护方法
CN104517067A (zh) 访问数据的方法、装置及系统
US20120179885A1 (en) Write control system
US7634600B2 (en) Emulation system and emulation method for multiple recording media tupes
US9665582B2 (en) Software, systems, and methods for enhanced replication within virtual machine environments
US20200117722A1 (en) Efficient file storage and retrieval system, method and apparatus
CN115373908A (zh) 一种数据存储方法及相关装置
CN102023873A (zh) 应用程序执行方法与系统、存储媒体控制器及存储装置
CN113434089B (zh) 数据搬移方法、装置及pcie系统

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

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.

CP01 Change in the name or title of a patent holder