删除外部存储中的文件 - 可以删除硬盘吗?

时间:2017-10-03 15:21:40

标签: android file-io android-external-storage

当我删除存储在外部存储器中的文件时,例如照片

有没有办法使用' hard'删除文件?删除使其无法轻易恢复?

即。如果其他应用可以访问外部存储空间,我也不希望他们恢复已经删除的照片

2 个答案:

答案 0 :(得分:1)

我认为如果您担心恢复数据保护,则应完成后续步骤:

  1. 打开文件进行编写
  2. 在此文件中写入随机数据序列而不是实际数据
  3. 删除该文件。

答案 1 :(得分:1)

没有root访问权限的普通应用程序已无法恢复已删除的文件。调用unlink后,文件就会消失,句点。

具有root访问权限的应用程序可以通过直接读取原始虚拟设备文件(/dev/storage/*)来恢复未链接的文件。删除文件并将其移动到不同的目录只会删除目录条目而不触及文件内容(它们只是标记为"未使用"如果文件不再在任何地方引用)。因此,有可能收集以前属于文件的剩余扇区,并且自从移除以来未被覆盖。根据特定的文件系统,防止这种情况可能会有不同程度的困难。大多数外部存储上的外部文件系统是vFAT。在vFAT中,可以通过打开文件来防止残留扇区,然后删除并用零覆盖它的全长。其他文件系统(最值得注意的是,三星的F2FS)可能采取措施,由于直接内置于文件系统本身的损耗均衡,可以更加安全地删除文件。

不要为防止电路级损耗平衡而烦恼。它发生在如此低的水平,恢复数据是不可行的,无需屠杀手机和使用隧道显微镜。只有闪存控制器固件才能看到该数据,并且大多数控制器不允许从OS程序访问闪存固件。

当然,您仍然必须确保文件尚未缓存在某个辅助存储设施中(例如,图像的缩略图可能已缓存在缩略图缓存中,或者系统MediaProvider中)。当然,其他一些程序可能会在删除之前将文件复制到某个地方。因此,最安全的方式来确保"安全删除"正在加密文件:即使有人在删除之前窃取它们或者在删除后恢复其内容,没有解密密钥,这些内容也是无用的。逐字节覆盖排在第二位。

有些人可能会提出一种强硬的暴力方法:取消链接文件后,创建一个临时文件,并用等于分区剩余空闲空间的随机数据填充它。这将有效地击败所有形式的耗损,并防止大多数案件中的文件恢复。不幸的是,这种方法非常慢,对闪存非常不利,并且不能防御以前复制文件的应用程序。

  • "取消关联"是一个术语,传统上用于描述在Linux中删除文件(google for" inodes")。删除File#delete的文件会取消链接