Я хочу заблокировать файлы, который находится на sdcard андроида. Я должен заблокировать их так, никто кроме моего программного обеспечения не может удалить перемещение копии или отправить их по Bluetooth или любому другому пути. Как я могу сделать это?
Я думаю, вы хотите зашифровать файл. Хотя файл все еще можно перемещать, он будет бесполезен ни для чего, кроме вашего приложения. Люди смогут копировать, перемещать, удалять, но содержимое не будет нарушено.
Нет способа заблокировать файл в Android; даже если бы это было так, файлы были бы заблокированы только во время работы приложения, что не остановило бы доступ других приложений к файлу, когда пользователь не запустил ваше приложение.
SD-карты обычно форматируются с помощью FAT (или FAT32), и это относится к Android. FAT предлагает очень ограниченные разрешения на доступ к файлам, поэтому вы не можете ограничить доступ к файлам таким образом. Опять же, даже если бы вы могли сделать что-то подобное, это не предложило бы никакой защиты, если бы пользователь достал SD-карту из своего телефона и положил ее на свой ПК.
Если вы хотите сохранить конфиденциальность файлов вашего приложения, вам необходимо поместить их во внутреннюю память телефона в области, зарезервированной для вашего приложения. Каждое приложение запускается с разным идентификатором пользователя, а каталог данных каждого приложения защищен с помощью разрешений на файлы в стиле UNIX, что не позволяет другим приложениям читать их.Таким образом, хотя это остановит другие приложения, имеющие доступ к вашим файлам, это не остановит разумно определенного пользователя с корневым доступом к своему телефону, копировав их.
Взгляните на методы Context.openFileInput()
, Content.openFileOutput()
и Context.getFilesDir()
, чтобы узнать подробности о том, как хранить файлы во внутренней памяти телефона.
Вы не сможете сделать это ни на одной платформе (не говоря уже об Android), используя обычную SD-карту. Извините!