> Внимание!

Новые темы необходимо создавать только в корневом разделе! В дальнейшем они будут обработаны модераторами.



Прошивки устройств на SoChip 8600/9800 | Создание и модификация прошивок для устройств на SoChip 8600/9800



Реп: (335)
Прошивки устройств на SoChip 8600/9800

В теме обсуждаются вопросы создания и модификации прошивок устройств на SoChip 8600/9800 и их аналогов

Сейчас на рынке появилось множество устройств, построенных на базе SoChip 8600/9800 и их аналогов (электронные книги, мобильные и стационарные портативные плеера). К сожалению, производитель не открыл SDK и прошивка этих устройств является "черным ящиком". Предлагается в этой теме общими усилиями собрать информацию и разработать методики, которые позволят улучшать прошивки.
!!! Доступен SDK от DiPal !!!
I. Внимание. Важная информация для "экспериментаторов"
1. Если после прошивки устройство не подает признаков жизни или циклически перегружается (не желает прошиваться), не паникуем:
- Инструкция 1
- Инструкция 2
- Инструкция 3
2. Настоятельно не рекомендуется для перепаковки образов дисков пользоваться WinImage. Это может приводить к неработоспособности прошивок. Используйте, например, UltraISO. Но наиболее предпочтительно использовать программу dragon из комплекта "утилит от производителя" (см. в разделе "Инструменты")
3. Если при прошивке Вашего устройства возникли проблемы и Вы хотите воспользоваться помощью форумчан, используйте программу DebugView
losber @ 10.12.2011, 17:46 *
скачиваете DebugView и запускаете ее, пускай работает. Прошиваетесь LiveSuit проблемной перепакованной прошивкой, получаете ошибку. Далее переходите в программу DebugView, сохраняете в файл то, что получилось и прикрепляете в сообщении на форуме.
II. Аналоги
III. Информация - ссылки на сообщения в теме
1. Спецификации:
1.1 Спецификация SoChip SC9800
1.2 Спецификация F16
1.3 Спецификация F20
2. Руководство по ядру ARM926EJ-S
3. Структура файла прошивки (дальше по ссылкам)
4. Последовательность старта аппарата
5. Работа с языковыми ресурсами
6. "Student Computer" (H3/H5)
7. Ответы на вопросы:
- Какое ядро?
- Какая ОС?
- Можно ли установить Android?
Еще раз об Android, еще раз и еще
8. Инструкция для новичков
9. Назначение драйверов и системных файлов в прошивках
10. Формат файлов BMP в файле ресурсов
11. Переназначение кнопок устройства в драйвере клавиатуры
12. Переназначение кнопок пульта ДУ в драйвере клавиатуры
13. Замена драйверов в прошивках (1) и (2)
14. Инструкция по правке исполнимых файлов для запуска на другой прошивке
15. Заброшенный проект для SC8600 с исходниками
16. DWARF
17. Схемы устройств (1), (2) и (3)
18. Образцы прошивок, демонстрирующих UI SDK от wits252
19. Идентификация чипов ARM
20. Исходники игр для наших устройств (1), (2) и (3)
21. Как изменить кириллический текст в приложениях.
III+. Дополнительная информация
IV. Инструменты - ссылки на сообщения в теме
1. Комплект утилит от производителя
- Инструкция 1
- Инструкция 2 (создание rootfs)
- Инструкция 3 (создание ramdisk.iso)
2. SDK от DiPal
3. imgRePacker - распаковщик/упаковщик образов прошивок LiveSuit (*.img)
4. imgDecoder - расшифровщик/зашифровщик прошивок LiveSuit (*.img)
5. Программа для облегчения редактирования touchtheme.bin
6. Сборка утилит для работы с прошивками
7. Оригинальная (китайская) сборка SoChip Modding Tools
Дополнения
7.1 Альтернативный azxmagic_add.exe от Flasher-11
7.2 Альтернативный azxmagic_del.exe от Flasher-11
7.3 Альтернативный verify_corr.exe от Flasher-11
7.4 GUI от losber
8. unPacker от nullpix
9. GNU_readELF - инструмент для парсинга символьной информации ELF
10. AXF_beautification_tool - утилита для работы с графическими ресурсами (в некоторых *.axf и *.bin файлах)
11. PhoenixPro - утилита, которая позволяет одновременно прошивать до 127 устройств (рекомендуется не более 7). Как утверждается, при одновременной работе с 7-ю устройствами прошивка размером примерно в 100MB загружается за 10с (ключ внутри архива). Еще раз
12. PhoenixCard - утилита для подготовки microSD для автоматической прошивки. Еще раз с инструкцией
13. LiveSuit в удобной "упаковке". Еще раз
14. Драйвера (32 и 64 бит) и еще раз
15. ARMu - A tool to view and edit the ARM binaries
16. SCelfAutoPatcher - программа для автоматического исправления адресов импортируемых функций в исполнимых файлах (*.axf)
17. SYMTAB_extractor - программа для извлечения символьной информации из исполняемых файлов (ELF)
V. Программы для устройств на SC8600/9800 - ссылки на сообщения в теме
VI. Полезные ссылки
1. Сайт производителя SoChip (англ.)
2. Сайт производителя SoChip (кит.)
3. Сайт производителя ALLWINNER TECHNOLOGY (кит.)
4. Страничка Allwinner на сайте ARM
5. Родственный форум на pleer.ru
6. Просто интересные ссылки от losber
VII. Профильные темы

