android usb挂载
有关Android中与usb挂载相关的知识
new_abc
这个作者很懒,什么都没留下…
展开
-
android usb挂载分析--各种格式支持
前面对usb挂载的流程及各种格式的支持做了分析,这一篇也基本是收尾篇了,主要是把各种格式的挂载在vold模块种加进去,这里对这部分做了一些更改,如直接 挂载到/mnt/sdcard,没有先挂载到/mnt/secure/staging,还有把一些状态的转换去掉了,以及格式化、格式检查的去掉了,因为暂时还没听到这方面的奢求,哈哈,也是为了省事吧,这里把所有的挂载都在一个文件中实现了,先看下Androi原创 2012-04-15 22:27:03 · 6486 阅读 · 0 评论 -
android usb挂载分析--ext*支持uid、gid等选项
同ntfs一样,android默认的是不支持ext*格式的,可以自己把这些格式的支持加上去,但有一个问题,ext*不像fat那样挂载的时候支持uid、gid、fdmask等 参数,这会导致文件系统挂载上去后,发现还有一个问题,ext2,ext3,ext4的挂载上去后在应用中文件看不到,查了下原因是因为应用不能写u盘,说的具体点是应用的这个用户没有权限写u盘,我们看下fat挂载上去后的目录权限:原创 2012-04-13 22:44:51 · 8661 阅读 · 3 评论 -
android usb挂载分析--ntfs-3g移植
前段时候做android下文件系统的支持,android本身vold里面只实现了fat的支持,对其它格式的支持没有实现,关于ntfs的支持,linux对于其只支持读,不可写,后面网上找到了ntfs-3g驱动,在ununtu上装上后,确实可以实现挂载,而且挂载的分区是可读写的,所以 后面就想着移植到android上来,不过由于android 下的libc是glibc的一个子集,在移植过程中发现要实现原创 2012-04-09 22:56:24 · 9345 阅读 · 2 评论 -
android usb挂载分析--类图
前面差不多把u盘的挂载过程了解了一遍,但是我们 可能对这中间涉及到的各种结构还是有点模糊,我们看下他们的类图(画的不 一定很 准确哦。。。)首先看下vold模块的:消息发送流程ok,整个挂载基本上就这么多了,后面打算把挂载过程中支持ext*、及ntfs的方式也记录下来。原创 2012-04-01 23:49:20 · 4345 阅读 · 0 评论 -
android usb挂载分析---FrameWork层处理vold消息
从前面的知识我们看到,在vold层收到 FrameWork层的消息后,会进行相应的处理,同时在处理的过程中会上报相应的状态给FrameWork层,在这个过程中主要上报了两种消息:1、开始挂载前上报State_Checking消息。2、挂载成功后上报State_Mounted消息。针对这两个消息,我们看下FrameWork层相应的处理,这两个消息处理的流程基本差不多,只是对于State_原创 2012-04-01 00:12:07 · 7247 阅读 · 0 评论 -
android usb挂载分析---解析NTFS底层结构
一、NTFS系统结构 NTFS是Windows NT引入的新型文件系统,如果您是一位熟悉FAT磁盘格式的专业人士,您可能会觉得NTFS系统的思想蹩脚而晦涩,如果您对FAT格式一无所知,那么恭喜您,您会更快的了解这种更有效率的磁盘格式。 NTFS的结构复杂,内容繁多,笔者仅对NTFS卷上的底层结构做分析,并提供卷上数据删除的特征状态供大家参考。 现在,我们首先来建立了解NTFS需要的基本转载 2012-03-30 23:48:58 · 3979 阅读 · 0 评论 -
android usb挂载分析---vold处理FrameWork层发出的消息
Framework层收到消息后,又向vold发送了volume mount的消息,所以vold层又继续着处理这个消息,先看下大概处理流程:同FrameWork层阻塞在等待vold的消息一样,vold层也在等待着收到 FrameWork层的消息,不过是调用select函数百阻塞,因为这个还有内核可能会有其它的连接请求的到来等,所以不能阻塞。我们看下代码:void Socket原创 2012-03-30 23:25:28 · 4382 阅读 · 0 评论 -
android usb挂载分析---FrameWork层处理收到的vold消息
vold模块收到内核消息后,通过前面建立的socket通信各上去发送相应的消息,我们可以看到主要发了两类消息:1、DirectVolume::handleDiskAdded以及handlePartitionAdded都调用setState发送了一条VolumeStateChange消息。2、handleDiskAdded中还发送了 VolumeDiskInserted消息。我们先看下F原创 2012-03-30 22:46:11 · 3920 阅读 · 0 评论 -
android usb挂载分析---FAT文件系统原理详细介绍
FAT文件起源于70年代末80年代初,用于微软的MS-DOS操作系统。它开始被设计成一个简单的文件系统用于小于500K的软件盘。后来被功能被大大增强用于支持越来越大的媒质。现在的文件系统有FAT12,FAT16和FAT32三种子类。FAT12是最早的一版,主要用于软盘,它对簇的编址采用12bit宽度的数,所以称为FAT12。12bit的地址可以寻址4096个簇,事实上在FAT12中只能寻址转载 2012-03-29 23:09:20 · 5586 阅读 · 1 评论 -
android usb挂载分析---vold处理内核消息
MountService启动之后 ,一切准备工作都 做好了,就等待碰上u盘插上了, 这里要讲的是内核发信息给vold,我们在 vold启动这篇曾讲到过注册了一个到内核的UEVENT事件,当有u盘插入的时候,我们就能从这个套接字上收到内核所发出的消息了,这样就开始了vold的消息处理。先看下消息处理的流程:在SocketListener::runListener()函数 中,原创 2012-03-29 22:25:21 · 5852 阅读 · 0 评论 -
android usb挂载分析---Mount 使用方法
NAMEmount - 挂载文件系统 SYNOPSIS 总览mount [-lhV] mount -a [-fFnrsvw] [-t vfstype] [-O optlist] mount [-fnrsvw] [-o options [,...]] device | dir mount [-fnrsvw] [-t vfstype] [-o options] d转载 2012-03-29 09:27:25 · 14603 阅读 · 0 评论 -
android usb挂载分析---MountService启动
在android usb挂载分析----vold启动,我们的vold模块已经启动了,通信的机制也已经建立起来了,接下来我们分析一下MountService的启动,也就是我们FrameWork层的启动,首先看下其大概流程:MountService的启动在SystemServer.java中,有如下代码: try { /*原创 2012-03-27 23:00:12 · 20957 阅读 · 3 评论 -
android usb挂载分析----vold启动
前段时间做了下usb挂载的,现在出了几个bug,又要把流程给梳理下,顺便也把相关的知识总结下,以免下次又需要,上次弄的时候由于刚开始弄android i不久,所以只是保证了能够通过vold模块把u盘等挂载上去,具体应用能不能看到里面的东东的话就呵呵,没有保证了,现在出的几个bug也就这样,唉……学习了罗老师的,先慢慢的把流程图画出来:vold启动在init.rc中:原创 2012-03-26 22:18:30 · 14618 阅读 · 4 评论