Как я джейлбрейк Kindle тестировал
Привет, Хабр! Сегодня поделюсь своим опытом джейлбрейка Kindle Paperwhite 7-го поколения с прошивкой 5.16.2.1.1: я попробовал установить стороннее ПО и даже запустить полноценный дистрибутив Linux. И сразу дисклеймер: у меня была устаревшая читалка, я заскучал и затеял все это ради эксперимента — повторять за мной не рекомендую. Иначе в лучшем случе можно лишиться гарантии, в худшем — окирпичить аппарат без возможности восстановления. Так что берите кофеек с любимой печенькой, глубоко дышите и смотрите, что получилось. Поехали!
Предыстория
Я полюбил читать с детства благодаря своей бабушке. Именно она показала мне, как через книги можно очутиться в разных мирах и прокачивать воображение. Читал я запоем и очень много, в основном фантастику и фэнтези. Единственное неудобство — приходилось каждый раз идти за новой книгой в магазин или библиотеку. К тому же носить их с собой было, мягко говоря, неудобно. Еще со школьных лет я возненавидел тяжеленный рюкзак с учебниками, а тут еще и дополнительный груз «для души». В общем, электронная читалка изменила мой мир к лучшему.
Только не смейтесь, но моей первой читалкой стал аудиоплеер Meizu MiniPlayer (M6) с кастомной прошивкой. До сих пор помню, как это было футуристично!
Следующим моим гаджетом, заменяющим аналоговые книги, стал iPad. Большой экран, удобное приложение и отзывчивый интерфейс — сказка, да и только. Ровно до того момента, пока я не купил себе Kindle. Вот это уже был полный восторг!
E-Ink-экран позволял читать целый день напролет: глаза не уставали. В длительных поездках ни разу не садился аккумулятор. Это особенно впечатляло на фоне смартфона, который приходилось заряжать каждый день. Kindle жил неделями и исправно выполнял свою работу.
Но чем чаще я смотрел на Kindle как на устройство, тем больше становилось ясно: я не использую и десятой доли его возможностей. И тут у меня появилась идея попробовать его прокачать, добавить новых фичей. При этом я понимал: модель старая, и я могу ее окирпичить. В любом случае в планах было обновить читалку, поэтому я решился на этот эксперимент.
Приступаем к прокачке
Этап 1. Запуск Mesquito
Первый шаг — включить авиарежим и рестарт читалки. Внимание: нельзя удалять Wi-Fi-сеть, иначе на следующих этапах потребуется доступ к интернету. Потом я скачал архив с WinterBreak и распаковал его.
Здесь есть небольшой, но важный нюанс. Все это делалось на macOS — она по умолчанию скрывает отображение директории .active_content_sandbox, которую нужно будет скопировать на Kindle. Чтобы увидеть ее, нужно нажать сочетание клавиш CMD + Shift + . Тогда все директории отобразятся:
Дальше я подключил USB-кабелем Kindle и закинул все эти файлы в корень. Не стоит пытаться распаковывать напрямую архив в Kindle, иначе может быть сбой. После этого нужно открыть Kindle Store и на вопрос системы об отключении авиарежима ответить «Да»:
Это простое действие перекинуло в экран с Mesquito. Kindle прочитал кэш из директории, которую я подсунул ему раньше, и вывел его на дисплей:
Теперь тапнул по иконке WinterBreak:
Все выглядело максимально изящно. Через 30 секунд экран поменялся:
Надпись Please Install HOTFIX now сообщила, что все хорошо и пора снова включать авиарежим.
Этап 2. Установка HOTFIX
Это нужно, чтобы заблокировать OTA-апдейты от Amazon. Ведь если прилетит обновление, все усилия будут насмарку. Хорошая новость в том, что этот же механизм поможет вернуть Kindle в изначальное состояние, например, если захочется его продать.
Итак, я скачал HOTFIX, подключил Kindle к Mac и закинул бинарник в корень. Главное, чтобы там не было больше никаких других файлов с расширением .bin — иначе магия не сработает. Кабель отключил, открыл «Настройки». Нажав на три точки, выбрал пункт «Обновить Kindle»:
Установленный на первом этапе Mesquito разблокировал Developer mode, в котором можно тестировать любые прошивки без обязательной подписи. Так что теперь используется стандартный механизм обновления софта:
Отладочные сообщения налезают на полоску прогресса, но так и должно быть. Как только процесс завершился, Kindle радостно об этом отрапортовал:
После запуска в библиотеке появилась новая «книга» с названием Run Hotfix. Тапнул по ней и увидел забавную надпись:
После успешного завершения процесса в библиотеке появится еще одна «книга». По сути это детальный лог:
Если ее открыть, то там будет информация обо всех книгах и куча отладочных данных:
Пришла пора продолжить процесс в авиарежиме.
Этап 3. Установка KUAL и MRPI
Чтобы успешно ставить софт на джейлбрейкнутый Kindle, нужен инсталлятор MRPI. Скачанный архив был распакован, а содержимое закинуто в корень. Дальше нужно поставить лаунчер KUAL, который позволит запускать программы. Он есть в двух вариантах:
Мой Kindle вышел как раз после 2012 года, поэтому я скачал бинарник версии Universal и положил его в директорию mrpackages. Автор рекомендует такой пособ установки: в поисковой строке ввести ;log mrpi и нажать Enter на экранной клавиатуре. Увы, у меня дисплей просто мигнул, и ничего не произошло — лаунчер не запустился.
Второй способ установки точно такой же, как и с HOTFIX: положить бинарник в корень, выбрать «Обновить Kindle» и дождаться завершения апдейта. После этого в библиотеке появится долгожданная книга с названием KUAL. Тапнув по ней, я попал в кастомное меню запуска приложений.
Этап 4. Отключение OTA
На разных моделях Kindle процедура сильно отличается. Для прошивок 5.10.x и ниже есть отдельная инструкция. В моем случае предварительно потребовалось скачать специальный бинарник renameotabin. Положил его в директорию extensions и обновил меню KUAL через пункт KUAL — Sort menu 123. Лаунчер увидел расширение и отобразил его в меню.
«Валера HOTFIX, настало твое время». Теперь можно полностью отрубить обновления Amazon, переименовав бинарники. Собственно, нажал Rename OTA Binaries и выбрал пункт Rename. После этого со спокойной душой выключил авиарежим и вышел в онлайн.
Этап 5. Установка KOReader
Пришла пора поставить более совершенную программу для чтения. Она поддерживает целую пачку форматов электронных книг и документов: EPUB, PDF, DjVu, XPS, CBT, CBZ, FB2, PDB, TXT, HTML, RTF, CHM, DOC, MOBI, ZIP.
Исходный код опубликован на GitHub. Там же есть заранее скомпилированные релизы. Владельцам старых Kindle (до 2012 года) стоит выбрать вариант legacy. Мой же Kindle спокойно переварил koreader-kindle-v2025.04.zip. Установка простая: архив распаковал и содержимое закинул в корень. Потом еще раз обновил меню KUAL, и там появился пункт KOReader. Запустил, выбрав Start KOReader:
KOReader — крутейший комбайн. Вот что он в себе сочетает:
приложение для чтения электронных книг;
файловый менеджер;
клиент для менеджера книг Calibre;
загрузчик лент новостей RSS/Atom;
загрузчик статей Wallabag (сервис по извлечению текста с веб-сайтов);
текстовый редактор;
экспортер выделенных фрагментов;
и даже
черт побериSSH-сервер.
Я не стану говорить о том, сколько разработчики запихнули туда функций. Кому интересно, можно провалиться в руководство пользователя. Стандартное приложение для чтения Kindle проигрывает по всем параметрам. Но все-таки я рисковал окирпичить сей чудесный девайс не только ради продвинутой читалки. Теперь серьезно — ставим Linux.
Этап 6. Установка Alpine Desktop Linux
Эта штука еще опаснее, чем все предыдущие этапы. Если в процессе работы Linux вы решите подключить Kindle к компьютеру, не установив и не активировав предварительно USB Network, то, скорее всего, получите кирпич. Alpine Linux размещается в /mnt/us, которая по совместительству является партицией доступной для записи, как USB Storage. Если вы сохраните туда любые данные через USB-соединение, то убьете партицию, и не факт, что сможете ее восстановить.
Все необходимое берется из репозитория alpine_kindle. Только тут начинаешь осознавать, что Kindle сам по себе работает на Linux. Значит, можно сделать chroot в другую систему. Самый быстрый и легковесный вариант — как раз Alpine.
Чтобы успешно залить Linux, сначала нужно поставить эмулятор терминала kterm для Kindle. Дело в том, что инсталлятор Alpine Linux — это самый обычный Shell-скрипт, который будет исполняться в эмуляторе терминала. Тут ничего сложного — скачал архив, распаковал и закинул папку kterm в extensions. Запустил из меню KUAL для проверки:
Ядро довольно старое, но его вполне хватает. Можно приступать к установке Alpine Linux. Скачал архив со скриптами и распаковал содержимое в extensions. После этого в KUAL появился пункт Alpine Linux:
Чтобы установка прошла успешно, требуется минимум 2 Gb свободного дискового пространства. Это я заранее проверил командой df -h через kterm. Так что смело нажал Deploy newest release of Alpine Linux for Kindle:
Процесс скачивания и распаковки занял около семи минут, но это того стоило. Теперь на Kindle есть полноценный дистрибутив Alpine Linux c браузером Chromium «из коробки»:
Что в итоге
Джейлбрейк на деле оказался простым и сильно расширил возможности устройства. Теперь это полноценный планшетный ПК на Linux с отличным e-Ink-экраном. Я могу использовать Kindle, чтобы подключиться к удаленному серверу по SSH, поиграть в старые игры через эмулятор GameBoy или вывести на экран нужную мне информацию.
Скорость отрисовки браузера вполне достаточна, приложения работают адекватно. Понятное дело, Kindle медленный, но не критично. Эксперимент можно считать успешным. Если на какой-нибудь барахолке мне попадется старенький Kindle — теперь я точно знаю, что с ним делать.