Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Файловая система новых Swift (*.image)


Рекомендуемые сообщения

Написана утилита для распаковки файлов .image…

 

Это вобщем дамп флешки, кластеры по 0x800 байт + 0x40 байт технической инфы.

Тех.инфа лежит после каждого кластера.

Там предположительно известны поля (размер):

+0x14 (4) - порядковый номер кластера. Они же для уменьшения износа флешки не перезаписываются в одно и то же место;

+0x18 (4) - если там 0xFFFFFFFF то это кластер данных. Его сам по себе трогать не надо. А если там число - то это кластер с индексами;

+0x1F (1) и +0x28 (1) - похоже на версию, но не всегда. Скорее тут просто есть частая корреляция с версией;

+0x24 (2) - контрольная сумма для блока данных

+0x3F (1) - для дистрибутива - FF указывает на актуальный индексный кластер и 00 на неактуальный, для слитых дампов это поле не используется (там какая-то другая логика).

 

Сначала находим актуальные индексные кластеры, потом по ним строим массив (адрес источника = [index]*0x840).

Где индекс -1 - там вставляем пустой кластер.

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

 

Но если я читая справочник по FAT16 в HEX-редакторе смотрю - то всё вроде сходится, все оффсеты кластеров расчитаны верно, файлы я нахожу (при помощи расчётов из каталога, а не просто на глаз понимая что это файл) и извлекаю нормально.

Но какую-то мелкую проблему я упускаю…

Вобщем нужна помощь.

Нужна понять в чём проблема с этим образом.

Почему весь софт его неадекватно читает?

Образ простой - там всего два файла: db\aslite.cfg и db\FileTraceCfg.txt. Занимают менее чем по кластеру.

 

d__272E.rar

  • Like 3

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Но если я читая справочник по FAT16 в HEX-редакторе смотрю - то всё вроде сходится, все оффсеты кластеров расчитаны верно, файлы я нахожу (при помощи расчётов из каталога, а не просто на глаз понимая что это файл) и извлекаю нормально.

 

По какому смещению ты перешел к Root и как ты получил это смещение?

 

P.S. Нормально смотреть структуру таких образов позволяет вот эта штука - http://www.runtime.org/diskexplorer.htm

В ней твои файлы как раз видны. Они лежат в папке DB.

Изменено пользователем Снег
  • Like 1

Мы рождены, чтоб сказку сделать пылью...

 

VishnyaSoft.com - мои программы и мидлеты для телефонов Samsung

 

Классификация телефонов Samsung

 

Угадай название телефона

Ссылка на комментарий
Поделиться на другие сайты

По какому смещению ты перешел к Root и как ты получил это смещение?
MBR_сектор + ( Кол-во_секторов_в_FAT * кол-во_копий_FAT ) = 39 сектор. И там действительно лежит Root-папка…

 

В ней твои файлы как раз видны. Они лежат в папке DB.
Но ведь криво они видны…

В папке Root ссылка на DB указывает на кластер 2.

 

Кликаю по нему прямо там - переходит на 71 сектор.

А папка лежит ниже - в 72 секторе.

 

Откуда этот лишний сектор получается?

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Да почему лишний-то? :ak:

 

Что у тебя может быть в первом байте Directory Entry?

 

0xE5 - запись директории свободна (в этой записи нет ни файла, ни директории)

0x00 - запись директории свободна (как и 0xE5), и нет существующих записей после этой

 

Но у тебя-то FF, по сути невалидная запись, которую ты должен пропустить.

Просто весь софт почему-то считает, что в начале сектора ОБЯЗАНЫ БЫТЬ папки "." и "..".

Потому всё и ломается.

 

А тебе надо идти до "нулевых" байтов, пропуская весе записи, заполненные FF.

Изменено пользователем Снег

Мы рождены, чтоб сказку сделать пылью...

 

VishnyaSoft.com - мои программы и мидлеты для телефонов Samsung

 

Классификация телефонов Samsung

 

Угадай название телефона

