Структура файловой системы iphone

Структура iOS:значимые файлы и папки

Для новичков

Вот решил написать такую статью для новичков. Суть этой статьи заключается в том,чтобы показать вам файловую систему оси.
Напишем здесь самые распространенные случаи. И не забываем о симлинках,они тоже могут нам чудно помочь.
Итак,начнем с более-менее понятного.
/Library/-Библиотека различных системных файлов.
/var/root/media/Cydia/AutoInstall/-создается ручками,служит для автоматической установки стороннего софта при включении аппарата.
/var/mobile/-так называемая unixdirectory. Перед джейлом мы имеем доступ только сюда. Несправедливо! Вот джейл и решает эту проблему.
/Applications(symlink)или /var/mobile/Applications/-игры,приложения и так далее
/var/stash/Applications/-после джейла-софт из сидии,она сама и стандартные приложения.
/bin/-бинарное дерево оси. Лучше не трогать-не запустится ваш аппарат дальше.
УГЛУБЛЯЕМСЯ В ДЕРЕВО ПАПОК.

/System/Library/CoreServices/SpringBoard.app/-галерея спринбоарда. меняйте интерфейс на свой вкус , экспериментируйте , научите аппарат материться при низком заряде(ПРОВЕРЕНО на личном опыте-пашет))) и так далее. Наслаждайтесь!
/System/Library/Audio/UISounds/-звуки календаря и других стандартных приложений. Заливайте свои .саf файлы или конвертируйте.
/System/Library/Extensions/AppleMultitouchSPI.kext/Plugins/-вот как устроен мультитач на уровне софта!
A еще в var/stash/ есть например папки Themes.XXXXX и Wallpaper-всякие украшательства-темы и обои соответственно.

А теперь FAQ по файловой системе. Постоянно буду обновлять:
В:Как закинуть тему в папке .themes?
O:Кидаете эту папку в /var/stash/Themes.XXXXX.
В:Как сменить картинки батареи и фон папок?
О:батарея-/System/Library/CoreServices/SpringBoard.app/. BatteryBG_1. 17-отображение батареи при зарядке. меняйте на свой вкус. А фон папок-FolderSwitcherBG там же.
В:Надоело яблоко при загрузке. Как сменить ?
О:Там же AppleLogo. Все делаете на свой страх и риск! Думаю,не надо напоминать о том,что разрешение картинки тоже менять не стоит.
В:Как убрать разноцветные пиксели при загрузке после джейла?
О:Это вмешательство в прошивку на совсем другом уровне,не для новичков.

Все вопросы-ответы были проанализированы на форуме.

В 1 посте буду давать ссылки на различную документацию и файлы для улучшения работы,которые проверены МНОЙ. Всего доброго,искренне Ваш,Royandrew.

Источник

Что внутри файловой системы iOS?

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

ОСНОВНЫЕ КАТАЛОГИ И ФАЙЛЫ

iOS — UNIX-подобная операционная система и использует очень похожую на UNIX и OS X структуру файловой системы. «Папка» здесь именуется «каталогом», а файловая система «растет» от корня /. Знаком

обозначается домашний каталог пользователя. В обычном режиме это каталог /var/mobile/, в режиме корневого пользователя — /var/root. Часть каталогов стандартны для UNIX-систем. Это /boot — здесь в UNIX располагается ядро системы и RAM- диск (в iOS ядро лежит в каталоге /System/Library/Caches/com.apple.kernelcaches/kernelcache), /etc — настройки низкоуровневых сервисов, /tmp — временные файлы, /bin — команды для запуска с помощью терминала,

/mnt — точка монтирования внешних файловых систем (сюда подключаются флешки и прочее).

Наиболее же интересны для нас каталоги /System, /Library и /var. Именно здесь хранятся сама операционная система (первый каталог), системные данные (второй), настройки приложений и их данные (третий).

Стандартные (предустановленные) приложения лежат в каталоге /Applications. Здесь же располагаются исполняемые файлы Cydia, Zeusmos и некоторых других программ .app, для установки которых необходим джейлбрейк. Файлов здесь намного больше, чем иконок на рабочем столе iOS, так как тут расположены и некоторые внутренние службы, выделенные в качестве отдельных приложений (встроенная в iOS служба Facebook, Print Center и некоторые другие). На невзломанном устройстве этот каталог обновляется только при обновлении всей прошивки, однако некоторые приложения из Cydia устанавливаются именно в него, как и сам магазин Cydia.

Скачанные из App Store приложения хранятся в /var/mobile/Containers/Bundle/Application, каждое в своем собственном подкаталоге. Имена этих подкаталогов закодированы, и для того, чтобы понять, что это за приложение, необходимо зайти в каталог и перейти в следующий. Приложения, установленные не из App Store, также обычно находятся здесь. За каждым приложением закрепляется подкаталог в каталоге /var/mobile/Containers/Data/Application, внутри которого приложение хранит свои настройки и данные, созданные во время работы. Подробнее его структуру мы рассмотрим позже.

Системные обновления загружаются в каталог /var/mobile/MobileSoftwareUpdate. Их можно удалить через стандартное приложение

«Настройки». Все обои хранятся в /Library/Wallpaper, а системные звуки — в /System/Library/Audio/UISounds, музыка и видео с компьютера — в /var/mobile/Media/iTunes_Control/Music.

Отдельно стоит упомянуть каталог /var/mobile/Library/caches/com.saurik.Cydia. Именно здесь хранятся deb-пакеты твиков до перезапуска Springboard. Если появится необходимость скачать твик на компьютер, его можно взять отсюда. Также при установке твики часто создают дополнительные каталоги, где хранят собственные данные. Обычно о таких каталогах сказано в документации твиков.

ПРОГРАММЫ ДЛЯ РАБОТЫ С ФС УСТРОЙСТВА НАПРЯМУЮ

Существует несколько программ для работы с ФС устройства после джейлбрейка.

  • iTools — программа для Mac и Windows, позволяет добавлять и удалять файлы в ФС. На этом ее функции заканчиваются. Преимуществом для многих может стать панель закладок слева от окна просмотра ФС, где можно найти программы, твики, рингтоны или обои устройства.
  • iFunBox — имеет значительно больше возможностей. С ее помощью можно создавать каталоги, удалять, переименовывать файлы или экспортировать их на ПК. Вызывает удивление лишь отсутствие поиска по ФС.
  • Filza File Manager — позволяет прямо на устройстве просматривать метаданные файлов, переименовывать, перемещать, удалять их, открывать многие типы файлов. Есть встроенный поиск по папкам и одновременная работа с несколькими файлами.
  • iFile — во многом превосходит Filza File Некоторые возможности открываются только после оплаты полной версии программы, однако интерфейс в утилите более удобный и понятный.
Читайте также:  Перенос данных самсунг айфон

Разумеется, работать с файловой системой можно и при помощи терминала. Здесь есть полная поддержка UNIX-команд, так что управление ФС будет очень быстрым и удобным.

КАТАЛОГИ ПРИЛОЖЕНИЙ И ПЕСОЧНИЦЫ

Кроме того что iOS размещает все установленные пользователем приложения и их данные в отдельных каталогах, она налагает на работу самих приложений серьезные ограничения (запирая их в так называемую песочницу). Приложения не могут получить прямой доступ к оборудованию, им разрешено использовать только одну треть системного API. Плюс ко всему они не могут получить доступ к системным файлам и каталогам, а также файлам других приложений. Фактически все, что видит приложение, — это свой собственный каталог и несколько каталогов в /Library.

Что касается собственного каталога приложения, то его структура достаточно размыта, но обычно он включает четыре компонента: файл .com.apple.mobile_container_manager.metadata.plist, содержащий данные о приложении, и каталоги tmp, Documents и Library. В последнем часто находятся также подкаталоги Caches и Preferences. Иногда встречаются и другие, все зависит от потребностей программы.

Все документы приложение хранит в Documents. Этот каталог также используется для добавления файлов в приложение с помощью iTunes (File Sharing). В tmp могут храниться файлы, скачанные из интернета. Обычно каталог пустует, так как программа перемещает все документы оттуда в Documents, а затем удаляет их. Library также содержит временные файлы и пользовательские параметры приложения. В подкаталоге Preferences могут быть и настройки подключенных к приложению нативных модулей (например, mobilesafari).

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

В iOS 8 появился новый механизм, названный Document Picker. Он позволяет одним приложениям «видеть» специальные каталоги, созданные другими приложениями, и изменять их «на месте», без переноса в песочницу программы. Для этого используются так называемые публичные песочницы, которые, по сути, представляют собой каталоги, где каждая программа имеет права на запись и на чтение. Фактически это аналог кнопки «Импортировать» на Mac, только доступ дается не ко всей файловой системе, а к отдельным каталогам программ. Технологию поддерживают iCloud Drive, Dropbox и некоторые другие сервисы. Очевидно, их количество будет увеличиваться. Для успешного применения технологию должны поддерживать и программы, откуда будут переноситься файлы, и программа, куда они будут переноситься.

Реализация функций Document Picker Получение доступа к файлам iCloud Drive
в программе

КАК ПРОИСХОДИТ УСТАНОВКА ПРИЛОЖЕНИЙ

Стоит знать, какие каталоги создаются при установке пакетов приложений. Рассмотрим этот вопрос для твиков и программ из App Store. Твики распространяются в deb-пакетах, которые представляют собой архив с файлами: динамические библиотеки (.dylib), настройки (.plist), каталог с самим приложением (.app), каталог с документами и другие. При установке такой файл просто разворачивается в систему. Причем не в пользовательский каталог, а в системные (либо и те и другие), ограничения песочницы на него не действуют.

Рассмотрим файловую структуру установленного твика на примере AudioRecorder. В каталоге /Library/MobileSubstrate/DynamicLibraries хранятся динамические библиотеки твика и его настройки. В данном случае это AudioRecorder.dylib, AudioRecorder.plist, AudioRecorderUI.plist, AudioRecorderUI.dylib. Библиотек может быть больше или меньше, все зависит от сложности приложения.

Языковая локализация твика и некоторые настройки размещаются в /Library/PreferenceBundles. Здесь хранится также несколько изображений, используемых в программе. Исполняемый файл и основная часть графики находятся в /var/db/stash/_.YWqibn/Applications. В /var/mobile/Library/Mobile Documents создается также пустой каталог net

AudioRecorder. Пользовательские же данные хранятся по пути

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

С программами из App Store все значительно проще. В /var/mobile/Containers/Bundle/Application/ хранится графика программы, локализации, исполняемый файл. Каталог /var/mobile/Containers/Data/Application/ — «песочница» программы (документы, пользовательские настройки). На этом структура установленного файла .ipa заканчивается.

ИЗМЕНЯЕМ СИСТЕМНЫЕ ФАЙЛЫ

Теоретически изменением файлов в ФС напрямую можно сделать очень много. Достаточно хотя бы оценить количество файлов с расширением plist — в основной массе это настройки программ и системных сервисов. Потому перечислить все возможные операции с файлами практически нереально, ограничимся лишь некоторыми примерами их использования.

Например, если ты захочешь сменить какой-либо текст на экране блокировки или на рабочем столе, это можно сделать, перейдя в каталог /System/Library/CoreServices/Springboard.app и перейдя в необходимый локализационный пакет, название которого совпадает с установленным языком интерфейса на устройстве. Файлы здесь хранятся в формате String, и открыть их в «читаемом» виде можно, например, при помощи Filza File Manager, речь о котором шла выше. Для смены надписи Slide to Unlock (или «Разблокируйте» в русском варианте) необходимо открыть Springboard.string и сменить параметр AWAY_LOCK_LABEL, введя необходимый текст. Не забудь сохранить изменения файла и перезагрузить устройство.

Читайте также:  Микросхема модема для iphone

Изменение параметра Экран блокировки с кастомным текстом

Можно изменять также параметры нативных приложений, которые хранятся внутри их пакетов .app в каталоге /Applications. Например, в Preferences. app можно изменять номер сборки или версии системы, а также названия разделов и функций настроек. Если необходимо самостоятельно модифицировать, к примеру, темы для WinterBoard, знание о расположении директорий также пригодится. Так, все темы лежат в папке /Library/Themes, где их можно видоизменять. Тут есть модифицированные иконки стандартных утилит, можно добавить собственную кастомизированную иконку или поменять уже существующую.

ВЫВОДЫ

Это, конечно же, не все, что можно сказать о файловой структуре iOS, однако в рамках одной статьи мы не можем рассмотреть все ее аспекты и ограничились лишь базовыми понятиями. Имея джейлбрейк, ты можешь пойти дальше и изучить систему самостоятельно. Отличным источником информации может также стать the iPhone wiki.

Источник

Файловая система Apple — Apple File System

APFS

