众所周知,Android系统基于Linux内核,虽然Google Android已经对Linux Kernel作了很多修改,但是底层的基本架构与Linux基本一致。
在Linux系统中,对设备管控基于Device Mapper机制实现,在Android系统中,也是基于此种机制实现系统对设备的操作。通过查看Android官方文档中的描述”This is because the encryption is done by the dm-crypt layer in the kernel, which works at the block device layer“,可以知道Android系统与2.6以后的Linux Kernel一样也是在block层工作,通过Device Mapper机制中的dm-crypt实现。
在了解了Android系统与Linux系统类似之后,接下来就可以正式进入今天的主题Andorid系统上使用Cryptsetup加密存储设备,主要是对Android系统中挂载的SdCard进行加密。由于Google对Linux Kernel的阉割修改,Linux系统中的很多功能Android系统不能直接支持,所以我们可以通过adb调试,将所需要的功能编译之后push进入Android Kernel,并添加可执行权限,那么我们所需要的功能就可以在Android系统中使用了。本次所介绍的方法就是基于此种思路。
1 PC通过adb连接Android系统,我这里使用的Win7+Android AVD,emulator 一个Android系统之后,就可以直接通过adb shell连接,至于其他连接方式这里不