Или сказ о том, какие глюки нас поджидают.
Меня восхищает компания PocketBook. Это лидер рынка на постсоветском пространстве, в области электронных книг, данную компанию знают все. Много было лестных постов тут о продукции данной компании. Нам дают красивую рекламу, хвалебные оды. Давайте нормально поковыряемся в железе и софте, и попробуем восстановить старенькую книжку Pocketbook 515 и посмотрим в душу изделиям данной компании. Ну и оценим, насколько же они реально хороши или плохи. Без прикрас.
О чём же будем говорить?
Волею судеб мне попалась электронная книга PocketBook 515. Она старая и её неразумно сравнивать с современными моделями, однако полагаю, что основные принципы и проблемы должны быть унаследованы от неё.
Книга мне попалась от предыдущей хозяйки по причине того, что она заглючила и пользоваться её стало практически невозможно. Симптомы были такими: книга включается, загружается и… И вот такой вот экран.
И всё, ни меню, ни-че-го. На кнопки не реагирует.
Думаю, фигня-война. Сейчас усё починим. Надо ютубы посмотреть. Первое, что рекомендуют – это восстановить прошивку. Выключаем книгу, зажимаем две крайние клавиши и включаем (это тот ещё цирковой этюд, я вам скажу). Ну, думаю, так просто и мы в дамках! Пробую.
Update failed… И тут я понимаю, что начинаются приключения…
Ящик Пандоры или аппаратная начинка
Честно скажу, что я всегда восхищался компанией PocketBook, то, что они смогли создать крутые устройства, занять нишу на рынке. Даже очень хотел у них работать, но в силу геополитических причин меня туда не взяли. Но я никак не ожидал открыть такой ящик с… Со странностями.
Как обычно, когда видишь задачу, ты видишь даже не верхушку айсберга, а этакую помятую открытку от бабушки. А когда вливаешься в работу и конца края не видно, но отступать уже поздно, то думаешь: нафига я взялся? Тут точно так же.
Казалось бы, причина простая: скорее всего проблема с памятью. И как я знаю из комментариев к посту, что там установлена sd-карта, и что её просто так dd-шнуть не получиться. То есть скопировать-то карту можно, но она нифига работать не будет. Таким образом нас ждёт весёлое приключение по восстановлению карты, а так же изучение прошивки и возможный взлом… Но обо всём по порядку. Давайте для начала заглянем внутрь книги, и узрим все источники наших проблем.
Вскрыть данную книгу очень просто, достаточно пройтись любой карточкой по периметру и нам предстанут недра данного устройства.
Фото именно так как мы обычно держим книгу, перевернули лицом вниз и вскрыли. Что мы видим? Справа вверху нераспаянный wifi-модуль. Причём, о том, что он мог быть, нам говорит даже лог перепрошивки (на фотографии выше – предпоследняя строчка). Для чего wifi в книге без тачскрина – ума не приложу! В центре большая батарея. Слева от неё шлейф, идущий к экрану. Рядом с батареей, по-видимому, контролер заряда. Справа – злополучная карта памяти! Причём самая дешёвая, которая живёт очень и очень недолго. Но к ней мы ещё вернёмся. Всякую мелочёвку рассматривать не будем, за неимением времени. Глянем на процессор и вообще на эту область крупнее.
Allwinner A13 (поморщился). Это из того семейства что стоит во всяких Orange Pi и иже с ними. Не люблю его всей душой из-за отсутствия нормальной документации, а так же из-за того, что они в своё время выпили много крови. Это личная неприязнь, необъяснимая. Однако создатели PocketBook большие молодцы, что смогли снизить энергопотребление, загонять его в спячку и вообще отрубить в нём всё мощное, чтобы работало как можно дольше. С удовольствием посмотрел бы на код данных модулей. О коде мы ещё поговорим. Но в целом, использование этого семейства – это прям фу-фу-фу (привет Yandex-колонка).
Слева от процессора явно (к гадалке не ходи) линии UART. У меня чесались руки припаяться туда, да поглядеть логи загрузки. Но моя задача была не исследовать устройство, а починить его. Поэтому, надеюсь, что когда-нибудь я влезу в него по самые уши!
Под процессором под углом припаяна микросхема оперативной памяти ёмкостью 2Gb! Что весьма много под такие скромные задачи. Но судя по тому, что столько ramfs используется, может самое оно. Что ещё любопытно, данная микросхема K4B2G1646Q-BCK0T00 является DDR3 SDRAM, т.е. динамической памятью и требует тактирования для хранения информации (поправьте меня, если я не прав). То есть, она потребляет энергию, даже в режиме сна (в отличии от SRAM). И как обеспечивается такой долгий режим работы данной книги, для меня остаётся загадкой. Возможно разгадка именно в том, что всё ОЗУ скидывается на карточку памяти (или его diff) при переходе в режим сна? Не знаю, очень интересное место для исследований.
Итак, карта памяти. Думаю, даже слепой узрит, что под разъёмом с картой есть контактная площадка под микросхему. Для чего было ставить карту в отдельном разъёме, да ещё и маркировать её краской – мне не ясно. Опрос в ЖЖ не дал результата, вероятнее всего, чтобы китайцы при сборке не смогли слямзить прошивку, а прошивалась бы она уже здесь. Плюс можно было вставлять тестовую карту, которая тестировала бы железо, не тратя времени на перепрошивку. Это единственное какое-то разумное объяснение. Почему стоит такая дешманская карта, которая живёт пару лет – это совершенно понятно – цена вопроса.
Забегая вперёд, скажу, что надо заменять сразу на Industrial SD-карту, типа такой
Да и вообще на всех ваших малинах, во избежание проблем стоит переходить на такие карты. Они стоят не так дорого, чтобы рисковать надёжностью.
В общем, мне стало понятно, что карту нужно менять. И должна быть какая-то процедура её замены.
Короче говоря, аппаратная часть очень интересная, любопытно как реализованы драйвера различных узлов данной книги, с удовольствием пообщался бы с разработчиками, чтобы узнать больше нового. Самое интересное – это работа с памятью и как реализован спящий режим. Но аппаратная часть – это только то, что видно. Наиболее любопытно, что же происходит в программной части! Таки что у нас с ПО? Давайте посмотрим содержимое карточки.
Что же у нас на карте?
Вообще разбор содержимого карты может вылиться в отдельную статью. Поэтому, если вам не очень интересно, что там было, можете смело перейти к другому разделу.
Карта состоит из 9 разделов!
Из которых монтируются 1, 2, 7,8,9 и 10 (4-го нет).
Раздел /dev/sdd1 on /media/dlinyj/Pocket515
Это тот самый раздел, который мы видим, когда подключаем книжку к компьютеру. Ничего примечательного для нас там нет.
Раздел /dev/sdd2 on /media/dlinyj/Volumn
Содержит ядро и первичные конфиги загрузки, а так же картинка low_pwr.bmp пониженного напряжения питания, обычный файл с расширением bmp. Мол, поставьте на зарядку.
Непонятно для чего образ ядра один лежит в корне (файл bImage), другой лежит в папке linux
Есть предположение, что один загружается при зарядке, другой при полноценной работе. В папке linux размер файла больше.
Папка linux самая интеерсная. bImage — образ ядра. cramfs.img — образ ramfs, для режима recovery (то что мы видим в момент старта recovery). Хотя в процессе глубинного исследования, похоже, что там содержится что-то очень важное. Всё равно эту лабуду никто не читает, можно писать любые глупости. Трололо. Файлы *.ini — Настройка загрузки.
Файл linux.bmp редактором не открывается и имеет размер 35290 байт Пёс его знает что это. Из полезных файлов — это linux.ini и другие. Приведу пример первого.
[global]
commandline = console=ttyS0,115200 root=/dev/mmcblk0p7 init=/init loglevel=1 rootwait
[segment]
img_name = c:linuxbImage
img_size = 0x800000
img_base = 0x40008000
[script_info]
script_base = 0x43000000
script_size = 0x10000
[logo_info]
logo_name = c:linuxlinux.bmp
logo_show = 1
Полезная информация с адресами, образами и т.п. Как ясно, что bmp-файл это лого, но как-то хитро упаковано. Файл recovery.ini тоже может быть весьма полезен. Обращу внимание только на командную строку и то, откуда всё стартовать.
[global]
commandline = console=ttyS0,115200 root=/dev/ram0 init=/linuxrc loglevel=8 initrd=0x41000000,8M rootfstype=cramfs ramdisk=8192 rootwait
....
[segment]
img_name = c:linuxcramfs.img
img_size = 0x800000
img_base = 0x41000000
Раздел /dev/sdd10 on /media/dlinyj/Compressed type cramfs
Раздел ramfs. Это и есть раздел rootfs, который у нас всё делает.
Папка /bin, в основном это симлинки на busybox. Есть скрипт, который восстанавливает порядок загрузки после рекавери. В папке sbin есть интересный скрипт reboot. Интересен он железячникам, так как показывает управление либо электропитанием, либо ещё какими шинами (надо смотреть), до ребута. И как раз показывает, нафига нужен модуль gpio
#!/bin/sh
/sbin/insmod /lib/modules/gpio_driver.ko
gpiotool -G H -O 0 -P 0
gpiotool -G H -O 0 -P 1
gpiotool -G H -O 0 -P 2
gpiotool -G H -O 0 -P 3
gpiotool -G H -O 0 -P 4
gpiotool -G H -O 0 -P 5
../bin/busybox reboot
Любопытно, что работа с gpio сделана не через sysfs.
Ещё из полезного для исследования — это папка /etc/ и /lib/modules. В последней два файла, которые являются сокровищем этой книги:
epdc.ko — как следует из названия — это сам драйвер дисплея — самая интересная штука.
gpio_driver.ko — драйвер gpio
К сожалению GPL не распространяется на модули ядра, так что исходников мы его не увидим. Только декомпиляция.
По хорошему папку /etc/ надо хорошо исследовать. Но если вот кратенько из полезного.
device.sh — монтирует разделы и загружает драйвер дисплея. fstab раскрывает секрет папки в корне:
...
/ebrmain/cramfs.img /ebrmain/cramfs auto defaults,loop 0 0
...
Монтирует образ в данную папку. Фух. Описывать каждый файл можно долго. В общем, занятное место. Напомню, что cramfs используется для режима recovery. Т.е. загружается в ОЗУ, и далее может перетереть всю флешку и потом снова на неё загрузиться, что очень удобно.
Ну, остались два раздела.
Раздел /dev/sdd9 on /media/dlinyj/13351b4c-2ff0-46dd-9d4a-b2a1bed7cf99
Данный раздел не открывается без рута. Но мы на него таки поглядим.
sudo ls -1a /media/dlinyj/13351b4c-2ff0-46dd-9d4a-b2a1bed7cf99
.
..
explorer-2.tar
.freezestatus
.hashsum_1
lost+found
man2wall.txt
pbpk
runonce
Очень любопытно. Файл explorer-2.tar содержит в себе базу данных:
Вероятнее всего базу данных книг и файлов. Но не уверен. Место исследований.
man2wall.txt — просто ссылка на документацию, внутри:
sudo cat /media/dlinyj/13351b4c-2ff0-46dd-9d4a-b2a1bed7cf99/man2wall.txt
/mnt/ext1/Руководство пользователя PocketBook.pdf
А вот самый тайный файл — это .freezestatus — в нём-то и содержится тот секретный ключ, привязки к конкретной карте памяти и книжке. Подробнее стоит почитать на 4pda вот тут.
Остальные два файла бинарники, которые даже принадлежат не root.
drwxrwx--- 2 systemd-resolve systemd-timesync 1024 янв 27 2014 pbpk
drwxrwxrwx 2 systemd-resolve systemd-timesync 1024 янв 27 2014 runonce
Которые как-то используются в работе системы.
Раздел /dev/sdd8 on /media/dlinyj/41931a84-c18c-407a-b9a1-9a08dfe5a7ae
Остался последний раздел. Точнее так, есть ещё несколько разделов, но они не монтируется, и что там я не знаю. Так вот, последний раздел это и есть рабочая прошивка, и как оказалась нифига не линукс. Если кратко, не шарохаясь по папкам, то вот он:
/media/dlinyj/41931a84-c18c-407a-b9a1-9a08dfe5a7ae $ ls -la
итого 96642
drwxr-xr-x 14 root root 1024 фев 7 2014 .
drwxr-x---+ 6 root root 4096 дек 21 16:09 ..
drwxr-xr-x 2 root root 2048 фев 7 2014 bin
drwxr-xr-x 3 root root 1024 фев 7 2014 config
drwxr-xr-x 2 root root 1024 фев 7 2014 cramfs
-rw-r--r-- 1 root root 62660608 фев 7 2014 cramfs.img
-rw-r--r-- 1 root root 22 фев 7 2014 .def_id
drwxr-xr-x 3 root root 2048 фев 7 2014 fonts
-rw-r--r-- 1 root root 4858 фев 7 2014 fsimage.md5
-rw-r--r-- 1 root root 35871876 фев 7 2014 fsimage.tar.gz
drwxr-xr-x 3 root root 1024 фев 7 2014 language
drwxr-xr-x 5 root root 4096 фев 7 2014 lib
drwxr-xr-x 2 root root 1024 фев 7 2014 license
drwxr-xr-x 2 root root 1024 фев 7 2014 logo
drwx------ 2 root root 12288 фев 7 2014 lost+found
lrwxrwxrwx 1 root root 15 фев 7 2014 pocketbook -> bin/monitor.app
drwxr-xr-x 12 root root 1024 фев 7 2014 share
drwxr-xr-x 2 root root 1024 фев 7 2014 themes
-rw-r--r-- 1 root root 12 фев 7 2014 .version
drwxr-xr-x 3 root root 1024 фев 7 2014 widgets
Вообще, мне кажется, описание, и исследование раздела может занять не одну статью. Но, все файлы в /bin ведут в /ebrmain/cramfs/bin./. Судя по всему, файл cramfs.img ещё один образ ramfs, который монтируется уже отсюда (итого, как минимум три вида рамфс!!!).
В /lib точно так же. Что говорит, что в cramfs содержится полезная информация. Но согласно описанию на 4pda, таки там есть что-то.
…
Все проверки на соответствие этих номеров осуществляет приложение monitor.app, которое находится в разделе номер 8, внутри cramfs.img (sde8/cramfs.img/bin/monitor.app).
Загрузка monitor.app осуществляется следующим образом, в корне sde8 лежит симлинк pocketbook, ссылающийся на /sde8/bin/monitor.app, который, в свою очередь, тоже является симлинком, но уже на реальный monitor.app, который находится внутри cramfs.img.
…
fsimage.tar.gz содержит основные приложения. Было бы забавно написать своё приложение для книжки. В общем, тут исследовать и исследовать. Оставим этот раздел на растерзание будущих исследователей. Скажу лишь, что полезно заглянуть в папку share
ls -1 share/
alsa
antiword
book_store.bmp
book_store_Titelive.bmp
explorer-2
FBReader
fonts
icons
locale
man2wall.sh
obreeysync
player.cfg
s2pb
ssl
wifi-files-fix.sh
zlibrary
zoneinfo.lst
zoneinfo.tar.gz
Что нам как бы подсказывает, что книжку можно дополнить wifi модулем и возможно она умеет играть звук, или собиралась такое делать. Короче, можно много ещё крутых штук с ней сделать!
Резюмируя по разделам карты: места исследований и модификаций просто море! Видна большая работа людей, куча софта. Но всё это можно было так перепаковать и скрыть, что исследовать вот так просто станет очень сложно, если не невозможно! Но поле для исследований даже в этой книге огромное! Интересно, хоть кто-то этот поток сознания осилил?
Программное обеспечение. Или где же GNU?
Кто-то помнит мой очень старый-старый пост о том, как я использовал электронную книгу в качестве дисплея. Те, кто помнит, точно старожил хабра :). Ну так вот, в той книге ОС была Linux, были исходники, тулчейн от самой Sony. Исходники, правда, были кривые и нифига не работали, но это было лучше, чем никак. Помня, что Linux имеет лицензию GNU, решил поискать, выкладывал ли Pockebook исходники своей прошивки: ядра, и userspace? И сходу не найдя, уже думал писать в спортлото license-violation@gnu.org. Но прежде, решил сделать ехидный официальный запрос в поддержку PocketBook, где исходники? Текст был следующего содержания:
Добрый день!
Являюсь владельцем электронной книги PockeBook 515. Как понимаю, данная книга работает под управлением ОС Linux. Согласно условиям лицензии GNU General Public License, под которой данная ОС выпускается, вы обязаны предоставить исходный код. Где и каким образом, возможно, ознакомиться с исходными кодами (в рамках данной лицензии) на ваши продукты? В данном случае интересует PockeBook 515.
Официально запрашиваю исходники прошивки для устройства PockeBook 515. А так же каким образом можно ознакомиться с исходниками для других ваших устройств.
Данное письмо является открытым и ответ на него (как и игнорирование) будут опубликованы на habr.com.
Потирая злобные ручонки, думая, что уличил PocketBook в несоблюдении лицензий, внезапно получил следующее письмо.
Добрый день, Сергей!
Благодарим за выбор нашей продукции.
Наши устройства используют ядро Linux. С исходным кодом ядра Linux, используемого на модели 515, можно ознакомиться по ссылке: github.com/pocketbook/Platform_A13
Желаем Вам хорошего дня!
С уважением,
Служба поддержки клиентов
Опа! Вот тебе исходники! Справедливости ради, там есть модули ядра, как раз модули для дисплея и, по-моему, энергосбережения (сильно не ковырял), они-то самые интересные и исходников-то их нету.
Но остались открытыми вопросы: какое libc, какие версии других программ. Про версию кросскомпилятора не стал спрашивать, ибо и так знаю чем можно собрать для данного процессора. Но вообще следовало бы.… В результате написал следующее письмо.
Добрый день.
Спасибо большое за ответ. Однако, кроме ядра, там так же используется файловая система, которая так же содержит ПО под лицензией GNU GPL. Например, явно в rootfs используется busybox
Так же библиотека glibc, которая так же обеспечивает работу всей системы. И так далее, можно пройтись по всей файловой системе.
Обращаю внимание, что я не занимаюсь реверсом. Не модифицирую код, просто подключил карту из ридера к компьютеру и посмотрел её содержимое. Где я могу ознакомиться с исходниками остальных программ, которые находятся под открытой лицензией?
И что же вы думаете? Они тоже дали ответ, но, увы, не с git-репой из userspace, но лучше чем никакой.
Добрый день, Сергей!
Благодарим за ответ.Коллеги с отдела R&D сообщили, что в busybox и в glibc не вносили изменений, исходные коды можно скачать на официальных сайтах:
busybox.net/downloads (мы используем версию 1.26.2)
www.gnu.org/software/libc (мы используем версию 2.50.3)С уважением,
Служба поддержки клиентов
Мне нечем было крыть, но информации было уже вдоволь, чтобы заниматься дальнейшими исследованиями и экспериментами.
Процедура замены карты в PocketBook 515
Многое (возможно даже всё) это применимо и к книге моделей PocketBook 626 и 626+. Не удивлюсь, если внутри они тоже имеет сходный схематик. Но сравнить не с чем.
Итак, давайте для начала поговорим какая официальная процедура восстановления карточки. На ютубе много роликов по этому поводу, предлагаю их найти самостоятельно. Мы же прочитаем официальный ответ от службы поддержки PocketBook. Запрос составлял не я, просто нашёл на 4pda. В целом, я рекомендую прочитать целиком вот тут (см. спойлер), что же требуется для генерации образа карточки, но сюда приведу некоторые важные для нас цитаты.
…
Если гарантийный срок на устройство закончился или были нарушены условия гарантии, то у нас в СЦ такой ремонт стоит 1000 рублей, включая новую карту памяти, программную подготовку и активацию ПО.
Если вы по каким-то причинам не можете или не хотите обращаться в СЦ, то по генерации прошивки у нас есть вариант для удалённых пользователей или тех кто не хочет посещать СЦ. Генерация прошивки стоит 450 рублей.
…III. Для сервисной сборки от вас нужны следующие данные:
1) Серийный номер устройства.
2) Фото шлейфа экрана со всеми указанными данными (модель, vcom и waveform), см. пример yadi.sk/d/ur92mMug3SPVHh, у вас модель экрана или ED050SC3 или ED050SC5.
3) SDSN новой неиспользованной карты памяти.
…
IV. Прошивка генерируется после поступления оплаты, сроки — от до 3 рабочих дней.
Какие выводы мы можем сделать:
- Процедура восстановления карты платная. Самое забавное, что вина целиком и полностью компании, но платит за это пользователь. Любопытно, что PocketBook не может заработать на данной операции (это копейки), но осадочек есть. И на ютубе полно видосов обиженок, которые сказали, что больше никогда не купят продукцию данной компании.
- Это гемморойная, сложная, бюрократическая процедура.
- Неприятно то, что книжку надо разобрать полностью (тогда, как в пиратском виде это не требуется).
- Образ каким-то образом проверяет серийный номер карточки (SDSN), возможно номер экрана и серийный номер устройства. Забегая вперёд скажу, что мне не удалось проверить, проверяется ли номер экрана.
В общем, понимая, что есть какой-то способ проверки серийного номера карточки, и прочих серийных номеров, уже подумал обложиться всякими средствами отладки, декомпиляторами, ковыряться в программах и прочим дзеном. Достаточно хорошо представляю, как это делать, но думаю, у меня бы заняло около месяца посиделок вечерами. Но, как обычно бывает: Если тебе пришла гениальная мысль, погугли! Наверняка она пришла кому-то ещё! Так и оказалось.
Есть два подробных описания восстановления на 4pda. Обратите внимание, что гайды совершенно не к нашей книге относятся, а к модели PocketBook 626, но прекрасно работает всё и у нас. Актуальное вот. Тут рассказывается даже как сделать, чтобы работали словари. Но самое интересное вот тут , рассказывается ещё и о том, как был сделан взлом. Что наиболее ценно в данном случае.
Тем, кому лень переходить по ссылкам, кратко расскажу, что там делается:
- Снимается образ с исходной карточки.
- Расширяется образ на новую карточку (байт-в байт).
- Правится MBR-карты, чтобы всё корректно монтировалось (и размер был соблюдён) (там с калькулятором и hex-редактором, но ничего сложного).
- Определяется SDSN карты (для меня была самая сложная операция).
- В специальной самописной программе генерируется новый файл .freezestatus, который и определяет работоспособность книги.
- После чего файл записывается в соответствующий раздел образа и образ записывается на фрешку.
- …
- ???
- PROFIT!!!
Как уже было сказано, самое сложное было определить SDSN (серийный номер) карты. Обычным ридером это сделать невозможно. Изначально я пробовал сделать это через смартфон. Но мой телефон не пускал меня в /sys по соображениям безопасности (ибо не root). В другом телефоне не было терминала. Короче, я плюнул и вдруг вспомнил, что моя карта предназначалась для Raspberry Pi! И у меня завалялся где-то Raspberry Pi Zero. Перерыв кучу хлама, найдя провода HDMI, USB-переходник, побежал на кухню к телику чтобы подключить и узнать этот долбанный серийник. Чувствовал себя мамкиным хаксором в этот момент.
Точно не помню, где был найден serial. Но искал его так:
find /sys –name “serial” и то, что более всего по пути напоминало SD-карту и было его серийником. Потом тупо скопировал его в home и использовал.
В общем, после всех страшных мук формирования образа, новая карта была сформирована и радостно вставлена в устройство! И, о чудо! Она запустилась! С новой картой, но,… Увы, со старыми проблемами. Попытался снова обновить прошивку и снова получил от ворот поворот…
Мы не дунули и чуда не произошло… Книжка конечно не совсем мёртвая. Тыкая во все кнопки, нашёл комбинацию обе кнопки в разные стороны зажать и попадаешь в файл-менеджер. Никакого софта, только файл-менеджер. Но даже он даёт возможность читать книги (спасибо хоть на этом).
Если у кого есть такая книга, заделитесь рабочим образом карты, слёзно прошу!
Выводы
А выводы-то весьма интересные. Давайте по списку
- Железо у книжки очень интересное. Вообще, если сделать свою прошивку, то можно сделать очень много прикольных вещей. И значительно веселее, чем я делал в своей прошлой статье.
- Безумно интересно отреверсить работу с дисплеем, драйвера электропитания, работу с оперативной памятью или хотя бы получить комментарии от разработчиков, как это работает. Просто для саморазвития. Это реально круто.
- Ставить SD-карты в качестве носителя информации – это как-то колхозно. Микросхемы-то тоже по сути SD-карты, но выглядит как-то прилично. Плюс, если ставить карту, так хоть нормальную, с хорошим сроком службы. Для владельцев книг советую заменять сразу карты на промышленные!
- Скорее всего, софт изнашивает карту. Непонятно каким образом, если книга постоянно спит, а rootfs в ramfs, единственное место записи — БД. Но, тем не менее, проблема выхода из строя карт есть. Решение – хорошие карты.
- Процедура генерации новых прошивок унизительная и плохая. Кто мешает выпустить программулинку, которую бы юзверь качал, вбивал свои данные и получал бы образ? Пускай он бы качал его через интернет, а образ генерировался на стороннем сервере. Даже пираты (как обычно) сделали, пусть странный, но рабочий и более удобный вариант. Надеюсь, в современных книгах нет таких глупостей с перепрошивкой.
- Защиты прошивки нет никакой. Можно было бы столько крутых штук сделать, чтобы такого взлома было нельзя сделать. Более того, чтобы прошивку так просто не удалось поковырять: упаковка образа, использование TrustZone и прочее-прочее. Да, спасти от взлома это не сможет, но может повысить цену так, что станет нецелесообразной. Как, например, телефоны с «Авророй» для госучреждений. Если его украсть, то это будет бесполезный кирпич, который перешить нельзя. (Ну, почти 😉 )
Могу сказать так, что очень жалею, что сейчас не могу уделить достаточное количество времени и сил, чтобы дотошно изучить железо и софт. Хотя мне безумно интересно было бы поковырять прошивку, попробовать собрать свою. Опыта и знаний хватает, а вот времени уже нет.
Ещё искренне надеюсь получить комментарии разработчиков, хотя бы в той области «где можно». Тем не менее вы крутые.
Ещё искренне надеюсь, что у меня появиться возможность поковырять какие-то более современные модели, и они произведут на меня совершенно иное впечатление.
P.S. Выражаю благодарность компании PocketBook за возможность опубликовать статью в официальном блоге, не смотря на достаточно критичное содержание!