motofan logo
46 страниц V « < 38 39 40 41 > »         
> 

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

EXL
сообщение 26.8.2011, 12:34 Закрепленное сообщение!


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Мануал: Компиляция приложений для MotoMAGX OS, создание пакетов

Прикрепленное изображение

Для портирования и сборки приложений для нашей платформы в первую очередь нам нужны:

1. Компьютер с Linux OS. Или Windows OS с установленным Virtual BOX/VMware Player, в крайнем случае под виндой можно воспользоваться AndLinux'ом или Cygwin'ом.
2. SDK & Toolchains для MotoMagX + Исходники программ/приложений.
3. Программист/Разработчик или начинающий программист (1 шт.).

Я рассмотрю наиболее приемлемый многим начинающим разработчикам способ, с использованием популярного дистрибутива Ubuntu 11 (Linux OS) в виртуальной машине VMware Player в Windows OS. Те пользователи, у которых стоит Linux OS на компе, могут скачать SDK & Toolchains | Зеркало | Зеркало | Зеркало и сразу перескочить на пункт #4.

Итак, начнём:

1. Загрузка необходимых для разработки инструментов и файлов:

1.1. Скачиваем ISO-образ диска Ubuntu 11. Я качал себе в городской сетке, пошарьтесь в своих тоже, может найдёте. На всякий случай, ссылка: [Download | Скачать] на скачивание с официального сайта: http://www.ubuntu.com Там вы можете выбрать любую конфигурацию под свой компьютер (amd/i386) и т.д.

1.2. Скачиваем VMware Player - Скачать можно с официального сайта: [Download | Скачать] или тут: [Mirror | Зеркало]

1.3. Скачиваем SDK & Toolchains для MotoMagX. [Download | Скачать] - полная версия, включающая в себя 2 тулчейна SDL (От испанцев) + QT (От Ant-On'a) а также python, bennugd, boost и множество различных библиотек. Инструкция по установке есть внутри или ниже можно прочитать подробно.
Тем, кто хочет разрабатывать приложения на SDL, можно скачать небольшой тулчейн для сборки приложений: [Download | Скачать] [Mirror | Зеркало]

2. Мануалы по установке VMware, Ubuntu и SDK & Toolchains в картинках:*
* - картинки открывать лучше всего в новом окне, нажав колёсико мышки. После открытия воспользуйтесь масштабированием, например, в стандартном просмоторщике картинок.

2.1. Установка программы VMware для самых маленьких.
2.2. Установка Linux OS в программу VMware, на примере Ubuntu 11.
2.3. Установка дополнительных инструментов (VMware-tools) в Ubuntu 11. Необходимо для перемещения файлов между Ubuntu в виртуальной машине и виндой.

2.1.:    2.2.:    2.3.:

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

3. Мануалы по установке, текстом.

3.1. Установка VMware-tools для Ubuntu 11.
3.1.1. Стартуем Ubuntu 11, вверху нажимаем "Virtual Machine", затем "Install VMware Tools...
3.1.2. Ждём загрузки инструментов (нужно подключение к интернету!), затем снова вверху нажимаем "Virtual Machine" -> "Install VMware Tools...
3.1.3. С открывшегося диска копируем архив в формате *.tar.gz например в /home/user (user - ваше имя при установке Ubuntu), распаковываем его.
3.1.4. Запускаем терминал и выполняем в нём следующее:
Код

cd /home/user/vmware-tools-distrib
sudo ./vmware-install.pl

После команды sudo надо ввести пароль, который мы указывали при установке Ubuntu.
3.1.5. Умный скрипт сам предложит вам вводить нужные значения (в квадратных скобках), вводите их.
3.1.6. После успешной установки инструментов, перезагрузите компьютер.
3.1.7. Данные инструменты помогут с лёгкостью переносить файлы из Windows в Linux Ubuntu, просто копируя их или перенося из окна в окно, как вы это делали в Windows. Кроме того, появится множество разрешений для экрана системы.

3.2. Общие папки между системами для обмена файлами.
3.2.1. Стартуем Ubuntu 11, вверху нажимаем "Virtual Machine", затем "Virtual Machine Settings"
3.2.2. Переходим на вкладку "Options", выбираем "Shared Folders"
3.2.3. Переключатель "Folder sharing" ставим в положение "Always enabled", нажимаем кнопку "Add".
3.2.4. На компьютере выбираем любую папку, добавляем её, жмём ОК.
3.2.5. Теперь в Ubunte, в папке /mnt/hgfs видим добавленную нами папку из Windows.

4. Установка SDK & Toolchains.

4.1. Скачиваем архив тулчейна (*.tar.gz), перемещаем его в папку /home/user (user - ник при установке Ubuntu).
4.2. Выполняем команды, новая строка - Enter, вместо user естественно пишем своё имя, после команды sudo потребуется ввести пароль, который мы указывали при установке Ubuntu.
Код

sudo mkdir /mmc
sudo chown user -R /opt
sudo chown user -R /home
sudo chown user -R /mmc
sudo ln -s -d /opt/toolchains/motomagx/arm-eabi -t /
mkdir /opt/toolchains
mkdir /home/z6
mkdir /mmc/mmca1
tar -C /opt/toolchains -xzvf /home/user/motomagx-toolchains_12_08_2011.tar.gz
cp /opt/toolchains/motomagx/setenv-z6.sh /home/z6
cp /opt/toolchains/motomagx/setenv-z6-2.sh /home/z6

4.3. Обратите внимание на имя скаченного вами архива с тулчейном! Именно его нужно вводить в восьмой строке кода, приведённого выше!
4.4. Установленный тулчейн:
Прикрепленное изображение

5. Запуск окружения, компиляция программ и helloworld'a.

5.1. Чтобы запустить окружение для компиляции под MotoMagx, достаточно выполнить в терминале следующее:
Код

cd /home/z6
. setenv-z6.sh

После этого, компиляторы, библиотеки и хэдеры будут браться из нашего тулчейна, а не с компьютера.

5.2. HelloWorld.
5.2.1. Создаём пустой файл с именем hello.c в папке /home/z6 (Правой клавишей по пустому месту, "Create Document" -> "Empty File")
5.2.2. Редактируем его содержимое следующим образом, сохраняем:
Код

// Hello World for Motorola Magx!

#include <stdio.h>

int main(void)
{
    printf ("Hello Moto!!!\n");
    return 0;
}

5.2.3. Компилируем:
Код

cd /home/z6
arm-linux-gnueabi-gcc hello.c -o hello

5.2.4. Полученный исполнительный файл "hello" кидаем на телефон и запускаем через телнет!
Код

Mobilinux(TM) 4.1
Welcome 2 Motorola ZN5!
[root@Symbiosis ~]
#> /mmc/mmca1/hello
Hello Moto!!!


5.3. Работа с утилитой Make* и SDL библиотекой.
* - Утилита Make позволяет компилировать достаточно сложные проекты. Подробнее тут: http://ru.wikipedia.org/wiki/Make
5.3.1. Скачиваем следующие исходники, распаковываем в папку /home/z6:
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 21678

5.3.2. Запускаем терминал и окружение для компиляции, переходим в папку с проектом, выполняем команду make:
Код

cd /home/z6/ballgame_src
make

После выполнения команды будет выполнена компиляция проекта и создан mgx пакет. Для очистки проекта от объектного кода и бинарников, следует выполнить make clean. Для создание mgx пакета - команду make mgx.
5.3.3. Теперь можно кинуть пакет на карту памяти и попробовать запустить. (Для SDL приложений вам потребуется установленные SDL-библиотеки!)
5.3.4. Структура простейшего Makefile для компиляции HelloWorld'a:
Код

# MakeFile for HelloWorld
# Motorola MotoMAGX

CC = arm-linux-gnueabi-gcc  
STRIP = arm-linux-gnueabi-strip
  
CFLAGS = # Необходимые флаги
LDFLAGS = # Необходимые флаги
OPTIMIZATION = -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -O2 # Оптимизация под процессор

INCLUDE = $(CFLAGS) $(OPTIMIZATION) -I/dir # Путь к нужным хэдэрам.
LIBS = $(LDFLAGS) -L/dir # Путь к нужным либам

BIN = hello # Бинарник

all:
    $(CC) -c hello.c -o hello.o $(INCLUDE)
    $(CC) -o $(BIN) hello.o $(LIBS)
    $(STRIP) $(BIN)
clean:
    rm -f ./*.o $(BIN)

Если положить данный Makefile рядом с hello.c, и выполнить make, получим исполнительный файл.
5.3.5. Замена строк, для портирования SDL проектов:
Код

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
В INCLUDE или CFLAGS добавляем `sdl-config --cflags`
В LIBS или LDFLAGS добавляем `sdl-config --libs` -lнеобходимая_библиотека


5.4. Работа с утилитой configure* и SDL библиотекой.
* - Скрипт configure создаёт Makefile и позволяет компилировать сложные проекты, состоящие из множества файлов. Подробнее тут: http://en.wikipedia.org/wiki/Configure_script
5.4.1. Пример работы. Скачиваем исходники, распаковываем в папку /home/z6:
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21806

5.4.2. Выполняем следующее:
Код

cd /home/z6/PTC-demos
./configure --host=arm-linux-gnueabi
make

После этих команд у нас появятся исполнительные файлы Fire и Tunnel. Копируем их в корень карточки телефона.
5.4.3. Запускаем через телнет следующим образом:
Код

export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
chmod +x /mmc/mmca1/Fire
/mmc/mmca1/Fire

5.4.4. Для установки файлов в нужную директорию используется prefix и команда make install:
Код

mkdir /home/z6/test
cd /home/z6/PTC-demos
./configure --host=arm-linux-gnueabi --prefix=/home/z6/test
make
make install

После этого нужные нам файлы будут в папке /home/z6/test.
5.4.5. Для чистки объектного кода и бинарников используется команда make clean, для удаления сконфигурированных Makefile'ов используется команда make distclean (полная очистка).

5.5. Деббагер "Segmentation fault"
5.5.1. Качаем gdb и распаковываем архив на карту памяти, в папку /mmc/mmca1/games
Исполнительные файлы должны быть собраны с префиксом '-g' и не должны быть пострипаные
5.5.2. Выполняем (gdb):
Код

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

5.5.3 Выполняем (strace):
Код

../bin/strace ./<bin_app>


5.6. Скрипт запуска для SDL приложений:
Код

#!/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
export SDL_QT_INVERT_ROTATION=1
cd $mypath
sleep 1

exec $mypath/<bin_app>

5.6.1. Если нужен вывод лога в файл, заменяем последнюю строку в скрипте на
Код
exec $mypath/bin_app >$mypath/stdout.txt 2>$mypath/stderr.txt


5.7. HelloWorld с использованием GUI и функций телефона.
5.7.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21982

5.7.2. Выполняем:
Код

cd /home/z6/папка с нужным проектом
make PLATFORM=EZX-ZN5

или просто make
5.7.3. Кидаем исполнительные файлы на телефон и пробуем запустить, должно получиться что-то типа этого:
Прикрепленное изображение

5.8. Собираем MgxBox.
5.8.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 23247

5.8.2. Выполняем:
Код

cd /home/z6/MgxBox/MgxBox_GUI_ru
make PLATFORM=EZX-ZN5
cd /home/z6/MgxBox/p7zip_9.20.1
make all2
make install
cp -r /mmc/mmca1/p7zip/lib/p7zip /home/z6/MgxBox/Release/app/p7zip

5.8.3. Кидаем папку /home/z6/MgxBox/Release на телефон и пробуем запустить бинарник в папке Release/app, если всё нормально, должно получиться что-то типа этого:
Прикрепленное изображение

6. Создание пакетов вручную.

6.1. Создание MGX пакета:
6.1.1. Создаём папку, помещаем в нее необходимые файлы (дата файлы приложения, исполнительные файлы, скрипт запуска, иконку).
6.1.2. Создаём в папке файл "Имя папки".cfg, редактируем его содержимое следующим образом:
Код

Name = Test
Exec = run.sh
Icon = icon.png
Author = Ant-ON
Version = 1.0
Comment = Port for ZN5 by EXL

Где, Name - имя программы, Exec - запускаемый файл, Icon - иконка, Author - Автор программы, Version - Версия программы, Comment - Комментарий.
6.1.3. Запаковываем папку в любой удобный вам архив (RAR, TAR, GZ, 7Z, ZIP), и переименовываем в "имя программы".mgx

6.2. Создание PEP пакета:
6.2.1. Создаём папку с именем "app", помещаем в нее необходимые файлы (дата файлы приложения, исполнительные файлы, скрипт запуска).
6.2.2. Создаём рядом с папкой файл "description.ini", редактируем его содержимое следующим образом:
Код

[Actions]
Silent=0
InstallApp = 1  
AddAppToMenu = 1

[InstallApp]
Name = Jump n Blob
Exec = run.sh
InstallPath = ../../mmc/mmca1/.Programs/jump_n_blob/
AppLockable = 1
Author = http://www.2d-retroperspectives.org | Philipp. Port by -=Strelok=-, EXL (c) MotoFan.Ru 08.01.2010
Version = 0.1
Daemon = 1
BigIcon= icon.png
AniIcon= icon.png
Icon= icon.png

[AddAppToMenu]
ParentFolder= root

Где, Name - имя программы, Exec - запускаемый файл, Icon | AniIcon | BigIcon - иконка, Author - Автор программы, Version - Версия программы, InstallPath - Путь установки.
6.2.3. Создаём иконку, рядом с папкой "app" и "description.ini".
6.2.4. Запаковываем иконку, папку "app" и "description.ini" в архив формата TAR, затем сжимаем его в GZ переименовываем в "имя программы".pep

7. Полезные ссылки, документация, наши проекты.

7.1. Исходники, сайты с исходниками. Множество интересных проектов есть на code.google.com и sf.net
7.1.1. Исходники проектов, базирующихся на SDL:
libsdl.org/games
libsdl.org/demos
http://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,46
http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,46
7.1.2. Исходники проектов, базирующихся на QT:
http://www.elsix.org/index.php?w=browse - В основном там под Sharp Zaurus, но идеи создания приложений и сорцы найти можно.

7.2. Документация, темы для прочтения:
Пробуем портировать игры и проги сами
Разработка софта под MOTOMAGX, начну небольшой HOWTO
Компиляция нативных приложений под E6/A1200, Создание окружения для компиляции
SDL библиотека
http://plg.lrn.ru/wiki/Заглавная_Страница
http://plg.lrn.ru/doc/sdl/index.html
http://doc.qt.nokia.com

7.3. Проекты:
http://code.google.com/p/open-mgx/ - исходники программ от Ant-On'a
http://code.google.com/p/sdl-magx/ - библиотека SDL HW для MotoMAgx от Ant-On'a
http://code.google.com/p/zmessanger/ - нативная аська, автор Ant-On
http://sourceforge.net/projects/qte2console/ - qte2console от DoomChisel
http://code.google.com/p/motocakerteam/ - исходники программ от испанцев MotoCakerTeam
http://code.google.com/p/zsoft/

8. Мануалы данной темы:

Если кто не может запустить ZN5Encoder в Magic box - пост #290
Нативные заставки на основе портированных мной и Neomoto демок! - пост #291
Мануал по установке Tmake в тулчейн, и правки созданного им MakeFile - пост #484
Изучение разделяемых библиотек (so) - пост #1440
Эмуляция нажатия клавиш на Motorola ZN5 - пост #1684


© EXL for MotoFan.Ru 27.08.2011
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 21678
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21806
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21982
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 23247
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 22.7.2020, 20:02


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



Цитата(fill.sa @ 22.7.2020, 22:53) *

Unreal_man,
Наклепай к моим остальным плагинам стола , оформлений разных Мои плагины(виджеты) рабочего стола для MagX

Они у меня не работают
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 23.7.2020, 6:24


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(Unreal_man @ Вчера, 21:02)
* Они у меня не работают

Аа ну у тебя же зинимод этот. Хотя вин както у себя запускал Мои плагины(виджеты) рабочего стола для MagX
Да и помоему мы у тебя тоже чтото запускали через жуткие костыли.

Сообщение отредактировал fill.sa - 23.7.2020, 6:25
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 23.7.2020, 8:56


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



Какие-то твои плагины работали. Погодник точно нет. А мне он только и нужен. Ну ещё прткольно было бы завести то твоё начинание где в одном плагине и часы и погода - вот где была бы бомба.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 24.7.2020, 8:45


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Unreal_man,
Ну да, для зини мода нужно отдельно все отлаживать сидеть и скорее всего даже переделывать мод. Я только на своем моде делал небольшую отладку, другие хз.

А для этого Мои плагины(виджеты) рабочего стола для MagX , как я говорил, нужно делать переборщик погоды какой-то. Сам я этим не могу и не сильно уже хочу заниматься.
Если кто сделать, тогда уже прикрутим к плагину.
Тут сейчас глянул на фотки и подумал , если куда-то в плагине всунуть строку со статусом зарядки, можно былобы родной выкинуть и кусок рабочего стола освободить.

Добавлено позже (24.7.2020, 9:50):
Нашел для 5кюта такой простой вариант
https://doc.qt.io/qt-5/qtpositioning-weathe...fo-example.html

Но у нас с кют2 думаю придется свой велосипед на c++ делать.

Сообщение отредактировал fill.sa - 24.7.2020, 8:45
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.7.2020, 6:09


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(fill.sa @ Вчера, 11:45)
* Ну да, для зини мода нужно отдельно все отлаживать сидеть и скорее всего даже переделывать мод.

Или использовать мопед из Desk Clock, а не делать моноколесо на топлевных ячейках. wink.gif

Сообщение отредактировал VINRARUS - 25.7.2020, 6:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 30.8.2020, 17:58


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Обнаружил интересную вещицу.
Раньше для работы с чем-то по сети пытались задействовать разные вещи на основе курла или вгета.
А у qt есть свой велосипед в виде QTcpSocket и QUdpSocket, которые по сути(особенно tcp сокет) это обычный QAbstractSocket.

А инструкция по переносу кода на новый qt гласит что QAbstractSocket это замена прежнего QSocket в qt2.
Лезем в тулчэйн магикса и обнаруживаем заголовочный файл qsocket.h
Есть там еще, кстати и qserversocket.h, на котором можно организовывать уже серверную часть.

Ну чтож, теперь можно родными средствами замутить обмен данными по сети. Например дергать погоду из какой-нить апи. Или например , посмотреть что передается в этих интересных портах которые находит nmap
Код
PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
23/tcp    open  telnet
80/tcp    open  www
139/tcp   open  netbios-ssn
5002/tcp  open  rfe
11001/tcp open  testagent



Вот небольшой примерчик накидал который может получить ответ от сервера
Код

root# /var/log/MainWindow_ZN5
void MainWindow::sendRequest()
QT Show: 552 setAltitude and requestFocus, winId:1394, fget:1, alt:0, fixed:1, order:1

HostAddress: 0
Connected 192.168.1.5:80 success
void MainWindow::slotReadSocket()
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>


Ну и простенький код, без лишних проверок как это все работает. QSocket соединяется с "192.168.1.5" по порту 80 , через sendRequest() отсылает белеберду в нашем случает это "fff" и через slotReadSocket)( получает ответа которым выводим в консоль.

Код

MainWindow::MainWindow ( const QString &Argum, /*Q*/ZWidget* parent /*,WFlags fl*/)
    : ZKbMainWidget (
#if defined(EZX_E2) || defined(EZX_Z6) || defined(EZX_V8)
  ZHeader::FULL_TYPE
#else
  ZHeader::MAINDISPLAY_HEADER
#endif
  , parent/*NULL*/, "ZMainWidget" /*fl*/)
{


    tcpsocet = new QSocket(this );
    tcpsocet->connectToHost( "192.168.1.5", 80);
    connect( tcpsocet, SIGNAL (connected()), this, SLOT(tcpConnected()));
    connect( tcpsocet, SIGNAL(connectionClosed()), this, SLOT(connectionClosedByServer()));
    connect( tcpsocet, SIGNAL (readyRead()), this, SLOT(slotReadSocket()));
    connect( tcpsocet, SIGNAL(error(int)), this, SLOT(errorConnect(int)));

    sendRequest();


}

MainWindow::~MainWindow()
{
    tcpsocet->close();
}


void MainWindow::tcpConnected()
{
    QHostAddress ha;
    qDebug( QString("HostAddress: %1 ").arg(QString::number( ha.ip4Addr()) ));

    qDebug(QString("Connected %1:%2 success").arg(tcpsocet->peerName()/*tcpsocet->address().toString() */) .arg(tcpsocet->peerPort()) );
}

void MainWindow::errorConnect(int err)
{
    qDebug( QString("Error connect: %1 ").arg(QString::number( err )));
}

void MainWindow::slotReadSocket()
{
    qDebug("void MainWindow::slotReadSocket()");

    qDebug(tcpsocet->readAll());
}


void MainWindow::sendRequest()
{
    qDebug("void MainWindow::sendRequest() ");

    QByteArray ba;
  
    QDataStream out(block, IO_WriteOnly);
    out  << "fff";

    tcpsocet->writeBlock( ba.data(), ba.size());
}


Код
class MainWindow : public ZKbMainWidget
{
  Q_OBJECT;


public:
  MainWindow( const QString &Argum, /*Q*/ZWidget* parent = 0 /*, WFlags fl = 0*/);
  ~MainWindow();

  QSocket * tcpsocet;
    void sendRequest();

private:
    

public slots:
    void slotReadSocket();
    void tcpConnected();
    void errorConnect(int);



};


Сообщение отредактировал fill.sa - 30.8.2020, 18:56
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 30.8.2020, 23:06


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



ИМХО, проблема в родных средствах Qt Network в том, что сегодня они не работают с современным HTTPS, которым сегодня покрыт весь интернет. В то время как свежесобранный curl вкупе с OpenSSL вполне себе будет работать с любым API. Кстати у curl есть библиотека libcurl, которую тоже можно использовать для получения данных по сети. И она будет работать практически со всеми протоколами, даже теми, которые встречаются сегодня очень-очень редко, типа gopher://

Цитата(fill.sa @ Сегодня, 0:58)
*Раньше для работы с чем-то по сети пытались задействовать разные вещи на основе курла или вгета.

Ну чтож, теперь можно родными средствами замутить обмен данными по сети. Например дергать погоду из какой-нить апи.

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


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



Цитата(EXL @ 31.8.2020, 2:06) *

ИМХО, проблема в родных средствах Qt Network в том, что сегодня они не работают с современным HTTPS

Сейчас изменил запрос с https на http в погоднике который я в qt под ведро писал - работает, так что у нас есть шанс. smile.gif

fill.sa хорош
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 1.9.2020, 18:25


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Цитата(Unreal_man @ Вчера, 18:40)
* Сейчас изменил запрос с https на http в погоднике который я в qt под ведро писал - работает,

Так на современном Qt под Android оно и будет нормально работать. Не забывай, что в MotoMAGX -- Qt 2 разлива 2001 года, как и многие другие сетевые библиотеки. Поэтому встроенный в ZN5 браузер сегодня не может открывать какие-либо современные сайты.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 21.9.2020, 20:15


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Заглянул я тут в заголовочный ZApplication.h и попалось там пару интересных методов,
Код
void setAutoInvokeKb( bool invoke = true );
bool getAutoInvokeKb();
void setAutoInvokeKb( QWidget* editableWidget, bool invoke = true );
bool getAutoHideKb();
static void setMouseMode( QWidget* widget, int mode );
static int getMouseMode( QWidget* widget );

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


uint setAutoInvokeKb(bool param_1)
{
  return (uint)param_1;
}

/* ZApplication::getAutoInvokeKb() */
undefined4 getAutoInvokeKb(void)
{
  return 0;
}

/* ZApplication::getAutoHideKb() */
undefined4 getAutoHideKb(void)
{
  return 0;
}


А вот setMouseMode и getMouseMode оказались в полном обьеме в библиотеке и даже в ней же и используются. А также обнаружился целый класс QMouseEvent который тоже как-то задействован в библиотеке, но заголовочного файла в нашем сдк нету.
Интересно что именно оно делает в магиксе.

А еще нашел класс курсора и более того сей отголосок курсора работает
QApplication::setOverrideCursor(QCursor(WaitCursor));
или если вызывать из qwidget
setCursor (QCursor(WaitCursor));
Это заставляет рядом с курсором(который как бы есть но у нас не видно) появиться часам ожидания. Для этого обязательно нужно чтобы в оформлении была добавлена эта иконка. В свое время я удачно ее добавил в свой мод и теперь смог понять, что курсор таки на экране присутсвует.
По заголовочному файлу курсор принимает такие состояния
Код

enum QCursorShape {
    ArrowCursor, UpArrowCursor, CrossCursor, WaitCursor, IbeamCursor,
    SizeVerCursor, SizeHorCursor, SizeBDiagCursor, SizeFDiagCursor,
    SizeAllCursor, BlankCursor, SplitVCursor, SplitHCursor, PointingHandCursor,
    ForbiddenCursor, LastCursor = ForbiddenCursor, BitmapCursor=24 };

Ну или для наглядности тут список https://doc.qt.io/qt-5/qt.html#CursorShape-enum
Пробовал ставить другие состояния, ничего неотображается, возможно нужны иконки, но не знаю, извините какие названия.

Сообщение отредактировал fill.sa - 21.9.2020, 20:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 21.9.2020, 20:54


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 3:15)
* Интересно что именно оно делает в магиксе.

Возможно курсор использовался для отладки. Qt 2.3.6 поддерживает работу с мышью/курсором из коробки, для EZX-устройств и на отладочных платах это могло быть задействовано и так и осталось, не вырезали поддержку курсора из Qt полностью. На том же эмуляторе он появлется. Может быть его вообще просто невидимым сделали и всё grin.gif

Цитата(fill.sa @ Сегодня, 3:15)
* Это заставляет рядом с курсором(который как бы есть но у нас не видно) появиться часам ожидания. Для этого обязательно нужно чтобы в оформлении была добавлена эта иконка. В свое время удачно ее добавили теперь смог понять что курсор таки на экране присутсвует.

В центре экрана появляется? Можно скрин? В EZX (E6, A1200) я помню в центре этот WaitCursor появлялся из коробки. Судя всего это оно и есть.

А вообще для какой цели ты ковыряешь эти курсоры? Мышку ты всё равно не заставишь работать на интерфейсе MotoMAGX. Во-первых, проблема лежит уровнем ниже GUI, а во-вторых из MotoMAGX GUI наверняка вырезали или просто не реализовали все эти обработчики кликов мышки на интерфейсе.

Вот я помню в порте Qt 4 на MotoMAGX, который мы ковыряли с rock88, курсор был и отлично работал:

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

https://exlmoto.ru/qt-webkit-motomagx/
https://exlmoto.ru/qutim-motomagx/

При этом был написан специальный драйвер, который при определённом нажатии клавиатуры мог позволить перемещать курсор мышки с помощью стрелок (или 2, 4, 6, 8) и совершать клики правой/левой кнопками мышки на громкость "+" и "-". Кроме того была реализована всплывающая полупрозрачная QWERTY-клавиатура (последний скриншот), позволяющая вводить в текстовые поля в Qt-программах различные данные. К сожалению, использовать всё это на кнопочном телефоне было не слишком-то удобно, да и сыроват порт был. Поэтому за пределы скриншотов так ничего и не вышло, хотя потенциал был. Ну а там и Android'ы начали мир захватывать и те люди, которые работали над портом Qt 4 перешли на эти девайсы smile.gif
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 24.9.2020, 7:11


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(EXL @ 21.9.2020, 21:54)
* В центре экрана появляется? Можно скрин? В EZX (E6, A1200) я помню в центре этот WaitCursor появлялся из коробки. Судя всего это оно и есть.


Да, просто в центре показывается , вот такая иконка по идее из коробки в езх идет.
Прикрепленное изображение

Пробовал поиграться с курсором, например есть методы для получения положение, но увы через переопределение mouseMoveEvent( QMouseEvent * me) ничего не выплевывает.
Думал попробовать сам установить положение курсора QCursor::setPos(QPoint(100,100)); , но оказалось что в заголовке метод есть, но в библиотеке его нету. Прикольно конечно, что установить положение нельзя, а метод на получение есть ))
Еще есть интересный момент, что устанавливать курсор можно не только из предустановленных, а вгрузить свой QPixmap, попробовал, есть такая функция в бибиотеке, но увы моя загруженная картинка так и не появилась.

Цитата(EXL @ 21.9.2020, 21:54)
* На том же эмуляторе он появлется.

если не ошибаюсь, на эмуле там в переменных среды указывается для qws показывать курсор или нет.
Но на живом телефоне это сложновато провернуть.

Цитата(EXL @ 21.9.2020, 21:54)
* А вообще для какой цели ты ковыряешь эти курсоры? М

Вообще совсем по другому делу копался, пару новых заголовочных файлов делал. Залазил в ZApplication.h ну и бросились эти методы в глаза, как то раньше даже не обращал внимания на них. И дальше понеслось уже вникание что за сии методы такие и для чего.

Сообщение отредактировал fill.sa - 24.9.2020, 7:17
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 24.9.2020, 13:11


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 14:11)
* Да, просто в центре показывается , вот такая иконка по идее из коробки в езх идет.

Да, именно так он и показывался на A1200/E6.

Цитата(fill.sa @ Сегодня, 14:11)
* Залазил в ZApplication.h ну и бросились эти методы в глаза, как то раньше даже не обращал внимания на них. И дальше понеслось уже вникание что за сии методы такие и для чего.

Ну для A1200/E6 (EZX) это могло быть оправдано, поэтому эти методы и остались в MotoMAGX ради совместимости, например. Интерфейс MotoMAGX создавался ведь из EZX'ового.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 16.1.2021, 11:06


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Разбирал тут на днях свои BackUp'ы по тематике Motorola и MotoFan.Ru (пять DVD-дисков ёмкостью 4.7GB с различными данными в промежутке 2003-2011 годов) и нашёл архив с кучей нативных игр для Motorola ZN5 и некоторых других телефонов Motorola на Linux.

Прикрепленное изображение

Так как множество ссылок в теме Нативные игры и эмуляторы для ZN5 умерло, эти MGX-пакеты можно скачать скопом отсюда:

https://yadi.sk/d/OqvPbqOHi7WcJQ (~2.2 GiB)

Может кому пригодится.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 17.1.2021, 9:40


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Вчера, 13:06)

Можна на общедоступный хостинг?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 17.1.2021, 10:37


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



VINRARUS,
Synergy скоро должен залить на сервер МФ этот архив, как и MOTODEV Studio for Linux. Как зальёт, дам ссылки.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Воха
сообщение 17.1.2021, 10:43


Сектант Xiaomi
*******

Группа: Контент-менеджеры
Сообщений: 1 904
Регистрация: 24.8.2007
Из: Дніпро 🇺🇦
Пользователь №: 145 492
Модель телефона: Redmi 9T ,Lenovo TB350XU
Прошивка: Android 12-13


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



Рейтинг: 445.5



Цитата(VINRARUS @ Сегодня, 11:40)
* Можна на общедоступный хостинг?

А вот взял бы сам и перезалил wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Synergy
сообщение 17.1.2021, 11:17


MotoLoudness
*****

Группа: Администраторы
Сообщений: 366
Регистрация: 25.1.2006
Из: Уфа
Пользователь №: 67 254
Модель телефона: OnePlus 9 Pro 5G

Рейтинг: 402



Цитата(VINRARUS @ 17.1.2021, 14:40) *

Цитата(EXL @ Вчера, 13:06)

Можна на общедоступный хостинг?


Прошу.

https://motofan.ru/files/soft/MotoLinuxNative.zip
https://motofan.ru/files/soft/MOTODEV_Studio.zip
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 17.1.2021, 11:21


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Synergy,
Спасибо. Обновил ссылки в релевантных темах!
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 17.1.2021, 14:46


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



EXL, Synergy, спасибо, смотрю там не токо игры но и проги. clapping.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 5.2.2021, 14:16


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Вот ещё нашёл сохранённые архивы страничек различных тем ветки Motorola ZN5. В них ещё существует куча скринов на сторонних хостингах, которые в настоящих темах давно ушли в небытие.

Если бы мне позволяло время, перезалил бы все битые скриншоты в топиках софта и игр для ZN5.

Формат сохранённых страниц -- MHT, MHTML. Их можно просматривать с помощью старой Opera, Internet Explorer и т. д.

Под Linux'ом можно воспользоваться браузерами Falkon или же старой Opera, всё ещё доступной на официальном ftp-сервере: https://ftp.opera.com/ftp/pub/opera/linux/1216/

Chrome и Chromium вроде как тоже этот формат открывают.
Прикрепленный файл ZN5_Threads.zip   ( 79.01 мегабайт ) Кол-во скачиваний: 93
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 9.9.2021, 14:38


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



Про красную кнопку ничего не слышно?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 9.9.2021, 19:15


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(Unreal_man @ Сегодня, 17:38)
* Про красную кнопку ничего не слышно?

Зависит от звуковой темы. grin.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 10.9.2021, 12:31


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(Unreal_man @ Сегодня, 15:38)
* Про красную кнопку ничего не слышно?

Которая от ядерных ракет в черном чемоданчике?
Не ниче неслышно, чемоданчик так и не нашелся)
А если серьезно то оно не к ядру относится, там уже оболочка ворочает кнопками.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 10.9.2021, 14:59


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Unreal_man, VINRARUS, fill.sa,
А что там за проблема с красной трубкой? Объясните подробнее пожалуйста. Типа если её нажимаешь, то все приложения закрываются? Может через keyd: https://github.com/EXL/keyd/ можно её как-то подфиксить? Deamon этот вроде ловил нажатие красной трубки?

ps.gif И ещё напомните, пожалуйста, у нас нет исходников бинарника qtsnap?
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 11.9.2021, 4:50


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



Цитата
А что там за проблема с красной трубкой?

Я в тех. части не силён, но по-моему килится весь натив который в фоне был. Можно не нажимать красную канеш и яву сворачивать шорткатами с выходом на рабочий стол, но тогда при запуске из-под таск менеджера ява путается(если у тебя скажем 3 явы открыто) и ты вызывая одну яву можешь открыть совершенно другую. Поэтому мне кажется что яву надо именно через красную сворачивать(приостанавливать), тогда порядок не нарушается. Это хорошо видно именно когда ты в яве и вызвав таскмен пытаешься перейти в другую яву, тут то и может рандомная из свернутых открыться. Возможно всё дело именно в jvm, которая не расчитана на несколько приложений.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 12.9.2021, 17:26


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Unreal_man,
Проблема только с Java-приложениями проявляется? Вроде как не помню, чтобы нативные приложения убивались по красной трубке когда они свёрнуты. На всех модах и прошивках такое?
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 13.9.2021, 10:12


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



EXL, окна путаются только между явами, по красной слетает весь свернутый натив. Хочешь правильно открывать яву - нажимай красную, хочешь чтобы натив висел в фоне - красную не жми.

Сообщение отредактировал Unreal_man - 13.9.2021, 10:14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 13.9.2021, 15:28


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Вчера, 17:59)
* Типа если её нажимаешь, то все приложения закрываются?

На PE3 для Z6 Bez делал либу которая через LD_PRELOAD расшаривалась на весь софт запущеный с гуя.
Тогда красная не закрывала фоновый натив никогда.
Цитата(EXL @ Вчера, 17:59)
* Deamon этот вроде ловил нажатие красной трубки?

Ловит вроде, но не перехватывает жэ. wink.gif
Цитата(EXL @ Вчера, 20:26)
* Вроде как не помню, чтобы нативные приложения убивались по красной трубке когда они свёрнуты.

Я даже костыль для NetExec PRO делал, шобы демон GPRS конекта сам перезапускался после красного нажатия, так как закрывался... blind.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 13.9.2021, 15:44


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 22:28)
* На PE3 для Z6 Bez делал либу которая через LD_PRELOAD расшаривалась на весь софт запущеный с гуя.

У тебя эта либа осталась? Скинь её сюда.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 13.9.2021, 17:02


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ 13.9.2021, 18:44) *

Цитата(VINRARUS @ Сегодня, 22:28)
* На PE3 для Z6 Bez делал либу которая через LD_PRELOAD расшаривалась на весь софт запущеный с гуя.

У тебя эта либа осталась? Скинь её сюда.

По моему эта.
Прикрепленный файл libtaskman.zip   ( 4.32 килобайт ) Кол-во скачиваний: 14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 13.9.2021, 19:17


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



VINRARUS, Там вроде ничего сложного, но логику с первого взгляда в IDA или Ghidra мне понять сложновато. Всего в либе знаковыми похоже являются две функции.

1. Через LD_PRELOAD хачится метод-слот ZApplication::slotReturnToIdle(int) из системной библиотеки, а дальше в отдельной функции перебирается список классов (возможно по шаблону) тех окон, которые при определённых условиях могут свернуться, а не закрыться (тут не уверен, но похоже на это). Видимо в этот метод-слот попадает сигнал, который отправляется после нажатия красной кнопки.

2. Отдельная функция isHidable() возвращает в зависимости от условий три разных значения (0, 1, 2) и похоже является просто фильтром классов окон. Вот этот список:

1. AM_Mainmenu, возможно этот класс отсутствует на ZN5, так как у нас flowplayer используется для меню.
2. ZOptionsMenu, наверное всплывающие менюшки в приложениях. Нажатие на красную трубку по задумке BeZ'а должно их скрывать, а не выходить на главный экран?
3. ZMessageDlg, аналогично вышесказанному.
4. ZNoticeDlg, аналогично вышесказанному.
5. AM_SecondMenu, см. первый пункт.
6. SETUP_, ммм, если в кастомной прошивке для Z6 от BeZ'а нажать в системных настройках чего-либо, вроде профилей и тем, красную трубку, возврата на главный экран не происходит?
7. _UI_ListView, ~
8. QWidget и J2ME_JAID_SplashScreen, которые как-то связаны между собой.

Странные моменты:

Либа ищет файлик /ezxlocal/download/appwrite/setup/ezx_pe.cfg и читает из него какие-то значения, как-то связанные с zTaskManLib, секции appPath и runApp. Ещё есть строка PE/zTaskMan/, похоже имя канала, если он не зарегистрирован -- проверяются какие-то данные и похоже пытается запуститься zTaskMan через функцию system() (не уверен), но увы непонятно что именно формируется для аргумента этой функции, но похоже что полный путь к исполняемому файлу zTaskMan.

VINRARUS, из-за подгрузки этой либы через LD_PRELOAD каким-нибудь образом может запускаться zTaskMan на моде BeZ'а? Ты не пробовал LD_PRELOAD'нуть эту либу на ZN5? Часть с zTaskMan'ом там отлетит наверняка, но вот этот фильтр по скрытию виджетов вместо их закрытия возможно должен отрабатывать.

Примерно такой вот реверс-инжиниринг по наитию, жаль BeZ не оставил после себя исходников. Хотя возможно всё это валялось на SVN того DarkTech-сайта...
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 14.9.2021, 14:28


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(EXL @ Вчера, 20:17)
* Видимо в этот метод-слот попадает сигнал, который отправляется после нажатия красной кнопки.

Именно, вот в моем примере есть как оно работает
https://github.com/fillsa/motomagx-hellowor.../HelloWorld.cpp
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 14.9.2021, 17:15


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Вчера, 22:17)
* 6. SETUP_, ммм, если в кастомной прошивке для Z6 от BeZ'а нажать в системных настройках чего-либо, вроде профилей и тем, красную трубку, возврата на главный экран не происходит?

Там даже калькулятор не закрывался красной — ни в фоне, ни на передку. Я для PE4 делал костыли для системных прог из за этого, а то надоедало выходить через назад-назад. wacko.gif
Цитата(EXL @ Вчера, 22:17)
* Либа ищет файлик /ezxlocal/download/appwrite/setup/ezx_pe.cfg

Ну там настройки мода. Правда програмисты часто так увлечены полетом мысли шо не обращают внимание на задержки и тормоз из за переизбытка идей. А потом либы успевай подчищать... grin.gif
Цитата(EXL @ Вчера, 22:17)
* из-за подгрузки этой либы через LD_PRELOAD каким-нибудь образом может запускаться zTaskMan на моде BeZ'а?

Никогда не замечал такого.
Цитата(EXL @ Вчера, 22:17)
* Ты не пробовал LD_PRELOAD'нуть эту либу на ZN5?

Шоб Я, и не пробовал? lol.gif Канешно пробовал давно.
Цитата
# export LD_PRELOAD=/home/libtaskman.so
# /usr/SYSqtapp/calculator/calculator
QT Show: 1565 setAltitude and requestFocus, winId:4253, fget:1, alt:0, fixed:1, order:1
SoftButton No. 0 is hidden, or it is empty!!!SoftButton No. 1 is hidden, or it is empty!!!SoftButton No. 1 is hidden, or it is empty!!!ZApplication::slotSystemMessage msg=ReturnToIdle(int) data=��x
/usr/SYSqtapp/calculator/calculator: symbol lookup error: /home/libtaskman.so: undefined symbol: _ZN12QApplication15topLevelWidgetsEv

Цитата(EXL @ Вчера, 22:17)
* жаль BeZ не оставил после себя исходников.

Та он тупо забил на всех из за своих обид и мнительности... а мне потом доделывай. king.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 15.9.2021, 1:20


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Unreal_man, VINRARUS, fill.sa,
Хорошо, я более-менее понял идею которую использовал BeZ, будет свободное время -- я поковыряю в этом направлении.

Цитата(VINRARUS @ Сегодня, 0:15)
* undefined symbol: _ZN12QApplication15topLevelWidgetsEv

Ох уж эти вырезанные методы из библиотеки Qt 2.3.8 в ZN5. Для чего всё это вообще вырезали -- непонятно. Функции скругления прямоугольников вырезали. Набор цветов вырезали. Облегчить что ли пытались? Но опять же непонятно с какой целью вообще это делали. Только убили напрочь совместимость и интероперабельность между MotoMAGX-телефонами.

Цитата(VINRARUS @ Сегодня, 0:15)
* Та он тупо забил на всех из за своих обид и мнительности... а мне потом доделывай. king.gif

Да, все эти его конфликты вылились, например, в то что PEP-пакетами на ZN5 не получили такого широкого распространения, как MGX-пакеты. Хотя формат PEP-был куда как более продвинут. Хотя на мой взгляд было бы круто в самом начале разработки придерживаться мотороловского формата описания пакетов, тот же MPKG.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 15.9.2021, 17:27


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(EXL @ Сегодня, 2:20)
* Хотя формат PEP-был куда как более продвинут. Хотя на мой взгляд было бы круто в самом начале разработки придерживаться мотороловского формата описания пакетов, тот же MPKG.

что я и попытался сделать у себя в моде с новым пакетным менеджером. Единое управление пакетами(PackMan) для *.pep *.mpkg *.mgx
Как-то доберусь рагрезсти мусор - выложу исходники пакетного мэнеджера.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 15.9.2021, 17:42


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



В MPKG было добавление асоцыацый ФМ и добавление в авторан, как у PEP?
Цитата(EXL @ Сегодня, 4:20)
* Да, все эти его конфликты вылились, например, в то что PEP-пакетами на ZN5 не получили такого широкого распространения, как MGX-пакеты. Хотя формат PEP-был куда как более продвинут.

Так, а кто первичный автор PEM?
Числится Bez, Ant-ON, Abram... ну и моя похаканая версия паравозиком прицепилась. grin.gif
Цитата(fill.sa @ Сегодня, 20:27)
* Как-то доберусь рагрезсти мусор - выложу исходники пакетного мэнеджера.

Хотя б описание возможностей нормальное сделал...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 15.9.2021, 22:39


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 0:42)
* В MPKG было добавление асоцыацый ФМ и добавление в авторан, как у PEP?

Да, ассоциации к файлам там были. Вот примерное описание этого формата: https://github.com/OpenEZX/openezx-wiki/blob/master/MPKG.mw

Авторана вроде как не было. Хотя доподлинно неизвестно что там было в оригинальном Motorola'вском формате. В любом случае всё это можно было сделать уже на стороне монстрпака. Типа запускать какой-нибудь пост-установочный скрипт и т. д. В любом случае такая кастомизация бы пригодилась.

Цитата(VINRARUS @ Сегодня, 0:42)
* Так, а кто первичный автор PEM?

Насколько я знаю, автор этой программы -- BeZ. А вот Ant-ON портировал PEM на ZN5. Истории о том, почему BeZ откололся от сообщества MotoFan.Ru и пытался сделать собственный проект mototrubka.ru или как-то так, я не знаю. Возможно из-за каких-то старых разногласий с бывшей администрацией. В то время я не был активен в ветках Motorola на Linux, у меня был ROKR E1 и я был счастлив.

Формат MGX и первую версию MgxBox (MpkgBox) нам для ZN5 сделал или портировал американец kidscracker. Почему MGX и где эти пакеты раньше появились у нас на ZN5 или на E8 -- я не знаю. Позже тему с MGX-пакетами развили китайты, которые начали как сумасшедшие плодить кривые и глючные Magic Box'ы, теряющие приложения. Я всегда пользовался классическим и простейшим MgxBox'ом от kidscracker'а и не знал проблем с тучей приложений и игр. Возможно MGX-пакеты так назвали, чтобы отличать их от MPKG-пакетов в Z6 и V8, которые вроде как соотвествовали формату Motorola, а вроде как и не очень. Испаноговорящие юзеры использовали в своих монстрах для Z6/V8 именно их.

Ещё почему-то на EZX был популярен формат PKG, отличий которого от MPKG вроде как не было. Кажется он был просто менее строгим и мог устанавливаться на кастомных прошивках.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 16.9.2021, 7:25


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(VINRARUS @ Вчера, 18:42)
* Так, а кто первичный автор PEM?

Название само за себя говорит, pem(project evolution manager)изначально программа из pe мода/
А автор PE мода изначально bez, хотя по классике в моде учавствовали наработки всего сообщества.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 16.9.2021, 16:00


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 1:39)
* Да, ассоциации к файлам там были.

Значит BeZ просто конструктор велосипедов. grin.gif
Цитата(EXL @ Сегодня, 1:39)
* А вот Ant-ON портировал PEM на ZN5.

Так у него и исходники есть? dribble.gif
Цитата(EXL @ Сегодня, 1:39)
* Истории о том, почему BeZ откололся от сообщества MotoFan.Ru и пытался сделать собственный проект mototrubka.ru или как-то так, я не знаю.

О, давно в движке этого форума убрали автозамену "mototrubka.ru"? lol.gif
Я не застал этот момент, но немного застал уход с mototrubka.ru, когда он странными вещами начал заниматься: комерческий софт для motomagx, PEM с привязкой к PE (чесно говоря привязка набыстроруку и хакается в тектовом редакторе), чето там с обидами шо кто-то его разработку за свою выдал где то, ну и в конце обиделся сам на себя шо не туда своё время потратил... glare.gif
Цитата(EXL @ Сегодня, 1:39)
* Формат MGX

Он очень примитивен... bad.gif


Добавлено позже (16.9.2021, 19:06):
Цитата(fill.sa @ Сегодня, 10:25)
* А автор PE мода изначально bez

А как же
Цитата(nsk_qwerty @ 21.7.2008, 6:53)
* Не забываем говорить спасибо Abram-у за все его начинания по проекту, BeZ-у (т.е. мне) за PEManager и продолжению развития мода, nsk_qwerty за само создание мода

? huh1.gif
Тыжисследователь smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

46 страниц V « < 38 39 40 41 > » 
Ответ в темуСоздание новой темы
16 чел. читают эту тему (гостей: 16, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 13.7.2025, 21:48

Форум живёт: