Файловая система представляет собой своего рода структуру того или иного накопителя. Она отвечает за то, какой максимальный объем файла можно сохранить в памяти, длину их названий, а также за организацию циклов записи или чтения. Файловые системы выступают в роли посредников между программным кодом и физическим вместилищем.

Для разных операционных систем и типов устройств существуют отдельные ФС и гаджеты на ОС Android, не являются исключением. Давайте разберемся, какие файловые системы поддерживает Android и для каких целей используется каждая из них?

Файловые системы Android

1. Yaffs и Yaffs2

Создателем файловой системы Yaffs (Yet Another Flash File System) является Чарльз Мэннинг, родом из Новой Зеландии. Данная ФС предназначается для организации работы флеш-накопителей и оперативной памяти. Основным ее преимуществом является повышение сроков эксплуатации модулей памяти, так как система автоматически пропускает ячейки, предназначенный для однократной записи. Yaffs2 использовалась для организации работы внутренней памяти гаджетов Android версии 2.2 и 2.3.

2. VFAT

Vfat не является полноценной самостоятельной файловой системой, а представляет собой расширение FAT. Доработанная версия позволяет сохранять файлы с длинными именами, но по всем остальным характеристикам является морально устаревшей. Vfat может использоваться на картах памяти, а операционные системы на базе ОС Андроид полностью их поддерживают. В основном, это файловая система флешки android.

3. F2FS

F2FS (Flash Friendly File System) – файловая система, которая предназначена в первую очередь на работу с флеш-памятью и SSD-накопителями. Разработал ее сотрудник компании Samsung, Ким Чэ Гык, а после публикации исходного кода она была доработана другими инженерами компании. F2FS может использоваться на картах памяти SD/MMC, а также со множеством других типов памяти. Для полноценной кастомизации существует целый набор утилит. Из преимуществ можно отметить хорошую гибкость в настройке, высокие показатели сохранения жизненного цикла блоков памяти, а также хранение данных в виде журнала. Хорошую скорость работы обеспечивает то, что индексы данных сохраняются в оперативную память, а поддержка F2FS включена в ядро Linux, начиная с версии 3.8.

4. Ext2-Ext4

Ext2-Ext4 – основные файловые системы Android. Именно они используются для организации работы внутреннего хранилища на большинстве современных гаджетов, и если первые устройства работали под версиями Ext2, то начиная с версии Android 4, основными стали Ext3, а потом и Ext4. Основное отличие между вариациями заключается в наличие журналирования. То есть, если в процессе записи или чтения данных происходит системный сбой, например, неожиданное отключение питания, не произойдет потери или повреждения данных. Несмотря на то, что в основном ФС формата Ext используется в основном в блочных накопителях, пользователи могут установить данный тип и для карт памяти, но без сторонних утилит получить к ним доступ из операционных систем, помимо Linux, будет невозможно. Файловая система флэшки Android обычно форматируются в FAT (VFAT) или NTFS, а флеш-память — в Ext3 или Ext4.

5. UBIFS

mSATA SSD 16 GB Sandisk — SDSA3DD-016G

UBIFS – файловая система, предназначенная исключительно для памяти по типу NAND (флеш-накопители, применяемые на мобильных устройствах). Ее основное преимущество — это снижение износа носителей данных. Состоит такая ФС из двух слоев — UBI (отвечает за работу и связь с физическим носителем) и UBIFS (сама файловая система). Разработчиком UBIFS является компания Nokia, но встретить подобную файловую систему можно не только на оригинальных устройствах от данного производителя, но и на других гаджетах, например, китайского изготовления.

6. Samsung RFS

Samsung RFS – разработанная корейской компанией Samsung файловая система для устройств на базе ОС Linux, а одной из разновидностей последнего является Android. Предназначается фирменная ФС для флеш-памяти NAND и используется во многих гаджетах собственного производства. Для облегчения работы с файлами используется таблица формата FAT, что позволяет максимально просто произвести запись файлов на флэш-память и их чтение. Специфика RFS учитывает особенности NAND накопителей, что позволяет увеличить длительность их эксплуатации, а также снизить вероятность потери данных при системных сбоях и случайных отключениях питания.

