motofan logo
46 страниц V « < 43 44 45 46 >        
> 

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

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


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 140
Регистрация: 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 килобайт ) Кол-во скачиваний: 21669

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 килобайт ) Кол-во скачиваний: 21785

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 килобайт ) Кол-во скачиваний: 21974

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 мегабайт ) Кол-во скачиваний: 23233

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 килобайт ) Кол-во скачиваний: 21669
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21785
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21974
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 23233
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 3.1.2022, 5:43


Гуру
******

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

Рейтинг: 400



VINRARUS,
Ты лучше конкретные примеры выкатывай, а не предопложения. А во вторых нормальный софт будет работать, более того нормальный софт к бузибоксу никаким боком ))) он нативный и зависит от библиотек уже.
С таким успехом нет смысла и прошивку делать, ну тыж потеряешь очень много совместимости.
А использовать баги как фичу это конечно жестко,.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 3.1.2022, 9: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 @ Сегодня, 8:43)
* Ты лучше конкретные примеры выкатывай, а не предопложения.

та банально date, или тот же httpd плохо совместимы разных версий.stop.gif
Цитата(fill.sa @ Сегодня, 8:43)
* А во вторых нормальный софт будет работать, более того нормальный софт к бузибоксу никаким боком ))) он нативный и зависит от библиотек уже.

От тех библиотек которые токо на твоем моде работают? Твой софт слишком нативный, токо на твоем моде работает.russian.gif
Хотя я в него смотрел, ты тоже busybox тайком используеш.rtfm.gif
Цитата(fill.sa @ Сегодня, 8:43)
* С таким успехом нет смысла и прошивку делать, ну тыж потеряешь очень много совместимости.

Тебе — нет, с таким подходом. smile.gif
Цитата(fill.sa @ Сегодня, 8:43)
* А использовать баги как фичу это конечно жестко,.

Лучше скласть лапки и 10 лет умолять автора исправить баг?worthy.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 3.1.2022, 11:16


Rock The Microphone
********

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

Рейтинг: 4654



VINRARUS, отлично!

Цитата(VINRARUS @ Вчера, 19:59)
* интервал обновления — 0.2 с,

Насколько оно вписывается в эти 0.2 с? Я тут параллельно ковырял VNC и там на динамической картинке что-то всё совсем всё плохо, 1 FPS. Наверное надо какие-то значения подбирать более тщательно...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 3.1.2022, 13:29


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 14:16)
* Насколько оно вписывается в эти 0.2 с?

Это таймаут javascript после окончания загрузки картинки, по логике: время полной загрузки картинки+0.2 с. king.gif
На JPG30 выходит где то 0.3с, на BMP где то 0.45 с.
Это при минимальной фоновой загрузке ЦП (автопрокрутка в ДФ длинного названия файла).
При листании списков время смены кадра больше (0.2 тамаут):
На JPG30 0.45с, на BMP где то 0.75 с.

Но особенно при полноэкранной анимацыи бывает тиринг (разрыв кадра). not_i.gif

Сообщение отредактировал VINRARUS - 3.1.2022, 13:30
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 4.1.2022, 17:37


Rock The Microphone
********

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

Рейтинг: 4654



VINRARUS,
Понятно, спасибо! Альфа-версия VNC-клиента к эмулятору у меня выдаёт дофига FPS, а вот к реальному устройству увы, нужно где-то что-то оптимизировать, но пока не понимаю где.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 6.1.2022, 11:18


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ 3.1.2022, 10:09)
* От тех библиотек которые токо на твоем моде работают?

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

Цитата(VINRARUS @ 3.1.2022, 10:09)
* а банально date, или тот же httpd плохо совместимы разных версий.

Да ты не обстрактными фразами пиши, а конкретные ключи и примеры. Все можно менять, было бы желание, а не желанине демагонию разводить.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 6.1.2022, 21:22


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 14:18)
* Да ты не обстрактными фразами пиши, а конкретные ключи и примеры.

httpd просто разные серверные ответы посылает подпрограм, от чего не совместимы. Смотри Web driver ZN5 разных версий.
date разные форматы требует входящей даты, от чего не совместимы.
Код
busybox date -d "00 00 01 07 2022" +%w

Смотри zForecast разных версий.

Добавлено позже (7.1.2022, 0:26):
Цитата(fill.sa @ Вчера, 14:18)
* ну вопервых не нужно путать не работате на твоем може и на всех остальных.

Шо за дискриминацыя?umnik2.gif

Сообщение отредактировал VINRARUS - 6.1.2022, 21:27
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 7.2.2022, 19:30


Rock The Microphone
********

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

Рейтинг: 4654



fill.sa,
Напомни пожалуйста, что там за защита в Motorola ZN5, которая делает невозможность применения отладчиков вроде gdb и утилит вроде strace? И как её отключить? Оно случайно не в ядре это ограничение было?

Без отладчика трудно заниматься процессом реверс-инжиниринга, на моде от VINRARUS похоже что эта защита активирована, поскольку gdb не выплёвывает backtrace'ы после сегфолтов.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 7.2.2022, 20:48


Гуру
******

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

Рейтинг: 400



EXL,
Да, все это на уровне ядра и его модулей.
Конкретно что правил я уже так сейчас не вспомню, проще собрать мое ядро с гита и прошить я думаю.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 7.2.2022, 21:47


Rock The Microphone
********

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

Рейтинг: 4654



fill.sa,
Ты вроде отправлял Unreal_man бинарные сборки своего ядра? Там есть рабочие образцы? А то собирать его и пихать в SBF очень так лениво.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 7.2.2022, 21:49


Rock The Microphone
********

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

Рейтинг: 4654



VINRARUS,
Кстати, вот этот вот твой скрин с тирингом Софт для ZN5 и прочих MotoMAGX: MGX и PEP, эта картинка что-то знакомая, она из стандартных из флекса Z6? Если да, подскажи из какой прошивки её можно выудить?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 8.2.2022, 4:59


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 0:49)
* Если да, подскажи из какой прошивки её можно выудить?

ZiniMOD king.gif Я там собрал то шо смог найти.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 8.2.2022, 5:52


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 11:59)
* Я там собрал то шо смог найти.

Так она стандартная из какой-то Motorola или просто анимация из Интернета? Если первое, может помнишь из какой именно модели?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 8.2.2022, 15:38


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 8:52)
* Так она стандартная

Да, мотороловская.
Цитата(EXL @ Сегодня, 8:52)
* может помнишь из какой именно модели?

Не. smile.gif Не думаю шо шото отличное от Z6 или ZN5, а то в новее моделях для анимацый применялся DRM.

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


Гуру
******

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

Рейтинг: 400



VINRARUS,
EXL собирает оригинальные картинки из моторол и ему нужна точная модель где можно взять оригинал ну и собственно сам факт из какой модели она.
Вроде так.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 8.2.2022, 17:27


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ Вчера, 22:47)
* fill.sa,
Ты вроде отправлял Unreal_man бинарные сборки своего ядра? Там есть рабочие образцы? А то собирать его и пихать в SBF очень так лениво.

Да пробовали, проблема был как если шить ядро не от той версии прошивки. Точно отваливался wifi и по моему сетка.
Хотя вин говорит что его мод точно на 2cr прошивке. Но особо желанию вникать в чужие моды и почему оно там не все работает нету, лучше автор мода пусть вникнет, ему свой мод ближе.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 8.2.2022, 17:31


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

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


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



Рейтинг: 1211



fill.sa, я с МФ качал все прошывки MOTOMAGX и распаковывал, где видел незнакомую картинку — добавлял в мод wink.gif

Сообщение отредактировал VINRARUS - 8.2.2022, 17:32
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 8.2.2022, 17:33


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 20:27)
* лучше автор мода пусть вникнет, ему свой мод ближе.

Я давно вникнул — у тебя компилятор палёный.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 8.2.2022, 21:52


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Вчера, 22:38)
* Не думаю шо шото отличное от Z6 или ZN5, а то в новее моделях для анимацый применялся DRM.

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

ps.gif Хех, нашёл тут в журнале древнем обзор Motorola RIZR Z6, тогда он ещё именно RIZR назывался.

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

Кстати откуда ты ядро брал для своего мода? Ant-ON собирал? Там наверное только Swap добавлен и нормальный разгон, а вот защиты не отключены были...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 12.2.2022, 10:06


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

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


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



Рейтинг: 1211



Цитата(EXL @ 9.2.2022, 0:52)
* Кстати откуда ты ядро брал для своего мода? Ant-ON собирал?

Думаеш я ядро не могу собрать сам?mamba.gif
Ядро было под 2CR прошывку из репозиториев вроде — щас они поумирали?
Цитата(EXL @ 9.2.2022, 0:52)
* Там наверное только Swap добавлен и нормальный разгон, а вот защиты не отключены были...

Я не помню, наверно не токо это ведь запрета на монтирование на моде же нет.
Обычно я отключал в конфиге перед компиляцыей ядра защиты и DRM всякие.

bash.gifПросто когда началась росийско-украинская война я всю разработку мода забросил, видимо часть даных утеряна, так как я не могу щас найти папку с исходниками ядра ZiniMOD.
В любом случае врятли тогда я используемое ядро расценивал как полностью готовое.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 12.2.2022, 23:21


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Вчера, 17:06)
* Ядро было под 2CR прошывку из репозиториев вроде — щас они поумирали?

Насколько я помню оно там между версиями прошивок не слишком отличалось. Архивы официальных репозиториев Motorola имеются вот тут: https://sourceforge.net/projects/motozinezn..._81.11.2CR_128/ и ванильные исходники ядра соответственно там же. К сожалению не помню, какие именно параметры там отвечают за подобную защиту, наверное нужно будет экспериментировать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 17.2.2022, 18:26


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ 12.2.2022, 11:06)
* DRM всякие.

ДРМ это вроде не про ядро, а вообще чисто про медиа файлы.Да и отключить как таковое нельзя. Может ты всякие noexe отключал, но это тоже не совсем к ядру.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 17.2.2022, 19:04


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 21:26)
* ДРМ это вроде не про ядро, а вообще чисто про медиа файлы.Да и отключить как таковое нельзя. Может ты всякие noexe отключал, но это тоже не совсем к ядру.

motorola_ljap_defconfig читай rtfm.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 18.2.2022, 4:49


Rock The Microphone
********

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

Рейтинг: 4654



Кстати вот насчёт DRM, в кастомных прошивках этот DRM нафиг не нужен, а deamon который обеспечивает его функциональность висит в памяти и жрёт RAM, посмотрите на предмет udadaemon и drmfs в запущенных процессах на своих модах. Это с чистой совестью можно отключить в кастомах.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 19.2.2022, 2:46


Гуру
******

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

Рейтинг: 400



EXL, Я все что можно прибить прибил. Но бывают случаи когда есть зависящие компоненты и не дают это сделать.
Точно не помню по DRM, но например тотже my5 помню так и не смог прибить на v8 нормально. Тел при каждом удобном случае к нему адресовался.

О кстати, дока по DRM и mag-иксу
https://wenku.baidu.com/view/94b33fbbb9f3f90f77c61b24
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 19.2.2022, 2:51


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ 17.2.2022, 20:04)
* motorola_ljap_defconfig читай

Что читать, вот оно в открытом доступе у меня в гите лежит
https://github.com/fillsa/motomagx-kernel_l..._ljap_defconfig

Ничего кроме drm связанного с медиа файлами там нету. В принципе по drm поиском только одно совпадение есть.

П.С. почту проверь блин уже )

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


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 9:46)
* О кстати, дока по DRM и mag-иксу

Видел её вроде и читал, ничего полезного там по сути не было, разве что правильный порядок вызова функций где-то в её конце был указан.

Цитата(fill.sa @ Сегодня, 9:51)
* Что читать, вот оно в открытом доступе у меня в гите лежит

За вывод отладки наверняка отвечает опция CONFIG_MOT_FEAT_NO_PTRACE=n, которая в стоковых ядрах выставлена в y.

Цитата(fill.sa @ Сегодня, 9:51)
* Ничего кроме drm связанного с медиа файлами там нету. В принципе по drm поиском только одно совпадение есть.

Как раз опция CONFIG_MOT_FEAT_SECURE_DRM=y как-то связана с мультимедийными файлами и ещё затрагивает раздел с PDS.

https://github.com/fillsa/motomagx-kernel_l...y/motsecurity.c

Вот тут это отчётливо видно, список файлов и похоже список приложений, которые могу читать из раздела /mnt/drmfs раскриптованные файлы.

Впрочем, это всё уже абсолютно не имеет смысла, так как я нашёл более прозаичный способ обхода DRM.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 19.2.2022, 18:36


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ Сегодня, 9:37)

Там в телефоне есть еще свой механизм по этой части, там и модуль ядра и какие-то демоны кажись. Я это все на корню сразу прибивал.

Я так понял это свой модуль на основе родных модулей безопасности ядра линукс.
Вот видимо более подробнее про это.
https://habr.com/ru/company/pt/blog/144014/


В начале он там через родные мотоды регестрирует свою структуру
Код
if(register_security(&mot_security_ops))

В которой видимо прописано как реагировать на разные действия аля, .inode_mkdir , .ptrace и тд, вобщем все что перечислено в этой структуре, на вся можно завешать свое поведение.


И вот тут собственно какие вещи можно переопределить в этой структуре
https://www.kernel.org/doc/html/v5.2/security/LSM.html

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


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 1:36)
* Я это все на корню сразу прибивал.

А diff с ванильным конфигом 2CR_128 можешь сделать?

Цитата(fill.sa @ Сегодня, 1:36)
* Я так понял это свой модуль на основе родных модулей безопасности ядра линукс

Да, Motorola давно ещё форкнула SELinux и развивала его ещё в EZX как MotoAC и видимо потом в MotoMAGX он стал MotSecurity, а после в EM30, E8 и последующих ещё и какой-то SPEF сбоку прикрутили как модуль ядра и как ещё один userspace-демон висящий в RAM. Он, например, логи из qDebug() режет.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 22.2.2022, 17:46


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

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


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



Рейтинг: 1211



Тем временем я сделал автоматичный антиспам-фильтр для СМС, используя технологии как в Web drive ZN5. king.gif
Он смотрит от кого пришло СМС и удаляет, если автор в локальном чорном списке, не подавая звуку. dribble.gif
А то достали уже жадные но тупые хулиганы.carate.gif

Цитата(fill.sa @ 19.2.2022, 5:51)
* П.С. почту проверь блин уже )

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


Rock The Microphone
********

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

Рейтинг: 4654



Кстати вот похоже нашёл способ читать логи которые генерируются в системных либах и заворачиваются в aplog, в конфиге "/ezxlocal/logger/aplogd_config" нужно выставить logfile_path куда-нибудь в RW-место, вместо /dev/null:

Код
cat /ezxlocal/logger/aplogd_config
collect_libaplog=1
collect_kernel=1
collect_syslog=1
ram_buff_size=131072
output_buffering=4096
logfile_max=1048576
logfile_type=1
logfile_path=/mmc/mmca1/ap.log

Но что-то там похоже совсем-совсем ничего интересного нет. По-крайней мере я не увидел.

Цитата(VINRARUS @ Вчера, 0:46)
* А то достали уже жадные но тупые хулиганы.

Я планировал нечто похожее сделать с SMS'ками про выгодные предложения кредитов от банков, надоели. Проблема в том что иногда среди этого мусора и нужные SMS бывают.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 24.2.2022, 1:10


Гуру
******

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


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



Рейтинг: 607



Цитата(VINRARUS @ 22.2.2022, 20:46)
* Какая почта? Кроме газет ничего нет.

Ну так газету прочти.)) Там про постоянное оповещение о разраженной акб на твоем моде написано. и окошко и звук каждые 5 минут бесят. Не выключается никак. Что с ним можно сделать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Воха
сообщение 25.2.2022, 21:07


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

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


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



Рейтинг: 445.5



Цитата(EXL @ Вчера, 0:28)
* Я планировал нечто похожее сделать с SMS'ками про выгодные предложения кредитов от банков, надоели

Сейчас в стандартных SMS (те, что от Google) когда приходит такое, то вверху дисплея кнопка "блокировать", далее диалог "уведомить о спаме" который отправит смс в гугл, после чего, при получении SMS от этого отправителя сообщения попадают в скрытую папку, и вылазит безвучное уведомление "spam detected" без текста и имени отправителя, которое я просто смахиваю. Если ИИ не распознал сообщение как спам, то пометить его таковым сложнее - надо через свойства сообщения.
Так же в новых версиях SMS, OTP коды будут удалятся через 24 часа.
Ну и веб версия сообщений, тоже как на современных звонилках будет не лишней - вафля то есть, грех не заюзать))
Ну это так, варианты для реализации
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 23.4.2022, 16:10


Rock The Microphone
********

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

Рейтинг: 4654



Добавил в темы:

1. Нативные игры и эмуляторы для ZN5
2. Нативные приложения для ZN5

Обновлённые архивы скриншотов и описаний, которые помогут восстановить эти темы в случае утери каких-либо данных. Скачать архив можно по этим ссылкам:

1. https://motofan.ru/files/storage/MotoLinuxN...23-Apr-2022.zip
2. https://files.exlmoto.ru/motorola/MotoLinux...23-Apr-2022.zip
3. https://disk.yandex.ru/d/pV6fZOmWS5CtYg
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 13.5.2022, 0:35


Rock The Microphone
********

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

Рейтинг: 4654



В темы:

1. Нативные игры и эмуляторы для ZN5
2. Нативные приложения для ZN5

Добавлено зеркало пакетов, скриншотов и постов на share.mentality.rip: https://share.mentality.rip/pub/motonative/

Спасибо за него a1batross!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 28.5.2022, 9:32


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

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


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



Рейтинг: 1211



Нада весь раздел о Linux моторах сохранить гдето, хотя б токо html пожатые.
Ато в чебурнет ваш ходить не удобно через нору, а скоро и её могут забетонировать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 15.6.2022, 16:51


Rock The Microphone
********

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

Рейтинг: 4654



В утёкших ещё давно исходниках браузера Opera на Presto Unreal_man обнаружил таблицы стандартных переводов фраз из прошивки, которые можно использовать в своих программах.

https://github.com/proninyaroslav/opera-pre...ru-chameleon.po

Как они попали туда -- загадка, но подозреваю что эти преводы потребовались разработчикам Opera при портировании своего браузера на платформы EZX и MotoMAGX (Z6, V8) и они были сконвертированы из файлов переводов Qt (ts, qm) в файлы переводов Gettext (po). Что интересно, но в Lang'е CG46 эти таблицы почему-то не нашлись, либо я плохо искал, либо они в другом месте. Но даже если бы они и нашлись, то без полезных комментариев по предназначению той или иной строки, которые доступны в этих PO-файлах.

Пример использования констант вида TXT_RID_... такой: https://github.com/EXL/2048/blob/c3b15be432...X.cpp#L236-L246

Другими словами, конструкция по типу tr("TXT_RID_SOFTKEY_EXIT") выдаст "Exit", "Выход", "Вихiд" при использовании английского, русского и украинского языков и т. д.
Прикрепленный файл translations_motomagx_ezx.zip   ( 68.7 килобайт ) Кол-во скачиваний: 65
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 22.7.2022, 22:20


Rock The Microphone
********

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

Рейтинг: 4654



После обсуждения переводов строк в ленгпаках с Unreal_man и fill.sa, родилась такая идейка о том, как выдернуть их изо всей прошивки, поскольку переводы из браузера Opera выше оказались не совсем полные.

В итоге получилась вот такая простенькая утилитика, которую можно запустить на телефоне, скормить ей файлик с ключами и получить полный перевод прошивки и фразы, которые можно использовать в своих программах: https://github.com/EXL/MotoLangDump

Принцип работы программы простой: перебираем по списку ключи из файла и пишем их перевод в файл "Strings_Table.txt" рядом с программой.

Запускать программу на телефоне так:

Код
. /etc/initservices/services/ezxenv.sh   # MotoMAGX
. /home/native/.profile                  # MotoEZX

./MotoLangDump Strings.txt

Подгрузка переменных окружения на модах обычно необязательна.

Как получить список ключей использованных в прошивке, сохранённый в "Strings.txt"? Для этого лучше всего использовать PC с Linux, просто разбираем нужную прошивку, распаковываем файлы из групп CG36, CG37, CG43, CG44, CG46, CG52 (MotoMAGX) или CG34, CG35, CG36, CG37, CG41, CG42, CG43/CG44 (EZX) в одну директорию и натравливаем на этот каталог вот такой однострочник:

Код
find fw_rootfs/ -type f -exec strings {} \; | grep -e "^TXT" | sort | uniq | sed -e "s/,.*$//" > Strings.txt

После чего все ключи из прошивки, которые начинаются на TXT будут сохранены в файле "Strings.txt", который можно закинуть на устройство и скормить утилите. Подробнее про разбор кодовых групп можно почитать в соответствующих темах в различных ветках форума, а ориентироваться что и где лежит можно по таблицам на этой страничке "Кодовая группа" в Wiki.

Примечание: Выхлоп утилиты зависит от того, какой язык активирован в прошивке в настройках телефона. Строки на телефонах платформы EZX хранятся несколько по-другому, поэтому файл с переводами получается небольшим.

В аттачах прикладываю уже готовые таблицы переводов и скомпилированные утилиты для разных платформ.
  1. Motorola ROKR E6 22P Kundan MOD (English)
  2. Motorola ZINE ZN5 05R (English и Русский)
  3. Motorola ZINE ZN5 T-Mobile 2CR (English и Русский)
  4. Motorola ZINE ZN5 T-Mobile 2CR ZiniMOD (English, Русский и Українська)
  5. Motorola VE66 03R (English и Русский)
Прикреплённые файлы:
Прикрепленный файл motolangdump_bin.zip   ( 1.54 мегабайт ) Кол-во скачиваний: 65
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 30.5.2023, 22:38


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ 22.7.2022, 23:20)
* После обсуждения переводов строк в ленгпаках с Unreal_man и fill.sa, родилась такая идейка о том, как выдернуть их изо всей прошивки, поскольку переводы из браузера Opera выше оказались не совсем полные.

Кстати, нужно наверное выложить как этот механимз работает в телефоне.
Значиться с обьявлением
Код
ZApplication::ZApplication( int& argc, char **argv, Type t ) : QApplication( argc, argv, t )

вызывается функция
Код
loadString(d->appName);

А вот что делает эта функция
код

Код
void ZApplication::loadString( const QString& appname)
{
    static QTranslator * trApp = 0;
    static QTranslator * trNormal = 0;
    static QTranslator * trOperator = 0;
    static QTranslator * trDnp = 0;

    QString languageCode;
    char code[MAX_LANGUAGE_CODE_LEN+1]={0};
    if(UTIL_GetLanguageCode(code)==TRUE)
    {
       languageCode=code;
    }
    else
    {
        QString defaultValue(DEFAULT_LANGUAGE_CODE);
        ZConfig setManager("/tmp/ezx_system.cfg");
        languageCode = setManager.readEntry(SETUP_GRP_SYS_STR,
                                            SETUP_KEY_LANGUAGE_STR , defaultValue);
    }
    QString strPath = getenv("EZX_RES_STRING_PATH");

    strPath.stripWhiteSpace();
    uint len = strPath.length();    // check if the last char is '/'
    QChar lastChar;
    if (len > 0)
    {
        lastChar = strPath.at(len-1);
        if (lastChar != '/')
            strPath += "/";
    }

    strPath += languageCode;

    QString appQmFile = appname + "_" + languageCode + ".qm";

    //remove the old translator
    if(trApp != NULL)
    {
        removeTranslator(trApp);
        delete trApp;
        trApp = NULL;
    }
    //load new application qm file, this is for the 3rd-party code and qm
    trApp = new QTranslator(0);
    if (trApp->load(appQmFile, strPath))
    {
        installTranslator( trApp );
    }

    QString normalQmFile = "normal_" + languageCode + ".qm";

    //remove the old translator
    if(trNormal != NULL)
    {
        removeTranslator(trNormal);
        delete trNormal;
        trNormal = NULL;
    }
    trNormal = new QTranslator(0);
    if (trNormal->load(normalQmFile, strPath))
    {
        installTranslator(trNormal);
    }

    QString operatorQmFile = "operator_" + languageCode + ".qm";
    //remove the old translator
    if(trOperator != NULL)
    {
        removeTranslator(trOperator);
        delete trOperator;
        trOperator = NULL;
    }
    trOperator = new QTranslator(0);
    if (trOperator->load(operatorQmFile, strPath))
    {
        installTranslator(trOperator);
    }

    // load dnp qm for feature 8072
    QString dnpPath = "/usr/data_resource/string/";
    QString dnpQmFile = dnpPath + "dnp_" + languageCode + ".qm";
    if(trDnp != NULL)
    {
        removeTranslator(trDnp);
        delete trDnp;
        trDnp = NULL;
    }
    trDnp = new QTranslator(0);
    if (trDnp->load(dnpQmFile, dnpPath))
    {
        installTranslator( trDnp );
    }
}

[close]

Т.е. по сути читаеться путь к файлу перевода из EZX_RES_STRING_PATH плюс код языка из настроек и грузиться в стандартный QTшный QTranslator
Это действие также повторяетсья для файлов с префиксом в имени normal_ и operator_
И еще идет такаяже подгрузка файла по пути /usr/data_resource/string/.

Вообщем-то и весь механизм. По сути мотороловская прослойка минимальная, все аналогично штатгной работе QTranslator

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


Rock The Microphone
********

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

Рейтинг: 4654



fill.sa,
Мне всё ещё непонятно где происходит сопоставление идентификаторов вида TXT_RID_... с переведённой строкой в *.qm файле.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

46 страниц V « < 43 44 45 46 >
Ответ в темуСоздание новой темы
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 14.6.2025, 5:50

Форум живёт: