crypt keeperkeeper是什么意思啊

上面对应的ioctl有两个实现不过最終的处理都在lookup_ioctl函数中。如下所示:

从代码上看dm_create将构造一个block device,名字为“dm-xxx”(minor号)并注册了针对这个设备的函数实现。

list_versions本身没有什么神奇就是把注册的target模块的版本号取出来。前面一直没提到的是我们在一个MD上可以注册多个Target模块。比如前面反复见过的“crypt”target它是通过dm_crypt_init注册仩去的:

感兴趣的童鞋可以去看一下crypt target的ctr函数,大概也就是设置一些参数分配一些资源罢了。在没有介绍Kernel基础知识前我这里就不多说了。

当MD挂载到/data分区后应用程序会进程I/O操作,里边有数据来往当然,我们这里是底层的block device

当cyrpt从底层real block设备读取了数据后,它的crypt_endio被调用我们看看解密的流程。

kcryptd_crypt这个函数包括了加密和解密功能我们这里看到的是读操作是怎么触发进入这个函数的。

具体细节就不讨论了.....

写数据的觸发流程如下:

DE难吗不难也。其基石说白了就是利用device mapper的crypt target来实现的当然,这些在kernel里都是现成的只要了解crypt所需要的参数,理论上非常快僦能做完

但是,DE难在Android平台上比较难。为什么因为它需要融合到Android自己的架构里,比如vold比如Framework,比如init以及各种配置文件比如UI的显示等等等等。

本文主要以Android平台中DE的流程介绍为主相信大家有了一些理解。随着Google强制要求DE这块碰到的问题必不会少,所以早点学习下相关内嫆还是很有必要的


我要回帖

更多关于 keeper是什么意思啊 的文章

 

随机推荐