7. SDCardFS

Компания Google долгое время использовала в своих устройствах файловую систему FUSE, но она имела ряд недостатков, среди которых необходимо отметить малое количество памяти, выделяемой под приложения под приложения, а также большое потребление хранилища при кэшировнии данных. На замену FUSE пришла SDCardFS, которая решала эти проблемы, но представляла собой своего рода оболочку, эмулирующую FAT32. Она отправляет данные файловым системам нижнего уровня, что позволяет оптимизировать работу смартфонов, а также исправляет ошибки, связанные с передачей данных на компьютер и обратно. SDCardFS по своей сути не является классической файловой системой, но значительно сказывается на скорости работы смартфонов или планшетов на Android.

Выводы

Файловые системы Android самые разнообразные. Среди них есть как общие ФС, предназначенные для работы с ОС на базе Linux, так и специфические, которые используются в NAND-накопителях. Несмотря на такое разнообразие, производители все же прикладывают совместные усилия для продвижения и улучшения той или иной файловой системы, так как именно от работы внутренних составляющих зависит будущее рынка Android-гаджетов.

Стоит также отметить тот факт, что над улучшением различных файловых систем могут одновременно работать конкурирующие концерны, и именно такое объединение заставляет цифровые технологии развиваться, независимо от того, насколько яростна борьба на потребительском рынке. И только производители смартфонов определяют, какая файловая система на Android работает лучше при тех или иных обстоятельствах.

Вступление

В этой статье я попробую рассмотреть безопасность чуть-чуть повыше ядра, а именно: как работает безопасность в Native user space. Мы коснемся темы процесса загрузки операционной системы и рассмотрим структуру файловой системы Android. Как я уже говорил, я не очень силен в Linux, поэтому если заметите неточности, то исправляйте — меня научите и статью улучшите. Так как эта тема довольно обширная, я решил разбить её на две части. В первой части мы рассмотрим процесс загрузки операционной системы и особенности файловой системы. Всем кому интересно, добро пожаловать!

Список статей

Здесь собраны ссылки на мои статьи из этой темы:

Что подразумевается под Native user space

Под Native user space подразумеваются все компоненты пространства пользователя, которые выполняются вне Dalvik Virtual Machine, и которые не являются частью Linux kernel.

Файловая система Android

Для начала давайте рассмотрим структуру файловой системы Android. Хотя Android и базируется на Linux kernel, привычную нашему глазу структуру файловой системы мы здесь не увидим. Давайте запустим эмулятор и посмотрим, что у нас есть. Для этого выполним комманду:

adb shell ls -al 

В моем терминале для эмулятора на Android 4.2 я вижу следующий результат:

drwxr-xr-x root     root              2013-04-10 08:13 acct drwxrwx--- system   cache             2013-04-10 08:13 cache dr-x------ root     root              2013-04-10 08:13 config lrwxrwxrwx root     root              2013-04-10 08:13 d -> /sys/kernel/debug drwxrwx--x system   system            2013-04-10 08:14 data -rw-r--r-- root     root          116 1970-01-01 00:00 default.prop drwxr-xr-x root     root              2013-04-10 08:13 dev lrwxrwxrwx root     root              2013-04-10 08:13 etc -> /system/etc -rwxr-x--- root     root       244536 1970-01-01 00:00 init -rwxr-x--- root     root         2487 1970-01-01 00:00 init.goldfish.rc -rwxr-x--- root     root        18247 1970-01-01 00:00 init.rc -rwxr-x--- root     root         1795 1970-01-01 00:00 init.trace.rc -rwxr-x--- root     root         3915 1970-01-01 00:00 init.usb.rc drwxrwxr-x root     system            2013-04-10 08:13 mnt dr-xr-xr-x root     root              2013-04-10 08:13 proc drwx------ root     root              2012-11-15 05:31 root drwxr-x--- root     root              1970-01-01 00:00 sbin lrwxrwxrwx root     root              2013-04-10 08:13 sdcard -> /mnt/sdcard d---r-x--- root     sdcard_r          2013-04-10 08:13 storage drwxr-xr-x root     root              2013-04-10 08:13 sys drwxr-xr-x root     root              2012-12-31 03:20 system -rw-r--r-- root     root          272 1970-01-01 00:00 ueventd.goldfish.rc -rw-r--r-- root     root         4024 1970-01-01 00:00 ueventd.rc lrwxrwxrwx root     root              2013-04-10 08:13 vendor -> /system/vendor 

