LINUX.ORG.RU

Определяем платформу китайской консоли

 , ,


0

3

Привет! Прикола ради разжился китайской консолью 11 летней давности, jxd 5000. Изначально, я думал что она работает на spmp8k(популярный в прошлом SoC для китайских консолей, работали на ecOS), но таки нет - здесь какая-то самопальная система. В корне флешки обнаружились бинарники эмулей - обычные исполняемые MIPS эльфы, правда с расширением so. Предположил что стоит линух, написал небольшую программу, которая записала бы на внутреннюю память содержимое /proc/ и /dev/, скомпилировал с флагами такими, как у бинарника эмуля(т.е без PIC) MIPSel тулчейном - получил ребут. Разобрал консоль, подпаялся к UART, выдал такой лог:

key power onoff long press
cclk:444H
TMP DDR_CTRL 0x12800322
cclk:444L

⸮⸮fb⸮⸮ de has been reseted
open backlight
cclk:348L
cclk:180L
cclk:78L
key power onoff long press
cclk:444

charge status = 0H
#### launcher.app, max memory usage: 0xd2b000 bytes, current memory usage: 0x7a8000 bytes
#### msg_serv.app, max memory usage: 0x7a8000 bytes, current memory usage: 0x77f000 bytes
argv[0]=/mnt/diska/apps/anim_off/anim_off.app
#### anim_off.app, max memory usage: 0x824000 bytes, current memory usage: 0x77f000 bytes
cclk:444L
wrong ioctl cmd: 0x 4805, usbmonitor_chrdev_ioctl,305
system will enter shutoff, wakeup_src: 0x0000000b

IRCBOOT, protocol: 1, customer code: 0x3c, onoff_code: 0x23, 16bit: n
flash_shutdown

Судя по точкам монтирования, это похоже на линух - но консоль на уарте не висит, логов ядра тоже нет, вместо классической связки u-boot + linux, какой-то свой загрузчик. Есть оригинальная прошивка, но походу толи пожата, толи закодирована - binwalk таблицы разделов в ней не нашел. Думал уже сдуть нанд, припаять к китайскому планшету с двумя площадками под нанд и сдампить разделы чтобы понять что и как, но думаю мб на лоре кто-то имел дело с этими платформами? Может логи что-то скажут, что это за rtos может быть? Или все таки это линух?



Последнее исправление: monobogdan1337 (всего исправлений: 1)

Чуть не забыл! Проц здесь G1000, производства actions-semiconductor. Они еще чипсеты для mp3/mp4 плееров делали раньше - ATJ205 и.т.п

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

И еще, идой дизассемблировал бинарники эмулей, судя по всему система умеет подгружать динамические библиотеки из тех же эльфов(таким образом подгружаются плагины для эмулятора psx). Что за RTOS может такое, не будут же китайцы сами допиливать такое? Или все таки линух?

monobogdan1337
() автор топика

Ну там флеху перекинуть 10 минут, быстрее чем обстоятельно пост на форуме писать)

shalom_ ★★
()

Сразу вспомнилось, как запускали Doom на обложке журнала Vogue )

что это за rtos может быть? Или все таки это линух?

похоже, µC/OS II

декриптор FW - https://github.com/Rockbox/rockbox/tree/master/utils/atj2137/atjboottool

сам не занимался, просто загуглил )))

https://pulkomandy.tk/_/_Electronique/_Reverse%20Engineering%20notes%20for%20ATJ227x

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

Сразу вспомнилось, как запускали Doom на обложке журнала Vogue )

А можно поподробнее, или ссылочку? Что-то не вышло нагуглить, зато нашел про запуск на тесте на беременность.

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

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

monobogdan1337
() автор топика
Ответ на: комментарий от Dog

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

PS ладно, раз уж начал ) https://habr.com/ru/post/108921/

kindof
()
Последнее исправление: kindof (всего исправлений: 1)

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

попридержи кобыл. nand flash это тебе не еммц. нанд контроллер имеет свою логику, как работать с блоками, что писать в sparse область и тп. пересадка сработает только с таким же контроллером. даже если ты сольешь нанд программатором - прочитать (всмысле корректно) его будет большой геморой. единственный простой способ - пробраться в загрузчик, оттуда его уже сдампить.

vvviperrr ★★★★★
()
Последнее исправление: vvviperrr (всего исправлений: 1)
Ответ на: комментарий от monobogdan1337

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

Пожалуйста. Ну и если рисёч даст что-нибудь - ждёмс репорта )

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

короче я походу понял почему восстанавливать инфу с нанда ТАК дорого. С другой стороны раньше ж были eMCP с нанд/ддр, и вроде их даже пересаживали с смартфона на смартфон

monobogdan1337
() автор топика
Ответ на: комментарий от Dog

MIPS чипсет 2009 года, схожий использовался в Dingoo A320(очень популярная консоль, на которую потом линукс портанули)

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

на самом нанде, в каждой странице есть специальная sparse область

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

Глянул. Правда у меня не ingenic, а actions semiconductor. Искать правду надо в их плеерах возможно

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

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

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

Будете смеяться) была консоль на андроиде, решил портировать прошивку, перед этим сдампил все разделы. Разделы в системе были как mtd. Прикол в том, что dd почему-то скопировал raw данные с флехи вместе с sparse инфой, при том что в начале дампа все нормально, заголовок uImage, первичный бут, а потом забито нулями и мусор с других разделов) в итоге кирпич. Это разве норм поведение? NAND драйвер на выхлопе должен выдавать нормальные данные, а не сырые.

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

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

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

И эт, в сабже речь не про ту консоль, что на хабре. У меня их сейчас несколько штук, но у белой самые серьезные проблемы сейчас.

По сабжу нашел софт для разбора прошивки - оказывается actions до сих пор производят эти чипсеты и консоли на них(powkiddy j6 например), так же эти чипсеты юзаются в всяких недорогих плеерах и.т.п. Работают на базе одной и той же прошивке с незначительными изменениями, я попытался прошить прошивку от новодела повкидди - не прошилась. Но в теории можно распаковать рутфс и того и того, и перекинуть лаунчер с эмуляторами, оставив свое ядро, навряд ли что-то сильно поменялось у них.

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

а с чего, с каких устройств ты делал dd? mtdblock? и почему рушил что sparse попала в дамп? дамп весил больше, чем размер флешки?

vvviperrr ★★★★★
()
Последнее исправление: vvviperrr (всего исправлений: 1)
Ответ на: комментарий от vvviperrr

Если дампить не программатором(или втупую ногодрыгом), а через linux - то надо задать те же параметры nand контроллера, что и на исходной борде. Иначе действительно можно отловить полной херни.

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

Не то чтобы репост

чел просто написал про принцип организации нанды

я подметил что некоторые драйвера странно работают

автор статьи - я, всё верно.

Меня ты окончательно запутал. Последующий комментарий ясности не вносит.

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

В начале заголовок uImage, ошметок в 4-8кб(по размеру блока0 и затем либо нули либо рандомные данные. Плюс в дампе лежит то, что вообще лежит в других разделах(дамп не единый). т.е посреди «ядра» встречается закэшированный шейдер от игры в которую играл на консоли) Читал с мтд

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

Короче, вкратце, я слил с внутренней памяти планшета используя dd разделы с загрузчиком и ядром. А они прочитались не как «надо», а с сырыми данными контроллера NAND памяти - т.е между страницами данные о износе страниц и.т.п. И файлы в NAND расположены не последовательно, а так называемо SPARSE - т.е раскиданы по всей памяти из-за того что ячейки регулярно выходят из строя и приходится искать другие. vvviperrr писал выше в этой статье про то, что нужно не торопится сливать NAND, а я вспомнив его слова, написал ему что некоторые драйвера нанда работают криво.

monobogdan1337
() автор топика
Ответ на: комментарий от vvviperrr

Кстати ка, на девайсе же ubi используется, а ubi это еще и система разделов. Может же быть так, что он вычитал данные ubi?)

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