Разработчики) Apple Inc.
Полное имя Файловая система Apple
Введено 27 марта 2017 г. (iOS), 25 сентября 2017 г. (macOS), с iOS 10.3 , macOS 10.13
Идентификатор раздела 7C3457EF-0000-11AA-AA11-00306543ECAC ( GPT )
Структуры
Содержимое каталога B-дерево
Пределы
Максимум. размер файла 8 EiB (9,223,372,036,854,775,808 байт)
Максимум. количество файлов 9 223 372 036 854 775 808
Допустимые символы в именах файлов Unicode 9.0 в кодировке UTF-8
Функции
Даты записаны доступ, изменены атрибуты, изменено содержимое, создано
Диапазон дат 1 января 1970 г. — 21 июля 2554 г.
Разрешение даты 1 нс
Разрешения файловой системы Разрешения Unix, списки ACL NFSv4
Прозрачное сжатие Частичный (decmpfs)
Прозрачное шифрование да
Копирование при записи да
Другой
Поддерживаемые операционные системы macOS , iPadOS , iOS , tvOS , watchOS

Файловая система Apple ( APFS ) — это проприетарная файловая система, разработанная и развернутая Apple Inc. для macOS Sierra (10.12.4) и новее, iOS 10.3 и новее, tvOS 10.2 и новее, watchOS 3.2 и новее, а также всех версий iPadOS . Она призвана устранить основные проблемы из HFS + (также называется Mac OS Extended), предшественник НПФ на этих операционных системах. APFS оптимизирован для хранения на твердотельных накопителях и , помимо других возможностей, поддерживает шифрование , моментальные снимки и повышенную целостность данных.

СОДЕРЖАНИЕ

История

Apple , файловая система была объявлена в компании Apple «s конференции разработчиков (WWDC) в июне 2016 года в качестве замены для HFS + , которая была в эксплуатации с 1998 года НПФ была выпущена для 64-разрядных IOS устройств 27 марта 2017 года, с выходом iOS 10.3, а для устройств macOS 25 сентября 2017 г. с выпуском macOS 10.13 .

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

Дизайн

Файловая система может использоваться на устройствах с относительно небольшим или большим объемом памяти. Он использует 64-битные номера inode и обеспечивает более безопасное хранение. Код APFS, как и код HFS +, использует команду TRIM для лучшего управления пространством и производительности. Это может увеличить скорость чтения-записи на iOS и macOS, а также пространство на устройствах iOS из-за того, как APFS вычисляет доступные данные.

Схема перегородки

APFS использует схему разделов GPT . В схеме GPT находится один или несколько контейнеров APFS (GUID типа раздела — 7C3457EF-0000-11AA-AA11-00306543ECAC ). В каждом контейнере есть один или несколько томов APFS, каждый из которых совместно использует выделенное пространство контейнера, и каждый том может иметь роли томов APFS. macOS Catalina (macOS 10.15) представила группу томов APFS, которая представляет собой группы томов, которые Finder отображает как один том. Фирменные ссылки APFS лежат между жесткими ссылками и программными ссылками и между томами.

В macOS Catalina роль системного тома (обычно называемая «Macintosh HD») стала доступной только для чтения, а в macOS Big Sur (macOS 11) она стала подписанным системным томом (SSV), и монтируются только моментальные снимки тома. Данная Роль объема (обычно называется «Macintosh HD — Data») используются в качестве наложения или тени системного тома, и обе системы и данных тома является частью одной и теми же групп томов и показано , как один в Finder.

Клоны

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

Снимки

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

Шифрование

Файловая система Apple изначально поддерживает полное шифрование диска и шифрование файлов со следующими параметрами:

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

Увеличено максимальное количество файлов

APFS поддерживает 64-битные номера inode , поддерживая более 9 квинтиллионов файлов ( 263 ) на одном томе.

Целостность данных

Файловая система Apple использует контрольные суммы для обеспечения целостности метаданных.

Защита от сбоев

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

Читайте также:  Оперативная память айфон se2020

Сжатие

APFS поддерживает прозрачное сжатие отдельных файлов с помощью Deflate (Zlib), LZVN (libFastCompression) и LZFSE . Все три являются алгоритмами типа Лемпеля-Зива . Эта функция унаследована от HFS + и реализована в той же системе AppleFSCompression / decmpfs с использованием вилок ресурсов или расширенных атрибутов. Как и в случае с HFS +, прозрачность нарушена для инструментов, которые не используют подпрограммы, завернутые в decmpfs.

Совместное использование пространства

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

Ограничения

Хотя APFS включает в себя множество улучшений по сравнению со своим предшественником HFS +, был отмечен ряд ограничений.

Ограниченная проверка целостности пользовательских данных

APFS не предоставляет контрольные суммы для пользовательских данных. Он также не использует преимущества энергонезависимой оперативной памяти с байтовой адресацией .

Производительность на жестких дисках

Перечисление файлов и любых метаданных inode в целом выполняется намного медленнее в APFS, когда он расположен на жестком диске . Это связано с тем, что вместо хранения метаданных в фиксированном месте, как это делает HFS +, APFS хранит их вместе с фактическими данными файла. Эта фрагментация метаданных означает, что при перечислении файлов выполняется больше поисков , приемлемых для твердотельных накопителей, но не для жестких дисков.

Совместимость с Time Machine до macOS 11

В отличие от HFS +, APFS не поддерживает жесткие ссылки на каталоги. Поскольку версия программного обеспечения для резервного копирования Time Machine, включенная в Mac OS X 10.5 (Leopard) по macOS 10.15 (Catalina), полагалась на жесткие ссылки на каталоги, APFS изначально не поддерживалась для его томов резервного копирования. Это ограничение было преодолено, начиная с macOS 11 Big Sur , где APFS теперь является файловой системой по умолчанию для новых резервных копий Time Machine (существующие резервные диски в формате HFS + также по-прежнему поддерживаются). Реализация Time Machine в macOS Big Sur в сочетании с дисками в формате APFS обеспечивает «более быстрое, компактное и более надежное резервное копирование», чем это было возможно с дисками для резервного копирования в формате HFS +.

Проблемы с безопасностью

  • В марте 2018 года в драйвере APFS в High Sierra была обнаружена ошибка, из-за которой пароль шифрования диска регистрировался в виде открытого текста.
  • В январе 2021 года в драйвере APFS в iOS Служба поддержки

macOS

Ограниченная экспериментальная поддержка APFS была впервые представлена ​​в macOS Sierra 10.12.4. Начиная с macOS 10.13 High Sierra , все устройства с флеш-памятью автоматически конвертируются в APFS. Начиная с macOS 10.14 Mojave , диски Fusion и жесткие диски также обновляются при установке. Основной пользовательский интерфейс для обновления не предоставляет возможности отказаться от этого преобразования, а устройства, отформатированные с использованием версии APFS High Sierra, не будут доступны для чтения в предыдущих версиях macOS. Пользователи могут отключить преобразование APFS, используя startosinstall утилиту установщика в командной строке и передав —converttoapfs NO .

Тома FileVault не конвертируются в APFS в macOS Big Sur 11.2.1. Вместо этого macOS форматирует внешние диски FileVault как логические тома CoreStorage, отформатированные с помощью Mac OS Extended (журналируемые). Диски FileVault могут быть дополнительно зашифрованы.

Экспериментальная версия APFS с некоторыми ограничениями доступна в macOS Sierra через diskutil утилиту командной строки . Среди этих ограничений он не выполняет нормализацию Unicode, в то время как HFS + выполняет, что приводит к проблемам с языками, отличными от английского. Диски, отформатированные с помощью версии APFS от Sierra, также могут быть несовместимы с будущими версиями macOS или окончательной версией APFS, а версия APFS от Sierra не может использоваться с Time Machine , томами FileVault или дисками Fusion.

iOS, tvOS и watchOS

IOS 10,3 , tvOS 10,2 и watchOS 3,2 конвертировать существующий HFSX файловой системы на НПФ совместимых устройств.

Сторонние утилиты

Несмотря на повсеместное распространение томов APFS на современных компьютерах Mac и введение этого формата в 2016 году, сторонние утилиты восстановления по-прежнему имеют заметные ограничения в поддержке томов APFS из-за задержки выпуска полной документации Apple. По словам Alsoft, производителя DiskWarrior, выпуск Apple в 2018 году частичной документации формата APFS задержал создание версии DiskWarrior, которая может безопасно восстанавливать диски APFS. Ожидается, что конкурирующие продукты, в том числе TechTool от MicroMat и Drive Genius от Prosoft, также увеличат поддержку APFS.

Paragon Software Group опубликовала комплект для разработки программного обеспечения под лицензией BSD из 4 пунктов, который поддерживает доступ только для чтения к дискам APFS. Независимая реализация Joachim Metz с открытым исходным кодом только для чтения , libfsapfs, выпущена под лицензией GNU Lesser General Public License v3. Он был упакован в репозитории программного обеспечения Debian и Ubuntu . Оба являются инструментами командной строки, которые не предоставляют обычный интерфейс драйвера файловой системы. Существует драйвер файловой системы в пространстве пользователя (FUSE) для Linux под названием apfs-fuse с доступом только для чтения. Проект «APFS для Linux» работает над интеграцией поддержки APFS в ядро ​​Linux.

Источник

Оцените статью