Где приложения для Android хранят данные, которые сохраняются при удалении?

TL;DR На устройствах без root-доступа, где приложения Android хранят данные, которые сохраняются при удалении?

Предыстория: пару месяцев назад я установил приложение для Android и настроил его по своему вкусу. Через пару недель он мне больше не был нужен, поэтому я его удалил. После удаления я не увидел никаких файлов, оставшихся во внутренней памяти, и в устройстве не была установлена ​​карта microSD, поэтому там также не хранились файлы.

К моему удивлению, когда я переустановил приложение, оно запомнило все свои настройки. Я использую брандмауэр, поэтому он не загружал конфигурации из облака.

Таким образом, вопрос: на нерутированных устройствах, где приложения Android хранят данные, которые сохраняются после удаления?

Это либо в резервной копии Google, либо в разделе /data
@ЈеднорукиКрстивоје Определенно не резервное копирование Google... отключите его!
Ну тогда что-то осталось после удаления в /data

Ответы (2)

Приложения должны хранить свои данные и связанные с ними файлы либо в, либо /sdcard/Android/data/com.app.idв /data/data/com.app.id; однако многие приложения (особенно из Китая) не соблюдают это правило и создают папки в хранилище по отдельности, в которых хранится различная информация.

Например, приложения, использующие Aliyun SDK, будут создавать .DataStorageкаталоги .SystemConfigи .UTSystemConfigв корне внутреннего хранилища, в основном для хранения информации об идентификаторе устройства. Такая информация может использоваться для идентификации пользователей, даже если они не зарегистрировали учетную запись в соответствующих приложениях.

Что касается того, что вы описали - полностью локально хранящиеся данные (без доступа к облаку) - это тоже возможно. У меня есть один такой пример на моем телефоне, который является сторонним приложением для форума (я предпочитаю не раскрывать, какое именно это приложение), с несколькими функциями, такими как подписи, настраиваемые идентификаторы для улучшения исходного приложения. Он хранит все настройки, связанные с этими улучшениями, в .dbфайлах в папке в корне внутреннего хранилища. Когда пользователь меняет устройство, он может просто скопировать папку на новое устройство, и при открытии эти настройки будут прочитаны и останутся нетронутыми. Ниже показана одна из страниц его основного .dbфайла, где хранятся значения настроек ключей (конфиденциальная информация отредактирована):

введите описание изображения здесь

Это единственный известный мне способ сохранить данные приложения после удаления. +1.

Некоторые приложения могут специально оставлять остатки приложения в /dataразделе, /data/data/com.packagenameгде имя пакета представляет конкретный пакет приложения.

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

В любом случае, вы можете сканировать эти остаточные или «трупные» файлы с помощью сторонних приложений, таких как sd maid, чтобы иметь четкую разбивку.

Я тестировал на Android 4.3 , возможно, с тех пор что-то изменилось, но, основывая свой ответ на этом

Xavier_fakerat, Значит ли это, что нерутированные устройства не могут удалять остаточные файлы? Как стороннее приложение имеет доступ к файлам, которых нет у пользователя?
Начиная с Lollipop, я никогда не видел примеров того , чтобы /data/data/com.packagenameданные приложения сохранились после удаления родительского приложения, в отличие от того, что происходит в Microsoft Windows. Не могли бы вы привести несколько примеров такого поведения в дикой природе?
@Death Я имел в виду, что каталог /data не виден, если ваше устройство не имеет root-прав, и, кроме того, для просмотра этого каталога нужен root-проводник. К вашему сведению, я тестировал Android 4.3, который использую, так что это объясняет, почему. Есть вероятность, что остаточные файлы могут остаться после удаления, это просто возможность, которую вы не можете не учитывать.
@LateralTerminal, основываясь на моем объяснении на версии Android, которую я использую, в первую очередь вам нужен root для просмотра каталога / data, ну, вы можете использовать команды оболочки для удаления файлов.
Итак, могут ли такие приложения, как SD Maid, очищать остаточные файлы без рута?
Насколько я знаю, для этого приложения требуется root-доступ. Без root-доступа функциональность приложения будет крайне ограничена.