Работа с.sis архивами
Что такое SIS архивы. Что они из себя представляют структурно и функционально, как посмотреть вовнутрь, отредактировать, перепаковать и т.д. Сразу хочу оговориться: обзор будет касаться установочных.sis файлов под OS6-OS8, т.к под более поздние оси эти файлы имеют несколько другую структуру и оглавление (хотя и не сильно отличаются) и распаковать их на компе имеющимися подручными средствами ПОКА нормально не получается, но это вопрос времени. В экспериментах будут рассмотрены программы, позволяющие извлечь и собрать назад файлы из SIS архива средствами обыкновенных прикладных программ под WinXP без использования SDK под Symbian OS, те свободно доступными способами, не требующими знаний по програмированию и специальных навыков.
SIS (Symbian System Installation) - Это специальный тип архива, предназначенный для установки ПО на смартфон, работающий под управлением Symbian OS. Он содержит в себе файлы приложения, пути распаковки файлов, информацию о версии ПО, UID3 приложения (идентификационный номер, уникальный в мире), информацию для пользователя, всплывающую во время установки (лицензионное соглашение, крекерские бравады и т.д.), а также исполняемые во время установки функции.
Можно выделить 5 основных функциональных групп файлов, содержащихся внутри архива:
1. Обыкновенные файлы самого приложения, предназначенные для копирования на смартфон.
По задумке разработчика это может быть память тела или карта памяти, а так-же часть туда, часть сюда. Т.е. если при выборе Вы указали карту памяти, это еще не значит что программа полностью лежит на E:, часть жестко привязанных файлов может скопироваться в тело и вызванно это техническими особенностями некоторых программ. Но как правило это небольшая часть файлов маленького размера. Основные ресурсы программы (приложение-.app; локализация текстовых ресурсов-.rsc; иконка приложения-.aif; графические ресурсы-.mbm и иногда некоторые другие) падают в директорию - C: или E:\\system\\apps\\(название программы)\\. Это основная папка приложения. Именно директорию \\apps\\ сканирует система для вытаскивания иконок на рабочий стол. Если прога будет лежать в другом месте или еще в одном вложении глубже,
система не увидит установленной программы. Часть ресурсов так-же может быть размещена в других системных директориях Data; Libs; SharedData; Programs; Help; Recogs. Вот именно последняя папка "Rcogs" заслуживает особого внимания, и о ней, вернее о файлах в ней хранящихся, нужно рассказать особо, ибо это очень важная тема для разговора, поэтому маленькое отступление.
Очень часто на форуме я вижу вопросы, связанные с невозможностью удалить какую-либо программу: Help!!!! и т.д.
Очень часто я вижу ответы: закрой или убей процесс такой-то с помощью AppMan. Это все правильно, НО нужно понимать суть проблеммы.
В Symbian OS существует особый тип файлов: Recognizers, это файлы с расшмрением *.mdl, основная задача которых -загрузка приложений и сервисов при старте системы. Почему основная, потому что существуют и другие функции этих файлов, но они в данном случае нас интересуют меньше. Фактически директория Recogs, если сравнить грубо, аналог ветви реестра Windows: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\. Т.е. *.mdl файлы это как-бы "ярлыки" к реальным программам и сервисам. Сама система абсолютно не знает что за программы Вы напихали и что именно нужно запустить при старте тела, поэтому смотрит именно эту папку. Обычно здесь лежат загрузчики фоновых сервисов, которые не висят в трее (антивирусов, ч/б списков, блокираторов, диктофонов и пр. системных приложений). Достаточно найти файл того приложения (по названию или открыв его в двиичном формате, например в NortonCommander F3-F4 -ближе к концу файла будет виден путь к приложению), которое нужно снести, удалить его и перезагрузить тело. Такой способ гораздо эффективнее, посколько некоторые сервисы нельзя закрыть с помощью AppMan-ов. Яркий пример -антивирус Касперского v2. При попытке свалить сканер с помощью закрытия процесса, отваливает само приложение, которое пытается это сделать! Просто процесс висит с высоким системным приоритетом и закрыть его не получится. Единственный способ описан выше, или собственный унинсталлер. Некоторые фирмы пишут более сложные механизмы загрузки своих продуктов, например AutoExecDaemon фирмы SymbianWare (SmartphoneWare).
Здесь один EXE-шник грузит сервисы всех приложений фирмы, которые установлены на телефоне, а непосредственные ссылки лежат в папке SW_Autoexec. Бывают и другие варианты, но суть остается та-же - снеси соответствующий *.mdl файл и система после перезагрузки забудет про сервис напрочь. Я думаю, что данная инфа может помочь некоторым людям решить вопросы удаления приложений.
2. Файлы, которых нет, но они будут созданы в процессе запуска и эксплуатации приложения.
Этот класс архива необходим для корректной (чистой) деинсталляции. По некоторым причинам этифайлы нельзя прописать сразу (например файлы инициализации, регистрации), но иногда мы их имеем уже заложенными в архив нашими друзьями...
3. Текстовые ресурсы, выводимые на экран во время установки.
Могут быть функциональными -продолжить установку или отменить (на выбор пользователя), или просто информационными. Как правило это лицензионные соглашения, предупреждения, реже инструкции по установке или ненавязчивые напоминания о "наших друзьях".4. Файлы а точнее программы, которые будут запущены в системе во время установки и/или удаления приложения.Это чаще программы без пользовательского интерфейса GUI, которые запускаются в фоновом режиме во время процесса установки/удаления приложений и могут иметь различные функции: удаление предыдущей версии и файлов инициализации, т.к. новая версия может просто не запуститься со старыми настройками, инициализация какого-либо сервиса программы, запуск регистрации или наконец, опять же заставка "наших друзей", которые очень любят пользоваться этой возможностью SIS архива и лишний раз напомнить о себе. Дальше я расскажу как надо убивать эти лишние и никому не нужные EXE-шники, а так же излишне длинные названия программ, появляющиеся в диспетчере приложений (типа "FileMan - By SyMPDA,BiNPDA,ХрЕН-PDA" и т.д.). Это как раз надо делать именно на стадии перепаковки SIS архива.
5. Такие же SIS архивы, вложенные вовнутрь основного, так называемые SIS-компоненты.
В такие дополнительные архивы обычно запаковывают набор каких-либо стандартных файлов для данной фирмы-производителя, содержание которых не зависит от версии программы. Это могут быть кодеки, системы автозагрузки, лицензионные примочки (особенно бесит в этом отношении фирма Psiloc -до 5 вложений), а так-же любые другие наборы. Следует отметить что внутри подобного компонента может находиться еще один SIS файл, а внутри этого -еще и т.д. В принципе это делается для удобства комплектации приложения (т.е. для производителей ПО), для конечного пользователя это не принципиально, кроме размножения файлов в папке \\Install\\. Кстати именно здесь следует заметить что оглавление SIS файла (шапка) остается лежать в телефоне в директории !:\\system\\install\\. Это необходимо для корректного отображения списка установленных программ диспетчером приложений и последующей деинсталляции, которая производится именно по этому оглавлению (т.е. что и куда пропмсывалось, то и удаляется).
Эти оглавления имеют очень маленький размер (т.к. самих файлов внутри нет, только ссылки) и удаляются вместе с приложением.
Для работы с SIS архивами добрые люди разработали несколько программ под WinXP с помощью которых можно без установки SDK разобрать, поправить и собрать SIS фалы назад. Поговорим об отличительных особенностях этих программ, т.к. не во всех случаях получается пользоваться какой-то одной. У некоторых есть серьезные недостатки, способные сделать архив непригодным для установки на телефон, и здесь нужно хорошо представлять структуру архива, наличие языковой локализации, запускаемых во время установки файлов.
1. UnMakeSIS
Программа предназначена для просмотра и распаковки SIS архивов. Сразу нужно заметить, что это единственная программа, которая распаковывает корректно. Соблюдает правильно директории, правильно разбирает многоязычные ресурсы. Правее графы Language есть стрелочка, нажав на которую можно просмотреть список языков, которые поддерживает данное приложение. При распаковке архива программа разложит многоязычные файлы на составляющие части: *.rsc01 *.rsc02 *.hlp01*.hlp02 и т.д., причем пронумерует файлы именно в том порядке, в котором языки открываются в списке. Это важно для дальнейшей запаковки -можно сразу удалить ненужные языки, оставить англ. и русский. Ориентируясь на последовательность в списке нужно переименовать расширения соответствующих файлов в нормальные: *.rsc *.r01*.r16 *.hlp *.h01 *.h16.
Программа не сораняет на диск файлы текстов, выводящихся на экран во время установки и заголовки файлов, предназначенных только для удаления. Так же при дальнейшей сборки SIS архива нужно обратить внимание на расположение файлов (телефон или на выбор пользователя).
2. MakeSIS v1.0 (ONU)
Программа предназначена дла сборки SIS архивов из имеющихся готовых файлов приложения, хранящихся на диске компа. Файлы нужно поместить во временную директорию, сохранив все относительные пути. Именно так они лягут в смарт. В программе нужно выбрать эту временную директорию в верхней строке. В графе Name нужно ввести имя приложения - это именно то, что будет отражаться в диспетчере приложений телефона после установки. Так-же нужно уточнить в какую память будет произведена установка. По умолчанию для всех файлов указано - выбор пользователя при установке, но можно изменить и задать некоторые или все файлы жестко - тело или карта. Этим нельзя принебрегать, нужно задать как было в оригинале. В расширенных настройках обязятельно нужно задать ID приложения, а лучше воспользоваться функцией копирования из файла оригинала. В след. поле можно ввести текст сообщения, которое будет отображено во время установки программы. Далее можно добавить SIS компонент, указав путь к нему. Единственным огромным минусом данной программы является невозможность ввести исполняемый во время установки компонент.
3. SIS_Tool v1.04
Программа для просмотра, распаковки и сборки SIS архивов. Что можно делать: можно открыть готовый SIS файл (или набрать из отдельных компонентов), поправить название проги (убрать лишнее, о чем писалось выше), удалить ненужные исполняемые файлы (типа BiNPDA.exe, причем с болбшим удовольствием), удалить текстовую лабуду во время инсталляции, что-то добавить. Эта программа поддерживает запуск сервисов во время установки - это огромный плюс.
Но есть два очень серьезных минуса:
- прога напрочь губит многоязычную текстовую локализацию (т.к. во время редактирования распаковывает все файлы в одну временную директорию, без сохранения путей).
- не может работать с большим количеством файлов в архиве (точно предел не проверял) -например родной нокиевский
редактор картинок не откроет полностью, покажет часть файлов, соответственно и не запакует.
Есть и другие программы, например
KVTSymbianInstaller, но я их рассматривать не буду -набор функций беднее.
Автор: Dimonn
Опубликовал: Tele4n.Ru&~В этой статье я раскажу подробно, как русифицировать программы. Для этого нам понадобиться программы: RSCEditor, SmartSIS и любой файловый менеджер, чтобы было удобнее. Мануал по RSCeditor был сделан человеком под ником jack6600:
. Для начала вам надо открыть SIS
файл это делаем программой
SmartSIS
Далее файлы обычно лежат в
папке resource/apps
Обычно
*.r01 это английская локация
*.rsc это мультиязычная
версия тоесть зависит от выбора
меню.
*.r16 это русская локация.
*.r93 это украинская версия.
и так далее их бывает много.
1 . Заходим в RsсЕditor и нажимаем Options -
Открыть. Выбираем файл rsc или r01
2 . Нажимаем 5 и выбираем 1 ресурс
3 . теперь жмем 2 ,если текст есть то
смело переводим его и сохраняем
кнопкой (0 ), если он замигает красным
цветом - значит ресурс
пуст,переходим дальше (кнопка 3)
4. Если начнет меняться не текст,а
цифры - незамедлительно
открываем этот файл еще раз и
повторяем процедур дальше :-)
5.После того как переведете все,
упаковываем наш перевод SmartSisoм
и подписываем своим сертификатом.
И все наш русик готов!Удачи
Вам,будущие переводчики :-)
Ну и от себя добавлю. При
открытии файла вы увидите количество
в нем ресурсов. Запомните его. Так
как если оно хоть в какую сторону
изменится то все файл испорчен.
Надо будет снова брать новый и редактировать.
А вот инструкция \"как упаковать в СИС\":
После редактирования rsc-файла, надо упаковать его в сис-архив, чтобы было удобно устанавливать. Это несложно. Объясню на примере smartSIS для смарта: создаем папку и положить туда переведенный файл, например: E:\\1\\!\\resource\\apps\\rsc_файл. Затем в smartSIS выбираем папку 1, версия файла - любая, имя файла тоже любое, uid программы, для которой писали русик, способ установки ОБЯЗАТЕЛЬНО PU! Остальные параметры можно оставить стандартными. Всё, теперь русификатор отлично установиться.
Можно использовать 3 типа дисков, куда будет инсталлиться: !, С, Е. Если !, то он устанавливает по вашему желанию куда, а если С или E, то будет устанавливаться в диск C и E соответственно