Я отмечу здесь только главные директории и те, которые нам пригодятся в будущем. В Интернете можно найти описание и предназаначение других директорий. Можно заметить, что некоторые директории такие же, как и в Linux, например, /dev, /proc, /sys, /mnt, /etc И их предназначение в основном такое же, как и в Linux. Кстати, отметьте, что мы не видим /bin и /lib директорий. Где они скрылись, я расскажу чуть позже. C другой стороны можно заметить директории, которых в Linux вообще нет. Среди них нас интересуют /data, /system, /cache, /init, /init.rc Давайте рассмотрим их назначение поподробнее./system Это главная директория, где хранятся неизменяемые компоненты Android системы. Если проводить аналогию, то эта папка похожа на папку C:windows, доступную только для чтения. Т.е. изменять данные в этой директории мы не можем. Как раз здесь можно найти директории /bin и /lib, где хранятся различные исполняемые файлы и shared libraries. Кроме того, здесь же лежат системные приложения, которые встроены в операционку и которые, по умолчанию, нельзя удалить. Содержимое этой директории формируется во время компиляции операционной системы./data Т.к. /system у нас доступна только для чтения, то должна быть директория где хранятся изменяемые данные. /data как раз ею и является. Например, в эту директорию в /data/app сохраняются apk файлы устанавливаемых приложений, а в /data/data хранятся их данные (эту директорию мы подробно рассматривали в прошлой статье). /cache Это просто временное хранилище. Также в эту директорию сохраняются, а потом из неё запускаются системные обновления. Чтобы понять, что такое /init файл и для чего нужны непонятные файлы с расширением *.rc, рассмотрим процесс загрузки системы.

Процесс загрузки Android

Давайте рассмотрим несколько шагов процесса загрузки операционной системы Android. Эта картинка взята из книги «Embedded Android», там же можно найти и более детальное описание. Хотя в целом я и понимаю процесс, но для меня это больше магия 🙂CPU. Когда вы нажимаете на кнопку включения, на процессор вашего устройства начинает подаваться напряжение. Так как до этого момента процессор был выключен, и так как он не способен сохранять свое состояние без подачи напряжения, то сразу после старта он находится в некотором неинициализированном состоянии. В данном случае процессор считывает из своего специального регистра некоторый жестко зашитый адрес и начинает выполнять инструкции начиная с него. Чаще всего, этот адрес указывает на чип, в который зашит bootloader (загрузчик). Bootloader. Bootloader инициализирует RAM и загружает в неё Linux kernel. Кроме того Bootloader создает RAMdisk.Linux kernel. Ядро инициализирует различные подсистемы, встроенные драйвера и монтирует root filesystem (корневую файловую систему). После этого ядро может запускать первую программу. На этом магия заканчивается и дальше всё становится более-менее понятно.

Init

Первой программой в случае Android является init. Исполняемый файл находится в корневой директории (/init). Именно эту программу стартует ядро после своей загрузки. Её исходники находятся в папке system/core/init/ Давайте в них слегка покопаемся. Нас интересует system/core/init/init.c:

... int main(int argc, char **argv) {     ...     /* clear the umask */     umask(0);          /* Get the basic filesystem setup we need put          * together in the initramdisk on / and then we will          * let the rc file figure out the rest.          */     mkdir("/dev", 0755);     mkdir("/proc", 0755);     mkdir("/sys", 0755);      mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755");     mkdir("/dev/pts", 0755);     mkdir("/dev/socket", 0755);     mount("devpts", "/dev/pts", "devpts", 0, NULL);     mount("proc", "/proc", "proc", 0, NULL);     mount("sysfs", "/sys", "sysfs", 0, NULL);     ...     init_parse_config_file("/init.rc");     ... } 

Вначале мы создаем и монтируем некоторые необходимые для работы директории, а потом парсим файл /init.rc и выполняем то, что распарсили. Формат /init.rc файла очень хорошо описан в readme, там же можно найти и пример. Если кратко, то этот файл представляет собой набор actions (секций — именнованная последовательность комманд). Каждая последовательность команд срабатывает по определенному trigger (триггеру). Например, следующая последовательно — это action, в которой trigger — это fs, а последовательность команд — это набор mount команд:

on fs     # mount mtd partitions     # Mount /system rw first to give the filesystem a chance to save a checkpoint     mount yaffs2 mtd@system /system     mount yaffs2 mtd@system /system ro remount     mount yaffs2 mtd@userdata /data nosuid nodev     mount yaffs2 mtd@cache /cache nosuid nodev 

Исходный файл /init.rc находится в system/core/rootdir/init.rc Давайте рассмотрим некоторые основные его части, хотя я вам очень советую просмотреть его полность. После этого многие вещи вам должны стать понятны. Итак, начинается наш файл следующими строками:

import /init.usb.rc import /init.${ro.hardware}.rc import /init.trace.rc 

Они означают, что кроме init.rc файла нужно также импортировать настройки из файлов init.usb.rc, init.trace.rc и из файла с непонятным именем init.${ro.hardware}.rc Впрочем, ${ro.hardware} — это просто переменная, значение которая определяет тип железа. В случае эмулятора, её значение, например, — goldfish. Далее определяются переменные окружения:

... on init     ...     # setup the global environment     export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin     export LD_LIBRARY_PATH /vendor/lib:/system/lib     export ANDROID_BOOTLOGO 1     export ANDROID_ROOT /system     export ANDROID_ASSETS /system/app     export ANDROID_DATA /data     export ANDROID_STORAGE /storage     export ASEC_MOUNTPOINT /mnt/asec     export LOOP_MOUNTPOINT /mnt/obb     export BOOTCLASSPATH /system/framework/core.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar     ... 

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

on fs     # mount mtd partitions     # Mount /system rw first to give the filesystem a chance to save a checkpoint     mount yaffs2 mtd@system /system     mount yaffs2 mtd@system /system ro remount     mount yaffs2 mtd@userdata /data nosuid nodev     mount yaffs2 mtd@cache /cache nosuid nodev 

MTD — Memory Technology Devices. Если в общих чертах, то MTD — это специальный чип с энергонезависимой (т.е. данные на этом чипе сохраняются после перезагрузки или выключения) flash-памятью (типа NOR или NAND), на который сохраняются образы дисков. В этой статье более подробно рассказывается об этом типе устройств, а также об ограничениях. Специально для этих разновидностей flash-памяти были разработаны специальные файловые системы, например, YAFFS. Одно из самых важных ограничений этих типов памяти заключается в том, что для того чтобы записать данные в сектор, куда уже записаны какие-то данные, вам надо полностью сначала стереть весь сектор. Поэтому производители стали переходить на новый тип блочной flash-памяти (eMMC), на которые можно поставить обычную ext4 файловую систему и избавиться от указанного ограничения. Т.к. я показываю пример init.rc файла для эмулятора, где вся работа эмулируется, то в нем по умолчанию используется файловая система YAFFS2 (думаю, что это пережитки прошлого, т.к. YAFFS2 использовалась для всех устройств до Android 2.2). В реальном устройстве (это как раз один из примеров, когда необходимо использовать init.rc файл для определенного железа) эти комманды будут перезаписаны. Например, в случае устройства herring (Google Nexus S), в файле init.herring.rc эта секция выглядит следующим образом:

on fs     mkdir /efs 0775 radio radio     mount yaffs2 mtd@efs /efs noatime nosuid nodev     chmod 770 /efs/bluetooth     chmod 770 /efs/imei     mount_all /fstab.herring     ... 

Где fstab.herring — это файл, содержимое которого выглядит следующим образом:

... /dev/block/platform/s3c-sdhci.0/by-name/system          /system             ext4      ro                                                    wait /dev/block/platform/s3c-sdhci.0/by-name/userdata        /data               ext4      noatime,nosuid,nodev,nomblk_io_submit,errors=panic    wait,encryptable=/efs/userdata_footer 

Как вы могли заметить, /system, /data, /cache — это просто mounting points (точки монтирования файловой системы), которые указывают либо на MTD устройства (в случае эмулятора), либо на блочные устройства (в случае настоящего устройства), куда записаны соответствующие дисковые образы (system.img, userdata.img и cache.img). Я не уверен, но думаю, что внутри смартфона находится один единственный чип с flash-памятью, разделенный на partitions (тома), в каждый из которых записан соответствующий образ. Этот чип с flash-памятью — то, что мы знаем под именем Internal storage (внутренняя память), объем которой — один из основных параметров смартфона. Следует заметить, что /system смонтирован read-only (только для чтения). Это означает, что содержимое данного раздела не изменяется в процессе работы устройства, а только когда вы, например, обновляете систему на вашем устройстве (используя системные обновления). Продолжим рассматривать наш init.rc. По триггеру post-fs-data формируется базовая структура файловой системы /data раздела. Там, в общем всё понятно — набор mkdir, chown, chmod команд. Далее init.rc запускает несколько демонов. Если вернуться к рисунку в начале статьи, то они перечислены в блоке Native daemons. На этом мы пока остановимся. Как вы могли заметить из рисунка, я не полностью рассмотрел процесс загрузки операционной системы. Некоторые непокрытые этапы я рассмотрю в следующих статья.

Заключение

В следующей части я расскажу, откуда берутся образы system.img, userdata.img и cache.img и рассмотрю безопасность на уровне Native user space. Как всегда приветствуются исправления, дополнения, а так же предложения, о чем написать. И хотя у меня уже есть некоторый план, о чем писать в следующих статья, я готов его подкорректировать.

Ссылки

  1. Working with MTD Devices
  2. «Embedded Android» by Karim Yaghmour
  3. «Android Security Underpinnings» by Marko Gargenta

Update

  • Комментарий от пользователя про различные варианты размещения загузчика на MTD устройствах.
  • Комментарий от пользователя про инициализацию CPU на разных SoC

344 89,3k 344

Несмотря на большое количество внутренней памяти современных Android-устройств, практически каждый смартфон поддерживает использование миниатюрной карты памяти различного объема. Для правильного чтения SD должна быть отформатирована в один из поддерживаемых форматов. В ходе настоящей статьи мы расскажем об оптимальных вариантах типа файловой системы в зависимости от информации.

Формат для форматирования карты памяти на Android

По умолчанию Android-устройства способны считывать информацию с карты памяти лишь в нескольких форматах, в то время как другие типы файловой системы будут проигнорированы. Узнать о поддержке можно прямо во время использования стандартных средств форматирования из второго раздела статьи. При этом если флешка используется для определенных целей, обязательно стоит изучить преимущества каждого поддерживаемого формата.

Читайте также: Выбор файловой системы для флешки

Оптимальный формат при форматировании

В настоящее время телефоны на платформе Андроид способны работать с картой памяти в одном из четырех основных форматов, так же поддерживаемых большинством других устройств, включая ПК. К числу подобных типов файловой системы относится:

  • FAT;
  • FAT32;
  • exFAT;
  • NTFS.

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

FAT

Данный тип файловой системы является наиболее устаревшим и в настоящее время практически не используется на устройствах. В частности это связано с объемом сохраняемых файлов, ограниченных не более чем 2 ГБ, недостаточными даже для хранения графики. Поэтому, если размер флешки превышает указанное значение, у вас как минимум не получится его использовать.

Несмотря на недостатки, если накопитель имеет меньший объем нежели 2 ГБ и используется для хранения малого количества информации, можете выбрать формат FAT. Однако перед этим все же обратите внимание на следующий тип файловой системы.

FAT32

Настоящий формат является улучшенной версией предыдущего варианта и пользуется наибольшей популярностью не только среди пользователей мобильных устройств, но и как тип файловой системы для USB-накопителей. Если отформатировать флешку в данном формате, будет гарантирована поддержка как на любом смартфоне, так и на компьютерах и прочих мультимедийных устройствах.

Общий объем накопителя для доступа к формату не ограничен и может достигать более чем 100 ГБ, но при этом размер каждого обрабатываемого файла по отдельности не должен превышать 4 ГБ. Это существенный объем данных, и на телефонах такие файлы встречаются редко. Однако все же существует вероятность возникновения проблем, например, при сохранении файлов кэша или видеозаписей, каждый из которых может занимать значительно больше места в памяти.

exFAT

Предпоследним типом файловой системы, доступным на платформе Android, является exFAT, не имеющий ограничений, свойственных предыдущим форматам. Именно данный вариант стоит выбрать для карты памяти большого размера и с целью сделать флешку основным хранилищем информации, включая системный кэш и мультимедиа.

Единственная проблема, связанная с exFAT, заключается в совместимости. Этот формат может иметь ряд проблем с поддержкой некоторыми мультимедийными устройствами и старыми моделями смартфонов. При этом на современных девайсах файловая система позволит обрабатывать информацию с максимально возможной скоростью.

NTFS

Для пользователей ПК данный формат является наиболее известным, так как именно такой тип файловой системы используется на диске с Windows. Основные преимущества NTFS заключаются в отсутствии ограничений на размеры файлов, объем накопителя, скорость обработки информации и в надежности.

Как и в случае с exFAT, формат NTFS поддерживается далеко не всеми устройствами, что вполне может стать основной проблемой. Выбирать его следует только, если устройство наверняка сможет прочитать информацию с такой флешки.

Форматирование и устранение проблем

Каждое Android-устройство, как было сказано ранее, предоставляет средства для форматирования карты памяти. Это достаточно важный нюанс, так как до записи файлов на флешку лучше всего произвести изменение формата на смартфоне, а не на ПК или других устройствах. В противном случае при подключении карты памяти к смартфону может возникнуть сообщение с требованием выполнить форматирование, несмотря на наличие поддерживаемого типа файловой системы.

Подробнее: Как отформатировать карту памяти на Android

Какой бы тип файловой системы не был выбран, можно будет без проблем качать файлы, сохранять мультимедиа и прочую информацию. При этом единственным универсальным форматом является FAT32, когда как другие варианты подойдут лишь для некоторых устройств и конкретных целей. Мы рады, что смогли помочь Вам в решении проблемы. Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Предисловие о структуре

У многих есть компьютер и на них установлена ОС Windows. Все прекрасно знают, что в данной ОС все распределено по дискам:

C: — на данном диске находиться система

D: —  для личных файлов (диска может и не быть, если он не «разбит»)

E: — Z: — флешки, переносные жесткие диски, CD или DVD приводы.

В Windwows все рассредоточено по различным дискам. В UNIX/Linux куда входит и Android (а также BSD, куда входит Mac OS X) все выглядит все немного иначе. Файловая структура имеет древовидный вид. Возможно сейчас не понятно, но дальше с прочтением статьи будет более понятно.

Также стоит знать что Android как и в Linux, в отличие от Windows очень чувствительны к регистру.  Например папка Name, NaMe, name, NAME — это 4 разных папки, тогда как Windows сможет создать только одну папку с таким именем.

Для того чтобы было более понятно о чем идет речь, рекомендуется установить файловый менеджер Root Browser.

Структура и назначение папок и файлов Android

Как было выше сказано — структура имеет древовидный вид. У любого дерева имеется корень, в UNIX/Linux он также существуют. Корень — это отправной пункт в файловой структуре, с корня система обрастает папками и файлами. Корень в UNIX/Linux отмечается как знак:

/

подробно о разделе cache

В данном разделе находятся временные файлы в момент загрузки Android, а также  сюда загружаются обновления системы «по воздуху» — update.zip.

[свернуть]

подробно о разделе dev

/dev/ — в данном разделе содержится информация о устройствах системы и файлов.

[свернуть]

подробно о разделе data

раздел /data/ — пользовательский раздел в котором находятся установленные приложения, личные настройки

папка /data/app — здесь находятся установленные приложения, игры.

папка /data/app-lib — дополнительные библиотеки необходимые для работы определенных приложений (присутствует в новых версиях Android).

папка /data/dalvik-cache — кеш-память, для работы Java машины Dalvik которая  является «двигателем» в Android отвечающая за запуск и работу приложений.

папка /data/data — в данной папке находятся  индивидуальные настройки каждого пользовательского приложения, библиотеки и другие файлы необходимые файлы для их работы.

папка /data/system/ — в данном разделе находятся глобальные настройки пользовательского окружения, синхронизация, аккаунты, блокировка.

файлы gesture.key, locksettings.db, locksettings.db-shm, locksettings.db-wal — графический ключ, пин-код.

[свернуть]

подробно о разделе efs

раздел  /efs/ —  находится файлы и папки отвечающие за IMEI (данный раздел имеется не во всех Android).

[свернуть]

подробно о разделе preload

раздел /preload/ — в данном разделе находятся дополнительные файлы и папки, которые зеркалируются в раздел /system/ (данный раздел имеется не во всех Android, преимущественно в Samsung).

[свернуть]

подробно о разделе system

раздел /system/ — данный раздел содержит системные папки и файлы необходимые для функционирования Android.

папка /system/app — здесь находятся системные приложения и сервисы (в новых ОС Android сервисные приложения вынесли в другую папку priv-app).

папка /system/bin  и /system/xbin — папка содержит файлы и ссылки на исполняемые бинарные файлы.

файл /system/xbin/su — файл отвечающий за Root права.

папка /system/camerdata — в данной папке находятся файлы отвечающие за работу камеры.

папка /system/etc — в данной папке находятся конфигурационные файлы необходимые  при загрузке ОС а также необходимые в процессе работы различных программ.

папка /system/init.d — в данной папке находятся скрипты, которые могут влиять на работу системы.

файл /system/etc/ hosts — файл отвечающий за блокировку, переадресацию  веб адресов.

файл /system/etc/ apns.conf — файл с информацией о точках доступах интернет (APN).

файл /system/etc/ gps.conf — настройки GPS.

папка /system/fonts — папка с системными шрифтами.

папка /system/framework — папка с «процессами» Android.

папка /system/lib/ — библиотеки системных приложений и сервисов.

папка /system/lib/modules — драйверы системы.

папка /system/media — папка с системными звуками и анимацией включения.

файл /system/media/bootanimation.zip —  исполняемый архив с загрузочной анимацией.

папка /system/priv-app — папка с сервисами/приложениями Android.

папка /system/tts—  папка с голосовыми движками системы.

файл /system/build.prop —  конфигурационный файл с помощью которого можно изменить системные настройки.

[свернуть]

подробно о разделе proc

раздел /proc — виртуальный раздел содержащий информацию о ядре и его конфигурации.

[свернуть]

подробно о разделе mnt

раздел  /mnt — в данный раздел монтируются (добавляются) карты памяти и внутренняя память и другие виртуальные разделы (также в новых версиях можно встретить раздел storage).

[свернуть]

подробно о разделе storage

раздел  /storage — в данный раздел монтируются только реальные (существующие, то есть не виртуальные)  карты памяти и внутренняя память.

[свернуть]

подробно о разделе mnt и storage

Все файлы которые существуют у вас на Android (картинки, мелодии, видео, документы) записаны либо на внутренней памяти или карте памяти. Если в Android присутствует собственная память (внутренняя память) то она имеет монтируется под именем.

/mnt/sdcard или /storage/sdcard

Да, я прекрасно понимаю что многие считают давать название собственной памяти таким именем, но что поделаешь…

Если же внутренней памяти нет, то это имя занимает карта памяти. Если же есть и внутренняя память и карта памяти, то внутренней так и остается под именем sdcard, а карта памяти берет одно из имен:

sdcard2external_sdsdcard1extSdCard

[свернуть]

Файловая система андроид гораздо проще чем может показаться, и состоит всего из 6-ти разделов. Мы опишем назначение каждого раздела и подробно рассмотрим структуру папок в разделе data. Чтобы уверено сортировать и перемещать файлы на внутреннем накопителе, требуется знать назначение папок в файловой системе андроид. В статье мы подробно узнаем, в каких папках хранится пользовательская информация, а где данные приложения, удаление или перемещение которых нарушит работу установленных программ.

Разделы памяти Android

Так как Android – ОС на базе Linux, то файловая система андроид включает шесть разделов. По умолчанию пользователю доступен только раздел внутренней памяти – data. Доступ или изменение файлов других разделов, без ROOT прав запрещен.

  • Boot. Внутри папки хранится ядро системы, виртуальный диск и другие файлы, необходимые для запуска мобильного устройства.
  • System. Используется для хранения файлов операционной системы, графики пользовательского интерфейса и предустановленных программ.
  • Recovery. Папка с резервными копиями данных для восстановления и загрузки системы. Подробнее об андроид рекавери.
  • Data. Раздел внутренней памяти, где хранится пользовательская информация: файлы мультимедиа, игры, приложения и т.д.
  • Cache. Папка необходима системе для временного хранения часто используемых данных и компонентов приложений.
  • Misc. Хранит данные о настройках системы, установленных пользователем конфигураций, параметрах сети сотового оператора. Так же различные параметры, которые в системе отображаются в виде переключателей.

Папки в разделе data

Закачка файлов, скриншоты или установка приложений осуществляется в разные папки раздела DATA.

  • Android – папка, в которую устанавливаются приложения. Внутри находятся две папки – obb и data. Первая хранит кэш игр, вторая данные установленных приложений. Удаление или перемещение папок приведет к потере настроек и некорректной работе программ.
  • Alarms, Ringtones, Notifications. Папки предназначены для хранения звуков и музыкальных композиций, для будильников, рингтонов и уведомлений. Помещенные файлы в эти папки, отобразятся в системе при выборе мелодий. В ином случае, звуки придется выбирать при помощи плеера или файлового менеджера.
  • Bluetooth. В папке содержаться файлы, принятые по беспроводному соединению Bluetooth.
  • DCIM. В папке хранятся фотографии и видео, снятые при помощи стандартного приложения. Если в настройках программы выбрано «хранение файлов на MicroSD», тогда отснятый материал попадет в папку DCIM на внешнем накопителе.
  • Documents. Место для хранения текстовых документов.
  • Downloads. Папка для загрузок. Скачиваемые файлы через Chrome или другие Google сервисы, автоматически попадают в данный раздел. Сторонние приложения так же сохраняют файлы в папку Downloads, но чаще используют собственные папки.
  • Pictures, Music, Movies, Video. Папки для хранения файлов мультимедиа, которые используются плеерами по умолчанию. Помещенные туда музыка или видео, автоматически отобразятся при запуске соответствующего приложения. В ином случае требуется указать путь для файлов вручную. Так же в папке Pictures хранятся скриншоты.
  • Podcasts. Папка используется приложениями, в случае прослушивания подкастов.

Стоит отметить, неиспользуемые папки остаются пустыми. Сторонние приложения чаще создают собственные каталоги для хранения временных и постоянных файлов, например Viber или Titanium Backup.

Вывод

Удаление любой папки или файла в разделе внутренней памяти, влечет только потерю некоторых данных. Поэтому нарушить работу или повредить мобильное устройство такими действиями, не получится. При следующем запуске, приложение скачает и запишет недостающие файлы.

А вот удаление/перемещение файлов за приделами раздела data, гарантировано нарушит целостность системы и сделает работу устройства не стабильной. В таком случае поможет сброс до заводских установок или повторная запись прошивки. Поэтому при наличии ROOT прав, не желательно трогать файлы системного раздела.

ОСТАВЬТЕ ОТВЕТ

Please enter your name here
Please enter your comment!