Просьба обратить внимание:
1. Прежде чем задавать вопросы ознакомьтесь с содержанием темы (особенно с сообщениями по ссылкам в шапке)
2. Здесь обсуждаются только общие вопросы создания и модификации прошивок. По вопросам прошивки конкретных устройств прошу обращаться в профильные темы форума.
3. Приветствуется любая полезная информация (будет отфильтрована).
"Подчистки"

Сообщение отредактировал RedScorpio - 17.03.13, 17:54



Реп: (335)
Интересующимся: спецификация SC9800.
Правда, очень маленькая. Но зато расписаны все поддерживаемые форматы.
Прикрепленное изображение


Прикрепленные файлы

Прикрепленный файлSC9800Pspecs.rar ( 493.02 КБ )


Сообщение отредактировал RedScorpio - 29.07.12, 20:27
Причина редактирования: Приложил документ



Реп: (335)
zoldborg @ 21.09.2011, 16:10 *
на этой же версии включил дебаг, прошил, убедился что флэшку перестал видеть

Полезная информация. Запишем:
Включение debug-режима отключает microSD-ридер.

Примечание. На разных устройствах/прошивках могут быть разные проявления. На моем устройстве получается как-бы двухэтапное включение.
На родной прошивке:
- после нажатия на кнопку Power - на экране стартовое лого (если устройство подключено к ПК по USB - доступен только microSD-ридер и системный диск)
- после повторного нажатия на кнопку Power - переход в обычный режим (системный диск и microSD недоступны).
На адаптированной прошивке iconBIT HMP715:
- после нажатия на кнопку Power - после еле заметного включения подсветки остается черный экран (если устройство подключено к ПК по USB - доступен только microSD-ридер и системный диск)
- после нажатия на кнопку Esc - переход в обычный режим (системный диск и microSD недоступны).

RedScorpio @ 22.09.2011, 10:09 *
для себя не вижу пользы во включении дебага

Лично мне этот режим нужен для исследований

Сообщение отредактировал RedScorpio - 17.05.12, 23:06



Реп: (335)
Кстати, в сети встречается видео, на котором на SoChip-овских плеерах установлен Android. Тема обсуждалась на MP4 Nation. Видео признано фейковым.



Реп: (9)
Покапался в интернете нашёл ARM Developer Suite, раздебажить axf файлы не удалось, из-за отсутствия кряка на это :)



Реп: (325)
Flasher-11 @ 13.10.2011, 02:44 *
нашёл ARM Developer Suite

ADS evaluation license for the Professional Edition на 30 дней.



Реп: (423)
Поможет ли в поиске алгоритма упаковки декомпилирование в псевдокод библиотек из комплекта LiveSuite? Сразу бросается в глаза ZipModule.dll. Еще заметил, что среди файлов распакованной прошивке есть парочка 12345678_1234567890cardtl и PXTOOLS _xxxxxxxxxxxxxxxx, которые идентифицируются как PE для x86 и скомпилированы в Visual C++. Первый, как я понял, разбирает, заливает и конфигурирует загрузчик. Второй из них оперирует с самой прошивкой. Если надо - выложу псевдокод. Не понятно, зачем их было пихать в саму прошивку...



Реп: (423)
Немного в строну от темы про упаковщики.
Просмотр логов дебаггера при прошивке читалки родной прошивкой (чип F15) и сторонней (чип F10) говорит как раз о том, что дело не в чипе, во встроенной флеш-памяти (другой чип NAND?). Запарка возникает с флешкой, сообщение PANIC : tools_scan_nand() : nand_connect_info is invalid выводится модулем PXTOOLS _xxxxxxxxxxxxxxxx
Прикрепленный файлEffire_ColorBook_TR701_V1.2_log_update.txt ( 30.37 КБ )
Прикрепленный файл500EB_FW1118a_log_update.txt ( 26.82 КБ )


Сообщение отредактировал losber - 27.11.11, 11:54



Реп: (423)
KudryashovDA @ 27.11.2011, 11:35 *
Пробую идею с обманом книги. Идея такая: попробовать запаковать прошивку способом для sc8600 и залить в книгу. Только надо как-то сообщить книге или Livesuite , чтобы заливка (внутренняя распаковка) проходила тоже для как бы устройства для sc8600, т.е. без стадии azxmagic. На этот случай в конфиге есть строка с выбором чипа.

Отличная идея.
Для прошивок F15 и F10 LiveSuit одинаково выдает
\par Debugged application message: ----------------epos_para-------------
\par Debugged application message: chip =33554432
\par Debugged application message: pid =33751040
\par Debugged application message: sid =33751296
\par Debugged application message: bid =128
А для прошивок SC8600 та же самая версия LiveSuit выдает
\par Debugged application message: ----------------epos_para-------------
\par Debugged application message: chip =16777216
\par Debugged application message: pid =16842752
\par Debugged application message: sid =16843008
\par Debugged application message: bid =16843012



Реп: (423)
В конфигах прошивок F10 и явных SC9800 в отличие от F15 напрочь отсутствует параметр encrypt для разделов. Что-то мне подсказывает, а сравнение и просмотр кода подтверждает, что в них разные "разборщики конфига" PXTOOLS _xxxxxxxxxxxxxxxx.
Для сравнения sys_config и pxtools от всех трех. Прикрепленный файлpxtools_and_sys_conf.zip ( 136.01 КБ )


Сообщение отредактировал losber - 27.11.11, 14:40
Причина редактирования: прикрепил файлы



Реп: (15)
losber,
losber @ 27.11.2011, 14:34 *
что в них разные "разборщики конфига" PXTOOLS _xxxxxxxxxxxxxxxx


Попробую заменить pxtools
и еще заметил, что в 8600 конфиге размеры дисков указаны в Мб, а в 9800 в килобайтах

Замена pxtools не прокатывает (с заголовком и без) - Livesuite при выборе прошивки выдает Panic на обработке dram.ini

Сообщение отредактировал KudryashovDA - 27.11.11, 15:00
Причина редактирования: Добавил про panic



Реп: (11)
KudryashovDA @ 27.11.2011, 17:07 *
Учусь коротить ножки


Добрый вечер,главное в этой учебе хорошо уметь считать.Коротить только 29 и 30.
Наш собрат тут слегка обсчитался и убил аппарат насмерть.
УДАЧИ!!!



Реп: (15)
SOVA-538,
SOVA-538 @ 27.11.2011, 16:21 *
Коротить только 29 и 30.


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

losber,
losber @ 27.11.2011, 16:22 *
Интересно, зачем заменяли?

Да заигрался и неподумав прошился.

П.С. выложил на сайте фото того места, где замыкал ножки памяти.

Сообщение отредактировал KudryashovDA - 27.11.11, 19:55
Причина редактирования: оформление



Реп: (15)
losber,
losber @ 27.11.2011, 21:40 *
Вы получили абсолютно идентичную прошивку? Байт в байт?


c:\fw\SoChip_Modding_Tools_Repack__RedScorpio_\effire.img 72,736,784 байт
c:\fw\SoChip_Modding_Tools_Repack__RedScorpio_\Effire.img.bak 72,748,032 байт - исходная

Прошивки различаются размером. Но это не влияет на работу. Все загружается и работает.

Обнаружил, что никто не интересуется файлом RFSFAT16_BOOTFS_000000000 - а ведь там много интересного внутри. Открывается тем же Winimage.
Для Effire 701 внутри вот что:
config\
eGon2\
magic.bin

Состав config:
Update\
config.bin
setting.bin

Состав update:
drv\
res\
settings\
usbd\

Состав settings:
adjust.ini
autooff.ini
autosleep.ini
charset.ini
disp.ini
explr.ini
fmsend.ini
gamma.ini
language.ini
lock.ini
module.ini
powsave.ini
sound.ini
voice_volume.ini
wallpaper.ini


Попробую поиграться :)



Реп: (423)
Я все же останусь при своем мнении о необходимости получать идентичное при прямых-обратных операциях. Так заведомо упрощается поиск ошибок на других этапах.
Обнаружил, что никто не интересуется файлом RFSFAT16_BOOTFS_000000000 - а ведь там много интересного внутри. Открывается тем же Winimage.

Мы всем интересуемся. Просто не до всего руки доходят. Я даже линукс пытался собирать - ядро собрал, а как залить в книжку, настроить и отлаживать...
Вижу интересный объект, по-видимому влияющий на гамму изображений на экране.
[gamma]
value = 657930
default_value = 657930
sys_value = 6579300



Реп: (15)
losber,
losber @ 27.11.2011, 22:20 *
[gamma]


Это скорее всего регулировка баланса белого - есть в настройках моей Effire.



Реп: (15)
Промежуточные выводы по прошивке:
Процесс загрузки прошивки в книгу можно наблюдать с помощью программы DbgView. Вот пример листинга
00000364 30.27381134 [1772] ----------down_para---------
00000365 30.27428818 [1772] down_num = 2
00000366 30.27444839 [1772]
00000367 30.27444839 [1772] [download_para0]
00000368 30.27466965 [1772] part_name = SYSDATAFS
00000369 30.27482796 [1772] pkt_name = ROOTFS_000000000
00000370 30.27519989 [1772] verify_file = VERIFY_000000000
00000371 30.27535820 [1772] encrypt = 1
00000372 30.27590179 [1772]
00000373 30.27608299 [1772]
00000374 30.27608299 [1772] [download_para1]
00000375 30.27624321 [1772] part_name = SYSBOOTFS
00000376 30.27639961 [1772] pkt_name = BOOTFS_000000000
00000377 30.27655602 [1772] verify_file =
00000378 30.27671051 [1772] encrypt = 0
00000379 30.27716637 [1772]
.............
00000416 30.28506851 [1772] ============================================
00000417 30.41690636 [1772] tag = AWUSBFEX
00000418 30.41727448 [1772] Platform_id_hw = 0x161800
00000419 30.41741371 [1772] Platform_id_fw = 0x1
00000420 30.41764832 [1772] mode = 0x1
00000421 30.41794395 [1772] Phoenix_data_flag = 0x44
00000422 30.41820526 [1772] Phoenix_data_len = 0x8
00000423 30.41843796 [1772] Phoenix_data_addr = 0x7e00
00000424 30.47373581 [1772] down and run fes1-1
00000425 31.12006187 [1772] down and run fes1-2
00000426 31.73511696 [1772] update dram size 64 to 64
00000427 31.83493996 [1772] fes-1: 64
00000428 31.83853340 [1772]
00000429 31.83853340 [1772] INFO: dram initialize successful
00000430 31.83853340 [1772]
00000431 32.98230743 [1772] INFO: run fes2
00000432 33.55829620 [1772] OUT 1
00000433 36.21395111 [1772] IN 1
00000434 36.41678619 [1772] SourceCodePage = 1251
00000435 38.49842453 [1772] not Erase device
00000436 38.49871826 [1772] GetCurrentMUI: acp =1251
00000437 38.56447220 [1772] ID=1, fes_thread() : --120--
00000438 38.56660461 [1772] enable_erase_nand = 0

00000444 65.03786469 [1772] ID=1, fes_thread() : --162--
00000445 65.62593842 [1772] GetCurrentMUI: acp =1251
00000446 65.80965424 [1772] ID=1, fes_thread() : --163--
00000447 65.81031799 [1772] part_name = SYSDATAFS, packet_len = 0x43e0000, pkt_name = ROOTFS_000000000, verify_file = VERIFY_000000000, encrypt = 1
00000448 65.94046783 [1772] [fes]: download_packet ooc open
......
00000468 156.81524658 [1772] [fes]: download_packet ooc close
00000469 156.85617065 [1772] GetCurrentMUI: acp =1251
00000470 162.80464172 [1772] INFO: ID = 1, pc_crc = 0x228efb29, fex_crc = 0x0, nand_crc = 0x228efb29
00000471 162.80508423 [1772]
00000472 162.80508423 [1772] down pkt_name(ROOTFS_000000000) to part(SYSDATAFS) successful
00000473 162.80508423 [1772]
00000474 162.80537415 [1772] part_name = SYSBOOTFS, packet_len = 0x5dc00, pkt_name = BOOTFS_000000000, verify_file = , encrypt = 0
00000475 162.83940125 [1772] [fes]: download_packet ooc open
.........
00000487 164.32176208 [1772] [fes]: download_packet ooc close
00000488 164.37115479 [1772] GetCurrentMUI: acp =1251
00000489 164.43484497 [1772] WRN: pkt_name(BOOTFS_000000000) is not verify
00000490 164.43547058 [1772]
00000491 164.43547058 [1772] down pkt_name(BOOTFS_000000000) to part(SYSBOOTFS) successful
00000492 164.43547058 [1772]
00000493 164.43627930 [1772] GetCurrentMUI: acp =1251
00000494 164.94393921 [1772] ID=1, fes_thread() : --167--
00000495 165.11886597 [1772] INFO: ID = 1, pc_crc = 0x534641d2, fex_crc = 0x0, nand_crc = 0x534641d2
00000496 165.11912537 [1772] ID=1, fes_thread() : --161--
00000497 167.24565125 [1772] GetCurrentMUI: acp =1251
00000498 167.42707825 [1772] ID=1, fes_thread() : --160--
00000499 168.82461548 [1772] GetCurrentMUI: acp =1251
00000500 169.00119019 [1772] ID=1, fes_thread() : --168--
00000501 169.08499146 [1772] ID=1, fes_thread() : --190--
00000502 169.20715332 [1772] GetCurrentMUI: acp =1251
00000503 169.53906250 [1772]
00000504 169.53906250 [1772] INFO: ID=1, update successful
00000505 169.53906250 [1772]
00000506 169.53918457 [1772] GetCurrentMUI: acp =1251
00000507 173.17234802 [1772] OUT 1


В листинге все, что выводится после "tag = AWUSBFEX" - формируется файлом PXTOOLS _xxxxxxxxxxxxxxxx из самой прошивки.
Процесс заливки для Effire 701 состоит из двух частей: сначала закачивается загрузчик:
00000424 30.47373581 [1772] down and run fes1-1
00000425 31.12006187 [1772] down and run fes1-2
00000429 31.83853340 [1772] INFO: dram initialize successful
00000431 32.98230743 [1772] INFO: run fes2
Потом загружается ROOTFS_000000000 и после него BOOTFS_000000000 в области памяти, определенные ранее в конфиг-файле. Можно загрузить только один из вышеуказанных файлов путем правки конфига, но книга после этого не включается.
Правка ini-файлов в BOOTFS_000000000 возможна с успешной последующей прошивкой, но никаких видимых изменений в книге после этого не наблюдается.
Была попытка изменить значение debugenable путем прошивки "пустышки", т.е. убиранием секции [download] и [part num] в конфиге - не вышло - livesuite в конце прошивки выдает ошибку и книга не включается.

За выходные книга раз 20-30 перепрошивалась, половину раз из них не включалась. Всегда выручало 10 сек нажатие на кнопку питания с последующим втыканием в компьютер, где ждала открытая LiveSuite. Один лишь раз это не помогло - пришлось закорачивать ножки микросхемы памяти.
Пока сконяюсь к тому, что без полноценного запаковщика для sc9800 не обойтись.



Реп: (15)
Тут кто-нибудь с линуксом дружит? Можете проверить - не является ли т.н. запакованный iso-образ прошивки сжатым lzma RAM-диском - CRAMFS-LZMA.
По ссылке: http://bitsum.com/firmware_mod_kit.htm есть некий инструментарий для работы с такой штукой.



Реп: (15)
losber,
losber @ 28.11.2011, 22:47 *
DiPal ответил по поводу запаковки.

Процитирую тогда здесь слова Dipal:
Мой код: lzma.exe e -d14 Rootfs000000.img Rootfs000000.lza
Версия lzma до фонаря. Однако в связи с изменением размера нужно переделывать заголовки:
/*
0 dw
4 dw
8 2dw=string_short
0x10 4dw = string long
0x20 dw
0x24 dw
0x28 dw=image_size
0x2c dw=image_offset
0x30 dw
0x34 string with file name
*/

Завтра думаю все получится

Сообщение отредактировал RedScorpio - 20.01.12, 22:44



Реп: (38)
А че там все понятно - 2 батника в архиве на распаковку и запаковку. Терь самое главное - менять арм код прошивки под себя и самое тяжелое. И сразу вопрос - у меня в плеере и какбы читалке texet t-929hd есть файлик bookengine.mod , о котором дипал и писал, это есть elf файл с уже обозначенными функциями, но в нем есть ссылки на функции из другой части прошивки.Собственно какая это есть часть прошивки (файл прошивки) и с какого адреса её грузить в иду? (или с какого адреса её слипить вместе с bookengine).



Реп: (38)
А я себе уже кое-что улучшил в плеере: в файлике movie.axf( который отвечает за видео) уменьшил время показа на экране видео всей инфы об файле, иконок плеера, перемотку и тд. Эта инфа убиралась у меня автоматом гдето через 4-5 сек., я сделал 1 сек.


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 29.03.24, 15:00