Документирование SWUPDATE

 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов The-eBook -> PocketBook -> PocketBook Free
 
Автор Сообщение

Vanuan
Продвинутый участник форума

Продвинутый участник форума



Зарегистрирован: 25.11.2011
Сообщения: 81



СообщениеДобавлено: 18.12.2011 07:33     Цитата

Предлагаю задокументировать процесс обновления прошивки и формат файла SWUPDATE.BIN

Программа распаковки: https://github.com/Vanuan/pocketbook_free_swupdate

Описание формата: https://github.com/Vanuan/pocketbook_free_swupdate/wiki/File-structure

Также было бы здорово написать замену swupdate.
 
Профиль Сообщение ^

Vanuan
Продвинутый участник форума

Продвинутый участник форума



Зарегистрирован: 25.11.2011
Сообщения: 81



СообщениеДобавлено: 27.12.2011 00:37     Цитата

Добавил скрипт для распаковки rootfs.img

Использование:

./extract.sh /path/to/SWUPDATE.BIN
ввести root пароль (для монтирования образа)
смотреть файлы в папке rootfs_extracted

Известные проблемы: не копируются файлы устройств из /usr/dev/

Некоторые файлы являются ссылками. Редактируйте с осторожностью!

Добавлено спустя 1 час 16 минут 38 секунд:

Эмулятор системы.

Устанавливаем qemu-kvm-extras-static и binfmt-support
Проверяем, что мы можем запускать arm elf:

update-binfmts --display

Код:
qemu-arm (enabled):
     package = qemu-user-static
        type = magic
      offset = 0
       magic = \x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x0 0
        mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\x ff\xff\xff
 interpreter = /usr/bin/qemu-arm-static
    detector =


Запускаем ./arm_chroot.sh (для chroot нужны права root)

Смотрим файловую систему и запускаем arm приложения прямо на компьютере:

Код:
BusyBox v1.16.1 (2010-10-11 18:29:44 EEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

# ls
bin         etc         mnt         sys         var
dev         lib         proc        tmp
ebrmain     lost+found  sbin        usr
#
 
Профиль Сообщение ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 12.11.2010
Сообщения: 1243


Откуда: Украина. Харьков

СообщениеДобавлено: 27.12.2011 02:02     Цитата

И гуевые программы можно запускать? Или пока только консоль?
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
Профиль Сообщение E-mail Skype ICQ ^

Vanuan
Продвинутый участник форума

Продвинутый участник форума



Зарегистрирован: 25.11.2011
Сообщения: 81



СообщениеДобавлено: 27.12.2011 04:47     Цитата

Только консоль. Ядро используется хостовое, так что никакой эмуляции устройств. Для эмуляции устройств потребуется полноценный qemu и какая-то прослойка, переводящая вызовы ioctl в виртуальный фреймбуфер.

Код:
9040 open("/dev/pvi_ioc",O_RDONLY|O_NONBLOCK) = 4
9040 ioctl(4,164,1082961816,0,5,1082961808)Unsupported ioctl: cmd=0x00a4
 = -1 errno=38 (Function not implemented)
9040 open("/dev/einkdrv",O_RDONLY|O_NONBLOCK) = 5
9040 ioctl(5,1,1085419528,4,1082131932,0) = -1 errno=22 (Invalid argument)
...
9044 ioctl(4,110,1082131900,110,1082132052,1082131900)Unsupported ioctl: cmd=0x006e
 = -1 errno=38 (Function not implemented)
9044 ioctl(4,106,1082131900,106,1082132052,1082131900)Unsupported ioctl: cmd=0x006a
 = -1 errno=38 (Function not implemented)



Даже с документацией на /dev/pvi_ioc и /dev/einkdrv это довольно сложно.
 
Профиль Сообщение ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 12.11.2010
Сообщения: 1243


Откуда: Украина. Харьков

СообщениеДобавлено: 27.12.2011 22:17     Цитата

Все равно очень полезно. Даже не знал что так можно делать. У меня qemu запускает свой arm-линукс, что не всегда удобно.
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
Профиль Сообщение E-mail Skype ICQ ^

Vanuan
Продвинутый участник форума

Продвинутый участник форума



Зарегистрирован: 25.11.2011
Сообщения: 81



СообщениеДобавлено: 28.12.2011 13:41     Цитата

Этим способом можно также узнать, что делает та или иная функция libinkview.

Для этого пишется простенькое приложение с соответствующим вызовом фунции libinkview и запускается при помощи:

/usr/bin/qemu-arm-static -strace /path/to/inkview/test

Мы увидим ioctl вызовы к конкретному устройству.
 
Профиль Сообщение ^

13hakta
Новенький участник форума

Новенький участник форума



Зарегистрирован: 22.07.2011
Сообщения: 5



СообщениеДобавлено: 26.02.2012 18:18     Цитата

а могёте написать программу для сбора образа SWUPDATE.BIN?
 
Профиль Сообщение ^

Cthae
Бывалый участник форума

Бывалый участник форума



Зарегистрирован: 16.09.2011
Сообщения: 129



СообщениеДобавлено: 27.02.2012 00:23     Цитата

13hakta
Написать-то можно, только какой в этом смысл, если полученный образ не выйдет использовать по его прямому назначению т.к. там используется ЭЦП? Конечно, если получить к устройству root доступ, можно уже что-то там пропатчить, чтобы эта ЭЦП не проверялась. Но если root доступ есть, этот SWUPDATE.BIN для его прямого назначения и не нужен.
_________________
Qumo Colibri
 
Профиль Сообщение ^

ifred
Постоянный участник форума

Постоянный участник форума



Зарегистрирован: 14.09.2011
Сообщения: 166



СообщениеДобавлено: 03.04.2012 13:02     Цитата

Vanuan писал(а):
Программа распаковки: https://github.com/Vanuan/pocketbook_free_swupdate
Добавь, пожалуйста, ключ -d к вызовам umount.
man umount писал(а):
-d - In case the unmounted device was a loop device, also free this loop device.

_________________
PB 602
PB 612
PB 611 fw. 15.7 - подарок от PocketBook
 
Профиль Сообщение ^

JAW
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 27.09.2004
Сообщения: 21169


Откуда: Северная столица

СообщениеДобавлено: 03.04.2012 18:07     Цитата

В принципе на Pro вообще прошивка сервисная к серийнику привязана...
Сервис в принципе может поменять серийник, есть для этого средства Smile
Прошивка собирается под номер на специальном ресурсе...

Который я посетил кажеться неделю назад Smile
У них вход был открыть Smile
_________________
PocketBook: 301+,602(2.2.1a),701, A7, 701 IQ, A7, U7.
Fly: IQ 235
 
Профиль Сообщение E-mail ^

Vanuan
Продвинутый участник форума

Продвинутый участник форума



Зарегистрирован: 25.11.2011
Сообщения: 81



СообщениеДобавлено: 07.04.2012 00:35     Цитата

ifred писал(а):
Добавь, пожалуйста, ключ -d к вызовам umount.

как-то так: https://github.com/Vanuan/pocketbook_free_swupdate/commit/04d946ec1dac 20caa864bc50c5f1c29b79802269
 
Профиль Сообщение ^

13hakta
Новенький участник форума

Новенький участник форума



Зарегистрирован: 22.07.2011
Сообщения: 5



СообщениеДобавлено: 21.02.2013 20:33     Цитата

Под каждый серийник устройства? На устройствах серийники уникальные или для партии одинаковые?

Posted after 22 minutes 22 seconds:

а кто-нибудь может угадает что скрывается под хэшем root'а?..

$1$g9vDEStU$TQdryjnAMafrvsoXHQa9Z1
 
Профиль Сообщение ^

Antuan
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 30.09.2009
Сообщения: 11615


Откуда: Киев

СообщениеДобавлено: 22.02.2013 00:40     Цитата

13hakta писал(а):
а кто-нибудь может угадает что скрывается под хэшем root'а?..

Попробуйте это, не совсем то, но вдруг.
_________________
PB 360° (v.15.3) | PB Pro 602 Grey (v.2.2.1a fastdrv) | PB A7 (v.1.3.1583) - подарок от PocketBook.
 
Профиль Сообщение ^

Cthae
Бывалый участник форума

Бывалый участник форума



Зарегистрирован: 16.09.2011
Сообщения: 129



СообщениеДобавлено: 03.04.2013 15:50     Цитата

https://github.com/plops/pocketbook360/blob/master/pocketbook.org сюда тоже продублирую эту ссылку
_________________
Qumo Colibri
 
Профиль Сообщение ^
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов The-eBook -> PocketBook -> PocketBook Free Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

© The-eBook, 1999-2014. © Design by Prohorenkov
Syndicating News | Powered by phpBB © 2001, 2005 phpBB Group.
Хостинг предоставлен компанией DatForce     Яндекс.Метрика