Как я "издевался" над плером Sony. Часть 2

Всем привет, это продолжение поста по мои издевательства над плеером Sony. Кто не читал может посмотреть первую часть.

Это скорее пост не для обывателя, но постараюсь объяснить все простым языком.


После того как я увеличил память, по дальнейшей задумке было модифицирование ресурсов на плеере. Сначала я начал копаться в дампе, который снял с флэшки, там я приметил папку skinROM. Интригующее название, да? В предвкушении что там лежит с десяток картинок, открываю папку, но там какие-то странные .tpg файлы. На этом могла и кончится моя модификация ресурсов плеера, но имея опыт с miband, где китайцы мудрили с упаковыванием ресурсов в 1 файл, я начал копать. (Если интересно кому могу написать как я делал программу MiBandWatchfaceEditor для mi band 5/6).

Спустя парочку бессонных ночей HEX редактором я понял как они хранили много картинок в одном файле.

Как я "издевался" над плером Sony. Часть 2 Ремонт, Электроника, Улучшения, Старые вещи, Mp3-плеер, Программирование, Реверс-инжиниринг, Длиннопост

Первые 12 байт всегда одни и те же, 4 байта после это количество картинок в файле, 12 байт еще всегда нули и последние 4 байта это количество байт до конца файла.

Далее нужно было разобраться как же хранятся картинки.

Как я "издевался" над плером Sony. Часть 2 Ремонт, Электроника, Улучшения, Старые вещи, Mp3-плеер, Программирование, Реверс-инжиниринг, Длиннопост

Интересно что, они в одном файле хранят много картинок с разной глубиной цвета. 2 байта на пиксель, 3 или вовсе 4 байта с альфа каналом(прозрачностью). Сложнее всего было понять как кодируется 2-х байтный цвет.

Как я "издевался" над плером Sony. Часть 2 Ремонт, Электроника, Улучшения, Старые вещи, Mp3-плеер, Программирование, Реверс-инжиниринг, Длиннопост

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

С .STX файлами тоже ничего особенного не было просто хранит строки в UTF-16 кодировке. но Есть заголовок с адресами на строки, если меняем строки их нужно пересчитывать.

А дальше меня вообще понесло) Вспомнив, что у меня дома лежит ардуинка и что в фирменном разъеме sony есть uart, я припаял к выводам UART arduino без камня. Там ожидаемо был линукс.

Я хотел сделать быстрый перенос файлов ресурсов без обновления.

Как я "издевался" над плером Sony. Часть 2 Ремонт, Электроника, Улучшения, Старые вещи, Mp3-плеер, Программирование, Реверс-инжиниринг, Длиннопост
Как я "издевался" над плером Sony. Часть 2 Ремонт, Электроника, Улучшения, Старые вещи, Mp3-плеер, Программирование, Реверс-инжиниринг, Длиннопост

Честно говоря у них крайне паршивый драйвер usb и пришлось все делать через флаги. Поменяв немного скрипт загрузки у меня получилось перемещать папку GUI с root на диск который видит винда и наоборот.


Последнее что я наверное буду делать это "драйвер" UART чтобы можно было подключать в док станцию и управлять музыкой через пульт. Но это будет потом.

К слову еще про выводы UART в порте. Чтобы подключится к консоли нужно поднимать флаг для работы с getty и можно сделать debug кабель из обычного но нужен будет USB-UART переходник.

Как я "издевался" над плером Sony. Часть 2 Ремонт, Электроника, Улучшения, Старые вещи, Mp3-плеер, Программирование, Реверс-инжиниринг, Длиннопост

Программу можно скачать с гитхаба.
Всем добра.