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

 
View unanswered posts
Post new topic   Reply to topic    The-eBook Forum Index -> PocketBook -> PocketBook Free
 
Author Message

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

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



Joined: 25 Nov 2011
Posts: 81



PostPosted: 18.12.2011 07:33     Quote

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

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

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

Также было бы здорово написать замену swupdate.
 
View user's profile Send private message ^

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

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



Joined: 25 Nov 2011
Posts: 81



PostPosted: 27.12.2011 00:37     Quote

Добавил скрипт для распаковки 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

Code:
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 приложения прямо на компьютере:

Code:
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
#
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 27.12.2011 02:02     Quote

И гуевые программы можно запускать? Или пока только консоль?
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

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

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



Joined: 25 Nov 2011
Posts: 81



PostPosted: 27.12.2011 04:47     Quote

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

Code:
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 это довольно сложно.
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 27.12.2011 22:17     Quote

Все равно очень полезно. Даже не знал что так можно делать. У меня qemu запускает свой arm-линукс, что не всегда удобно.
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

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

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



Joined: 25 Nov 2011
Posts: 81



PostPosted: 28.12.2011 13:41     Quote

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

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

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

Мы увидим ioctl вызовы к конкретному устройству.
 
View user's profile Send private message ^

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

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



Joined: 22 Jul 2011
Posts: 5



PostPosted: 26.02.2012 18:18     Quote

а могёте написать программу для сбора образа SWUPDATE.BIN?
 
View user's profile Send private message ^

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

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



Joined: 16 Sep 2011
Posts: 129



PostPosted: 27.02.2012 00:23     Quote

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

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

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



Joined: 14 Sep 2011
Posts: 166



PostPosted: 03.04.2012 13:02     Quote

Vanuan wrote:
Программа распаковки: https://github.com/Vanuan/pocketbook_free_swupdate
Добавь, пожалуйста, ключ -d к вызовам umount.
man umount wrote:
-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
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 27 Sep 2004
Posts: 20907


Location: Северная столица

PostPosted: 03.04.2012 18:07     Quote

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

Который я посетил кажеться неделю назад Smile
У них вход был открыть Smile
_________________
PocketBook: 301+,602(2.2.1a),701, A7, 701 IQ, A7, U7.
Fly: IQ 235
 
View user's profile Send private message E-mail ^

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

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



Joined: 25 Nov 2011
Posts: 81



PostPosted: 07.04.2012 00:35     Quote

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

как-то так: https://github.com/Vanuan/pocketbook_free_swupdate/commit/04d946ec1dac 20caa864bc50c5f1c29b79802269
 
View user's profile Send private message ^

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

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



Joined: 22 Jul 2011
Posts: 5



PostPosted: 21.02.2013 20:33     Quote

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

Posted after 22 minutes 22 seconds:

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

$1$g9vDEStU$TQdryjnAMafrvsoXHQa9Z1
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 30 Sep 2009
Posts: 11606


Location: Киев

PostPosted: 22.02.2013 00:40     Quote

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

Попробуйте это, не совсем то, но вдруг.
_________________
PB 360° (v.15.3) | PB Pro 602 Grey (v.2.2.1a fastdrv) | PB A7 (v.1.3.1583) - подарок от PocketBook.
 
View user's profile Send private message ^

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

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



Joined: 16 Sep 2011
Posts: 129



PostPosted: 03.04.2013 15:50     Quote

https://github.com/plops/pocketbook360/blob/master/pocketbook.org сюда тоже продублирую эту ссылку
_________________
Qumo Colibri
 
View user's profile Send private message ^
Display posts from previous:   
Post new topic   Reply to topic    The-eBook Forum Index -> PocketBook -> PocketBook Free All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

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