Последнее время плотно столкнулся с адаптацией CAB-файлов из-за разных нужд и обнаружил, что как то акцентировано эта информация у нас здесь не приведена. Решил открыть тему, где можно было бы делиться технологиями, инструментами и хитростями по данному вопросу.
Прикладываю два основных инструмента для "мелкой" работы с кабами:
1. MSCEInf - анализ и разборка кабов
2. CabArc - MS Cabinet Tool
Вместо CabArc я обычно использую встроенную работу с кабами в http://www.freecommander.com/. Более удобно для извлечения, добавления и замены файлов.
Быстрое "добавление" файлов 0419 MUI в кабы
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Технология быстрой "адаптации" кабов с 0409 MUI для 0419 MUI:
1. Берем каб с файлами 0409 MUI
2. Открываем его в FreeCommander (либо используем другие средства)
3. Копируем в любое место _setup.xml
4. Открываем вытащенный _setup.xml в Блокноте (или любом другом текстовом редакторе)
5. Ищем в тексте подстроку 0409, копируем в буфер обмена все между началом тега <characteristic... слева от 0409 до соответствующего ему закрывающего тега </characteristic>.
Будет что-то типа:
<characteristic type="AudioManager.exe.0409.mui" translation="install"><characteristic type="Extract"><parm name="Source" value="AUDIOM~1.002" /><parm name="WarnIfSkip" /></characteristic></characteristic>
6. Вставляем скопированный кусок сразу после закрывающего тега </characteristic> (откуда копировали в буфер). Правим во втором новом блоке 0409 на 0419.
Будет что-то типа:
<characteristic type="AudioManager.exe.0419.mui" translation="install"><characteristic type="Extract"><parm name="Source" value="AUDIOM~1.002" /><parm name="WarnIfSkip" /></characteristic></characteristic>
7. Повторяем операции 5-6 пока не кончаться файлы MUI.
8. Заменяем оригинальный _setup.xml в кабе на отредактированный.
Все. Каб готов к использованию и под 0409 и под 0419 MUI.
P.S. Если 0409 не нужно, то просто правим на 0419
Хочу поделиться результатом расковыривания файлов *.000, содержащих информацию о кабе, структура выяснена не полностью, но достаточно для извлечения файлов. Опишу на основе программы RumusMobile. Итак, вот содержимое файла 000:
А чем плох WinCe Cab Manager?
Я пользуюсь им (CeCabMgr_2.1.035) - все наглядно и удобно. Не открывает некоторые кабы, но это больше исключение из правил...
Раз уж подняли тему, есть ряд вопросов по созданию/редактированию кабов.
1. беру 2 файла dll из другой машинки - делаю каб (заменяет оригиналы на мои файлы в \windows). Далее их надо подписать. Расковырял Cert.cab. Внутри setup.xml, вытащил. Как теперь мне заставить отработать его ПОСЛЕ того как файлы будут подменены? В WinCe Cab Manager есть поля pre-xml и post-xml. Если я все содержимое setup.xml (из Cert.cab) вставлю в поле post-xml - будет мне счастье?
2. В некоторых кабах есть файл setup.dll. Он ведет диалог с пользователем и выполняет всяческие функции. Как и на чем его писать? он автоматически запускается находясь внутри каба?
3. Как выполнить авто-перезагрузку девайса после установки?
4. Возможно ли разместить каб внутри каба и установить его в ходе установки моего, родителя так сказать? Ответ заранее да ( для примера PocketInfotmant), но как это сделать, да чтобы еще и установка прошла в какой-либо нужный мне момент времени?
Русская версия Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)