Ссылка на комментарий
Поделиться на другие сайты

Но у тебя-то FF, по сути невалидная запись, которую ты должен пропустить.

Неа, тут что-то не так.

Допустим, эти FF пропускаем.

 

Смотрим следующий уровень - уже файлы.

ASLITE.CFG - в 3 кластере.

FileTraceCfg.txt - в 4 кластере.

 

Ну и при переходе якобы в 3 или 4 кластер - там в начале тоже получаем по 1 левому сектору.

Особенно на примере txt хорошо понятно, ибо в оригинале это всего 10 байтный файл с содержимым «0111101100». А в 4 кластере получается что до него ещё целый сектор нулей.

 

т.е. все сектора в кластерах съехали на 1.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Итак, я сделал алгоритм (даже два - и по индексам и без) который распаковывает все диски и на C3520 и на S5610. И все файлы побайтно совпадают с оригиналами.

 

Алгоритм по индексам:

Для дистрибутива там в последнем байте вставки (+0x3F) у каждого индексного кластера флаг актуальности.

Всё просто.

Для сливаемых из мобилы образов - метод не работает, там флаг актуальности везде.

Но поскольку такой мобилы лично у нет - пока это отложим… Главное что дистрибутив - распаковывается.

 

Алгоритм без индексов:

Во вставках у него не имеют значения никаких поля похожие на версию.

Берём все кластеры у которых во вставках в +0x18 = 0xFFFFFFFF, и в +0x14 0xFFFFFFFF

В +0x14 - порядковый номер кластера, сканируем весь .image ищем самый последний кластер с таким номером - его и берём.

 

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

 

Итак, получаем IMG-файл.

Только я по прежнему считаю что FAT там модифицированная.

По такой формуле

( ( SectorsPerFAT * NumberOfFATs ) + ReservedSectors + (RootEntries / 16) ) * BytesPerSector

находим конец корневой директории,

и там смотрим - если есть сектора (размером BytesPerSector) состоящие полностью из 0xFF - их удаляем и сдвигаем всё за ними. В разных образах - я видел 1 или 3 лишних сектора.

 

И вот после этого образ нормально откроется в WinImage - она из него все файлы корректно извлекает. А вот R-Studio упорно теряет там несколько файлов, почему - не понятно. Видимо ещё какие-то отклонения остались.

  • Like 2

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Бетаверсия конвертера Image -> IMG.

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

 

SwiftDiskImageUtil.png

SwiftDiskImageUtil_20120804.rar

  • Like 10

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

о круто, все вроде норм, файлы с S5610XELF4 открылись, вот если б еще и обратный конвертер типа с img ->image что б например удалить Facebook,Gtalk,Windows Live Messenger,Yahoo! Messenger и залить уже без них,(там графику поменять, шрифтов закинуть,скинов и тп.) или так не получиться ?

Ссылка на комментарий
Поделиться на другие сайты

о круто, все вроде норм, файлы с S5610XELF4 открылись,
Главное убедится что файлы целые внутри… Там такая проблема что куча одинаковых кластеров разных версий актуальности. Поэтому долго думал на алгоритмами поиска именно актуальных кластеров, и то кое-что я пока не понял.

 

вот если б еще и обратный конвертер типа с img ->image что б
Это врядли будет. Слишком много времени на него надо (особенно в некоммерческом варианте).

 

Вообще обратно можно залить что-нибудь другое наверно, например TFS или XZ. Я так понимаю что лоадер то довольно универсальный. Ну и форматировать партиции лоадер умеет сам, не обязательно лить готовые образы.

 

например удалить Facebook,Gtalk,Windows Live Messenger,Yahoo! Messenger и залить уже без них, или так не получиться ?
Ну всё равно ссылки в меню останутся - они заложены в прошивку (ER_FLASH_CB)…
  • Like 1

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

что вообще реально сделать на данный момент для S5610XELF4??? даже если будет прошивка незапакованная,

чтобы залить ее лоадером в телефон?

