如何使用open()在读取模式下打开android手机内部内存mmcblk0



我正在研究安卓手机取证。我想使用open()和read()linux调用访问android手机的内部内存。我使用NDK在c中实现了这些调用。这是我的原生C代码:

jint fd;
jlong ReadMemory(jbyte* buf, jint bufflength){
    jlong size=0;
    system("su");
    fd=open("/dev/block/mmcblk0",O_RDONLY);
    size=read(fd,buf,bufflength);
    return size;//fd;
}

所以当我试图打开内存时,fd得到了-1的值。请帮我克服这种情况。

这是一个文件系统专用的块设备。您可以从系统内部(在设备上,在外壳中)读取它。您可以使用Linux命令:

cat /dev/block/mmcblk0 | gzip > /emmc/copy

要复制整个文件系统,请使用gzip对其进行压缩,并将其放入mounted/emmc文件夹中的一个名为"copy"的文件中。

您可以为压缩图像选择文件夹和文件名。请注意,在700MHz设备上,读取和压缩整个文件系统可能需要很长时间(几个小时)。

最新更新