категории | RSS

Сборка и установка тем созданных в Theme Diy

Желание настроить под себя стиль интерфейса своего телефона у пользователей присутствовало всегда. Среди различных средств достижения этой цели темы оформления играют главную роль, позволяя в одно мгновение изменить оформление меню и прочих элементов управления интерфейса мобильного устройства на свой вкус и под текущее настроение. Появление программы Theme Diy позволило пользователям создавать темы оформления прямо на своих мобильных устройствах всего за несколько кликов, без использования компьютера, ресурсоемких и не всегда простых в освоении приложений, а также изучения горы мануалов. И хотя возможности данной программы ограничены, она неизменно пользуется популярностью у пользователей, оценивших ее простоту и удобство использования. Это подтверждается огромным количеством тем, созданных в программе и доступных для скачивания на различных ресурсах, посвященных мобильной тематике.
Однако как показывает практика, не все создатели тем умеют правильно упаковать свои творения в sis пакет для того, чтобы поделиться с другими пользователями. Поэтому я решил написать данную статью и дать рекомендации как правильно создавать инсталляционные файлы так, чтобы они без проблем могли быть установлены на любое устройство на базе платформы S60, начиная с версии 3rd edition. Все описанные в статье действия я буду осуществлять с помощью приложения SISContents версии 1.1.5, которое работает в ОС Windows. При желании, всё описанное ниже можно проделать непосредственно на мобильном устройстве, однако я не любитель создавать sis пакеты на телефоне, так как, во-первых, под платформу S60 нет ни одной хорошо работающей программы сборщика sis файлов, а во-вторых, это предполагает использование нескольких программ. В то же время на компьютере нам потребуется только SISContents, поэтому я сделал выбор в ее пользу.
Как я уже отмечал, sis пакеты с темами, созданными в Theme Diy, не всегда собраны правильно. Как правило, их отличает UID, взятый наобум (и порой используемый в других пакетах, что приводит к конфликтам установки), неверный тип установки, лишние файлы и отсутствие подписи. Можно сказать, фантазия авторов тем подталкивает их не только к творчеству, но и к изобретению различных способов установки своих творений smile. Причиной тому порой недостаточный уровень знаний и попытки избежать появления ошибки обновления при установке тем. Распространенной проблемой является то, что скачанная и установленная тема прописывается в программе Theme Diy, занимая свободный слот, и хорошо, если этот слот до того был свободен – иначе на этапе установки не избежать пресловутой ошибки обновления. В данной статье я поведаю, как собрать (или отредактировать кем-то созданный) установочный пакет так, чтобы он не отображался в Theme Diy и устанавливался, не вызывая ошибок.

Создание установочного пакета темы оформления

Начнем со сборки пакета. Для начала нужно в Theme Diy создать тему и нажать Options - Save. Программа установит заранее заготовленный sis пакет с шаблоном, скопирует ресурсы в папку с темой и внесет изменения в установленные файлы. Теперь необходимо эти файлы упаковать в инсталляционный пакет. Путь к файлам в зависимости от номера используемого слота выглядит так:
#1. Private/10207114/import/20004A2A
#2. Private/10207114/import/20004A2B
#3. Private/10207114/import/20004A2C
#4. Private/10207114/import/20004A2D
#5. Private/10207114/import/20004A2E
#6. Private/10207114/import/20004A2F
#7. Private/10207114/import/20004A27
#8. Private/10207114/import/20004A28
#9. Private/10207114/import/20004A29
#10. Private/10207114/import/20004A30
#11. Private/10207114/import/20004A31
#12. Private/10207114/import/20004A32
В зависимости от того, тему из какого слота мы хотим упаковать переходим по нужному пути и копируем на компьютер (с помощью BlueTooth, IR, по кабелю, через карт-ридер) в одну папку 3 файла: скин (расширение skn), и 2 файла с графическими ресурсами (расширение mbm и mif). Файл настроек с расширением ini копировать не нужно. Если при создании темы вы указали использование собственных рингтонов, то скопируйте и их. Далее скачиваем и запускаем SISContents (версия должна быть не ниже 1.1.5), выбираем в меню пункт File - New file - S60 theme package. Напротив поля Skin file name нажимаем на кнопку Browse и выбираем только что переданный файл темы с расширением skn. Программа, скорее всего, сама укажет путь к файлам mif и mbm, в противном случае их нужно определить, нажимая соответствующие кнопки Browse напротив каждого поля (рис .1). После этого нажимаем на кнопку Create - будет создан установочный пакет с темой. Если вы используете свои рингтоны, добавить их в sis пакет можно, перейдя на вкладку Contents (с изображением кубиков) и нажав на кнопку Add entry - Add file entry. В появившемся диалоговом окне укажите имя файла, а в следующем окне в поле Target пропишите имя папки то же, куда будут скопированы остальные файлы темы, сохранив, в том числе, и имя файла рингтона (рис 2.) Далее нажмите OK для добавления файла.
На этом подготовка созданного пакета не закончена, но я прервусь ненадолго, чтобы описать как подготовить к установке уже созданный кем-то пакет с темой.

Редактирование sis пакетов тем, созданных в Theme Diy

Открываем sis пакет с темой в программе SISContents и смотрим на нижеперечисленные параметры, и если они не совпадают, то меняем их значения. Для этого установочный пакет должен быть открыт в режиме редактирования (меню Tools - Edit package).
На вкладке Info программы:
1. Package UID. Если он не равен 0xA00000EB, то меняем на это значение.
2. Install type. Если значение не Augmentation [SP], то меняем на него.
Переходим к списку файлов (вкладка Contents):
3. Находим в списке файл с расширением ini. Если его свойство Operation не равно Remove on uninstall, то выделяем файл, нажимаем на кнопку Edit и в появившемся окне выбираем операцию Remove on uninstall. Размер файла сократится до нуля, так и должно быть.

Смена каталога установки темы

По идее, созданный (или отредактированный чей-то) пакет уже готов к установке (только надо не забыть его подписать), однако установка в таком виде может привести к появлению ошибки обновления, если файлы по данным путям уже существуют. Определить это можно посмотрев путь, куда устанавливаются файлы темы (вкладка Contents или PKG script программы SISContents). Если имя каталога совпадает с одним из путей, куда Theme Diy копирует свои файлы (см. номера слотов и соответствующие им каталоги выше), и при этом данный номер слота занят какой-либо темой, то вы гарантированно получите ошибку обновления при установке новой темы. Чтобы не допустить ее появления нужно либо удалять имеющуюся тему, либо менять имя каталога установки новой темы. Мы будем использовать второй вариант, а именно - сохраняем прежнюю тему нетронутой и меняем каталог установки новой темы, чтобы избежать конфликтов. При этом необходимо помнить, что тема с измененным путем установки не будет отображаться в Theme Diy, и вы не сможете ее редактировать.
Итак, переходим на вкладку Contents и ищем skn файл темы. Если установочный пакет открыт в режиме чтения, включаем режим редактирования (меню Tools - Edit package). Выделяем найденный skn файл и нажимаем на кнопку View details. Справа от поля Relative installation path нажимаем на кнопку Generate. Значение поля изменится на псевдослучайное. Здесь же можно подправить название темы (как оно будет выглядеть в списке тем на устройстве), в поле Skin name. Закрываем окно. Теперь нам необходимо у всех файлов прежнее имя каталога заменить новым.

Например, в моем случае файлы созданного пакета должны были установиться в каталог
!:/private/10207114/import/20004a2c/, а имя каталога в Relative installation path было 20004a2c. PKG скрипт установки созданного в SISContents файла выглядел следующим образом:

"!:/private/10207114/import/20004a2c/ringtone.mp3"
"!:/private/10207114/import/20004a2c/20004a2c.ini", FN
"!:/private/10207114/import/20004a2c/theme_000100.skn"
IF (PACKAGE(0x102032BE))
"!:/resource/skins/20004a2c/theme_000100.mif"
"!:/resource/skins/20004a2c/theme_000100.mbm"
ELSE
"!:/private/10207114/import/20004a2c/theme_000100.mif"
"!:/private/10207114/import/20004a2c/theme_000100.mbm"
ENDIF

После нажатия на кнопку Generate значение поля Relative installation path сменилось на f1e31f292d1b471a. Теперь в пути установки каждого файла нужно заменить 20004a2c на f1e31f292d1b471a. Выбираем по очереди файлы, содержащие в пути прежнее имя каталога, нажимаем на кнопку Edit и в поле Target меняем прежнее значение на новое, например:
До - !:/private/10207114/import/20004a2c/theme_000100.skn
После - !:/private/10207114/import/f1e31f292d1b471a/theme_000100.skn
Для файла с расшиением ini необходимо поменять не только имя каталога, но и само имя файла, например:
До - !:/private/10207114/import/20004a2c/20004a2c.ini
После - !:/private/10207114/import/f1e31f292d1b471a/f1e31f292d1b471a.ini
Чтобы для каждого файла не набирать длинное имя каталога вручную, его можно скопировать в буфер обмена и использовать вставку с заменой. Будьте осторожны, чтобы не задеть разделители имен каталогов (слэши).
В результате, после всех изменений PKG скрипт установки стал выглядеть так:

"!:/private/10207114/import/f1e31f292d1b471a/ringtone.mp3"
"!:/private/10207114/import/f1e31f292d1b471a/f1e31f292d1b471a.ini", FN
"!:/private/10207114/import/f1e31f292d1b471a/theme_000100.skn"
IF (PACKAGE(0x102032BE))
"!:/resource/skins/f1e31f292d1b471a/theme_000100.mif"
"!:/resource/skins/f1e31f292d1b471a/theme_000100.mbm"
ELSE
"!:/private/10207114/import/f1e31f292d1b471a/theme_000100.mif"
"!:/private/10207114/import/f1e31f292d1b471a/theme_000100.mbm"
ENDIF

Также на всякий случай можно проверить название установочного пакета (вкладка Info, свойство Package name). Оно должно быть уникальным, т.е. не совпадать ни с одним из установленных на ваше устройство sis пакетов (иначе вы получите ошибку "Установка невозможна").

На этом редактирование sis файла можно считать завершенным. Напоследок, если вы хотите, чтобы при установке вашей темы пользователи видели, кто для них ее создал, можете добавить в установочный пакет текстовый файл с небольшим посланием. Для этого создайте текстовый файл, сохраните его в кодировке Unicode и добавьте в пакет с помощью SISContents, нажав Add entry - Add file entry. В окне редактирования параметров файла удалите путь в поле Target, а в качестве операции выберите Show as text.
Осталось только подписать файл self-signed сертификатом, который не привязан к IMEI, а потому позволяет установить подписанный им файл на любое совместимое устройство. Для этого в меню SISContents выбираем пункт Tools - Sign package, в списке Signing profiles правой части окна останавливаемся на SISContents self-signed certificate и нажимаем на кнопку Add signature. Закрываем окно работы с подписями и сохраняем итоговый sis файл на диск (меню File - Save as). Пакет готов к установке.

Прикрепленный файл: 2471_siscontents-new.jpg (56.27 кб)
Прикрепленный файл: 2471_siscontents-add.jpg (58.08 кб)

DimonVideo
2009-03-10T07:04:37Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 12

#12   c4astliv4ik    

ребята подскажите как удалить такую тему, созданную в Theme Diy


0 ответить

#12   poREVO    

Зачем етот танец?Если на комп есть спец.проги для создания тем...


0 ответить

#12   Edje    

Спасибо, оч помогла, я сам пытался уже, чуть чуть не докумекал, Ща всё стало на места.
А SmartSIS на 11% виснет когда паковать начинаю. Так что на ПК реальней. wink


0 ответить

#12   slmc    

Aqua000, спасибо за статью.


0 ответить

#12   Aqua000    

Вообше, статья не о том как собрать тему на компьютере или собрать ее с помощью SISContents. Не надо воспринимать материал как пошаговое руководство по работе с этой программой. Статья посвящена првильной технике сборки, использование которой позволяет упаковывать темы так, чтобы они устанавливались на все телефоны и не вызывали различных ошибок. А средства достижения цели - вопрос второстепенный. Использование компютера - лишь мои предпочтения, и вышеописанное можно проделать на телефоне, требуется только немного подумать и поэкспериментировать.


* редактировал(а) Aqua000 12:03 11 мар 2009

0 ответить

#12   Ln10    

Хорошая статья, спасибо.


0 ответить

#12   classic    

Я лично пакую SmartSIS я уже до него привык и кампа нету


0 ответить

#12   Stp66stp    

Ща попробую на smartSISе замутить... Без компа


0 ответить

#12   Vurdalak88    

Да theme DIY для тех, у кого нет компа, а эта процедура для тех у кого он есть. Так если был бы комп, я бы никогда не делал темы в theme DIY. А так конечно красиво написано. Молодец.


0 ответить

#12   konspir    

Зато разжевано до мелочей. Только нужен комп :(


0 ответить

Яндекс.Метрика