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

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

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

*.QTC - работа с файлами языковых ресурсов Swift


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

В новых (хотя уже совсем не новых - например B5722, C3510 и т.д.) Swift языковые ресурсы лежат не в CLA как ранее, а в файловой системе:

\a\customer\text\main\03_16_russian.qtc

\a\customer\text\soft\03_16_russian.qtc

Причём, изначально они в CSC-файле (который в принципе просто TFS переименованный, и после переименования CSC и CCF в TFS и CFG - оно легко распаковывается в TFS_Res by Pako777)…

 

Ну а сами QTC-файлы - являются компрессированными форматами. После их декомпрессии - получается как и прежде два массива - массив индексов, и массив текстовых строк в UTF8. Мобила при загрузке распаковывает данные и указывает соответственные адреса gp_TxtdataTbl gp_TxtOffsetTbl gp_SfkdataTbl gp_SfkOffsetTbl, и далее для мобилы работа с ними ничем не отличается от старой логики.

 

Но вот для создания патчей есть проблемы:

1. если раньше мы легко редактировали ненужные строки (например про IrDA или WiFi) - то теперь на уровне CLA этого не сделать, надо перепаковывать QTC.

2. раньше мы могли по ID вызываемого текста сразу в BinEdit посмотреть что там за текст, и понять что это за функция. Теперь в BinEdit нет возможности видеть тексты, и вообще ID текстов не узнать (только либо сливать дампы с работающей мобилы, либо брутфорсить ID тоже на работающей мобиле).

 

В итоге, пришлось изучать формат…

Q - по названию разработчика - Quram, TC - Text Compressed

В QTC-файле подряд два одинаковых сегмента:

- в первом массив индексов (смещения до соответствующих текстов),

- во втором массив текста (кодировка UTF8).

начало каждого сегмента такое:

+0 = размер этого запакованного сегмента (т.е. смещение до следующего сегмента, где снова всё с +0 смотрим)

+4 = маркер 'QTC2' (0x32435451)

+8 = размер распакованных данных

+C = тут начало массива который надо распаковывать

 

Теперь есть такая вот утилита для чтения QTC-файлов без участия телефона, и экспорта в TXT:

QTC_Util.png

QTC_Util_201111041724.rar

Можно назначить в винде как стандартное средство открытия qtc

 

Правда не факт что будет работать со всеми файлами, я пока только на B5722/C3322/C3510/S5610 проверял… Формат предусматривает что словарная таблица фиксированно лежит в CLA, может где-то она другая окажется…

 

Обновил версию. Отличия несущественные: шрифт интерфейса ClearType-совместимый, и при экспорте файла по умолчанию подставляется тот каталоге откуда был исходный qtc-файл открыт.

QTC_Util_v20121222.rar

Изменено пользователем f2065
  • Like 13

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

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

Данный формат в С3212 встречается тоже..

Мы с Фраером копали его...

За утилиту спасибо...

ЕЩе бы обратное преобразование - и цены бы не было )))

 

ЗА проделанную работу - большой плюс)))))

Жизнь - пьяный поэт, я - слово.

Я жесток и грустен, когда ему херово.

Жизнь - старый поэт, жизнь - усталый поэт,

А я... Что я? Его инструмент!...

 

Разработка Broadcom: http://www.rk-team.net/

Новости проекта QuB на Twitter

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

Написать архиватор на основании разархиватора - задача очень сложная… Архиватор то посмотреть вообще негде, от графического алгоритма он всё-же отличается немного… Хотя теоретически можно попробовать линейно реверснуть алгоритм, QTC файл будет но без компрессии (т.е. раз в 5 больше оригинала)… Но я пока я не планирую дальнейшие раскопки QTC…

 

А ещё можно сделать патч загрузчика локализации (lkres_LoadNandTextData), который бы вместо распаковки qtc грузил бы сразу idx+dat… Такой вариант вообще простой и очень легко реализуемый… Если не стоит задача подменить все qtc-файлы - то 5-кратное увеличение размера одной локализации - диск выдержит наверно…

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

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

С C3300 работает. Только вот заметил мелкий баг

265562-6-11-11)1320542349_thumb.jpg

А за программу большое спасибо!

 

раньше мы могли по ID вызываемого текста сразу в BinEdit посмотреть что там за текст, и понять что это за функция. Теперь в BinEdit нет возможности видеть тексты, и вообще ID текстов не узнать (только либо сливать дампы с работающей мобилы, либо брутфорсить ID тоже на работающей мобиле).

Может быть стоит пообщаться с vvyura,вроде он сейчас дорабатывает BinEdit

Можно было бы сделать прямую погрузку в BinEdit пары CSC+CCF, где BinEdit потом сам найдёт QTC и подгрузит их.

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

Только вот заметил мелкий баг
Про это я знал… Там действительно есть ещё несколько десятков многострочных текстов… Но каким образом в контроле ListView выводить многострочные тексты я не представляю. В MSDN упомянут флаг LVCFMT_WRAP | LVCFMT_LINE_BREAK - но во-первых это только для Win7, во-вторых всё равно он желаемого эффекта не дал… Гугл тоже никакого простого решения про multiline listview item не предлогает - пишут что listview даже если некоторыми шаманствами (ownerdraw) сделать многострочный но по любому у него высота всех строк должна быть одинакова. Вариант использовать всякие там framework или сторонние компоненты мне не нравится.

 

Ещё кстати у listview лимит на число букв - 260. Но тут есть как минимум один текст на 400 букв («Некоторые компоненты этого продукта включают код…»)… Соответственно он обрезан.

 

Так что для полноценного анализа текстов - надо экспортировать их в TXT и там уже изучать сторонними средствами. Ещё надо учитывать что местами одинаковые русские буквы заменены на английские (таких мест мало, но встречаются)… В итоге бывает облом с поиском слов. Может потом сделаю подсветку подозрительных строк - где есть буквы из диапазона ANSI и многострочные тексты.

 

Может быть стоит пообщаться с vvyura,вроде он сейчас дорабатывает BinEdit

Можно было бы сделать прямую погрузку в BinEdit пары CSC+CCF, где BinEdit потом сам найдёт QTC и подгрузит их.

Ну, исходник распаковщика дать я могу (только замечу что программа на 100% написана на асме в синтаксисе FASM)… В принципе могу и DLL скомпилировать, но проще наверно сразу встраивать распаковщик куда надо… Или научить BinEdit подгружать готовые idx+dat (что более перспективно на случай вышеупомянутой идеи с патчингом lkres_LoadNandTextData). А вообще BinEdit надо серьёзно дорабатывать для полноценной работы с новыми текстами. Например в MCC_FOCUS_CHANGE и MCC_QUESTION у B5722 целых три (или даже четрые) текстовых ресурса…
  • Like 3

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

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

Может быть стоит пообщаться с vvyura,вроде он сейчас дорабатывает BinEdit

Дяденька, я не настоящий сварщик, я только каску надел. :)

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

 

Например в MCC_FOCUS_CHANGE и MCC_QUESTION у B5722 целых три (или даже четрые) текстовых ресурса…

А какая доработка тут нужна?

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

А какая доработка тут нужна?
Ну с древними прошивками на вкладке Код в режиме MCC - для них сразу показывались тексты которые выводятся… А сейчас это давно не работает - потому что и позиции аргументов изменились, и аргументов стало больше… MCC_QUESTION например может иметь целых три кнопки с разными произвольными ответами и заголовок… Хотя вероятно это всё надо просто обновить в binedit.ini. Да и вообще новые (qtc) тексты ведь BinEdit не понимает…

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

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

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

 

илди же всеже запаковать с флагом анкомпрессед (простите за тофтологию)

Жизнь - пьяный поэт, я - слово.

Я жесток и грустен, когда ему херово.

Жизнь - старый поэт, жизнь - усталый поэт,

А я... Что я? Его инструмент!...

 

Разработка Broadcom: http://www.rk-team.net/

Новости проекта QuB на Twitter

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

f2065,

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

А по бинедит - очень не хватает возможности скопировать по ctrl+c с вкладки код и мсс :)

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

А по бинедит - очень не хватает возможности скопировать по ctrl+c с вкладки код и мсс :)
Это конфликт каких-то рантаймов, в Win7 началось после какого-то обновления летом… Ctrl-C работает только если активен En-ввод… А если Ru - то игнорирует.

 

ДУмаю патча для подгрузки распакованных хватит... + сделать экспорт в формат который текущий бинедит понимает..
А похоже текущий BinEdit не понимает никакого формата… Я экспортировал из D780 языковый ресурс, но в другие прошивки BinEdit его импортировать не хочет - пишет что типа нет языка подходящего…

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

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

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

Немного обновил версию (см. шапку).

  • Like 1

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

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

  • 2 года спустя...

If you have a language File for the firmware Europe Indonesian.qtc (C3322XWLG1), I need one because I am not used to wearing Indonesian and Indonesian language besides, Help me Please, I asked for, THANK YOU

  • Like 2

Мы ценим, если вы хотите

Оценил !!!

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

Пожалуйста, 00_27_indonesia.qtc и 00_34_javanese.qtc для резервного файлы, которые будут установлены в прошивке может позволить C3322XWLG1

  • Like 1

Мы ценим, если вы хотите

Оценил !!!

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

На создание QTC-файлов надо несколько дней работы, у меня нет времени этим заниматься (особенно для старого телефона который давно не выпускается).

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

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

f2065, если вы можете создать

новый патч для языка, я хочу,

чтобы создать язык Indonesia И

Javanese для прошивки

C3322XWLG1, XXNA1, XXMG1,

XWKL1

поделиться образом, не

спрашивайте !!!

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

На создание QTC-файлов надо несколько дней работы, у меня нет времени этим заниматься (особенно для старого телефона который давно не выпускается).

 

Я прошу вас F2065, чтобы

языковые файлы и 00 _

34_javanese.qtc 00_27_indonesia.qtc

прошивок для C3322XWLG1, я в

беде использовать телефон,

который ни один язык Indonesia

и Javanese. Я прошу всех.

потому что вы испытали, и я

также прошу, потому что я не

понимаю, сделал. спасибо

  • Like 1

Мы ценим, если вы хотите

Оценил !!!

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

как Как добавить язык и

создать то, что могло пройти

патч *ASM или *SMP файлы

 

 

как Как добавить язык и

создать то, что могло пройти

патч *ASM или *SMP файлы

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

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

как Как добавить язык и

создать то, что могло пройти

патч *ASM или *SMP файлы

как Как добавить язык и

создать то, что могло пройти

патч *ASM или *SMP файлы

Я пробовал, сделал патч для языка, но все еще не работает, так что я могу видеть только, где часть текста, который находится в рабочем столе телефона :bm:

 

извините я использовать Google TransLite :roll:

Если есть ошибки в написании тему, комментарии и обсуждения, я сожалею, что я не очень хорошо нанизывая слова и всегда использовать Google Translate

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

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

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

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

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

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

Войти

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

Войти


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