motofan logo
4 страниц V  1 2 3 > »         
> 

Ассоциация своих иконок на свои типы файлов, Теперь иконки берутся из файлов, не нужен iconres

BeZ
сообщение 28.1.2009, 8:34


Moto(sh)Coder
*******

Группа: Разработчики
Сообщений: 1 542
Регистрация: 8.10.2003
Пользователь №: 743
Модель телефона: только не moto

Рейтинг: 788.5



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

Долго ковырявшись в либах, я и Абрам, нашли способ подмены иконок.
Что для этого нужно?
А для этого нужно скачать
На флешке создать папку /mmc/mmca1/bin
Распаковать туда содержимое архива.

Файл pe_extensions.cfg скопировать в папку /ezxlocal/download/appwrite/setup/
далее зайти по телнету на телефон.
выполнить следующую команду
sh /mmc/mmca1/bin/changeicons.sh
Произойдет перезапуск интерфейса телефона, после чего в стандартном диспетчере файлов будут отображаться иконки для
типов файлов из pe_extensions.cfg, если расширения в конфиге не найдется, то отобразиться дефолтная иконка "перечеркнутый красный кружок" (msg_unsupport_file_type_small.gif)

содержимое файла changeicons.sh следующее, возможно прокатит только для PE
Код

insmod /mmc/mmca1/bin/mounts.ko
busybox killall -9 windowsserver
busybox killall -9 soundmanager
rm /tmp/audio*
export LD_PRELOAD=/mmc/mmca1/bin/libezxmystuff_mod.so
/etc/initservices/services/wins.sh > /dev/null 2>&1


для мода wktools не требуется выполнение следующей команды
insmod /mmc/mmca1/bin/mounts.ko
для zMod не знаю, надо делать insmod или нет, если там используется включение маунтов как в wktools, то не надо
для v8 cскорее сего нужна доработка скрипта

и так, формат файла pe_extensions.cfg
в файле 2 секции [thumb] и [small]
секция [thumb] отвечает за иконки в режиме "Картинки"
секция [small] отвечает за иконки в режиме "Список"

в каждой из секций пишется следующее
<ext> = <icon_from_iconres.ezx>, т.е. делается сопоставление расширения файла с названием иконки из iconres.ezx
пример
[thumb]
jar = fm_java_midlet_thb.gif

[small]
jar = fm_java_midlet_small.gif

Комментраии в pe_extensions.cfg ставить запрещается, так как тело не поймет тогда формата файла.
В связи с тем, что данный метод подменяет функцию загрузки иконки для файла, я написал свою функцию, которая по входящему имени файла вычисляет расширение и возвращает имя иконки из скина, найденное в конфиге.
Оригинальная функция по входящему имени файла также возвращает имя иконки из скина.
В связи с этим я постарался добавить в конфиг все стандартные расширения телефона, про какие не забыл, если что то забыл - извиняйте...

Для того, чтобы использовать свои иконки на свои расширения, не заменяя стандартных иконок в скине, надо добавить в iconres.ezx свои иконки (маленькую и большую) и назвать их например
fm_package_pep_small.png и fm_package_pep_thb.png
далее в конфиге произвести сопоставление

[thumb]
pep = fm_package_pep_thb.png

[small]
pep = fm_package_pep_small.png

если вы меняли iconres.ezx, то вам нужно его в телефон скопировать, а там дальше на ваше усмотрение, если меняли оригинальный iconres.ezx из /usr/data_resource/icon, то нужно либо пересобрать CG52, либо премеонтировать mount -o bin
если меняли из какого то другого скина, то просто заменить.... ну думаю всем и так понятно...

после этих изменений скорее всего надо опять перезагрузить интерфейс телефона вышеприведенным скриптом....

Как добавить свои иконки в iconres.ezx (автор Ant-On):

Цитата
Ant-ON, 28.01.2009 10:44:56:
1) берем программу MotoLinux Iconres Composer 1.1 Free (она даже в стандартный скин всё запихала):
http://www.rasputin007.co.uk/storage/other...poser%201.1.rar
весит 572 килобайта
2) Создаем где-нибудь папку
3) В неё закидываем иконки для добавления
4)Затем в проге Open Iconres и открываем файл куда добавлять иконки
5)Нажимаем Imort Data и выбираем созданную папку с иконками
6)Нажимаем Create Iconres и сохраняем под нужным именем
Всё. Я делал по такому алгоритму. У меня заработало:-)




Спасибо Ant-On за тестирование данного метода smile.gif

PS Жду от Вас плюсов )))) shades.gif +++

Добавлено позже (28.1.2009, 12:56):
забыл еще сказать, что тестировалось на прошивке 44R

Сообщение отредактировал BeZ - 3.2.2009, 15:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chacha_Ivanov
сообщение 28.1.2009, 10:59


Куртуазный Маньерист
******

Группа: Разработчики
Сообщений: 1 277
Регистрация: 30.10.2005
Из: Истра
Пользователь №: 56 473
Модель телефона: LG Sol, Moto EM35
Прошивка: Уникальная


Настроение:
помоги себе сам..



Рейтинг: 805



На zMod полет нормальный. smile.gif

Сообщение отредактировал Chacha_Ivanov - 28.1.2009, 11:04
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BeZ
сообщение 28.1.2009, 11:04


Moto(sh)Coder
*******

Группа: Разработчики
Сообщений: 1 542
Регистрация: 8.10.2003
Пользователь №: 743
Модель телефона: только не moto

Рейтинг: 788.5



Chacha_Ivanov,
я хз, просто так в голову пришло ))) башка другим была занята, а именно, чтобы в мое функции было следующее, если расширения нет в конфиге, то выполнялась оригинальная функция. Это к тому, чтобы все подряд в конфиг не писать, а писат самое необходимое... Но пока что не получилось сделать так (((

mount либы как сделал?

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chacha_Ivanov
сообщение 28.1.2009, 11:11


Куртуазный Маньерист
******

Группа: Разработчики
Сообщений: 1 277
Регистрация: 30.10.2005
Из: Истра
Пользователь №: 56 473
Модель телефона: LG Sol, Moto EM35
Прошивка: Уникальная


Настроение:
помоги себе сам..



Рейтинг: 805



Цитата(BeZ @ Сегодня, 14:04)

mount либы как сделал?
*


Пардон, я кажется ошибся.. У меня тут что-то невообразимое на телефоне творится biggrin.gif
Я правильно понимаю что эта либа libezxmystuff-base.so.1.0.0 или ты ее с нуля писал??

Сообщение отредактировал Chacha_Ivanov - 28.1.2009, 11:16
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BeZ
сообщение 28.1.2009, 11:17


Moto(sh)Coder
*******

Группа: Разработчики
Сообщений: 1 542
Регистрация: 8.10.2003
Пользователь №: 743
Модель телефона: только не moto

Рейтинг: 788.5



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

значит все же нужно интерфейс перегружать.....
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Abram
сообщение 28.1.2009, 11:33


Прелесть какая гадость
*******

Группа: Разработчики
Сообщений: 1 963
Регистрация: 24.6.2005
Из: .ru - рідна Україна
Пользователь №: 44 825
Модель телефона: Moto G XT1033
Прошивка: CyanogenMod
Победитель конкурса 2008

Рейтинг: 744



Алё, жлобы! Хоть бы + кто человеку за хорошее дело поставил.
Я уж не говорю о недавнем дне рожденья... ph34r.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chacha_Ivanov
сообщение 28.1.2009, 11:55


Куртуазный Маньерист
******

Группа: Разработчики
Сообщений: 1 277
Регистрация: 30.10.2005
Из: Истра
Пользователь №: 56 473
Модель телефона: LG Sol, Moto EM35
Прошивка: Уникальная


Настроение:
помоги себе сам..



Рейтинг: 805



BeZ,
у меня получилось без перезагрузки интерфейса сделать. clap.gif Смысл в том чтобы в SysRegistry в секции fm прописать свой скрипт запуска mystuff.
Вот как он у меня выглядит счас:
Код

#!/bin/sh
export LD_PRELOAD=/mmc/mmca1/bin/libezxmystuff_mod.so
/usr/SYSqtapp/mystuff/mystuff
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BeZ
сообщение 28.1.2009, 12:27


Moto(sh)Coder
*******

Группа: Разработчики
Сообщений: 1 542
Регистрация: 8.10.2003
Пользователь №: 743
Модель телефона: только не moto

Рейтинг: 788.5



Цитата(Chacha_Ivanov @ Сегодня, 14:55)

Вот как он у меня выглядит счас:
*


покажи более полно, а то чот я перестал догонять после этой либы laugh.gif
ну или файл прилепи

если править sysregistry, то либо пересобирать cg52, либо mount -o bind ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chacha_Ivanov
сообщение 28.1.2009, 12:35


Куртуазный Маньерист
******

Группа: Разработчики
Сообщений: 1 277
Регистрация: 30.10.2005
Из: Истра
Пользователь №: 56 473
Модель телефона: LG Sol, Moto EM35
Прошивка: Уникальная


Настроение:
помоги себе сам..



Рейтинг: 805



BeZ,
вот так заменяем секцию фм в SysRegistry, естественно СГ52 надо пересобирать для этого.
Код

[9faafa35-0688-4529-8310-04f215cb2d0c]
AniIcon = fm_ani.g
AppID = {9faafa35-0688-4529-8310-04f215cb2d0c}
Args =
Attribute = 1
BigIcon = fm_std.g
Daemon = 0
Directory = ../../usr/data_resource/zMod/script/
Exec = fm
FixedAllPosition = 0
FixedPosition = 0
GroupID = root
Icon =
LockEnabled = 0
MassStorageStatus = 1
Name = File Manager
Type = 2
UserID = root


Где Exec = fm это скрипт запуска с предварительной загрузкой этой либы

Код

#!/bin/sh
export LD_PRELOAD=/mmc/mmca1/bin/libezxmystuff_mod.so
/usr/SYSqtapp/mystuff/mystuff


Вот smile.gif

Сообщение отредактировал Chacha_Ivanov - 28.1.2009, 12:37
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BeZ
сообщение 28.1.2009, 12:41


Moto(sh)Coder
*******

Группа: Разработчики
Сообщений: 1 542
Регистрация: 8.10.2003
Пользователь №: 743
Модель телефона: только не moto

Рейтинг: 788.5



Chacha_Ivanov,
ага, все понял...
ну чтоже, это отлично, vymit лишних действий laugh.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ассоциация своих иконок на свои типы файлов, Теперь иконки берутся из файлов, не нужен iconres · Motorola ROKR Z6, RIZR Z6, Z6w, RAZR² V8 · Forum
 

4 страниц V  1 2 3 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.4.2024, 18:34

Форум живёт: