Итак.
Т.к. исходники открыто лежат на svn://svn.boba.su/SE или на зеркале http://perk11.info/svn/SE/, то решил написать небольшой фак по компиляции эльфпака с этих ресурсов.
Для начала заходим на один из этих сайтов и скачиваем содержимое папок ElfPack (со всеми вложенными папками), include, C++ с сохранением расположений и названий папок.
Т.е. у вас должно получится следущее, в одном месте должно находится: -папка C++ и все ее содержимое
-папка ElfPack и все ее содержимое
-папка include и все ее содержимое
Все файлы, что нужны для компиляции, мы скачали. Теперь нужно скачать чем компилировать. Это берем отсюда:Урезанная IAR
Распаковываем содержимое куда-нибудь (мой путь выглядит так: c:\Program Files\Embedded Workbench 4.0 Evaluation).
Теперь находим файл ElfPack.eww в папке ElfPack и ассоциациируем его для простоты дальнейших действий с IAR, т.е. правой кнопкой на ElfPack.eww -> свойства -> приложения кнопка "Изменить" -> кнопка "Обзор" -> ищем файл в дериктории (в моем случае)c:\Program Files\Embedded Workbench 4.0 Evaluation\common\bin\IarIdePM.exe -> кнопка "открыть" -> кнопка "ОК" -> кнопка "Применить" -> кнопка "ОК"
Далее при двойном клике на ElfPack.eww должно открыться окно программы.
Переходим в меню Project, выбираем пункт Edit Configurations и в диалоговом окне выбираем ту модель телефона с той прошивкой, которую вам нужно, жмем "ОК". Далее заходим все в то же меню Project и выбираем пункт Rebuild All.
Если все хорошо, то внизу в окне с логом будет примерно следующее:
Total number of errors: 0
Total number of warnings: 7
Теперь у вас в папке ElfPack появились еще папки: Debug, settings, W610_R6BC002 (у вас свое), и файл ElfPack.dep.
Заходим в: W610_R6BC002\Exe\ и видим там файл ElfPack.elf
Теперь нам нужно перевести файл ElfPack.elf в формат *.vkp.
Переходим в ElfPack\_Utils. Кидаем в нее файл *.raw от нужной вам прошивки, в моем случае w610_R6BC002.raw, и скомпилированный IAR'ом ElfPack.elf из папки W610_R6BC002\Exe\ (см. выше).
Теперь редактируем блокнотом файл make.bat (в моем случае так):
elf2vkp ElfPack.elf xxx.vkp "C:\Comp\ElfPack\_Utils\w610_R6BC002.raw" 0x44140000
cnv 0x44140000 xxx.vkp out.vkp
Сохраняем его (обращаем внимание на выделенный текст, где 0x44140000 начальный адрес вашей прошивки. Его можно узнать с помощью этой софтины).
Все, теперь если все правильно сделали, остается только двойным кликом щелкнуть по make.bat, и у вас в появится два файла:
out.vkp
xxx.vkp
out.vkp - это и есть эльфпак для вашего тела.
После всего проделанного папки Debug, settings, W610_R6BC002 (у вас свое), и файл ElfPack.dep можно удалить.
Теперь относительно расположения папок ZBin, Deamons, Config, Ini. Для определенных телефонов это расположение может отличаться друг от друга. Но начиная с папки other расположение одинаковое.
Заходим в ElfPack\Target\ и ищем файл с названием вашего телефона и вашей прошивки, в моем случае W610_R6BC002.h.
Открываем его блокнотом и видим примерно следущее (показываю только то, что имеет смысл по данному примечанию):
Code
....
#define PATH_ELF_ROOT_INT (L"/usb/other")
#define PATH_ELF_ROOT_EXT (L"/card/other")
#define PATH_ELF_INT (L"/usb/other/ZBin")
#define PATH_ELF_EXT (L"/card/other/ZBin")
#define PATH_ELF_DAEMONS_INT (L"/usb/other/ZBin/Daemons")
#define PATH_ELF_DAEMONS_EXT (L"/card/other/ZBin/Daemons")
#define PATH_ELF_CONFIG_INT (L"/usb/other/ZBin/Config")
#define PATH_ELF_CONFIG_EXT (L"/card/other/ZBin/Config")
#define PATH_INI (L"/usb/other/ini")
#define PATH_DEFAULT (L"/usb/other")
....
Это и будет правильное расположение ваших папок.
Готовые эльфпаки, которые автоматом генерируются при любом изменении содержимого на svn://svn.boba.su/SE, можно найти здесь http://justdanpo.cheb.ru/elfpack
Теперь о DB2010. Для работоспособности эльфпака на телефонах на данной платформе, нужно либо полностью ставить патч "Тотальное изменение графики", либо если не ставить, то дополнительно с установкой эльфпака нужно ставить патч, который будет содержать первые четыре строчки патча "Тотальное изменение графики".
Пример для W810 R4EA031 (на примере нужные строки помечены красным цветом):
Code
;W810 R4EA031PORT VERSION ALPHA
;The replacement of the graphics
;Version 2 - Startup animation not needed, choices
;To the choosed directory (def. /usb/other/gfx) save your graphics in XXXX.PNG (def.) / GIF format - depends on choice,
;where XXXX is the HEX number of the replaced image
;
;© Hussein
;(p) geogriffin
;(e) Adow
+44140000
;
;Choices: the only one choice in each category could be active (without ";")!!
;
;--- Choose the picture format
15b5672: FFFFFFFF 706E6700 ;png
;15b5672: FFFFFFFF 67696600 ;gif
;15b5672: FFFFFFFF 6A706700 ;jpg
;--- Choose a path for graphics
;/usb/other/gfx
15b5676: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2F007500730062002F006F0074006800650072002F006700660078000000
;/usb/image/gfx
;15b5676: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2F007500730062002F0069006D006100670065002F006700660078000000
;/card/sysgfx
;15b5676: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2F0063006100720064002F00730079007300670066007800000000
b5e608: BCC7024C CCC7024C
b5e720: BCC7024C CCC7024C
b5e690: BCC7024C CCC7024C
b5e980: BCC7024C CCC7024C
4249f0: D5BD2A45 B1556F45
10525d8: 0188EC231B029942 004B184701556F45
15b5500: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00F040F8EC231B029942014B1847FFFF
15b5510: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E125194500B5044B002102B405220121
15b5520: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5EF5C2FA01B000BD48566F4530B583B0
15b5530: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 04000D000F4900200290684641800022
15b5540: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 290020000C4B984700280ED101AA6946
15b5550: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 02A80A4B9847002807D100AB9B1C2A00
15b5560: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 210068460088064CA0476846408803B0
15b5570: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 30BDFFFFFFFF0000DD4A5B45D1DD5A45
15b5580: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 9D7842450188E5231B0299420AD3EC23
15b5590: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1B02994206D2044B044A1B6849005918
15b55a0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 895A018001887047BCC7024C0038FEFF
15b55b0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF F3B50A271A4C1B4E8FB007204002FFF7
15b55c0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF A9FF2060E5252D022A003100684600F0
15b55d0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2FF8684605A902E00A80401C891C0278
15b55e0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 002AF9D10020088005A930000C30FFF7
15b55f0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 9DFF0D4A904200D128000C4923686A00
15b5600: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 9A1850526D1C2D042D0CEC2109028D42
15b5610: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DAD310990F9800F013F811B0F0BDFFFF
15b5620: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF BCC7024C6D566F45FFFF00000038FEFF
15b5630: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 08B4024B9C4608BC6047FFFF894EE244
15b5640: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 004B1847D5BD2A45453A5C4D6F62696C
15b5650: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 655C6B3735305C4941525C73655C4775
15b5660: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 69546573745C6D61696E2E6300253034
15b5670: FFFF 582E
Также, для телефонов на платформе DB2010 надо брать *.raw с замейном, иначе при перегонке ElfPack.elf в *.vkp вылетит ошибка. Замейн в прошивку можно добавить с помощью программы Recovery BIN Lite, инструкция и сама прога находятся здесь. Потом полученный файл уже перегнать в *.raw.
Получить файл *.raw нужной вам прошивки можно с помощью этой софтины. Достаточно перетащить файл вашей прошивки (либо файл полученный с помощью Recovery BIN Lite) на babe2raw.exe, и на выходе рядом со значком программы появится файл *.raw
Вроде все!
И как обычно: Все вышеизложенное вы проделываете на свой страх и риск!
© awg