motofan logo
> 

Разработка софта под MOTOMAGX, начну небольшой HOWTO

Abram
сообщение 21.5.2008, 21:56


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

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

Рейтинг: 744



Ну вот и пришла нам пора писать под наши телефоны нативный софт smile.gif.

Итак, поехали. Для начала нам нужен Linux и Z6 SDK. Linux берем кто какой хочет, желательно 32-битный (64-битного SDK нет, а как он себя поведет под 64-битной ОС - не знаю). Пользователи Windows могут воспользоваться, например, andLinux: http://www.andlinux.org/. Я буду рассматривать Ubuntu. Для Debian или andLinux все то же самое. Разница с другими дистрибутивами - в основном только в способе установки програм. С этого момента я считаю, что у вас уже установлен Linux, настроена сеть, установлены subversion (svn) и ncftp. Если же нет:
Код
sudo apt-get install subversion ncftp

Небольшое введение насчет Linux я написал, дабы избежать пустых вопросов shuffle.gif
SDK берем здесь:
Код
svn co https://ezx.darktech.org/svn/trunk/arm-eabi

Не забывем иногда делать
Код
svn up

Я, например, иногда кое-что изменяю для совместимости с Е2. Патчи и фиксы, а также дополнения приветствуются! clap.gif
Кто не знает что такое SVN - тем в гугл.

Временно сабж лежит здесь: http://depositfiles.com/files/7781186 и здесь: http://narod.ru/disk/2474622000/arm-eabi.tar.gz.html
Теперь рассмотрим на примере

Возьмем, например, Z6SnesX (эмулятор SNES для Z6, будет выложен позже. Ребят, GPL - он и в Африке GPL, но кто скомпилит - не выкладывайте, имейте совесть! Дождитесь моего релиза)
Код
svn co https://fig.vam/svn/ne/dam

Рассмотрим немного порезаный Makefile:
Код
TOOLPREFIX:=    /home/abram/z6/arm-eabi
#TOOLPREFIX:=    /arm-eabi
#Remember to set your own TOOLPREFIX.
QTDIR    :=    $(TOOLPREFIX)/lib/qt-2.3.8
EZXDIR    :=    $(TOOLPREFIX)/lib/ezx-z6
UPLOAD_PATH :=  /mmc/mmca1/bin/
CC    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
CXX    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
LD    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
CFLAGS    =    -pipe -Wall -W -O2 -DNO_DEBUG $(INCPATH)
CXXFLAGS=    -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG $(INCPATH)
INCPATH    =    -I$(QTDIR)/include -I$(EZXDIR)/include -I $(TOOLPREFIX)/arm-linux-gnueabi/include
LDFLAGS    =    -s
LINK    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
LFLAGS    =    
LIBS    =    $(SUBLIBS) -L$(TOOLPREFIX)/arm-linux-gnueabi/lib -L$(QTDIR)/lib -L$(EZXDIR)/lib -lm -lqte-mt -lezxpm -ljpeg -lezxappbase -lezxtapi-xscale-r -llog_util -llighting
MOC    =    $(QTDIR)/bin/moc
UIC    =    $(QTDIR)/bin/uic

TAR    =    tar -cf
GZIP    =    gzip -9f

...пропустим...

install: $(TARGETS)
    ncftpput -u root -p "" 192.168.16.2 $(UPLOAD_PATH) $(TARGETS)

Для компиляции нужно лишь заменить переменную TOOLPREFIX.
Подробнее рассмотрим цель install: она автоматически заливает все на телефон cool.gif через ftp и зависит от целей компиляции. То есть, если выполнить make install - програма скомпилируется (если нужно) и установится на телефон в UPLOAD_PATH. Для этого нужна утилита ncftpput - установите ее с помощью менеджера пакетов своего дистрибутива.

Запуск програмы

Для запуска програмы подключаемся к телефону через telnet, cd в нужную папку и запускаем smile.gif. Например,
Код
./Z6SnesX

Имейте ввиду, перед запуском програм из telnet нужно установить необходимые переменные окружения! Для этого скопируем прямо в консоль содержимое файла /etc/initservices/services/ezxenv.sh
Для Z6 это:
Код
#! /bin/sh
#set up environment
export QTDIR=/usr/lib/ezx
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib:/lib:/usr/language/vui/english/lib:/usr/language/vui/mandarin/lib:/usr/language/vui/common/lib:/usr/local/lib
export LD_HWCAP_MASK=
export EZX_PLUGINS_DIR=/hatcreek/plugins

# font path
if test -f /usr/language/fonts/fontdef.cfg;
then
    export EZX_RES_FONT_PATH=/usr/language/fonts
else
    export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
fi

# slidertone path
export EZX_RES_SOUNDS_SLIDERTONE_PATH=/usr/data_resource/sound/slider_tones

# icon path
export EZX_RES_ICON_PATH=/usr/data_resource/icon

# string path
export EZX_RES_STRING_PATH=/usr/language/string

export EZX_NATIVE_APP_PATH=/usr/SYSqtapp
export EZX_PRELOAD_APP_PATH=/usr/data_resource/preloadapps
export AM_SYS_STATE_SHM_PATH=/usr/SYSqtapp/am

# per LIBll14192, set LOCPATH
export LOCPATH=/usr/language/string
export PREF_LANGUAGE_PATH=${LOCPATH}
export EZX_LANG=/usr/language/

export EZX_LOCAL_PATH=/ezxlocal/
export EZX_LOCAL_DOWNLOAD_PATH=${EZX_LOCAL_PATH}download/
export EZX_LOCAL_APP_WRITE_PATH=/ezxlocal/download/appwrite
export EZX_APP_WRITE_PATH=/ezxlocal/download/appwrite

export LJ_DATA_VISIBLE=/ezxlocal/download/mystuff/.system
export LJ_DATA_PRIVATE=/ezxlocal/download/appwrite
export LJ_CONFIG=/ezxlocal/download/appwrite

export TPA_HOME=${EZX_LOCAL_PATH}

#sound path
export EZX_RES_SOUNDS_PATH=/usr/data_resource/sound
export EZX_RES_SOUNDS_UISOUNDS_PATH=/usr/data_resource/sound/ui_sounds
export EZX_RES_SOUNDS_RINGTONES_PATH=/usr/data_resource/sound/ringtones

#dm
export dm_setting_root=${EZX_APP_WRITE_PATH}/setup
export dm_setting_plugin=/usr/lib/ezx/lib/dm_plugin

export EZX_EXTRA_SYS_DATA_PATH='/ezxlocal/.system/'

#java
export J2ME_SECURITY_DIR='/ezxlocal/download/java'
export JAVA_HOME_CARD1='/mmc/mmca1/.system/java'
export JAVA_HOME_CARD2='/mmc/mmcb1/.system/java'

export J2ME_SYSDATA_DIR=${LJ_DATA_VISIBLE}/java
export JAVA_HOME_FLASH=${LJ_DATA_VISIBLE}/java

export MIDP_SYSDIR='/ezx_user/download/appwrite/java'
export J2ME_POLICY_DIR='/usr/securesetup'

export MYSTUFF_DATA_PATH='/ezxlocal/download/mystuff/'

#browser
export BROWSER_FS_ROOT=/ezxlocal/download/browser

export FLASH_MOUNT_PATH=/ezxlocal
export EZX_INSTALLED_QT_PATH=/ezxlocal
export MYSTUFF_DATA_PATH=/ezxlocal/download/mystuff/

Для V8 и других не знаю sad.gif. Кто скажет - с меня плюс. Хотя скорее всего такой же.
Итак, запускаем и вуаля! - видим на экране телефона свою програму clap.gif. Или не видим. Или видим Segmentation fault - это уж кто как напишет wink.gif.

Удачи!
Разбор библиотек
Читаем здесь: https://ezx.darktech.org/wiki/ReverseSo

Флуд и оффтоп наказываю! Уже трое людей получило по -2 с удалением сообщения
На вопросы отвечаю smile.gif

Сообщение отредактировал Abram - 8.9.2008, 10:49
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Ответ в темуСоздание новой темы
Ответов
segnini
сообщение 24.7.2008, 19:55


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 24.7.2008
Пользователь №: 177 826
Модель телефона: ROKR Z6
Прошивка: linuxmod ap1

Рейтинг: 0



Thanks Abram, but im not creator of mods! is only for my personal use.
im going to try it...

Спасибо Абрам, но им не создатель mods! Только для моего личного пользования.
им будет попробовать ...

Добавлено позже (24.7.2008, 20:00):
Again... nows trhows this :

Код
# ./packman
depth=24,pixeltype=1,alpha.offset=18,alpha.length=6,red.offset=12,red.length=6,green.offset=6,green.length=6,blue.offset=0,blue.length=6

../../textinput/framework/engine/common/KbInputFieldAdapter.cpp:ZInputFieldAdapter:260: ZInputFieldAdapter: ok, me=0x47f00
../../textinput/framework/engine/common/KbEditContext.cpp:KbEditContext:390: register application exit function
./packman
./
====================================================================
*** loading : /ezxlocal/download/appwrite/setup/pep_settings.cfg
====================================================================
*** loading TMP_PATH: /mmc/mmca1/tmp
====================================================================
*** loading CONFIG_ADDAPPTOFOLDER__PARENTFOLDERID: ParentFolder
====================================================================
***** Load config: /ezxlocal/download/appwrite/setup/pep_settings.cfg
hasAlpha = 1
hasAlpha = 1
hasAlpha = 1

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
Abram   Разработка софта под MOTOMAGX   21.5.2008, 21:56
qwerzxcv   это теперь можно теперь любой софт с компового лин...   22.5.2008, 11:08
azt59   Вопросик по SDK.. сливаем его с нета кладём куда у...   22.5.2008, 12:57
Wisher   это теперь можно портировать с е2 или с минга черн...   22.5.2008, 22:07
ruffus_kz   Если портировать какую-либо программу для работы с...   23.5.2008, 16:28
_brn   Необходима помощь в доводке до ума этого проекта...   24.5.2008, 9:32
Ivan A-R   Не удается получить его с svn. Какая-то ошибка 20...   24.5.2008, 12:06
_brn   Так. появилось свободное время. Могу заняться. Чт...   28.5.2008, 17:32
Abram   Так. появилось свободное время. Могу заняться. Ч...   28.5.2008, 19:37
BeZ   все нормально собирается... я собирал это... може...   28.5.2008, 18:53
BeZ   И так, в процессе тренировки и изучении SDK родила...   29.5.2008, 12:45
FFEHOT   а на висту нельзя SDK поставить? Не задавай глупы...   29.5.2008, 14:31
_brn   Теперь не может найти файлы, лежащие в /arm-eabi/a...   29.5.2008, 15:05
eug   Теперь не может найти файлы, лежащие в /arm-eabi/...   29.5.2008, 18:19
nairosha   http://developer.motorola.com/docstools/mo...vame/...   30.5.2008, 8:35
BeZ   Обновлено приложение TestApp. Продолжаем изучение ...   30.5.2008, 11:42
BeZ   в svn появился терминал для V8, разместил tikva ...   1.6.2008, 15:26
Abram   На v8 на такой строке ZLabel* label = new ZLabel...   3.6.2008, 12:28
Alternative_NickName   Выкладываю рабочий MPlayer для V8. Без разницы, к...   3.6.2008, 14:19
Abram   Выкладываю рабочий MPlayer для V8. Без разницы, ...   3.6.2008, 20:26
BeZ   у меня была идея эти пути брать из конфига...   3.6.2008, 21:18
Abram   у меня была идея эти пути брать из конфига... Не...   3.6.2008, 23:16
Alternative_NickName   Abram, установка в память тела просто необходима...   4.6.2008, 3:52
stpavel   Решил ради интереса попробовать что нибудь скомпи...   7.6.2008, 4:48
BeZ   stpavel там указываются пути к либам в первом соо...   7.6.2008, 4:50
Abram   Чужой Makefile точно не поможет. Я обычно пишу сво...   7.6.2008, 8:23
Tim2005   Возник один вопросик:) Как сделать так, чтобы теле...   19.6.2008, 10:26
Abram   Возник один вопросик:) Как сделать так, чтобы тел...   19.6.2008, 11:00
BeZ   Tim2005, хорошо что только один вопрос ))) у меня...   19.6.2008, 10:41
Tim2005   Использовал eventFilter, не катит :( , хотя может ...   19.6.2008, 19:22
Abram   Использовал eventFilter, не катит :( , хотя может...   19.6.2008, 22:11
cr_az   Abram, вопрос такой к тебе: скомпил да запустил, а...   19.6.2008, 22:43
Abram   Abram, вопрос такой к тебе: скомпил да запустил, ...   19.6.2008, 23:35
BeZ   cr_az, можно только в консоль вывод делать, деьаг...   20.6.2008, 4:29
UginC390   Скачал я andLinux вот этот http://downloads.source...   21.6.2008, 19:00
lol2Fast4U(tm)   Вопрос к разрабам: Вот хочу dpkg на з6. Могу ли я ...   24.6.2008, 7:48
BeZ   скорее всего править... жди POL 0.4 Добавлено поз...   24.6.2008, 7:50
Abram   ИМХО он там просто не нужен. Не те задачи, чтобы ...   24.6.2008, 11:44
lol2Fast4U(tm)   А MPKG? На сколько я понял, он есть в телефоне (Ко...   29.6.2008, 16:47
BeZ   Zorge.R, да понял я, что он имел в виду.... что I...   4.7.2008, 5:05
_brn   Идей нету что делать, отсюда и отсутствие интереса...   5.7.2008, 4:52
Abram   Идей нету что делать, отсюда и отсутствие интерес...   5.7.2008, 6:07
_brn   Есть.   5.7.2008, 10:35
BeZ   _brn, идей вагон :D времени и рук на все не хвата...   5.7.2008, 12:13
grs93   а реально ли написать плеер с настраиваемым эквала...   5.7.2008, 12:30
Abram   а реально ли написать плеер с настраиваемым эквал...   5.7.2008, 14:44
UginC390   Abram svn co https://ezx.darktech.org/svn/trunk/...   6.7.2008, 9:16
BeZ   UginC390, в каую папку делаешь check out? у тебя ...   6.7.2008, 9:44
UginC390   [b]UginC390, в каую папку делаешь check out? у т...   6.7.2008, 9:58
BeZ   UginC390, интернет то пашет на wmware ?   6.7.2008, 10:57
UginC390   UginC390, интернет то пашет на wmware ? всё раб...   6.7.2008, 11:22
lol2Fast4U(tm)   "Нет бы спросили - а как сделать то-то или то...   6.7.2008, 11:21
Abram   "Нет бы спросили - а как сделать то-то или т...   6.7.2008, 11:25
lol2Fast4U(tm)   сразу патч не надо (хотя хорошо бы :) ) Кстати - ...   6.7.2008, 12:30
Abram   сразу патч не надо (хотя хорошо бы :) ) Кстати -...   6.7.2008, 12:42
lol2Fast4U(tm)   Посмотрел - libc.so.6 есть. Так в чём проблемы?   6.7.2008, 13:02
_brn   Посмотрел - libc.so.6 есть. Так в чём проблемы? ...   6.7.2008, 16:11
BeZ   lol2Fast4U(tm), думается, что в руках какой ты PE...   6.7.2008, 13:47
lol2Fast4U(tm)   Спасибо) Точно про ссылку забыл...) BeZ, 1)Демки ...   6.7.2008, 20:41
Abram   lol2Fast4U(tm), вот не понимаю я паразитов, котор...   6.7.2008, 21:35
Abram   Обновил некоторые библиотеки в тулчейне (самое гла...   7.7.2008, 16:59
BeZ   Tim2005, вопрос так и остался повисшим? Я вот се...   8.7.2008, 13:18
Abram   BeZ, Не знаю как он - на я делал примерно так же ...   8.7.2008, 22:57
BeZ   Кто знает, как в фон свернуть GUI приложение? Чтоб...   9.7.2008, 5:02
BeZ   Как вытащить иконку из скина? [size=1][color=#333...   11.7.2008, 5:29
Tamahome   А что если делать демон и отдельно гуй? тогда из г...   23.7.2008, 5:24
segnini   Hello, please excuse my English, im from Venezuela...   24.7.2008, 17:12
Abram   segnini, . /etc/initservices/services/ezxenv.sh a...   24.7.2008, 19:47
segnini   Thanks Abram, but im not creator of mods! is o...   24.7.2008, 19:55
Abram   segnini, Please don't use translator. Did you...   24.7.2008, 20:19
segnini   yes is at /ezxlocal/download/appwrite/setup/pep_se...   24.7.2008, 20:30
Abram   segnini, Strange. Did you try looking on the phon...   24.7.2008, 20:49
segnini   Lol thanks Abram but is not launched , the screen ...   24.7.2008, 20:53
Abram   segnini, I'm not using MSN or ICQ. Only XMPP ...   24.7.2008, 21:06
segnini   Ok no problem. Another isue i have is i need to de...   24.7.2008, 21:15
rusiki   /arm-eabi/lib/gcc/arm-linux-gnueabi/3.4.3/../../.....   25.7.2008, 12:28
lol2Fast4U(tm)   rusiki, create symlink (as root) ln -s (path to y...   29.7.2008, 8:00
dimichxp   lol2Fast4U(tm), быдло детектед.   29.7.2008, 8:08
rusiki   lol2Fast4U(tm), the sdk is already placed in /arm-...   1.8.2008, 16:25
lol2Fast4U(tm)   rusiki, try to compile zGUI from svn ( look at ez...   4.8.2008, 18:47
Velizariy   Люди у меня такой вопрос, а на FreePascal'е мо...   6.8.2008, 12:36
Abram   Люди у меня такой вопрос, а на FreePascal'е м...   10.8.2008, 11:53
Velizariy   Да, можно собрать компилятор и писать. Но GUI так...   10.8.2008, 13:56
serega011   Velizariy Паскаль конечно хорошо, но блин лучше вы...   10.8.2008, 14:32
Velizariy   Velizariy Паскаль конечно хорошо, но блин лучше в...   10.8.2008, 17:57
Kolyan_ufalug_   Си конечно хорошо, но не переношу я этот жуткий с...   10.8.2008, 18:57
Velizariy   Да, древнющий Qt 2 в моторолах, на котором ещё KD...   10.8.2008, 19:35
BeZ   Velizariy, я тоже так говорило и думал... под мот...   11.8.2008, 5:59
Velizariy   А если я вот на этом откомпилю прогу она запустить...   11.8.2008, 7:42
BeZ   Velizariy, попробуй, чего спрашивать? нам расскаж...   11.8.2008, 8:00
Velizariy   Velizariy, попробуй, чего спрашивать? нам расска...   11.8.2008, 8:15
shaban   Легко ли переделать скрипт в нативное приложение? ...   6.9.2008, 15:08
Abram   shaban, Для того, чтобы писать, нужно знать язык....   6.9.2008, 22:38
cTrelok13   Все конечно великолепно, но как можно посмотреть д...   22.9.2008, 18:15
BeZ   cTrelok13, доков нет, только методом тыка... ну и...   23.9.2008, 10:47
lol2Fast4U(tm)   и наши исходники, конечно же... Так ezx.darktech....   26.9.2008, 13:15
BeZ   lol2Fast4U(tm), у Абрама спроси   27.9.2008, 5:47
UginC390   Вопрос! Начал разбираться более плотно с натив...   14.10.2008, 15:41
Abram   Вопрос! Начал разбираться более плотно с нати...   14.10.2008, 17:06
BeZ   Abram, ничего странного... есть спец функции... ...   14.10.2008, 18:12
4 страниц V  1 2 3 > » 

Разработка софта под MOTOMAGX, начну небольшой HOWTO · Motorola ROKR Z6, RIZR Z6, Z6w, RAZR² V8 · Forum
 

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

 



Текстовая версия Сейчас: 2.6.2024, 0:55

Форум живёт: