#android #directory
Вопрос:
Я хотел бы проверить некоторые вещи в этом каталоге, чтобы убедиться, что пользователь каким-то образом не обращался к этому каталогу и что-то изменил самостоятельно.
Для этого я исключаю некоторые файлы, которые службы, используемые моим приложением, создают в этом каталоге, например, файлы базы данных realm или файлы конфигурации Google maps. Код подготовлен таким образом, чтобы определенные файлы были исключены из сообщения о том, что пользователь изменил что-то в своем собственном каталоге.
Проблема в том, что похоже, что файлы не всегда одинаковы, например, на моем физическом устройстве создается новая папка и 2 файла, которые не созданы в эмуляторе.
Если разные файлы могут быть созданы в зависимости от того, используете ли вы то или иное устройство, то это никуда не приведет, и мне придется подумать о другом подходе к проблеме, для решения которой нам нужно выполнить эту проверку, но если единственная разница в том, что только эти файлы и папки отображаются на физических устройствах с тем же именем, что и у того, которое я вижу, это просто вопрос об их исключении.
Итак, чего я могу ожидать от файлов, созданных в этом каталоге на физических устройствах?
Комментарии:
1. «чтобы проверить, что пользователь каким-то образом не получил доступ к этому каталогу» — за пределами корневых устройств пользователи не имеют возможности доступа
getFilesDir()
. «например, на моем физическом устройстве создается новая папка и 2 файла, которые не созданы в эмуляторе» — вы уверены, что ищетеgetFilesDir()
? У вас также нет доступа к этому, кроме как на корневых устройствах или дляdebug
сборки вашего приложения с помощью таких инструментов, как Проводник файлов устройств в Android Studio.2. @CommonsWare, я точно использую отладочную сборку своего приложения, и мы хотели бы избежать использования пользователем корневого устройства для изменения содержимого, пользователь всегда может обмануть проверки приложений, установив соответствующие поддельные файлы, но в leader мы хотели бы усложнить это.
3.
Problem is that it looks like files are not always the same, for example in my physical device a new folder and 2 files that are not created in emulator get created.
Имена, пожалуйста.4. Какое имеет значение, что есть какие-то дополнительные папки и файлы? Пока вы можете проверять свои собственные папки и файлы, я бы сказал, что вы закончили.
5. Если у пользователя есть root, вы не можете предполагать, что пользователь не изменял файл. Вы можете сделать что-то, чтобы попытаться обнаружить его (например, проверить контрольную сумму файла и проверить ее при загрузке), но это предполагает, что он также не редактировал контрольную сумму. В конце концов, если вы не контролируете аппаратное обеспечение, вы не можете доверять файловой системе. Все, что вы можете сделать, это увеличить скорость, что делает это немного более болезненным для шеи. Даже полагаясь на шифрование и безопасное хранилище, они могут использовать версию AOSP, которая на самом деле этого не делает и притворяется, что делает.