Как я могу заблокировать файлы в Android с помощью кода Java? - PullRequest
5 голосов
/ 30 апреля 2010

Я хочу заблокировать файлы, которые есть на SD-карте Android. Мне нужно заблокировать их, чтобы никто, кроме моего программного обеспечения, не мог удалить перемещение копии или отправить их через Bluetooth или любым другим способом. Как мне это сделать?

Ответы [ 3 ]

7 голосов
/ 30 апреля 2010

Нет способа заблокировать файл в Android; даже если бы это было так, файлы были бы заблокированы только во время работы вашего приложения, что не помешало бы другим приложениям обращаться к файлу, когда пользователь не запустил ваше приложение.

SD-карты обычно форматируются с использованием FAT (или FAT32), и это имеет место в Android. FAT предлагает очень ограниченные права доступа к файлам, поэтому вы не можете ограничить доступ к файлам таким образом. Опять же, даже если бы вы могли сделать что-то подобное, это не обеспечило бы никакой защиты, если бы пользователь вынул SD-карту из телефона и поставил ее на свой ПК.

Если вы хотите сохранить файлы вашего приложения в секрете, вам нужно поместить их во внутреннюю память телефона в область, отведенную для вашего приложения. Каждое приложение запускается с другим идентификатором пользователя, и каталог данных каждого приложения защищен с помощью разрешений в стиле UNIX, что не позволяет другим приложениям читать их. Поэтому, в то время как это лишит другие приложения доступа к вашим файлам, оно не остановит разумно определенного пользователя, имеющего root-доступ к своему телефону, копирующего их.

Посмотрите методы Context.openFileInput(), Content.openFileOutput() и Context.getFilesDir(), чтобы узнать, как хранить файлы во внутренней памяти телефона. .

5 голосов
/ 30 апреля 2010

Вы не можете сделать это на любой платформе (не говоря уже об Android), используя обычную SD-карту. Извините!

2 голосов
/ 30 апреля 2010

Я думаю, вы хотите зашифровать файл. Хотя файл все еще можно перемещать, он будет бесполезен для всего, кроме вашего приложения. Люди смогут копировать, перемещать, удалять, но содержимое не будет скомпрометировано.

...