Место хранения файлов и данных приложений.
Насколько я понимаю, расположение универсальное для разных версий андроид 4 5 6 7 8 9 10 и скорее всего, даже андроид 11, с той разницей что там появляются изолированные индивидуальные хранилища scoped storage для каждого приложения - чтобы не подглядывали)
Начну с тех директорий, которые доступны без Рута (сохранения игр зачастую там
не хранятся):
А именно это флешка, и внутреннее хранилище, в которое обычно сохраняются фотографии (папка DCIM).
Разные приложения могут создавать свою папку в корне,
например WhatsApp, создает папку WhatsApp но восстановить с нее у меня не получилось - нужно сохранять в облако через само приложение.
И наконец, то, что нас может заинтересовать, папка Android, в которой может храниться информация и кеш с игр (внутри папки obb). Но опять же, важные данные они тут обычно не хранят.
Самое интересное (нужное) хранится в разделе data, получить доступ туда можно при помощи Рут привилегий для root файлового менеджера, например total commander.
Зайдя с его помощью в корневую папку вы увидите разделы устройства и символические ссылки.
Раздел
data.
Итак, из чего он состоит?
А состоит он, из двух отделений, из самого раздела data, где и находится почти вся инфа на телефоне и из внутренней папки media, которую вы знаете как "внутренняя память", к которой у вас есть доступ и без Рута.
Чтобы не путаться, стоит упомянуть о "символических ссылках", которые не что иное как ярлык со своим названием, который ведет к определенной папке, например
/storage/emulated/<0> ведет к вышеописанной /data/media
Хорошо,зашли мы в /data и там куча других папок, что в них?
А из них нам могут быть интересны такие:
/data/user/0 это символическая ссылка 0 профиля, то есть профиля владельца устройства ведущая на самом деле к настоящей папке /data/data
Пользователям второго пространства
Есть в прошивках MIUI такая функция как второе пространство.
Это типа когда ты можешь дать другу телефон, и не боятся что он будет играть в твои игры или смотреть твои фотки...
Так вот, где хранятся данные второго пользователя?
Как раз таки тут в том числе, в
/data/user/и номер отличный от 0, (в папке user_de системные приложения)
Кстати, там же хранятся данные клонированного приложения первого пользователя.
Так вот тут в этой дата/дата и будут сейвы и прочее,
но как теперь найти приложение которое я ищу?
Вам нужно узнать имя установленного пакета приложения:
На моей прошивке, имя пакета можно узнать в свойствах приложения (настройки телефона, приложения, о приложении)
Например Вацап будет хранить свои данные в папке com.whatsapp
Эту то папку вы и захотите сохранить.
Еще вам может понадобиться само приложение, .APK оно находится в /data/app
Кроме этого, еще может понадобиться obb кеш, который игра часто докачивает сама из интернета. Об том где его достать я писал в начале - внутренняя память ,андроид, затем папка обб /storage/emulated/<user_id>/Android/obb
Как проще найти приложение через тотал коммандер
В тотал коммандере, если нажать кнопку поиска, в строке поиска будет звездочка - это регулярное выражение, использовать так:
Допустим надо вам найти папку содержащую слово kiwi, и не важно что еще спереди и сзади, поэтому пишите так
*kiwi*
И найдутся папки содержащие это слово где угодно.
На практике это полезно чтобы находить имя пакета приложения в папке app, так как там оно обычно с добавочной вставкой сбоку, для уникальности, а не для того, чтобы поиск ее не нашел.
Тем кто в теме
Источник:
https://android.stackexchange.com/a/218507И для разработчиков, хотя это они и так должны знать
https://developer.andr…ndroid/content/ContextDIRECTORY DESCRIPTION / API ===================================================================================== APP CODE ======== /data/app/<pkg>* (user apps installation directory) /data/app/<pkg>*/base.apk (original `.apk` file) /data/app/<pkg>*/lib/<arch>/*.so (shared libraries) /data/app/<pkg>*/oat/<arch>/base.[art|odex|vdex] (compiled executable code) /data/dalvik-cache/<arch>/*.[art|dex|oat|vdex] (compiled executable code, only for system apps) /data/misc/profiles/cur/<user_id>/<pkg>/primary.prof (ART profile) /data/misc/profiles/ref/<pkg>/primary.prof (ART profile) INTERNAL STORAGE ================ /data/user[_de]/<user_id>/<pkg> getDataDir /data/user[_de]/<user_id>/<pkg>/files getFilesDir /data/user[_de]/<user_id>/<pkg>/[code_]cache getCacheDir or getCodeCacheDir /data/user[_de]/<user_id>/<pkg>/databases getDatabasePath /data/user[_de]/<user_id>/<pkg>/no_backup getNoBackupFilesDir /data/user[_de]/<user_id>/<pkg>/shared_prefs getSharedPreferences
(User без de соответственно для хранения настроек не системных приложений)
EXTERNAL STORAGE ================ /storage/emulated/obb/<pkg>/*.obb (shared by multi-users, exposed in following view) /storage/emulated/<user_id>/Android/obb/<pkg>/*.<pkg>.obb getObbDirs /storage/emulated/<user_id>/Android/media/<pkg> getExternalMediaDirs /storage/emulated/<user_id>/Android/data/<pkg>/ /storage/emulated/<user_id>/Android/data/<pkg>/files getExternalFilesDirs /storage/emulated/<user_id>/Android/data/<pkg>/[code_]cache getExternalCacheDirs
Сообщение отредактировал konstantinqq - 07.05.20, 09:46