CN103218227B - 一种安卓设备内置硬盘上兼容多种文件***的方法及装置 - Google Patents
一种安卓设备内置硬盘上兼容多种文件***的方法及装置 Download PDFInfo
- 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
Links
Landscapes
- Stored Programmes (AREA)
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操作源码。
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)
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)
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平台终端设备的数据传输方法及装置 |
-
2013
- 2013-04-10 CN CN201310123285.3A patent/CN103218227B/zh active Active
Patent Citations (4)
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)
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) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
US20140281125A1 (en) | Systems and methods for in-place reorganization of device storage | |
US20120179885A1 (en) | Write control system | |
JPWO2010044150A1 (ja) | プログラム変更管理装置、プログラム変更管理プログラムおよびプログラム変更管理方法 | |
CN108334453B (zh) | 一种文件调试方法、装置、终端设备及存储介质 | |
US20140075092A1 (en) | Simulating eeprom in virtual distributed switches |
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. |