LINUX.ORG.RU

Ковыряние фирменной прошивки видеокамеры и написание своей (ARM Ambarella)

 , , ,


2

6

Здравствуйте! Моя жизнь протекает крайне уныло и я решил разнообразить свою сексуальную жизнь, поэтому я решил заняться сексом вот с ним:

# uname -a
Linux a9s 3.10.71 #1 PREEMPT Tue Aug 2 18:59:46 CST 2016 armv7l GNU/Linux
Наши отношения проходят крайне доверительно, я для него полный господин:
# id
uid=0(root) gid=0(root) groups=0(root),10(wheel)
Конечно, быть может, он что-то откажется сделать, но только в целях самосохранения.

Если заглянуть ему под юбку, то там будет видно:

# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 892.92
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0

Hardware : Ambarella S2E (Flattened Device Tree)
Revision : 0000
Serial : 0000000000000000
Он достаточно образован, умеет сразу tcpdump, wget и vi. Сложно понять зачем, но умеет. Умеет даже ffmpeg, правда лишь в виде библиотеки libavcodec.so.56.26.100. Умеет даже python2.7, непонятно зачем. А в аттестате по письменности записано:
# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev rpc_pipefs
nodev configfs
nodev devpts
squashfs
nodev ramfs
vfat
nodev nfs
nodev autofs
nodev mqueue
nodev mtd_inodefs
nodev ubifs
nodev ambafs

Самое интересное тут - это пожалуй ambafs, с которой монтируется флешка:

a: on /tmp/FL0 type ambafs (rw,relatime)
c: on /tmp/SD0 type ambafs (rw,relatime)
c:/dcim on /tmp/DCIM type ambafs (rw,relatime)
c: on /tmp/fuse_d type ambafs (rw,relatime)
c:/dcim on /var/www/DCIM type ambafs (rw,relatime)

Меня очень пугает, что мой друг имеет привычку писать пути как c:, что навевает мысли о его прошлом в спермомире. Не только о прошлом, потому что в его мозге есть пути вида:

%s[App Handler] BSA start failed, starting now
c:\console_enable.script c:\save_log_enable.script /usr/local/share/script
/start_telnet.sh & %s[SHUTDOWN_REASON] ==> [SHUTDOWN_BUTTON]

Т.е. оно пытается читать файл c:\console_enable.script, но при этом запускает /usr/local/share/script/start_telnet.sh

При этом # find / | grep c: не выдает ничего, такое ощущение, что корневая файловая система - это совсем не корень.

У меня не сильно много опыта в приготовлении пищи для существ из мира ARM, но использовав Android NDK я сделал

arm-linux-androideabi-gcc -pic -static -Wl,--dynamic-linker -Wl,/lib/ld-linux-armhf.so.3 -o anus anus.c
И мой друг прожевал предложенную пищу и не выпал с Болью Сегментации.

* * *

В принципе, счастье линуксоида достигнуто и через консоль господина оно говорит мне приветствие. Но мне этого мало.

Я бы хотел услышать от него какие-то звуки, но /dev/snd или /dev/dsp отсутствуют совсем. А у него такой громкий ротик, что в штатных настройках я вынужден ставить ему Low и то, речи его очень громки!

Я хотел бы получать картинку из его глаз, но /dev/video тоже не завезли. Но об этом позже.

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

Часть строк были найдены в /dev/mtd1ro, которые не члены файловой системы (в смонтированной файловой системе таких строк нету), сам блок никак не монтируется, а при насильной попытке указать -t ambafs монтируется пустой том.

Внутри этого /dev/mtd1ro найдены:

sensor_imx377_a9s_get_still_capture_mode_config
похоже на имя символа, который используется для работы с матрицей

cc_flat_color_still.bin

похоже на цветовой профиль, но файл ли это?

ntry WatchDog_Init ↨ ☺ # ☺ ♪♦ dt_app_test Turn arrow key %s
stillrawcap Usage: t app test enc stillrawcap [Cmpr][DumpItuner]
Cmpr:0 : Normal Raw, 1 : Compress Raw. DumpItuner: Enable dump itu
ner or not videorawcap Usage: t app test videorawcap [RawCompress][Number][Enab
leFaseCapture][EnableYuv] RawCompress:0 : Normal Raw, 1 : Compres
s Raw. Number: Capture raw number. EnableFaseC

Тут видимо речь идет о неких приложениях stillrawcap, но опять, на файловой системе ничего такого нет и мой друг упорно не понимает о чем речь:

~ # stillrawcap
-sh: stillrawcap: not found
~ #
Впрочем, никаких стрелочек у моего друга тоже нет.

Начало этого загадочного /dev/mtd1ro похоже на ARM-команды, без ELF, но Ида сожрала совсем немного, остаток же (порядка 30 мегабайт) остался мертвым грузом. Binwalk не видит ничего интересного (находит несколько заголовков LZMA, но по этим оффсетам ничего не распаковывается). Кроме того, непонятно по какому оффсету этот бинарник грузится в память, где у него энтрипоинт и вообще.

Друг дает почитать /dev/ram0, но по факту там 64 метра нулей. Есть /dev/amba_dspmem и /dev/amba_heapmem, но что с ними делать - совсем непонятно.

Если требуется какая-то дополнительная информация, то я с радостью поделюсь. На всякий случай ambafs.ko и дамп mtd1ro https://my.mixtape.moe/eqzmfb.ko https://my.mixtape.moe/bxmdpy. У меня есть любой инструмент и мой друг покорно это перенесет.

Пусть самой актуальной задачей (и я надеюсь простой) будет побибикать через его ротик. В его мозгах есть строки «mp3», что намекает на наличие кодеков. Но с чего начать, чтобы получить хоть какие-то звуки?

Патч Бармина не предлагать, противные.

После первой фразы подумал, что это Ttt...

Pavval ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

За деньги от это штуки, я бы мог купить 10 малинок.

ruzisufaka ()

никаких /dev/video и dsp не будет.

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

Могу тебе дать линки на гитхабе, как это делается с hisilicon sdk

max_lapshin ★★★★ ()
Ответ на: комментарий от I-Love-Microsoft
~ # aplay -l 
-sh: aplay: not found
~ #

А иначе какой это секс? lsmod тоже про альзу не знает.

ruzisufaka ()
Ответ на: комментарий от max_lapshin

Смотри в символы

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

которую может даже не видеть ядро, получает данные и дергает коллбек.

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

Могу тебе дать линки на гитхабе, как это делается с hisilicon sdk

Давай, все лучше, чем совсем ничего. Если тебе не сложно, то по идее можно запросить Ambarella A9SE SDK, но его дают только организациям, простых красноглазиков шлют далеко. Быть может тебе, как организации, дадут демо.

ruzisufaka ()

ничего ты не сделаешь без sdk, да и с sdk, судя по риторике, тоже

функция 2-way-audio где-то в кишках китайской программы, а значит аудио-устройство уже занято

hizel ★★★★★ ()
Ответ на: комментарий от hizel

ничего ты не сделаешь без sdk, да и с sdk, судя по риторике, тоже

Мистер умеет видеть будущее? Я бы в таком случае предпочел узнать курс доллара через неделю, а не то, чем кончится этот реверсинг. В худшем случае, я весело проведу время, это just for fun.

функция 2-way-audio где-то в кишках китайской программы

Как показал дальнейший реверсинг, все это лежит внутри RTOS, которая крутится на другом ядре процессора, а до линукса все это не доходит.

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

ruzisufaka ()

Ребята, если кому-то интересен реверсинг этой видеокамеры, или быть может кто-то является владельцем оной - присоединяйтесь, я помогу чем угодно со своей стороны. Если вы хотите обсуждать меня или сомнительность затеи - проходите мимо.

В былые времена, году так в 2007-м, для таких целей покупали 5-дюймовые планшеты по 300 баксов с непонятными китайцами, а лишь слово «линукс» в описании товара грело сердце многим, после чего девайс сношался 2 недели и выбрасывался.

ruzisufaka ()

Жаль что в loquotes целиком весь пост не засунуть.

RiseOfDeath ★★★★ ()
Ответ на: комментарий от ruzisufaka

Ребята, если кому-то интересен реверсинг этой видеокамеры, или быть может кто-то является владельцем оной - присоединяйтесь

советую,нет просто кричу-ВЫЛЕЧИСЬ ЖЕ ТЫ от этой постсоветской мусорной помойки у себя в голове

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

забитая провинциальщина....это ужасно

anonymous ()
Ответ на: комментарий от ruzisufaka

....

кошмар

за время эти 3 дня этой темы-тыб уже заработал на современную проф-камеру в которой своя программируемая ОС-годится для любых задач

я написал пост,ибо последние два года «бомжи набежали на лор»,с жизненной логикой-ковыряемся в МК86 пока не сдохнем

яже как имеющий дело с «реальным реверсинженерингом» реальных железных девайсов,делая не однократно модификации и анализ чипов и ПО(даже разбираясь в ДРМ)...значешь что становиться со «старым» оборудованием при выходе нового(а оно каждый год-два выходит)-так вот я просто выкидывают 90% старья(10% складываю в коробку для доработки недоделанного),как и все нормальные люди

у тебя не девайс-у тебя какойто неюзабельный мусор,который себе дороже даже покупать/брать(я и за бесплатно мусор,отнимающий мое время,не беру)

берешь этот мусор-выкидываешь,и занимаешься чемто более реальным,если даже реверсом-то реверсом ПОПУЛЯРНОГО современного оборудования и ПО

anonymous ()
Ответ на: комментарий от anonymous

Я бы с тобой согласился, если бы не тот факт, что в «современной проф-камере» такая же проблема, а если девайс от Сони и им подобных гомосексуалистов, то там все хуже, чем можно было бы представить. Поэтому это смена шила на мыло. Чтобы заработать на нее за 3 дня, мне надо получить зарплату от 1000 зеленых в день, а в рашке такая зарплата или у крупных менеджеров, или у школьников в фантазиях. Пробел после запятой, а точнее его отстутствие, является скорее признаком школьника, чем менеджера.

ruzisufaka ()
Ответ на: комментарий от ruzisufaka

ищи в гугле по имени: SAMPLE_COMM_SYS_Init

это функции из hisilicon api

max_lapshin ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.