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

 
Libroom Forum IndexPocketBookPocketBook Free
AuthorMessage

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

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



Joined: 25 Nov 2011
Posts: 81



Posted: 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.
 
View user's profile ^

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

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



Joined: 25 Nov 2011
Posts: 81



Posted: 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

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 ^

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

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1246


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

Posted: 27.12.2011 02:02    

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

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

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



Joined: 25 Nov 2011
Posts: 81



Posted: 27.12.2011 04:47    

Только консоль. Ядро используется хостовое, так что никакой эмуляции устройств. Для эмуляции устройств потребуется полноценный 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 ^

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

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1246


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

Posted: 27.12.2011 22:17    

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

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

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



Joined: 25 Nov 2011
Posts: 81



Posted: 28.12.2011 13:41    

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

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

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

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

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

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



Joined: 22 Jul 2011
Posts: 5



Posted: 26.02.2012 18:18    

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

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

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



Joined: 16 Sep 2011
Posts: 129



Posted: 27.02.2012 00:23    

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

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

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



Joined: 14 Sep 2011
Posts: 166



Posted: 03.04.2012 13:02    

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 ^

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

Член клуба The eBook



Joined: 27 Sep 2004
Posts: 22894


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

Posted: 03.04.2012 18:07    

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

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

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

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



Joined: 25 Nov 2011
Posts: 81



Posted: 07.04.2012 00:35    

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

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

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

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



Joined: 22 Jul 2011
Posts: 5



Posted: 21.02.2013 20:33    

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

Posted after 22 minutes 22 seconds:

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

$1$g9vDEStU$TQdryjnAMafrvsoXHQa9Z1
 
View user's profile ^

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

Член клуба The eBook



Joined: 30 Sep 2009
Posts: 11643


Location: Киев

Posted: 22.02.2013 00:40    

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 ^

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

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



Joined: 16 Sep 2011
Posts: 129



Posted: 03.04.2013 15:50    

https://github.com/plops/pocketbook360/blob/master/pocketbook.org сюда тоже продублирую эту ссылку
_________________
Qumo Colibri
 
View user's profile ^
Libroom Forum IndexPocketBookPocketBook FreeAll 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

© Libroom, 2021