Это не проблема для Android.
Это связано с тем, как работают файловые системы и с физическими носителями данных.
При удалении файла независимо от API на самом деле удаляется запись в таблице файлов.
Фактические данные на диске или флэш-накопителе остаются.
Существует метод безопасного удаления:
Перед удалением файла несколько раз перезаписать его содержимое мусором или нулями.
Но этот метод работает только для магнитных носителей, таких как жесткие диски.
Устройства Android используют NAND flash для хранения.
Поскольку число операций записи, которые может выполнить чип NAND, прежде чем он выйдет из строя, намного меньше, чем у магнитной памяти, эти чипы обычно снабжены механизмом, который распределяет команды записи.
Это означает, что даже если вы попытаетесь записать случайные данные или нули в файл, нет гарантии, что фактические данные будут перезаписаны.
Записи могут идти в другой сектор, чтобы избежать износа.
Итак, с одной стороны, для флэш-памяти достаточно один раз перезаписать файл, но с другой стороны, это невозможно сделать правильно на уровне приложения.
Если вы хотите обезопасить свое приложение, вы должны хранить зашифрованные конфиденциальные данные.
Затем, даже если кто-то попытается прочитать исходное хранилище, он не сможет восстановить данные.
Не храните учетные данные пользователя (например, пароли) в обычных файлах на Android.
Используйте API учетных записей Android и позвольте ОС управлять безопасностью.
Если вам все еще нужно хранилище файлов, но вы хотите защитить данные, зашифруйте их в памяти и затем запишите в файл.