motofan logo
17 страниц V « < 13 14 15 16 17 >        
> 

Штурм камеры Zn5, Iso, чувствительность и т.д.

EXL
сообщение 6.8.2019, 0:42


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 965
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


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



Рейтинг: 4609



Цитата(fill.sa @ Вчера, 2:20)
* Немного покопавшись можно сказать что ничего грандиозного там нету. По сути весь механизм камеры, включая даже менюшки выполнен в библиотеках.
А файл camera это так, прилюдия перед камерой.

Некоторые вещи вообще вынесены в прошивку камеры (какой-то там BIN-файл), которая содержит код неизвестной архитектуры, не поддающейся обычному дизассемблированию.

Цитата(fill.sa @ Вчера, 2:20)
* К слову разрабы нестеснялись костылить.

Да там много подобных ужасов, возможно потому и побоялись открывать код своих утилит.

Цитата(VINRARUS @ Вчера, 4:11)
* При чом тут вообще баш? Не вижу ни баша, ни шела.

Там именно что Bash, с помощью системной функции system() идёт запуск shell'а (в данном случае я думаю это именно /bin/bash, а не /bin/sh), в котором выполняется команда ps > /tmp/.CAM_PROC_TMP.pid, создающая файл который потом дальше открывается и читается. Очень странный подход, учитывая что нужный ему pid разработчик мог получить с помощью системных API, не тратя циклы процессора на кучу действий слабо относящихся к цели задачи: запуск интерпретатора командной оболочки, запуск утилиты ps и создание с её помощью файла, открытие этого файла и пр.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 6.8.2019, 11:53


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ Сегодня, 1:42)
* Некоторые вещи вообще вынесены в прошивку камеры (какой-то там BIN-файл), которая содержит код неизвестной архитектуры, не поддающейся обычному дизассемблированию.


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

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

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


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 965
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


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



Рейтинг: 4609



Цитата(fill.sa @ Сегодня, 18:53)
* Просто я думал найти в файле камеры что-то более интерестное, а там по сути мусор ввиду предпросмотра картинки, открыть папку где лежат картинки ну и тд. Никакой конкретной логики связанной с камерой там нету, разве, что проверка свободной памяти и проверка открытой шторки на камере.

Исполнительный файл camera это так сказать frontend, а библиотеки -- backend. И это правильное архитектурное разделение. Таким образом можно просто сохранить программный интерфейс (API) и этот бинарь будет общим для всех MotoMAGX-устройств (потребуется лишь перекомпиляция под определённую модель), тогда как "под капотом" в библиотеках будут дёргаться уже специфичные для железа и модуля камеры функции.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 6.8.2019, 13:38


Гуру
******

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

Рейтинг: 400



Теперь то понятно )

Цитата(EXL @ Сегодня, 14:02)
* этот бинарь будет общим для всех MotoMAGX-устройств (потребуется лишь перекомпиляция под определённую модель), тогда как "под капотом" в библиотеках будут дёргаться уже специфичные для железа и модуля камеры функции.


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

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


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ Сегодня, 18:09)
* А файл camera это так, прилюдия перед камерой.

Сравни с 7FR


Если сам файл камера, то думаю не стоит тратить силы на это. Особо дельного там нету.
Я бы с радостью се камеры сравнил, интерестно в чем все таки отличия, но это трудозатратно слишком.

Что ты именно от 7fr хочешь узнать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 6.8.2019, 20:54


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 23:16)
* Что ты именно от 7fr хочешь узнать?

Она ж полностью другая: 240р видео, горизонтальные менюшки, ISO, скорость затвора, дальномер...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 7.8.2019, 8:33


Гуру
******

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

Рейтинг: 400



VINRARUS,
ну смотри, что по части исо, то это скорее всего не в движке камеры, а именно в подгружаемых файлах.
По части размера, частично я уже нашел где это в 2cr проше, там жестко прописано проверять размер, как и кол-в пунктов в меню. Горизонтальная менюшка тоже ничего обычного, просто вместо ZSingleSelectDlg использовали ZPopupLandscapeSelectDlg типо так.

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


Гуру
******

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

Рейтинг: 400



Сделал несколько менее затратное сравнение. Которое по сути показывает совместимость между различными файлами от камеры(кроме прошивок из /etc/firmware , которые уже относятся непосредственно к железке камеры). Понятное дело внутри функций могут быть большие различия. Но как я говорил, это больше сравнение на совместимость.
Так вот, основывался уже на своих ранее показаных трудах. Если откуинуть инжинерную 58i, картина такая:

первое изменение у 07r - 0ar
libezxcamera.so.1.0.0
Код

CAM_UI_PhotoInsertView::cancel()         // FUNC //bind:GLOBAL



второе более глобальное у перехода с 17r на 2cr
camera
Код

ZApplication::slotLaunchactionByVoicecommand(QUuid const&)         // FUNC //bind:GLOBAL
ZApplication::slotKillactionByMassstorage()         // FUNC //bind:GLOBAL
CAM_WaveParser::bitsPerSample() const         // FUNC //bind:GLOBAL
QObject::insertChild(QObject*)         // FUNC //bind:GLOBAL
CAM_Engine::close()         // FUNC //bind:GLOBAL
CAM_Engine::sendACSUnicodeMsg(int, void*, long)         // FUNC //bind:GLOBAL
AM_ActionReceiver::instance()         // FUNC //bind:GLOBAL
AM_ActionParser::~AM_ActionParser()         // FUNC //bind:GLOBAL
CAM_Engine::setCurrentPanelType(CAM_PanelType)         // FUNC //bind:GLOBAL
CAM_CORE_Image::data() const         // FUNC //bind:GLOBAL
msgget@GLIBC_2.4         // FUNC //bind:GLOBAL
UTIL_Language::getSystemLanguageCode()         // FUNC //bind:GLOBAL
QString::QString(QString const&)         // FUNC //bind:GLOBAL
CAM_ViewfinderCtl::setVirtualColorKeyEnable()         // FUNC //bind:GLOBAL
pa_open         // FUNC //bind:GLOBAL
operator==(QString const&, QString const&)         // FUNC //bind:GLOBAL
CAM_CORE_Image::dataLen() const         // FUNC //bind:GLOBAL
CAM_WaveParser::audioFormat() const         // FUNC //bind:GLOBAL
CAM_ShutterSoundPlayer::play(bool)         // FUNC //bind:GLOBAL
CAM_VideoCtl::load()         // FUNC //bind:GLOBAL
QGList::remove(void*)         // FUNC //bind:GLOBAL
ZApplication::slotLaunchactionByMainscreen(QUuid const&)         // FUNC //bind:GLOBAL
QEvent::~QEvent()         // FUNC //bind:GLOBAL

ZApplication::className() const         // FUNC //bind:GLOBAL
AM_LauncherClient::launchApplication(QUuid const&, QString const&, AM_LauncherClient::AM_LAUNCHER_INITIATOR_T, bool, bool)         // FUNC //bind:GLOBAL
fclose@GLIBC_2.4         // FUNC //bind:GLOBAL
CAM_VideoCtl::unload()         // FUNC //bind:GLOBAL
ZApplication::slotLanguageChange()         // FUNC //bind:GLOBAL
fopen@GLIBC_2.4         // FUNC //bind:GLOBAL
CAM_Engine::turnOffMainDisplay()         // FUNC //bind:GLOBAL
QObject::activate_signal(char const*)         // FUNC //bind:GLOBAL
CAM_ViewfinderCtl::setRotation(CAM_Rotation)         // FUNC //bind:GLOBAL
ZPopup::exec()         // FUNC //bind:GLOBAL
QSemaphore::operator--(int)         // FUNC //bind:GLOBAL
QGArray::~QGArray()         // FUNC //bind:GLOBAL
ZApplication::slotLaunchactionByAnotherApp(QUuid const&)         // FUNC //bind:GLOBAL
CAM_VideoCtl::setVideoUserTag(CAM_VideoTag, unsigned char*, int)         // FUNC //bind:GLOBAL
CAM_UI_Manager::engineInterface()         // FUNC //bind:GLOBAL



Не совсем понятно в какой момент появилась 7fr, отталкивался , что после 2cr.
2cr- 7fr
apps_acs
Код

getpid@GLIBC_2.4         // FUNC //bind:GLOBAL


camera
Код

close@GLIBC_2.0         // FUNC //bind:GLOBAL
flock@GLIBC_2.4         // FUNC //bind:GLOBAL
umask@GLIBC_2.4         // FUNC //bind:GLOBAL
open@GLIBC_2.0         // FUNC //bind:GLOBAL
UTIL_Language::getSystemLanguageCode()         // FUNC //bind:GLOBAL
CAM_ViewfinderCtl::setVirtualColorKeyEnable()         // FUNC //bind:GLOBAL
AM_ActionData::~AM_ActionData()         // FUNC //bind:GLOBAL
pa_open         // FUNC //bind:GLOBAL
CAM_CORE_Image::dataLen() const         // FUNC //bind:GLOBAL
CAM_VideoCtl::unmute()         // FUNC //bind:GLOBAL
CAM_WaveParser::byteRate() const         // FUNC //bind:GLOBAL
QObject::activate_signal(char const*, int)         // FUNC //bind:GLOBAL
CAM_ShutterSoundPlayer::play(bool)         // FUNC //bind:GLOBAL
CAM_ViewfinderCtl::setAlphaBlendingEnable()         // FUNC //bind:GLOBAL
CAM_VideoCtl::load()         // FUNC //bind:GLOBAL
ZApplication::slotLaunchactionByMainscreen(QUuid const&)         // FUNC //bind:GLOBAL
CAM_UI_Manager::isSlideClose()         // FUNC //bind:GLOBAL
QEvent::~QEvent()         // FUNC //bind:GLOBAL
CAM_Util::isMemoryCardlocked()         // FUNC //bind:GLOBAL



UTIL_GetXpixlACSStatus
ZApplication::className() const         // FUNC //bind:GLOBAL
fclose@GLIBC_2.4         // FUNC //bind:GLOBAL
CAM_VideoCtl::unload()         // FUNC //bind:GLOBAL
ZApplication::slotLanguageChange()         // FUNC //bind:GLOBAL
fopen@GLIBC_2.4         // FUNC //bind:GLOBAL
msgget@GLIBC_2.4         // FUNC //bind:GLOBAL
CAM_Engine::turnOffMainDisplay()         // FUNC //bind:GLOBAL
CAM_Engine::configCtl()         // FUNC //bind:GLOBAL
QObject::event(QEvent*)         // FUNC //bind:GLOBAL
CAM_ViewfinderCtl::setRotation(CAM_Rotation)         // FUNC //bind:GLOBAL
ZPopup::exec()         // FUNC //bind:GLOBAL
QSemaphore::operator--(int)         // FUNC //bind:GLOBAL
QGArray::~QGArray()         // FUNC //bind:GLOBAL
ZApplication::slotLaunchactionByAnotherApp(QUuid const&)         // FUNC //bind:GLOBAL
CAM_WaveParser::soundDataSize() const         // FUNC //bind:GLOBAL
CAM_VideoCtl::mute()         // FUNC //bind:GLOBAL


Сообщение отредактировал fill.sa - 7.8.2019, 19:30
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 8.8.2019, 14:37


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

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


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



Рейтинг: 1211



Цитата(EXL @ 6.8.2019, 3:42)
* в данном случае я думаю это именно /bin/bash

Глупость какая, баш отсутствует в магиксах изначально, потому шо он БЕСПОЛЕЗЕН, и даже ВРЕДЕН: тормозной, огромного размера, ненадёжный. Я всё никак не пойму как такое говно умудрились скормить линуксоидам...

А запускается ли там sh в камере не видно было.

Сообщение отредактировал VINRARUS - 8.8.2019, 14:38
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Штурм камеры Zn5, Iso, чувствительность и т.д. · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

17 страниц V « < 13 14 15 16 17 >
Ответ в темуСоздание новой темы
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.4.2024, 13:25

Форум живёт: