February 1, 2024

Перенос данных iOS приложений

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

Содержание

iMazing

Восстановление кэша

Извлечение кэша

Filza File Manager

Распаковка кэша

Перенос основных папок кэша

Перенос папок кэша групп

Apps Manager

Восстановление кэша

Извлечение кэша

ESign

Восстановление кэша

Извлечение кэша

Crane

Восстановление кэша

Извлечение кэша

Устройство кэш-содержащих файлов

imazingapp

adbk

zip

cranect


iMazing

Плюсы: самый универсальный способ — подходит для всех версий iOS, не нужно устанавливать приложений на телефон.

Минусы: требуется компьютер и дополнительное приложение на нём, переносятся не все данные (наименьшее количество из всех способов), перед переносом нужно выключать "найти iPhone", при извлечении данных надо делать полную резервную копию устройства на компьютер.


Установите приложение "iMazing" на компьютер под управлением macOS или Windows.

  • Официальную последнюю версию можно скачать отсюда (не рекомендуется). Рекомендуется же установить версию 3.0.6.1- для Windows отсюда и для MacOS отсюда. Более новые версии требуют создания копии устройства на компьютер перед переносом кэша.
  • Взломанную версию 3.0.6 для MacOS можно скачать отсюда.
  • Взломанную старую версию 2.12.3 для Windows можно скачать отсюда. При работе с устройством на новой iOS вылезает предупреждение, его можно игнорировать.
  • Новые версии можно частично взломать на Windows: функции с ограниченным количеством применений можно будет использовать сколько угодно, но полностью недоступные функции не откроются. Для этого установите iMazing, скачайте этот файл .bat и запустите его. Всё произойдёт автоматически.

Так или иначе, для переноса кэша платный функционал не понадобится!

Подключите ваше устройство кабелем к компьютеру и запустите iMazing.

Нажмите на "Управление приложениями".

Восстановление кэша

Нажмите на стрелку внизу.

Кликните на "восстановить данные приложения"

Нажмите «выбрать», после чего выберите файл .imazingapp и нажмите "готово"

Отключите функцию "Найти айфон", если она включена (после окончания процедуры можно включить обратно)

Какое-то время будет идти процесс импорта кэша, после чего появится экран приветствия. Дождитесь, когда iMazing напишет "готово".

Когда айфон попросит ввести пароль от apple id, можно нажать "Пропустить"

Если у вас iOS 15.0.0+, при появлении окна "Ваши настройки для нового iPhone", нажмите "Настроить параметры"

Айфон предложит перенести данные из разных источников. Нажимайте "Не переносить приложения и данные", ваши данные не сбросится.

Начните проходить этап первоначальной настройки. После повтороного появляения окна "Ваши настройки для нового iPhone", снова выберите "Настроить параметры"

Закончите первоначальную настройку, и после этого всё будет как прежде, но кэш будет импортирован в нужное приложение.

Если вы что-то сделали не так, и устройство начало восстанавливаться с копии, тут же перезагрузите его и попробуйте ещё раз.

Потенциальные побочные эффекты для старых версии iMazing и iOS 13.0.0+:

  • Регион устройства может поменяться на "США", а следовательно формат времени может смениться на 12-часовой и дата на заблокированном экране и в центре уведомлений может отображаться на английском языке (поменяйте в настройках регион на ваш).
  • Дата на экране уведомлений и блокировки будет на английском (поменяйте в настройках язык на любой и снова на ваш).
  • Сторонние клавиатуры идут отключиться (включите обратно в настройках)
  • После обновления iOS некоторые приложения могут откатываться до более ранних версий, а удалённые возвращаться (создайте копию, сотрите данные, а затем восстановите телефон)

Один раз был случай, когда сбросились карты apple pay и некоторые приложения вышли из аккаунтов

Один раз был случай, когда телефон перестал выходить из меню настройки и завис на вводе пароля от apple id. Помогла только перепрошивка и восстановление с копии.

Извлечение кэша

Найдите нужное приложение поиском или вручную и нажмите на него (можно выбрать несколько, зажав "Ctrl").

Нажмите на стрелку в правом нижнем углу, а затем на "Создать копию данных".

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

Нажмите "ОК" в правом нижнем углу.

Дождитесь окончания извлечения. На выходе получится файл .imazingapp.


Filza File Manager

Плюсы: на некоторых iOS позволяет переносить кэш без Troll Store и подписи корневым сертификатом, переносит больше, чем iMazing, позволяет перенести кэш из файла любого формата.

Минусы: подходит только для устройств на iOS 11.0.0–13.4.1, 14.0.0–15.7.1, 16.0.0–16.6.1, 17.0.0 или для устройств с джейлбрейком, требует подписи и установки ipa, переносит не все данные, способ может оказаться сложным для рядовых пользователей в виду большого количества особых случаев и нюансов.


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

Если у вас нет джейлбрейка, установите файловый менеджер "Filza" любым доступным для установки ipa способом, подробней здесь.

ipa файлы филзы (могут работать нестабильно и часто вылетать / вызывать перезагрузку, на некоторые версии iOS можно попробовать разные):

11.0.0 — 11.3.1

12.0.0 — 12.1.2

12.1.3 — 12.2.0

11.0.0 — 13.4.1

14.0.0 — 14.3.0

15.0.0 — 15.1.1

15.0.0 — 15.7.1, 16.0.0 — 16.1.2

15.0.0 — 15.7.1, 16.0.0 — 16.1.2

14.0.0~b2 — 16.7.0~RC, 17.0.0 (стабильная, установка через trollstore и т.п.)

Если у вас есть rootfull джейлбрейк, добавьте в ваш менеджер пакетов репозиторий ReJail и установите взломанную Filza или добавьте репозиторий BigBoss и установите официальную Filza.

Если у вас есть rootless джейлбрейк, установите взломанную Filza, скачав этот файл .deb, или добавьте в ваш менеджер пакетов репозиторий BigBoss и установите официальную Filza.


Распаковка кэша

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

Скачайте файл с кэшем и отправьте его в филзу через меню "поделиться".

Нажмите на него, чтобы распаковать

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

Перенос основных папок кэша

В этом разделе речь идёт о папках Library, Documents, SystemData, StoreKit, CloudKit и tmp.

В зависимости от формата вашего кэш-содержащего файла эти папки могут быть в различном составе и в разных местах кэша. В imazingapp будут только "Library" и "Documents", которые будут находится в папке "Container". В adbk их будет больше, и они будут находится в папке с bundle id приложения в качестве названия. Найдите эти папки и переместите их в Филзу, если они ещё не там.

В Филзе нажмите "Править".

Выделите папки "Documents" и "Library", нажмите "Копировать".

Задержите палец на названии папки.

В появившемся окне вставьте следующий путь:

/private/var/mobile/Containers/Data/Application

Нажмите "ОК".

На этом шаге возможно два варианта. 1. появившиеся папки подписаны по названиям приложений, в таком случае просто найдите папку нужного приложения и перейдите в неё; 2. появившиеся папки подписаны по bundle id приложений. Во втором случае, чтобы узнать bundle id нужного приложения, скопируйте ссылку на приложение из App Store, а затем запустите эту команду.

Нажмите на значок "📋", затем "Вставить".

Выберите "Применить ко всем" и нажмите "Заменить".

Необходимо проверить собственность папок. Нажмите значок "ℹ" на перенесённой папке.

Посмотрите на пункт "Владелец". Если его значение отлично от "mobile", перейдите в этот раздел.

Найдите и выберите "mobile"

Промотайте в самый низ меню и включите "Применить к подпунктам"

Повторите шаги с изменением владельца для каждой перенесённой папки.

Перенос папок кэша групп

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

В кэш-содержащем файле положение их папок также зависит от формата. В imazingapp они находится в папке "AppGroups" внутри папки "Container". В adbk они лежат в папке "___groups___". Названия этих папок начинаются с "group." Найдите эти папки и переместите их в Филзу, если они ещё не там.

Повторите следующие шаги для каждой папки групп.

Скопируйте папку.

Задержите палец на названии папки.

В появившемся окне вставьте следующий путь:

/private/var/mobile/Containers/Shared/AppGroup

Нажмите "ОК"

Среди появившихся папок найдите с подписью, идентичной названию папки, из которой вы копировали, и перейдите в неё.

Вставьте скопированное с заменой.

Повторите со вставленными папками шаги с изменением владельца на "mobile"

Приложение можно запускать!


Apps Manager

Плюс: обеспечивает перенос максимального количества данных из всех способов, не требует компьютера, простой и быстрый.

Минусы: Подходит только для iOS 14.0.0 — 15.7.1, 16.0.0 — 16.6.1, 17.0.0 и устройств с джейлбрейком, требует установки ipa, подписанного корневым сертификатом.


Если у вас есть rootfull джейлбрейк, добавьте в ваш менеджер пакетов репозиторий ReJail и установите взломанный Apps Manager.

Если у вас есть rootless джейлбрейк, добавьте в ваш менеджер пакетов репозиторий BigBoss и установите Apps Manager. Для rootless взломанного нет.

Если джейлбрейка нет, установите Troll Store или другой инструмент для подписи корневым сертификатом, скачайте и установите через него Apps Manager.

Восстановление кэша

Отправьте файл .adbk в Apps Manager через меню "поделиться".

Нажмите "Restore AppData"

После восстановления, импортированный файл можно удалить, смахнув вправо.


Извлечение кэша

Найдите в Apps Manager нужное приложение и нажмите на него.

Нажмите "Backup" и затем "OK"

Перейдите во вкладку "Backups" и нажмите на нужное приложение.

Нажмите на созданную копию и затем "Open in ..."

Получившийся файл .adbk можно отправить куда угодно и перенести кэш приложения на другое или это же устройство после переустановки приложения.

ESign

Плюсы: довольно простой и быстрый, не требует компьютера, на некоторых iOS позволяет переносить кэш без Troll Store и подписи корневым сертификатом, переносит больше, чем iMazing.

Минусы: подходит только для устройств на iOS 15.0.0–15.7.1, 16.0.0–16.6.1, требует подписи и установки ipa, переносит не все данные.


Установите ESign с этого сайта. Подробнее о подписи и установке ipa здесь.

За скачивание какой версии отвечает каждая кнопка сайта


Откройте ESign

Перейдите во вкладку "Приложения" в раздел "Установлено"

Нажмите на нужное приложение.

Нажмите "Backup data"


Восстановление кэша

Нажмите "Импорт"

Выберите кэш-содержащий файл. Это может быть как .zip, так и .imazingapp (не перенесётся кэш групп) или .adbk.

Нажмите на импортированный файл, а затем нажмите "Restore this backup"

Готово! После восстановления импортированный файл можно удалить, смахнув влево.


Извлечение кэша

Нажмите "Backup"

Вы можете наблюдать получившийся файл.

Его можно найти в Филзе по пути "/private/var/mobile/Containers/Data/Application/*/Documents/YYYAppFolder/Backup/⟨bundle id приложения⟩" (подробнее смотрите в разделе извлечение кэша через филзу) или в приложении "Файлы" по пути "На моём устройстве/Esign/YYYAppFolder/Backup/⟨bundle id приложения⟩", чтобы затем отправить куда угодно.



Crane

Плюсы: переносит наибольшее количество данных, не требует компьютера, простой и быстрый, позволяет редактировать данные связки ключей внутри копии

Минусы: подходит только для устройств с джейлбрейком


Если у вас есть rootfull джейлбрейк, установите Crane, скачав этот файл .deb или добавьте в ваш менеджер пакетов репозиторий Havoc и купите оригинальный Crane.

Если у вас есть rootless джейлбрейк, установите Crane, скачав этот файл .deb или добавьте в ваш менеджер пакетов репозиторий Havoc и купите оригинальный

Откройте в настройки, найдите и откройте раздел "Crane", перейдите в в раздел "Приложения"

Нажмите на нужное приложение.

Перейдите в контейнер "По умолчанию", если вы не создавали других.

Восстановление кэша


Промотайте вниз и нажмите "Восстановить данные из резервной копии"

Выберите файл .cranect

Нажмите "Продолжить"


Извлечение кэша


Нажмите "Создать резервную копию"

Введите название файла, включите Связку ключей. Шифрование включать в большинстве случаев нет смысла. Нажмите "Создать"

Отправьте получившийся файл куда угодно.


Устройство кэш-содержащих файлов


Сегодня нами было упомянуто 4 типа кэш-содержащих файлов от разных приложений: .imazingapp — iMazing, .adbk — Apps Manager, .zip — ESign, .cranect — Crane. Все, кроме формата ESign представляют zip-архивы с изменённым расширением (у ESign даже расширение не изменено) Если разархивировать каждый из этих файлов, можно увидеть, что структура сохранения кэша у всех разная, однако во всех случаях можно проследить общую закономерность.

  • Всегда имеется основная папка данных приложения, которые находятся по пути /private/var/mobile/Containers/Data/Application. Она называется по разному от "Container" до bundle id приложения.
  • Часто имеются папки с данными так называемых "групп" — дополнительных элементов приложений. В системе они находятся по пути "/private/var/mobile/Containers/Shared/AppGroup". Обычно их названия начинаются на "group.". Группы есть далеко не у всех приложений, но там часто содержатся важные данные.
  • Реже имеются папки с данными других дополнительных элементов приложений — плагинов. В системе они находятся по пути "/private/var/mobile/Containers/Data/PluginKitPlugin". В них почти никогда не содержатся важные данные, поэтому при переносе ими можно принебречь.
  • Иногда имеется файл, содержащий данные, которые приложение хранит в связке ключей. Это должен быть .plist, бывает зашифрован.

Рассмотрим каждый формат по отдельности.

imazingapp

Распаковав файл формата iMazing, видим 4 объекта: две папки и 2 файла.

Файл "iTunesMetadata.plist" содержит информацию о приложении, кэш которого. Единственная значимая информация — bundle id приложения, по которому iMazing производит определение, какому приложению восстановить кэш. Если извлечь кэш приложения, установленного по ссылке, в данном файле не будет bundle id, и такой кэш нельзя будет восстановить через iMazing, поэтому нужно узнать bundle id приложения, отправив ссылку из App Store на него в эту команду, а затем вручную добавить в файл строку с ключом "softwareVersionBundleId" и самим bundle id. Можно просто взять iTunesMetadata.plist из нормального файла .imazingapp другого, и заменить в нём bundle id, а затем поместить файл в редактируемый .imazingapp.

Также в этом файле могут находится данные об apple id, с которого было скачено приложение. Если вы собираетесь распространять кэш, эти данные лучше удалить.

В папке "Container" можно наблюдать от двух до четырёх папок. Первая на скоиншоте — папка групп. Вторая — папка плагинов. Они могут быть или не быть в зависимости от того, есть ли они у приложения. Третья и четвёртая папка — две папки из основного контейнера приложения, остальные iMazing не переносит.

В папке с кэшем групп находятся папки с кэшем разных групп, названия которых начинаются на ".group".

Значение файла ".lock" и папки "Payload" не установлено, однако они необходимы, и и ошибки в них приводят к тому, что кэш не восстанавливается через iMazing, поэтому файл .imazingapp невозможно создать вручную с нуля.

adbk

Распаковав файл формата Apps Manager, видим 7 файлов.

Пятая на скриншоте папка содержит budle id приложения в названии и кэш основного контейнера приложения внутри. В отличии от iMazing, Apps Manager переносит все папки.

Шестой на скриншоте файл имеет название в виде bundle id приложения и является дупликатом одноимённого файла по пути ⟨bundle id приложения⟩/Library/Preferences, но в приложение переносится именно он, поэтому если хотите отредактировать этот файл, редактируйте тот, который в корне adbk.

В папке "___groups___" содержится кэш групп приложения. Названия папок начинаются на ".group".

В файле "__private_info" содержится информация из раздела связки ключей приложения. Он зашифрован, поэтому прочитать и отредактировать его нельзя. Без него восстановление кэша не удастся, поэтому файл .adbk не создать вручную.

В файле "Binfo.plist" содержится bundle id приложения, название и дата создания копии.


zip

Zip — обычное расширение архива, однако ESign воспринимает его как кэш-содержащий файл.

Распаковав файл, созданный ESign, видим 8 объектов.

Файл ".com.apple.mobile_container_manager.metadata.plist" незначимый.

В папке "___group___" содержится кэш групп приложения. Названия папок начинаются на ".group".

Остальные папки — из основного контейнера приложения. Их больше, чем в .imazingapp — ESign переносит их все.


cranect


Распаковав файл Crane, видим разное количество объектов.

Папки, начинающиеся на .group — папки групп приложения.

Папка с названием в виде bundle id приложения — папка с данными основного контейнера приложения. Crane переносит все данные основного контейнера.

Остальные папки — папки с кэшем плагинов приложения. Crane переносит данные плагинов, как и iMazing.

Файл "Keychain.plist" содержит данные приложения, находящие в связке ключей. Это единственный формат кэш-содержащего файла, в котором данные связки ключей можно изменить.

Файл "info.plist" содержит bundle id приложения, некоторе данные твика и пути папок кэша на устройстве, с которого была сделана копия.

Файл "Metadata.plist" содержит информацию о собственности, правах доступа и датах создания и изменения каждой папки.


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



Статья сделана для телеграм-канала iOS Apps Cache