Ссылка на комментарий
Поделиться на другие сайты

что вообще реально сделать на данный момент для S5610XELF4???

Реально - почти все, что на С3322 есть (СИМ чузер точно не получится :idea:)

Только воплощать реальность в жизнь некому...

5073IA3.png
Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

В новых прошивках (предположительно в новом S3572 Duos) самсунговцы снова изменили формат .image :)

Там теперь последовательность 0x800 байт + 0x80 байт техинфы…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

 

Вообще обратно можно залить что-нибудь другое наверно, например TFS или XZ. Я так понимаю что лоадер то довольно универсальный. Ну и форматировать партиции лоадер умеет сам, не обязательно лить готовые образы.

 

 

Согласно инструкции к E1081 кнопкой "'Ok" (7) кроме меню должен активироваться web-browser!

Ну почему-то производтель при продаже телефона не загрузил это ПО в прошивку...

 

Ссылку на xz я как-то выкладывал в теме по E1080. Есть прямой data-кабель, ну я так понимаю, что по Usb работать могут только модели, которые определяются как устройства в os (диск, модем). Следовательно, для того, чтобы залить новый Midlet, понадобится переходник вида usb(штекер) - PL2303 - usb(гнездо), может ещё на выходном каскаде резисторы, плюс прямой data-кабель. Где достать переходник?

Фанат микропроцессоров (CPU FAN)

***

Если не вставляет Gauss, попробуйте Tesla! (к рекламе ламп).

Ссылка на комментарий
Поделиться на другие сайты

Согласно инструкции к E1081 кнопкой "'Ok" (7) кроме меню должен активироваться web-browser!

Ну почему-то производтель при продаже телефона не загрузил это ПО в прошивку...

Там непростая реакция на Ok/меню. Это и меню, и браузер обычный, и ява-клиенты для контента всякие… Действия задаются в конфигах CSC. Так вроде на всех русских Swift. У некоторых браузер по удержанию OK.

 

 

Ссылку на xz я как-то выкладывал в теме по E1080. Есть прямой data-кабель, ну я так понимаю, что по Usb работать могут только модели, которые определяются как устройства в os (диск, модем). Следовательно, для того, чтобы залить новый Midlet, понадобится переходник вида usb(штекер) - PL2303 - usb(гнездо), может ещё на выходном каскаде резисторы, плюс прямой data-кабель. Где достать переходник?
Я вообще ничего не понял. На E1080 явы нет, никакие мидлеты туда лить не надо.

Да и флешер там врядли умеет лить произвольные файлы, надо самому писать флешер.

Ну или лить готовые образы ФС.

Только заменить браузер не получится в любом случае и любыми кабелями, он сильно интегрирован в бинарную часть прошивки.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

На E1080 явы нет, никакие мидлеты туда лить не надо.

 

Судя по описанию - телефон точно E1080 - изображён на картинке, платформа iSwift - других похожих нет - по ссылке на xz - описание (короткий текстовый файл) - внутри - ссылка на Midlet браузера.

 

У некоторых браузер по удержанию OK

E1081TXEJA3, браузер не запускается.

 

Да и флешер там врядли умеет лить произвольные файлы, надо самому писать флешер.

Подключить через стандартный синхронизатор aka PcStudio 2, 3

 

флэшер - maple downloader - как вариант

 

Только заменить браузер не получится в любом случае и любыми кабелями, он сильно интегрирован в бинарную часть прошивки.

Скорее всего должен лежать в cla, могу ошибаться

Фанат микропроцессоров (CPU FAN)

***

Если не вставляет Gauss, попробуйте Tesla! (к рекламе ламп).

Ссылка на комментарий
Поделиться на другие сайты

Скорее всего должен лежать в cla, могу ошибаться
Ну я про это и говорю. CLA - бинарный исполняемый код. Там невозможно так просто взять какой-то компонент типа браузера и заменить. Это надо всё декомпилировать и переписывать… В IDA или BinEdit…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×
×
  • Создать...