motofan logo
> 

Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта

AstaRoth
сообщение 8.6.2009, 14:37


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206
Модель телефона: E2=>Zn5=>Defy+=>Nubia
Прошивка: Ъбфбймус Edition
Победитель конкурса 2008


Настроение:
reBOOT



Рейтинг: 4098



Умные буржуйские друзья начали разработку поддержки нативных приложений на Зн5
http://www.mmus.us/forum/showthread.php?t=8943
На данный момент готовится к выходы PinkMod 2.0 в котором будет реализована поддержка mpkg
Исходный код во вложении.
Спасибо камраду kidscracker
Все дальнейшие обсуждения -связанные с нативным софтом предлагаю вести в ЭТОЙ теме.
За флуд в теме БАН!
Мануал по портированию игр и программ (с) EXL

В соседних ветках много тем по портированию софта/игр. Я не знаток в этом деле, но кое-что могу рассказать)
Для портирования приложений на нашу платформу нужны:
1. AndLinux или Cygwin (Запускаются под виндой). Или любой Linux
2. SDK
3. Прямые руки
Я расcмотрю наиболее приемлемый способ с использованием Винды и AndLinux'a
Под Cygwin говорят плохо собираются программы, ну а настоящий Linux я пока не освоил.
Итак:
1. Скачиваем сам AndLinux Я использовал версию (beta2 final KDE version, 537 MB), качал себе в городской сетке, пошарьтесь в своих тоже, может найдёте.
2. Устанавливаем его.
Мануал по установке AndLinux'a в картинках для начинающих) Подписи к скринам внизу
Spoiler:

Запускаем установку
Изображение
Кликаем next
Изображение
Соглашаемся, кликаем next
Изображение
Выбираем путь установки, next
Изображение
Выбираем версию. Лучше верхнюю, next
Изображение
Выбираем память. Я оставил 256 mb, next
Изображение
Настройки. Оставьте всё как есть, next
Изображение
Звук в AndLinux ставте да, next
Изображение
Настройки запуска AndLinux ставьте первое, next
Изображение
Введите имя, пароль, next
Изображение
Выберите третье, пользователи Windows XP лучше выбирайте COFS, next
Изображение
Создаем папку AndLinux в корне вашего жесткого диска, даём ей общий доступ!
Изображение
Нажимаем Refresh, выбираем расшаренную нами папку, вводим имя пользователя и пароль, next
Дальше - установка ярлыков, групп меню, ассоциации к файлам, ставим что нужно, ждём пока установиться и перезагружаем компьютер!
[close]

3. Скачиваем SDK (Зеркало 1, Зеркало 2). Копируем данный архив в расшаренную папку AndLinux.
4. Установка окружения для портирования:
Стартуем AndLinux, запускаем под ним Konsole
Spoiler:

Изображение
[close]

Выполняем команды: (Новая строка - ENTER, вместо user естественно пишем своё имя, после первой команды потребуется ввести пароль)
Spoiler:

Код

sudo mkdir /mmc
sudo chown user -R /opt
sudo chown user -R /home
sudo chown user -R /mmc
mkdir /opt/toolchains
mkdir /home/z6
mkdir /home/z6/build
mkdir /mmc/mmca1
tar -C /opt/toolchains -xzvf /mnt/win/motomagx-toolchains.tar.gz
cp /opt/toolchains/motomagx/setenv-z6.sh /home/z6
cp /opt/toolchains/motomagx/setenv-z6-2.sh /home/z6

[close]

5. Теперь запускаем окружение
Spoiler:

Код

cd /home/z6
. setenv-z6.sh

[close]

Spoiler:

Изображение
[close]

6. Качаем исходники и кидаем их в папку AndLinux, распаковываем и пробуем собрать
Spoiler:

Код

cd /home/z6
tar -xzvf /mnt/win/Ваши_исходники.tar.gz
cd Ваши_исходники
./configure --host=arm-linux-gnueabi
make (или make install)

[close]

Если не конфигурируется, пробуем
Spoiler:

Код

./configure --host=arm-linux-gnueabi --enable-sdlui --without-x

[close]

Если приложению нужны data файлы - нужен параметр --prefix=./ - например
Spoiler:

Код

./configure --host=arm-linux-gnueabi --enable-sdlui --without-x --prefix=/mmc/mmca1/..Ваш путь
[close]

Или так
Spoiler:

Код

./configure --host=arm-linux-gnueabi --enable-sdlui --with-sdlsound --without-x --prefix=./
[close]

Не забываем выполнять команду make distclean - она удаляет существующие неправильные бинарники
Spoiler:

Изображение
[close]

7. Если в исходниках отсутствует файл configure
вручную редактируем Makefile
ищем и заменяем строчки
Spoiler:

Код

CC:=gcc ---> CC:=arm-linux-gnueabi-gcc
cc=gcc ---> CC=arm-linux-gnueabi-gcc
cxx=g++ ---> CXX=arm-linux-gnueabi-g++
ld=ld ---> LD=arm-linux-gnueabi-ld
ar=ar ---> AR=arm-linux-gnueabi-ar
as=as---> AS=arm-linux-gnueabi-as
oc=oc ---> OC=arm-linux-gnueabi-objcopy
ranlib=ranlib ---> RANLIB=arm-linux-gnueabi-ranlib
strip=strip ---> STRIP=arm-linux-gnueabi-strip
[close]

8. Если конфигурирование и компиляция прошла без ошибок, вытаскиваем полученный файл из AndLinux'a с помощью Dolphin,
Не забываем кстати стрипать полученный экзешник, по такому коду (Где екзешник "x64" лежит в папке src, выполнять после make):
Spoiler:
Код

arm-linux-gnueabi-strip src/x64
[close]

Spoiler:

Изображение
[close]

Он лежит по пути (Вкладка Root) \home\Z6\Ваши_Исходники\Исполняемый файл, для этого его нужно вырезать, перейти на вкладку home и кинуть в папку windows, после этого он появиться в C:\\AndLinux
Spoiler:

Изображение Изображение
[close]

9. Копируем данный файл в корень карты памяти
и выполняем в телнете
Spoiler:

Код

cd /mmc/mmca1
export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
chmod +x Имя исполняемого файла
./Имя исполняемого файла

[close]

Если запустилось - отлично! Делайте пакет и выкладывайте!
------------------------------------------------------------------------------------
1. Правка управления (Ищите в исходниках по SDLK или клавишам):
Spoiler:

Код

layer[0].keys[0]=SDLK_LEFT;
        player[0].keys[1]=SDLK_RIGHT;
        player[0].keys[2]=SDLK_UP;
        player[0].keys[3]=SDLK_DOWN;
#ifndef ALT_FIRE
        player[0].keys[4]=SDLK_RCTRL

[close]

2. Правка разрешения (Ищите в исходниках по VIDEO или само разрешение)
3. Решение для добавления сворачивания приложения при входящем вызове (sms, флипе, других телефонных событиях) с остановкой звука делаем через замену процедуры SDL_PollEvent на собственную mySDL_PollEvent
Spoiler:

Код

-------------example.h-----------------------
int mySDL_PollEvent(SDL_Event *event);

// audio use sdl-lib
SDL_AudioSpec obtained;
boolean _audioSuspended;
void suspendAudio();
int resumeAudio();

// audio use sdl-mixer lib
void suspendAudio();
int resumeAudio();
void closeAudio(void);
--------------example.cpp--------------------
int mySDL_PollEvent(SDL_Event *event)  {
    int _r= SDL_PollEvent(event);
    if (!_r)
        return 0;
    if (event->type == SDL_ACTIVEEVENT) {
        if (event->active.state == SDL_APPINPUTFOCUS && !event->active.gain) {
            suspendAudio();
            for (;;) {
                _r = SDL_WaitEvent(event);
                if (!_r)
                    continue;
                if (event->type == SDL_QUIT)
                    return 1;
                if (event->type != SDL_ACTIVEEVENT)
                    continue;
                if (event->active.state == SDL_APPINPUTFOCUS && event->active.gain) {
                    resumeAudio();
                        return 1;
                }
            }
        }
    }
  return _r;
}

// if audio use sdl-lib
void suspendAudio() {
    SDL_CloseAudio();
    _audioSuspended = true;
}

int resumeAudio() {
    if (SDL_OpenAudio(&obtained, NULL) < 0){
        return -1;
    }
    SDL_PauseAudio(0);
    _audioSuspended = false;
    return 0;
}

// if audio use sdl-mixer-lib
void suspendAudio()
{
  Mix_SuspendAudio();
}

int resumeAudio() {
  int r = Mix_ResumeAudio();
  if(r == -1){
    closeAudio();
    return -1;
  }
}

void closeAudio(void) {
      Mix_CloseAudio();
}

[close]

4. Мониторинг проблем "Segmentation fault"
Качаем gdb и распаковываем в телефон /mmc/mmca1/games
приложения должны быть собраны с префиксом '-g' и не должны быть пострипаные
Spoiler:

Код

ulimit -c unlimited
./<app>
Segmentation fault (core dumped)
файл <core> будет создан
../bin/gdb ./<app> <core>
[close]

5. утилита strace
Код

../bin/strace ./app

6. Скачивание исходников и их обновление
Spoiler:

Код

svn co http://сайт - скачивание
svn up - обновление

[close]

7. Скрипт запуска утверждённый минздравом:
Spoiler:

Код

#!/bin/sh

mypath=${0%/*}
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
export HOME=$mypath
cd $mypath
exec $mypath/Ваш екзешник > $mypath/Ваш экзешник.log

[close]

8. Для портирования игр, в которых разрешение экрана 640х480 или 800х600, требуется правка координат в исходниках. Для первого случая нужно делить координаты на 2, для второго на 2.5, графику можно обработать программой VSO Image Resizer
-----------------------------------------------------------------------------------
Spoiler:

Мануал будет дополняться и разрабатываться, все что вы прочитали в мануале - это попытка систематизировать информацию.
Источники с которых бралась информация:
Motofan и Motorola Gaming Site
Огромное спасибо таким людям как: Lubomyr, Neomoto, Abram, AstaRoth,
[close]

Здесь можно скачать исходники:
Spoiler:

Сайт
Сайт
Сайт
Ну и на многих других
[close]

Полезные ссылки, обязательные к прочтению начинающим разработчикам:

--------------------------------------------------------------------
Мануалы данной темы:
Spoiler:

Если кто не может запустить ZN5Encoder в Magic box - пост #290
Нативные заставки на основе портированных мной и Neomoto демок! - пост #291
Мануал по установке Tmake в тулчейн, и правки созданного им MakeFile - пост #484
[close]
Прикрепленный файл ZN5Mpkgbox_Ported_By_Kidscracker.zip   ( 44.33 килобайт ) Кол-во скачиваний: 39530
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 41809
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
AstaRoth   Софт для ZN5 и прочих MotoMAGX: MGX и PEP   8.6.2009, 14:37
Chacha_Ivanov   Странно, исходники есть, а проги нет) Выложите кто...   8.6.2009, 16:37
r.o.m.a.N   Такого нет. Но если идти по сылкам (чем эта либа ...   8.6.2009, 20:12
OCM770   Im finished with my MP it includes Mpkgbox ;)   9.6.2009, 8:21
Chacha_Ivanov   Чо-то не захотел он с вашими либами компилится до ...   9.6.2009, 8:43
kidscracker   Атароф спасибо за публикацию, я надеюсь, что вы бу...   9.6.2009, 9:03
mallexxx   Тут новости от буржуев: Вышла новая прошивка Free...   9.6.2009, 9:44
mallexxx   Дык это оно и есть, пол часа назад запостили! ...   9.6.2009, 10:10
Hitch   давно на форум не заходил, пардон = ) спасибо за н...   9.6.2009, 10:45
1nTeRacT   Freedom 7FR [Mpkgbox + QVGA recording] Вот Зеркало...   9.6.2009, 11:22
mallexxx   Ну так что конкретно представляет из себя Mpkgbox?...   9.6.2009, 11:26
Chacha_Ivanov   Это программа которая отображает установленные mg...   9.6.2009, 11:34
AstaRoth   Товарищи, чьи посты я только что удалил - следующе...   9.6.2009, 12:08
1nTeRacT   Вопрос по этому монстру: в журнале звонков у всех...   9.6.2009, 15:05
uzHeR   да, имена!   9.6.2009, 15:21
kidscracker   Я обнаружил также, что ошибки, Skrilax_CZ поможет ...   9.6.2009, 16:00
1nTeRacT   Вот ссылка: Свобода 7FR Caller ID Исправление СП...   9.6.2009, 16:56
Karaban   Как установить проги Mpkg с e8?   9.6.2009, 17:16
Hitch   для начала немного подумать... кидай файлы в Inst...   9.6.2009, 17:30
kidscracker   Ну это первая группа MGX для Zn5, вот только некот...   9.6.2009, 19:48
Karaban   Консоль,вот ссылка http://depositfiles.com/files/r...   9.6.2009, 19:57
AstaRoth   kidscracker, тут множество приложения для Е8, кото...   9.6.2009, 20:30
SanchoNT   никому не кажется что выложенные здесь приложения ...   9.6.2009, 20:32
1nTeRacT   никому не кажется что выложенные здесь приложения...   9.6.2009, 20:36
SanchoNT   Ты хоть правильно все делал? или сначала отписалс...   10.6.2009, 10:49
vantus1995   вот ДЛЯ СМЕНЫ ХИПА, ОТ Е8, НО РАБОТАЕТ Добавлено ...   9.6.2009, 21:45
betelgeize   вот ДЛЯ СМЕНЫ ХИПА, ОТ Е8, НО РАБОТАЕТ Добавлено...   10.6.2009, 17:58
Art-21   Stray39, если ты поставил прошивку, то должен быть...   9.6.2009, 22:08
Stray39   От слепой черт,не разглядел! Сори! :shuffl...   9.6.2009, 22:13
Hitch   поставил я этот CPU Speed. во-первых если ставлю н...   9.6.2009, 22:52
r.o.m.a.N   Hitch, От е8 работать не будет. После pmtool -d ...   9.6.2009, 23:39
kidscracker   [size=3]Я обновил первое сообщение в файл необходи...   9.6.2009, 23:57
Hitch   [b]Hitch, От е8 работать не будет. После pmtool...   10.6.2009, 7:48
Karaban   Харе гнать на AstaRoth таких людей мало. Спасибо з...   10.6.2009, 11:45
uzHeR   запускаться-запускается... а работает ли   10.6.2009, 12:58
Hitch   это с какой кстати в бан я уйду? Я нарушаю какие-...   10.6.2009, 15:33
uzHeR   ну что поставл я последний мостр, залил по фтп фай...   10.6.2009, 17:18
Neomoto   тот же самый ребут если запускать напрямую с флешк...   10.6.2009, 17:34
uzHeR   ребут начинает работать. выключается тел и все   10.6.2009, 17:38
lelvisl   А с файловой системы .mgx файлы не ставятся? И под...   10.6.2009, 17:53
AstaRoth   betelgeize, если ты про прогу JavaHS -то хоть в оп...   10.6.2009, 19:36
betelgeize   AstaRoth, код программы построин так что в случае...   10.6.2009, 21:36
r.o.m.a.N   Стандартный ленг 002е ставь   10.6.2009, 21:50
betelgeize   чтоб бил русский необходимо чтоб этот параметр Lan...   11.6.2009, 4:04
1nTeRacT   перезагрузка работает странным образом, нажимаю на...   11.6.2009, 7:03
Ana®H   Обычный скрипт работает так же. Там внутри скрипт ...   11.6.2009, 7:37
V!iT   Тестируем Snapshot Reboot_mgx Ftp&Telnet Благ...   14.6.2009, 19:31
Neomoto   готовится к выходу таскменеджер для ZN5 (хотя он и...   14.6.2009, 20:25
Ant-ON   готовится к выходу таскменеджер для ZN5 (хотя он ...   15.6.2009, 5:52
Cерый   А можете объяснить, почему не хочет работать скрип...   15.6.2009, 8:11
Art-21   Hitch, у меня всё работает. Сам проверял. Поставил...   15.6.2009, 14:17
Ramiro   Подтверждаю све работает ! Проша стоит ...   15.6.2009, 20:18
V!iT   CPU Speed: После перезагрузки частота сбрасывается...   16.6.2009, 8:21
serjo19   CPU Speed: После перезагрузки частота сбрасываетс...   16.6.2009, 8:24
D-1c3   какой стандартный пароль у проги Hidden?   16.6.2009, 19:18
vantus1995   пароль-kc   16.6.2009, 19:20
syberside   Извените,что не по теме, но как установить мпкгбок...   16.6.2009, 19:55
uzHeR   UPDATE 14 - 06 - 2009 SNAPSHOT http://kidscracker...   17.6.2009, 6:42
Ana®H   В виду того, что появился новый нативчик MpkGbox, ...   17.6.2009, 10:59
dark-termit   Что-то ребут не ребутит телефон, а выключает прост...   17.6.2009, 13:50
Ramiro   Ana®H, всё очень клево ...в. GridChooser.mgx ко...   17.6.2009, 14:06
D-1c3   Ana®H, шрифты не меняются :( мож я чёто не так дел...   17.6.2009, 14:06
Ana®H   Это уже давно так. Он долго лежит вроди вырублены...   17.6.2009, 14:41
r.o.m.a.N   Разгон же не работает должным образом. Нафик он на...   17.6.2009, 14:50
CjYoung   Разгон же не работает должным образом. Нафик он н...   17.6.2009, 14:53
66_ЛЁХА_99   И чо частота даже не слетает когда в плеер заходи...   17.6.2009, 15:31
CjYoung   И чо частота даже не слетает когда в плеер заходи...   17.6.2009, 16:11
Ana®H   Скрипт тот же. На любителя. Я иногда пользуюсь. Ч...   17.6.2009, 16:14
r.o.m.a.N   Ana®H, Включи разгон, включи плеер и сверни его. ...   17.6.2009, 16:19
CjYoung   Ana®H, Включи разгон, включи плеер и сверни его....   17.6.2009, 17:09
Cерый   Вопрос про Fonts : а разве скрипт лежит по тому пу...   17.6.2009, 16:58
Ana®H   Вопрос про Fonts : а разве скрипт лежит по тому п...   17.6.2009, 18:31
Stray39   папка /.mpkgbox ( с точкой) в ezxlocal не создает...   17.6.2009, 20:39
Ana®H   она там есть.. и не в /ezxlocal, а в /ezxlocal/dow...   17.6.2009, 20:43
Ana®H   [size=4]zTaskMan.mgx Настоящий натив :) Дождались...   18.6.2009, 6:37
D-1c3   исправьте кто нить прогу Fonts плс. одна из самых ...   18.6.2009, 6:42
Top-Gear   У вас разгон не работает? А модуль pmtool есть во...   20.6.2009, 7:54
AstaRoth   предлагаю потестить следующие проги:   20.6.2009, 9:54
D-1c3   AstaRoth, среди этих прог новые только: autorunVie...   20.6.2009, 13:04
AstaRoth   такие кто видел? http://motoattach.taobao2taobao....   20.6.2009, 23:03
V!iT   тестируем MGX приложение: Fonts http://h.adiga-lif...   21.6.2009, 16:51
Glyad   2 V!iT: А на карточку можно поставить? или тол...   25.6.2009, 8:00
Ana®H   Да куда угодно :) Тож не фото инструкция, то про10...   25.6.2009, 9:52
Top-Gear   Попробуйте вот, зля зины, оригинал [url=http://fo...   25.6.2009, 16:03
Gadzil88   на все приложения ругается "произошла ошибк...   25.6.2009, 16:39
AstaRoth   ФайлМенеджер - я честно взял у китаезы и слегка п...   26.6.2009, 17:19
D-1c3   AstaRoth, мужиик!)) я пробовал файл менеджер о...   27.6.2009, 13:58
Entom   Я и через стандартный по фтп лазию. AstaRoth: мож...   27.6.2009, 16:31
r.o.m.a.N   через стандартный браузер можно или перенастрои...   27.6.2009, 17:23
Snag   Asta, на е2 ещё ж так лазили по началу... спасибо ...   27.6.2009, 17:32
AstaRoth   WEB-FilaManager - - на всякий случай чтоб была ...   28.6.2009, 7:13
AstaRoth   Caller ID ниже, собственно говоря, представлен ...   30.6.2009, 21:02
Gadzil88   я выкладывал мануал как можно лазить по всей фай...   1.7.2009, 10:29
vantus1995   программа для работы с изображениями(взято с е8) у...   2.7.2009, 12:44
Max75   мож я что-то не так понял.... но у меня в ezxloca...   4.7.2009, 22:37
vantus1995   СОЗДАТЬ НУЖНО   4.7.2009, 22:54
moto_mr_hard   А cmd кто нибудь особьвал откомпилитъ? На мои взгл...   5.7.2009, 8:11
Max75   супер, GridChooser.mgx отлично работает , одна про...   5.7.2009, 22:38
!Pavlik!   Тоже при перезагрузке грид сбрасывается...   6.7.2009, 2:46
19 страниц V  1 2 3 > » 

Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

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

 



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

Форум живёт: