motofan logo
49 страниц V  1 2 3 > »         
> 

ovfirmware.bin ломаем по-взрослому, просьба не офтопить !

dvMax
сообщение 12.5.2005, 17:32


VIP
******

Группа: Почётные мотофаны
Сообщений: 1 053
Регистрация: 29.6.2004
Пользователь №: 7 003
Модель телефона: .

Рейтинг: 409.5



tranzistor
Цитата(tranzistor @ Четверг, 12 Май 2005, 16:40)
Лучше ответьте на вопрос: сравнивал фотик на своём с650 и на лежащем рядом V500.вроде и там и там 0,3мпх,аппаратно камера наверняка такая же.
А вот тут позвольте с Вами не согласиться.

С650 - обычный телефон
V500 - триплет


Согласно документации, в тел. уст.:

С650
камера: Omnivision OV7648
сопроцессор: Omnivision OV529

V500
камера Philips OM6802
сопроцессор: ATI

***
Удалось найти и "даташит" на камеру: Omnivision OV7648

Сообщение отредактировал dvMax - 12.5.2005, 17:38
Прикрепленное изображение
Прикрепленный файл Camera_Omnivision_OV7648.pdf   ( 313.33 килобайт ) Кол-во скачиваний: 16694
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvMax
сообщение 13.5.2005, 11:15


VIP
******

Группа: Почётные мотофаны
Сообщений: 1 053
Регистрация: 29.6.2004
Пользователь №: 7 003
Модель телефона: .

Рейтинг: 409.5



tushik
Цитата
Помоему в С650 тоже атишное видео !
Я же ясно сказал что там установленно:
С650
камера: Omnivision OV7648
сопроцессор: Omnivision OV529 (это уже на чипе написано)

Romashka0,
Цитата
Простите за  но можно поинтересоваться что же это такое Триплет! А то все говорят про них а до конца я не понял что это такое!
Проще говоря триплет - раскладушки, из серии V
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MicroM
сообщение 16.5.2005, 20:00


Опытный
***

Группа: Пользователи
Сообщений: 136
Регистрация: 30.3.2005
Пользователь №: 39 878
Модель телефона: с650, L7, XT912, XT1650

Рейтинг: 40



Ниже сказанное мое ИМХО, я могу и ошибаться.
Исходные данные:
Телефон Motorola C650,
Ovfirmware.bin (7240 байт от прошивки 1.1ar)
как-то влияющий на камеру, желание улучшить фотки. ;)
Метод тыка в OVfirmware дает иногда интересные результаты.
Но большей частью толком ничего не работает.
В файле можно найти кучу данных в виде таблиц.
(Для их поиска наваял себе утилитку)
Пример:
0358: 4 записи по 9 байт
037С: 4 по 8
03b2: 9 по 8
0606: 5 по 6
Некоторые Данные упорядочены интересным образом
1B0E FF 24 24 25 14 77 C0 06 00
1B17 FF 24 4C 25 3C 77 C2 06 20
1B20 FF 24 60 25 50 77 C3 06 40
1B29 FF 24 80 25 78 77 C4 06 60
1B32 FF 24 94 25 84 77 C4 06 A0
1B3B FF 24 A8 25 98 77 D4 06 C0
1B44 FF 24 B8 25 A8 77 E4 06 FE
FF - что-то вроде начала таблицы (а может и нет)
значения 24 25 77 и 06 наводят на мысль о номере регистра,
а значения между ними на данные.

Как известно стало мне из форума, фотохозяйство
c650 состоит из сенсора ov7648 и сопроцессора ov529.
Смотрим даташит на камеру:
All required image processing functions,
including exposure control, gamma, white
balance, color saturation, hue control and more, are also
programmable through the SCCB interface.

Этот зверь программируется через последовательный интерфейс
SCCB (Serial Camera Control Bus)
НА сайте www.otv.com можно найти описание этого интерфейса
http://www.ovt.com/pdfs/ds_note.pdf

Значит вышеупомянутые коды не что иное как данные
управляющие настройками камеры, которые посылает контроллер
(может это сам телефон, может отдельный чип).
Для проверки гипотезы надо найти описание этих регистров.
На OV7648 описания регистров я не нашел.
Но нашлось описание на схожее устройство из этой серии
ov7620 в google находится с полпинка.

Читаем PDF:
Register 24- rw: AEW Auto Exposure White Pixel Ratio
Registers 24 and 25 together control the AEC target values for image brightness.
For a brighter image, increase register 24 and decrease register 25.
For a darker image, decrease register 24 and decrease reister 25.
Register 25- rw: AEC Auto Exposure Black Pixel Ratio
Register 77-7B - rw: Reserved (возможно что в 7648 это уже незарезервировано)
Register 06 - rw: Brightness control
Тоесть вот они настройки яркости, что и требовалось доказать ;)

кстати OvFirmware можно расшифровать как Omni Vision Firmware.

Зачем нам нужен сопроцессор ov529?
Из PDF ясно что данные камера выдаёт в форматах
YCrCb 4:2:2 ITU-656, IR-601 GRB 4:2:2 & RGB Raw Data
ну это как её запрограммировать.
Это надо еще как-то превратить в jpg.
На ov529 даташит найти не удалось, из краткого описания
ясно что этот чип как раз и занимается обработкой сигнала
выводом его на экран, сжатием в jpg.
Управляется этот чип также по SCCB.
http://www.tdc.co.uk/marketing/press/20040630_ov529.htm

Кроме таблиц наш файлик еще содержит кучу всякого "мусора" который
упорядочить довольно трудно.
Мысль! А не является ли он прошивкой к некоему контроллеру который
управляет камерой и сопроцессором? А может это и есть код для сопроцессора?
Я изменял Ovfirmvare, загружал в телефон и при запуске камеры
эффект был сразу заметен даже без перезагрузки телефона.
Получается что всякий раз при запуске камеры файлик куда-то грузится.

Архитектура микроконтроллеров устроена так что первый блок памяти
это таблица прерываний. Первый адрес содержит команду перехода на
код начальной инициализации устройства. А последующие ячейки памяти
содержат адреса кода для обработки прерываний.
В данном случае имеем 34 прерывания для процессора.
Первой должна быть команда перехода.

Смотрим фирмварь.
0000 01 88 00 00 допустим это короткий переход на адрес 88
по адресу 87 какраз кончается таблица
0004 01 04 00 00 это сам на себя? (в других файликах тут оно разное)
0008 32 00 00 00 а это видимо команда Iret возврат из прерывания
000C 02 1A 3C 00 тут уже длинный переход на адрес 1a3c
0010 32 00 00 00 iret
0014 32 00 00 00 iret
0018 32 00 00 00 iret
001C 32 00 00 00 iret
Если по адресу есть исполняемый код то он должен закончиться командой Iret код [32]
И любой другой код на который ссылается таблица.
Проверил свое предположение так
вместо значений 02 подставил 32 т.е. возврат из прерывания сразу без выполнения кода.
Результаты ниже.
Значение в таблице прываний
затем код по этому адресу возможный возврат (iret) выделен []
Через тире наблюдавшийся эффект при "отключенной" процедуре.

0000 01 88 00 00 - Процедура начальной инициализации камеры/контроллера.
(Смысла отключать нет всё равно незапуститься)
0088 75 81 4F 12 00 9F 12 02 80 E5 25 F5 24 75 25
0097 00 60 F4 12 03 42 80 EF E4 F5 44 F5 25 F5 24
00A6 F5 33 F5 34 F5 20 F5 21 F5 22 F5 23 F5 47 F5
00B5 19 F5 1A F5 1B 75 2A 06 12 15[32]12 1A 2F 90

000C 02 1A 3C 00 - пока хз камера не стартанула
1A3C C0 E0 C0 D0 C0 82 C0 83 30 00 10
1A47 90 FF 61 E0 30 E4 F9
1A4E 90 FF 52 E0 44 08 F0
1A55 D2 04 D0 83 D0 82 D0
1A5C D0 D0 E0[32]

0048 02 1A 60 00 - стартует камера изображения нет,
после нескольких нажатий яркость или зумм выпадает в главное меню.
1A60 D2 09 05 15 [32]

0058 02 1A 65 00 - есть изображение, при сьемке виснет, на регулировки реагирует
1A65 C0 E0 C0 D0 C0 82 C0 83
1A6D 90 FF AA E0 54 FA F0
1A74 90 FF 78 E0 F5 39 A3
1A7B E0 F5 3A D2 03 D0 83
1A82 D0 82 D0 D0 D0 E0[32]

005C 02 1A 89 00 - пока Х.З.
1A89 D2 19 [32] D2 0A [32]

0060 02 1A 8C 00 - на экране полосы, неснимает, на настройки реагирует.
1A89 D2 19 [32]

0074 02 1A 8F 00 - после сьемки на экране застывает изображение, файл не сохраняется.
1A8F D2 0B [32]

0078 02 1A 92 00 - камера включается и тут-же повисает с первым кадром на экране.
1A92 C0 E0 C0 D0 C0 82 C0
1A99 83 90 FF AA E0 C2 E0
1AA0 F0 D2 08 D0 83 D0 82
1AA7 D0 D0 D0 E0 [32]
-----------------
Есть такое наблюдение;
Надо снимать с нормальным файлом на максимальном зуме какойнибудь сюжет
где есть четкая граница светлого и темного (край клавиатуры и стол например)
Так вот надо повернуть камеру так чтобы это граница проходила через диагональ экрана.
Теперь внимательно смотрим на экран и нажимает снять, когда изображение застыло граница становится
заметно ребристой. (по краней мере у меня).
Т.е. при фотографировании показывается уже снятый и зажатый в JPG файл.
Если переход на процедуру по 0074 отключить, камера виснет с изображением на экране, но не ребристым.
-----------------

Так что Ovfirmware это код для микроконтроллера.
предположительно что он имеет 34 аппартных прерывания
код команды возврат из прерывания 32 (iret)
код короткого перехода 1 (jmps)
код длинного перехода 2 (jmp)
Занимается управлением камеры и сопроцессора обработки изображения.

Для дальнейших более точных изысканий требутся описание регистров камеры ov7648
Описание программирования ov529. Или хотя-бы описание его регистров.
Провести дальнейшее опознание машинного кода из OVFirmware.
Определиться для какого процессора это код.
Было-бы хорошо Найти ассемблер/дизасеммблер для этого процессора.

Кто располагает документацией, информацией и полезными мыслями подключайтесь!
Исследование продолжается.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 17.5.2005, 8:05


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



MicroM, ну ты человек ! Молодец.
Я лично Ovfirmware не коцал, а немного смотрел сим привязанный
к настройкам камеры. Вообщем может надо будет :
Итак сим 004а_001 по адресам

1A2 значения стиля картинки:
00 цветная
01 черно/белая
02 синеватая
03 старинная
04 красноватая
05 зеленоватая

193 значения Экспозиция:
00 +2
01 +1
02 0
03 -1
04 -2

17B значения Состояния освещения :
00 авто
01 солнечно
02 облачно
03 лампы накаливания
04 люминисцентные
05 ночная съёмка

и наконец 198 значения Разрешения :
00 низкое 160х120
01 среднее 320х240
02 высокое 640х480
Как Вы думаете , что будет если по адресу 198 поставить 03 ?
Правильно , опять разрешение низкое 160х120 .......
Поэксперементируйте.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MicroM
сообщение 17.5.2005, 19:41


Опытный
***

Группа: Пользователи
Сообщений: 136
Регистрация: 30.3.2005
Пользователь №: 39 878
Модель телефона: с650, L7, XT912, XT1650

Рейтинг: 40



Кажись ЕСТЬ!!!
Навел на мысль этот PDF
http://www.specsoftus.com/pdf/SPCVUSB.pdf

То что ожидал. Увидел продизассемблировав Ovfirmvare.bin

; Дизасеммблер для однокристальных микроЭВМ серий MCS-51(52)
; Vladimir [PRC] -- Moscow -- V2.1
; E-mail : vladimir-prc@mtu-net.ru
;
; Листинг файла : OVF.BIN
; Дата создания : 17.05.2005
; Время создания : 23:21:09
; Общие мнемоники : Нет
; Расстановка меток : Да
; Вывод адресов : Да
; Стартовый адрес : 00000h

0000 01 88 ajmp jmp_0088
0002 00 nop
0003 00 nop
0004 01 04 jmp_0004: ajmp jmp_0004
0006 00 nop
0007 00 nop
0008 32 reti
0009 00 nop
000A 00 nop
000B 00 nop
000C 02 1A 3C ljmp jmp_1A3C
.....
0088 75 81 4F jmp_0088: mov SP,#4fh
008B 12 00 9F lcall sub_009F
008E 12 02 80 jmp_008E: lcall sub_0280
0091 E5 25 jmp_0091: mov A,25h
0093 F5 24 mov 24h,A
0095 75 25 00 mov 25h,#00h
0098 60 F4 jz jmp_008E
009A 12 03 42 lcall sub_0342
009D 80 EF sjmp jmp_008E
009F E4 sub_009F: clr A
00A0 F5 44 mov 44h,A
00A2 F5 25 mov 25h,A
00A4 F5 24 mov 24h,A
00A6 F5 33 mov 33h,A
00A8 F5 34 mov 34h,A
00AA F5 20 mov 20h,A
00AC F5 21 mov 21h,A
00AE F5 22 mov 22h,A
00B0 F5 23 mov 23h,A
00B2 F5 47 mov 47h,A
...........
Текст получается вполне осмысленным.
:)
Кто спецы в однокристалках? Налегай!!!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
SaMbl4
сообщение 18.5.2005, 3:38


Опытный
***

Группа: Пользователи
Сообщений: 122
Регистрация: 19.10.2004
Из: Чебоксары->Челябинск
Пользователь №: 17 239
Модель телефона: Motorola с650 & E398
Прошивка: стандартная

Рейтинг: 6



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

0004 01 04 jmp_0004: ajmp jmp_0004

Это никакого смысла не имеет!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MicroM
сообщение 18.5.2005, 6:33


Опытный
***

Группа: Пользователи
Сообщений: 136
Регистрация: 30.3.2005
Пользователь №: 39 878
Модель телефона: с650, L7, XT912, XT1650

Рейтинг: 40



Цитата(SaMbl4 @ Среда, 18 Май 2005, 6:38)
Знаешь, практически любой текст можно дизассемблировать любым дизассемблером и получится какой-то текст.

Конечно Можно
Вот AVR
00000000: 8801 ldd r0,z+17
00000002: 0000 nop
00000004: 0401 cpc r0,r1
00000006: 0000 nop
00000008: 0032 ???
0000000A: 0000 nop
0000000C: 1A02 sub r0,r18
0000000E: 003C ???
00000010: 0032 ???
00000012: 0000 nop
00000014: 0032 ???
00000016: 0000 nop

Вот Intel 80x86
00000000: 01880000 add [bx][si][0000],cx
00000004: 0104 add [si],ax
00000006: 0000 add [bx][si],al
00000008: 3200 xor al,[bx][si]
0000000A: 0000 add [bx][si],al
0000000C: 021A add bl,[bp][si]
0000000E: 3C00 cmp al,000
00000010: 3200 xor al,[bx][si]
00000012: 0000 add [bx][si],al
00000014: 3200 xor al,[bx][si]

И это две большие разницы :)

Цитата(SaMbl4 @ Среда, 18 Май 2005, 6:38)
Насчёт осмысленности предыдущего - уже в начале мы видим


Начало программы с адреса 0000

Цитата(SaMbl4 @ Среда, 18 Май 2005, 6:38)
0004 01 04 jmp_0004: ajmp jmp_0004
Это никакого смысла не имеет!


Для непосвященного конечно неимеет :)
Этот кусочек кода можно выкинуть на работу камеры он невлияет.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BarkoFF
сообщение 20.5.2005, 17:01


Опытный
***

Группа: Пользователи
Сообщений: 142
Регистрация: 20.5.2005
Из: г. Кострома
Пользователь №: 42 813
Модель телефона: Motorola C650
Прошивка: D2.23R

Рейтинг: 12



MicroM
Посмотри в продизассемблированом Ovfirmvare нет ли чего похожего на "quality 50" типа qual_50, qual 50, qlt 50, возможно с другой цифрой, например 32.
Возможно так задан уровень сжатия в jpg
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BarkoFF
сообщение 20.5.2005, 18:58


Опытный
***

Группа: Пользователи
Сообщений: 142
Регистрация: 20.5.2005
Из: г. Кострома
Пользователь №: 42 813
Модель телефона: Motorola C650
Прошивка: D2.23R

Рейтинг: 12



Реальное улучшение возможно только при уменьшении сжатия и доведения размеров файлов до 70-100 КБ, а сейчас (при <50 КБ) вся четкость теряется из-за артефактов сжатия. Знать бы где в Ovfirmvare прописать качество сжатия, тогда каждый бы сам поставил лучшее соотношение размер/качество под себя.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BarkoFF
сообщение 22.5.2005, 17:43


Опытный
***

Группа: Пользователи
Сообщений: 142
Регистрация: 20.5.2005
Из: г. Кострома
Пользователь №: 42 813
Модель телефона: Motorola C650
Прошивка: D2.23R

Рейтинг: 12



А где можно скачать эту программку-дизассемблер?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
ovfirmware.bin ломаем по-взрослому, просьба не офтопить ! · Ломаем и строим! · Forum
 

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

 



Текстовая версия Сейчас: 28.3.2024, 22:46

Форум живёт: