?

Log in

процесс...

Метки:



Если интересно, могу описать прогресс в области "укрощения" Андроида на новых ридерах (PRS-T1).читать?Свернуть )

Метки:



Bookstore chain Borders appears near bankruptcy. Unfortunately, this is not a surprise...Свернуть )


вернее, к противодействию, но со стандартным набором небольших модификаций прошивок для новых ридеров пока не возникло никаких особых сложностей.

Метки:



PRS-350/650 Tools


Общая структура прошивок PRS-350 и, скорее всего, PRS-650 очень незначительно отличается от их предшественника PRS-900. Система загрузки апдейтов в PRS-350 на 90% идентична PRS-900, для обеих систем можно использовать практически одинаковые скрипты генерации апдейтов. Даже диагностические карточки в PRS-350 теоретически поддерживаются, только физически их некуда втыкать. :-)

Если кому-то интересно, скрипты генерации апдейтов можно брать отсюда. В пакете несколько работающих примеров апдейтов, в т.ч. скрипт для запуска эмуляции сериального порта через USB, тестовый апдейт и апдейт прошивки. У меня не было возможности попробовать, но я предполагаю, что этими же скриптами будут генерироваться валидные апдейты для PRS-650 (нужно скачать образ Info с 650 и заменить им прилагаемый Info.img; а flash_update/update.sh необходимо капельку подкорректировать).

Апдейт генерируется на Линуксе скриптом create_update.sh. Распаковать готовый апдейт можно скриптом update_test.sh.

Универсальный пакет для доступа к сони ридерам через USB интерфейс (ebook_msc) лежит здесь.

Для запуска апдейта нужно скопировать файл PRS-350 Updater.package во внутреннюю память устройства, и из командного окна Windows запустить команду:
ebook_msc name PRS-350 um recovery

Метки:



Optical touchscreen

Разница, однако, впечатляющая.


Engadget

Метки:



Some more PRS-900

Хорошая новость для тех, кто планирует вносить свои изменения в прошивки PRS-900. Обнаружил вчера, что в случаях циклического перезапуска прошивки в нормальном режиме (т.е. если Fsk софт запорчен, и свеже-прошитый ридер постоянно перегружается) PRS-900 можно спасти, прошив с диагностической карты Memory Stick PRO. Пример апдейта, который работает с диагностической карточки здесь. Набор утилит для генерации апдейтов я немного обновил (здесь).

Проверка наличия апдейта на диагностической карте (файл PRS-900 Log.package) осуществляется до того, как запускаются прочие компоненты софта Sony. Чтобы запустить пакет апдейта с диагностической карты в нормальном режиме, файл нужно скопировать на карту, и перегрузить ридер (если он сам перегружается, просто вставить карту в ридер и ждать). Формат файла такой же, как у апдейта, работающего в режиме восстановления (PRS-900 Updater.package), только имя другое. Функционал нужно подбирать соответствующий режиму.

В теории, можно вообще прошиваться с диагностических карт (чуть изменить апдейт-скрипт, чтобы копировать с карточки CSS и шрифты для EPUB, а также, например, минимальный набор текстов для тестирования). Тем, кто продает много ридеров, это может быть полезно.

Метки:



спам

Похоже, китайские бандиты таки добрались и до моего эккаунта на Yahoo. Украли или подобрали пароль. Рассылают. Что рекламируют, вообще непонятно. Какие клоны айфонов? Особенно неприятно, что это не spoofing - емыло на самом деле отправляли с моего эккаунта, чему свидетельствует его присутствие в "исходящих сообщениях".

Если получили от меня спам, прошу прощения, не углядел.
образец спамаСвернуть )
Вот теперь думаю, какие пароли поменять, а какие так оставить. :-(


В воскресенье идем с Рашелькой пешком забирать Захара из еврейской школы. Рашель идет в шлепанцах. Скачет, прыгает, потом начинает проситься "на ручки". Говорит, что у нее болит нога (поэтому ее нужно нести на руках).

Я говорю: "Ничего страшного, сейчас заберем Захарку, и мы с ним отвезем тебя в госпиталь, там тебе полечат ногу".
Рашель: "Нет, папа, я МЕЙби биДУ у меня не болит нога!"
Я: "Что-что???"
Рашель: "Я МЕЙби биДУ у меня не болит нога!"
Я: "Ты что? МЕЙби биДУ? Что это значит?"
Рашель: "Ну я МЕЙби биДУ у меня не болит нога!"
Я: "Ничего не понимаю, Рашеля, что это значит: МЕЙби биДУ?"
Рашель (расстроенная, что не может мне объяснить): "Ну я МЕЙби биДУ у меня не болит нога!"
Я: "Я не понимаю эту фразу. Можешь на английский ее перевести? Что означает это МЕЙби биДУ?"
Рашель: "I mean my foot doesn't hurt!"

Метки:



Run by Snow Patrol

По-моему, классная песня.

Метки:



дыбр

Начиная с прошлой пятницы из трех работ у нас на двоих осталось две, и обе мои. Причем одна из этих двух (ридерный, с позволения сказать, "бизнес") уже год как на ладан дышит. А на другой, той, которая основная, полгода назад начальницей надо мной поставили тетку, которая меня терпеть ненавидит еще со времен моей американской юности. Черт те что...

Прочитал две довольно забавные книги. Nick Hornby: High Fidelity и About a Boy. Ничего особенного, никакой серьезной драмы, но язык неплохой, и фильмы, прошедшие несколько лет назад, мне нравились.

В воскресенье в первый раз за много лет выбрались на Бродвей. Были на спектакле по драме Артура Миллера A View from the Bridge. В главных ролях Liev Schreiber и Scarlett Johansson.


колляция

Насчет сортировки по русскому алфавиту в PRS-900.

Пришлось переписать, или вернее, дописать, UCA_compare(). Оказалось (igorsk подсказал), что xdbLite не вызывает ее через нормальное динамическое линкование, а доступается к UCA.so как к подгружаемой внешней библиотеке: через dlopen() открывает библиотеку UCA.so, и потом через dlsym() ищет в ней символ "UCA_compare", который и вызывает. Это, конечно, нехорошо со стороны Сони. Пришлось менять строку в xdbLite.so, чтобы вместо UCA.so доступаться к UCB.so (моей библиотеке). Понять, каков формат передаваемых в функцию параметров, мне помог IDA, который позволяет дебагать процессы, бегущие на твоем ПК. eBL использует практически тот же базовый код.

Вот полный код добавочной "библиотеки". Я скомпилировал ее на Sheeva Plug, который генерит абсолютно совместимый с ридером бинарный модуль. Кроме дополнительных функций колляции (алфавитного сравнения) и распаковки UTF-8 строки в 4-байтный юникод, пришлось:

1. Переименовать мой подгружаемый shared object в UCB.so
2. Поменять в xdbLite.so UCA.so на UCB.so.

Новая функция делает сравнение только для кириллицы, остальное сравнивает UCA_compare() из UCA.so (функция по умолчанию).

Текущая версия прошивки для PRS-900 здесь.
дыбрСвернуть )

Метки:



900+++ с объяснениями

Итак, обещанная информация по подготовке и запуску апдейтов для PRS-900.

Здесь пакет для сборки и распаковки апдейт-файлов. Работает в bash на линуксе. В Cygwin как есть работать не будет, надо кое-что менять.

Собрать апдейт-файл:
./create_900_update.sh <update_directory>

Распаковать апдейт-файл (результаты будут распакованы в директорию /tmp/PRS-900Updater.package.tmp/, как и на ридере):
./update_test.sh <update_directory>

Что мы знаем об апдейтах, можно понять из приложенных примеров скриптов. Чистый exit из апдейт-скрипта (update.sh) - возврат 16, ведет к немедленной перезагрузке в нормальный режим. Exit 0 оставляет операционную систему в рабочем состоянии, в режиме recovery, но не требует немедленной перезагрузки. Перегружать систему командой reboot из update.sh можно, но не рекомендуется.

PRS-900 позволяет сделать диагностическую карточку (Memory Stick Pro), с которой тоже можно запускать апдейты (причем, при использовании диагностической карточки ридер автоматически запускает serial gadget, что предоставляет возможность заходить на ридер через USB-эмуляцию сериального порта). Наличие диагностической карточки и апдейта на ней проверяется до того, как производится проверка наличия апдейта во внутренней памяти /Data. Чтобы из обычной MS Pro сделать диагностическую карточку, надо запустить пакет апдейта, который вы найдете в папке diag_card_update.

На диагностическую карточку можно записать апдейт-файл из папки login_update, и у вас будет возможность заходить на ридер без пароля через сериальную консоль. Файл апдейта PRS-900 Updater.package записывается в корень карточки или в корень внутренней памяти (директории /Data). Для запуска сериальной консоли можно пользоваться putty (параметры порта 115200-8-1-N).

Пакет управления ридером через USB порт брать здесь. Для того, чтобы запустить собственный апдейт (с диагностической карточки или из внутренней памяти), достаточно перевести ридер в режим апдейта:
ebook_msc um recovery

Не забудьте, что если в ридер вставлена диагностическая карточка, апдейт из внутренней памяти запускаться не будет!

Ну и для особо нетерпеливых, пакет базовой русификации. Там еще много что нужно доделывать, но поддержка кириллицы, часы и скриншоты уже есть. Просто распаковать на ПК и из "проводника" запустить (можно дабл-клик) flash_reader.bat. Нужно будет ответить на один вопрос: какой буквой видна на вашем ПК основная память ридера. Больше ничего делать не надо.

Образы CRAMFS для PRS-900 я рекомендую собирать исключительно в системах с полной поддержкой case sensitivity (т.е. не в Windows). Стандартный набор CRAMFS Tools работает, никакие расширения и дополнения не нужны.

Разобрать образ:
cramfsck -v -x dir img
Собрать образ:
mkcramfs -v dir img

Метки:



900++

Перепост с форума the-ebook.org.

Итак, могу сообщить кое-какие известия в плане обуздания PRS-900. В общем, есть плохие новости, и есть хорошие новости.

Хорошая новость - вроде бы пока PRS-900 прошивается без проблем. Многие хаки, сделанные для 600, будут работать и на ней. Например, автоматическая конвертация неюникодных 1251-текстов в юникод (с добавлением специальной DLL) работает. Часы и скриншоты работают. Можно сделать русское меню и клавиатурку (для горизонтального дисплея надо будет пересчитать расположение "клавиш"). Поиск работает, в т.ч. поиск названий книг на русском (ищет большие и малые буквы).

Из новых возможностей 900 (в штатной прошивке):

  • Словарь открывается не только из программ чтения, но и отдельным приложением

  • Можно удалять сразу много книг через меню

  • О двух-колоночном режиме чтения и новой версии Adobe API, поддерживающей выравнивание по правому краю, все уже знают.

  • Можно сортировать книги по времени доступа


Плохие новости:

  • Многие модули несовместимы с предыдущими версиями ридеров. Прошивка от 600 с модулем Adobe от 900 сразу выгружается (запуститься не может). Т.е. поставить на 600 EPUB-читалку от 900 не удается. Подставить xdbLite.so от 505, чтобы получить "сортировку по русским буквам" тоже не получится в новой прошивке вызываются ф-ции, которых в старой xdbLite просто не было. В лучшем случае прошивка зависнет, но можно будет перешить ее через USB, в худшем случае получите кирпич.

  • Что еще хуже, для сортировки книг теперь используется не JavaScript'овская localeCompare, которую я переписал в 300 и 600, а нативная функция UCA_compare, переписать которую (на C) задача весьма нетривиальная. В итоге русские книги по автору и названию пока не сортируются.

  • Образ прошивки массивный, порядка 32 МБ.

  • Файлы локализованных строк просто огромные. Переводить все это замучаешься. Если кто вызовется помочь, буду признателен.


Ну и в заключение несколько картинок...Свернуть )

Метки:



900+

В дополнение к двум предыдущим постам.

Сделал диагностический пакет, который при запуске с карточки позволяет заходить на ридер через serial over USB. То есть логиниться на ридер, и управлять происходящим из шелла (в recovery режиме, конечно).

Выяснилось, что образы с PRS-900 не распаковываются под Windows корректно - там есть кое-какие файлы, у которых название одинаковое (с разницей регистра букв), и эти файлы в Windows переписывают друг друга.
/lib/xtables/libip6t_HL.so
/lib/xtables/libip6t_hl.so
Значит, для работы с Rootfs PRS-900 необходима файловая система с полной поддержкой длинных имен файлов. Кто планирует делать для 900 собственные образы - имейте это в виду, чтобы не получать убитые четырехсот-долларовые машинки. Пришлось использовать временно позаимствованный с работы Sheeva Plug.

Попробовал прошить с помощью команды dd (dd if=new_opt.900.img of=/dev/mtdblock9 bs=1 conv=notrunc). Процесс шел минут 5, не меньше. Думаю, в дальнейшем не нужно block size=1 указывать, иначе просто по одному байту шьется. На всякий случай, не переходя в нормальный режим, смонтировал mtdblock9 во временной точке и убедился в том, что в этом разделе флеша валидный образ cramfs. Прошивка прошла успешно. После перезагрузки ОС ридер русские буквы показывает.

Теперь буду думать, как этот процесс упростить. Устанавливать Linux на домашней машине мне не хочется, а Sheeva Plug все-таки для разработок такого рода не приспособлен - тут нужно нормальный диск подключать с ext3. Можно подключить внешний диск к Плагу, но надо где-то искать диск и enclosure. А без этого, похоже, никуда. :-(

В принципе, должна быть возможность запускать Fsk и из режима recovery: mount, потом chroot и потом tinyhttp.sh. Вручную. Если будет время, попробую завтра...

Конечно, нужно будет как-нибудь задокументировать все находки, чтобы другие могли воспользоваться, и не наступали на те же грабли. Заодно собрать коллекцию утилитарных пакетов апдейта.

Метки:



900

В продолжение предыдущего сообщения. Зацикленный ридер вернул к жизни, диагностическую карточку сделал, пакет апдейта с нее запускается. Если пакета апдейта на диагностической карточке нет, запускается Serial Gadget, т.е. эмуляция сериального порта (tty) через USB. Что довольно забавно, но как root зайти в систему я не смог - не знаю пароля. Смог залогиниться без пароля как guest, но у него никаких прав, так что не очень интересно.

Метки:



для информации


Юзерам, ждущим новостей о "русификации" Sony Reader Daily Edition PRS-900, могу сообщить, что кое-какой прогресс в обуздании этого устройства достигнут. Не будь я в отпуске, этот прогресс был бы достигнут даже быстрее, поскольку никакой особой сложности в работе с PRS-900 не замечено. Итак, новости пока такие:

  1. В режиме апдейта (recovery mode) PRS-900 не принимает файлы, как это делали ридеры предыдущих поколений (PRS-500 изначально принимал просто открытые CRAMFS-имиджи, потом Sony стала подписывать их RSA подписью, а позже еще и шифровать AES ключом). На самом деле, UsbUpdater вообще не запускается на PRS-900 в этом режиме, а запускается серия скриптов, которая проверяет наличие пакета апдейта, и если таковой имеет место быть, запускает скрипт из пакета.

  2. По счастью, в нормальном режиме (normal mode) UsbUpdater попрежнему работает, поэтому интерфейс с ридером возможен. Перевести ридер в режим апдейта можно теми же командами, что и предыдущие поколения ридеров.

  3. Если пакет апдейта не обнаружен (или не признан годным к употреблению), ридер просто перегружается в нормальный режим. Это хорошо (если файловая система в нормальном режиме не запорчена, конечно).

  4. Если обнаружена "диагностическая" карточка, ридер переходит в режим диагностики (или грузит апдейт с карточки). Диагностические карточки вроде бы можно делать программой, которая лежит на ридере, но я еще не пробовал (попробую сегодня вечером, поскольку один из ридеров у меня сейчас в циклическом ребуте из-за неправильно сделанного апдейт-скрипта, и единственный способ его восстановить, как мне видится, это запустить апдейт с карточки).

  5. Пакет апдейта сделать не сложно, для этого можно, например, использовать шелл скрипт, который я написал.

  6. По умолчанию пакет апдейта грузится и запускается из /Data (большой "внешний диск", который мы видим на компьютере).

  7. В пакете апдейта должен присутствовать скрипт update.sh (например, такой)

  8. Если update.sh возвращает exit code 16, ридер перегружается в нормальный режим, и пакет апдейта благополучно удаляется.


Итак мы имеем возможность запускать на ридере более-менее произвольные скрипты (в режиме апдейта). Мы знаем, что в PRS-900 используется другой тип памяти (со встроенным MMC контроллером - eMMC), поэтому переписывать разделы памяти, используя "тулзу" предыдущих поколений (nblsdm) вероятно нельзя. Не исключено, что можно переписывать разделы памяти прямой записью в mtdblockХ devices, но это еще предстоит проверить.

Конечно, нам пока не известно, когда Сони решит запустить первый firmware update, и будет ли в нем усложнение схемы безопасности (например, путем добавления RSA подписей, зашифрованных приватным ключом, а не тем, который присутствует в открытом виде в разделе Info). Надеюсь, если таковые апдейты будут запускаться (путем загрузки через 3G сеть), нам удастся их каким-то образом перехватить и исследовать на предмет возможных подводных камней.

Спасибо за внимание.

Метки:



Lost in "Lost"

Я никуда не делся, просто в последнее время настолько "подсел" на Lost, что каждый вечер занят. Надеюсь в ближайшие неделю-две досмотреть пятый сезон, тогда появится немного времени. Если не начну пересматривать с начала, конечно. :-)

Метки: