Вы можете хранить файлы в базе данных, если нет ограничений на размер БД.
Или вы можете хранить изображения в одном контейнере (например, в нашей виртуальной файловой системе SolFS) и извлекать их из этого контейнера. Пользователь по-прежнему сможет скопировать контейнер. Одним из вариантов здесь является шифрование контейнера с использованием некоторого идентификатора устройства (например, кода IMEI) как части ключа шифрования.
Если телефон рутирован, пользователь может сделать практически все, чтобы, как указал Ладья, безвестность становится важной частью уравнения.
И еще один вариант - создать собственный формат файла для ваших изображений, чтобы только ваше приложение могло загружать данные изображений. Опять же, вы можете зашифровать такие файлы, используя идентификатор устройства, чтобы «привязать» изображение к устройству.
Обратите внимание, что в настоящее время интеллектуальная собственность (включая изображения) лицензируется пользователю, а не устройству. Или, по крайней мере, пользователь имеет право перемещать IP между несколькими своими системами (скажем, не более 3-х устройств). Вы также можете справиться с этим, зашифровав изображение случайным ключом, а затем зашифровав случайный ключ, используя соль IMEI + для каждого устройства (так что случайный ключ будет зашифрован, скажем, 3 раза). Затем пользователь может перемещать файл между своими системами. Конечно, это не единственный способ, позволяющий пользователю перемещать файлы между своими устройствами.