Почему другое приложение не может читать файл базы данных в Android, даже при наличии ключей шифрования
Что проверяют
Знаете ли вы, на чём держится песочница Android: на правах файловой системы и идентификаторе процесса, а не на шифровании. Вопрос сформулирован как ловушка, и правильный ответ в том, что до расшифровки дело вообще не доходит.
Как отвечать
Разложите по слоям. При установке приложение получает собственный Linux-UID, а его внутренний каталог создаётся с владельцем в виде этого UID и правами, закрытыми для всех остальных. Файл базы лежит в подкаталоге databases внутри него. Чужой процесс идёт со своим UID, и системный вызов открытия файла возвращает отказ в доступе. Ключ шифрования тут ни при чём: расшифровывать нечего, байты прочитать не удалось.
Поверх прав работает SELinux: обязательная политика ограничивает даже то, что разрешил бы владелец файла. Третий слой про сами ключи. Если ключ заведён в Android Keystore, приложению он не выдаётся вовсе: операции выполняются внутри защищённой среды, а доступ привязан к вызывающему приложению. Скопировать такой ключ и унести соседу нельзя даже теоретически.
Закончите тем, как данные всё-таки отдают наружу осознанно: ContentProvider с собственным разрешением, FileProvider с временным грантом на конкретный URI, явная передача через интент. Доступ всегда адресный, а не «файл лежит, читайте кто хочет».
Где спотыкаются
Отвечают «потому что данные зашифрованы». Порядок перепутан: сначала права доступа, потом шифрование. Шифрование защищает от чтения носителя в обход системы, от изъятого устройства и от утёкшего бэкапа, а не от соседнего приложения.
Второе: считают, что разрешение на хранилище открывает чужие каталоги. Разрешения на файлы касаются общей памяти и медиа, внутренний каталог приложения ими не затрагивается ни при каких флагах.
Третье: ломают изоляцию сами. Выгружают базу в общий каталог, чтобы удобнее было отлаживать, оставляют включённым автоматическое резервное копирование или пишут отладочный дамп на карту памяти. Там файл действительно доступен всем.