
Меня всегда увлекала идея давать старым устройствам новую жизнь, находя для них нестандартное применение. Если раньше я возвращал к жизни смартфоны на Android 2.3, то теперь мой взгляд упал на куда более необычный класс устройств — электронные переводчики. По сути, это дешёвая альтернатива легендарным карманным ПК (HPC), вроде HP Jornada. Недавно я приобрёл один такой переводчик Ectaco за 1500 рублей, обошёл его стандартную оболочку, написал программу для настройки и даже портировал эмулятор NES. Хотите узнать, как это было? Добро пожаловать под капот!
❯ В поисках бюджетной альтернативы HPC
Существует целый класс устройств — портативные клавиатурные мини-компьютеры (HPC). Их главные черты: полноценная QWERTY-клавиатура, возможность запуска стороннего ПО и иногда весьма необычные процессорные архитектуры. Недавно я писал о покупке и восстановлении двух таких устройств — HP 620LX и HP Jornada 680. Однако оба экземпляра были куплены «с дна» рынка и потребовали вложений. Стоимость же полностью рабочего устройства начинается от 5-6 тысяч рублей, что для многих, включая меня, является ощутимой суммой. После публикации статьи многие читатели выразили желание заполучить подобный гаджет, но не могли позволить себе такие траты. Это натолкнуло меня на мысль найти более доступную альтернативу Jornada.

Но что искать? Нужно компактное устройство с необычным процессором. Очевидно, что нетбуки (которые, кстати, можно найти и за 500 рублей) не подходят. Коммуникаторы на Windows Mobile тоже дёшевы, но это слайдеры, а хотелось форм-фактор мини-ноутбука. Потом один подписчик прислал мне целую коробку ретро-техники, включая органайзер Citizen Digital.

Устройство меня заинтересовало, но у него был простой монохромный экран, а вся прошивка хранилась в защищённом ПЗУ, что исключало возможность модификации. Поэтому я отправился на интернет-барахолку в поисках чего-то программируемого. В какой-то момент алгоритмы выдали мне объявление о продаже электронных переводчиков Ectaco.

Внешне — обычный переводчик. Но, присмотревшись к фотографиям интерфейса, я узнал знакомые очертания... Это был Windows CE! Наличие этой ОС означало как минимум 64 МБ оперативной памяти, цветной дисплей с разрешением 240x320 и процессор частотой не менее 150-200 МГц. Изучение мануала показало, что выйти в стандартную оболочку WinCE через меню нельзя, но я узнал ключевую деталь: для работы устройству обязательно нужна SD-карта, идущая в комплекте. Это навело на мысль, что система либо полностью загружается с карты, либо запускает с неё критически важные программы.

Я нашёл в сети образ родной SD-карты. Скачав и изучив его, я обнаружил полную системную папку с отдельными исполняемыми файлами для каждой программы устройства. Это был верный знак — устройство можно взломать! Я сразу же приобрёл переводчик.

Когда устройство оказалось у меня в руках, я понял, что деньги потрачены не зря: компактный корпус (меньше iPhone 14 Pro Max), QWERTY-клавиатура, D-Pad (идеально для игр), резистивный тачскрин и стильная металлическая рамка дисплея. Стоит отметить, что в своё время оборудование Ectaco было топовым и стоило около 15 000 рублей — серьёзные деньги для 2009 года. Неудивительно, что оно было построено на добротном железе.

❯ Аппаратная начинка устройства
Прежде чем погружаться в программную часть, нужно было понять, на чём работает это чудо. Разборка оказалась кропотливой, но позволила увидеть всю начинку. После снятия задней крышки и аккуратного отсоединения шлейфов открылась материнская плата.

Сердцем устройства оказался процессор NXP LH7A404 — ядро ARM922T (ARM9TDMI, ARMv4) с частотой до 200 МГц, что сопоставимо с ранними Intel StrongARM. Оперативная память представлена двумя чипами Samsung по 32 МБ каждый. Теоретически её можно было расширить. На обратной стороне платы распаян чип флеш-памяти NAND, но, судя по всему, в нём хранится только загрузчик, а сама система грузится с SD-карты в оперативную память. Приятным бонусом стали подписанные контактные площадки на плате, включая UART, что открывает возможности для более глубокого апгрейда в будущем.



На второй плате разместились контроллер заряда, аудиокодек AC97 и различные интерфейсы.


❯ Взлом и обход стандартной оболочки
Итак, при включении устройство показывало только родное меню с переводчиком и базовыми приложениями. Нужно было получить доступ к стандартному проводнику Windows CE (explorer.exe). Поскольку система загружалась с SD-карты, я начал с её изучения.

На карте обнаружились два ключевых объекта: файл system.bin (образ системы) и папка System/App с исполняемыми файлами приложений. Я решил начать с простого — попытаться заменить одну из программ в папке App. Анализ в IDA Pro показал, что проверки цифровых подписей нет. Оказалось, что я изначально исследовал не сам лаунчер (меню), а заставку. Сам лаунчер находился в system.bin. В папке лаунчера был конфигурационный файл со списком пунктов меню. Я добавил туда запись, запускающую \Windows\explorer.exe — и это сработало! Устройство вышло на рабочий стол Windows CE.

Но нужно было автоматизировать процесс и закрыть родную оболочку, которая висела в памяти. За полчаса я написал на C++ небольшую программу, которая запускала explorer.exe, а затем находила и завершала процесс родного лаунчера. Главный нюанс: хотя система использовала WinCE 5.0, компилировать программы нужно было под PocketPC 2003, иначе возникали ошибки с библиотеками.

Поскольку система при каждой загрузке создавала виртуальный диск в оперативной памяти, все изменения в реестре сбрасывались. Поэтому я расширил свою программу, добавив функции для автоматического применения нужных патчей к реестру (например, для отображения скрытых и системных файлов) и копирования необходимых DLL-библиотек из папки на SD-карте в системную директорию Windows.
Второй вектор атаки — файл system.bin. Исследовав его в HEX-редакторе, я обнаружил, что первый мегабайт заполнен нулями, что, вероятно, было простейшей защитой. Найдя сигнатуру образа CE, я обрезал лишнее и с помощью утилиты dumpromx распаковал образ, получив полный набор системных файлов. Это позволило бы при необходимости напрямую редактировать реестр или заменять драйверы.


В коде я нашёл упоминание Вячеслава Боярышникова, который работал над этим устройством в 2008-2009 годах. Отдельная благодарность ему и компании Ectaco за то, что не усложняли процесс модификации. В итоге я получил полный доступ к системе с видимой панелью задач и проводником.
❯ Новые возможности: что может этот мини-нетбук?
Несмотря на то, что устройство работает под Windows, выбор софта для WinCE не так велик. Многие программы для HPC начала 2000-х были заточены под другие процессоры (SH3) или разрешения экранов. Софт от Windows Mobile тоже не всегда работал корректно из-за особенностей WinCE.
Особенно это касалось игр и эмуляторов. Большинству из них требовалась библиотека GX, которой в моей сборке не было. Я взял за основу эмулятор NES от одного китайского телефона, переписал рендерер под GDI и реализовал обработку ввода. Но производительность оставляла желать лучда из-за медленного преобразования форматов пикселей. Устройства вроде QTek S110 на PXA272 справлялись с такой задачей куда лучше благодаря прямому доступу к фреймбуферу через GX.
Ещё одним минусом стало отсутствие в системе сетевого стека. Не будь этого, устройство могло бы стать отличным терминалом или почтовым клиентом.
Тем не менее, полезный софт нашёлся. Например, текстовые редакторы.

А также медиаплееры. Устройство вполне сносно справляется с воспроизведением музыки и видео через TCPMP.

И, конечно, классические игры для HPC из нулевых, которые раньше продавались на CD.

Сейчас я работаю над портированием KVM (Java Virtual Machine для J2ME) на Windows CE, чтобы получить возможность запускать Java-игры.
❯ Итоги и планы
Электронный переводчик Ectaco оказался многообещающим устройством для моддинга. С минимальными усилиями его можно превратить в полноценный мини-нетбук на ARM. Если бы удалось реализовать прямой доступ к фреймбуферу, он стал бы отличной портативной ретро-консолью. А что вы думаете о перепрофилировании старых специализированных устройств?
Сейчас я в поисках оборудования для будущих проектов. В частности, ищу дата-кабель для HP Jornada 680, чтобы иметь возможность устанавливать и отлаживать на ней софт. Также интересуюсь телефонами Motorola на платформах MAGX/EZX (Linux), такими как RAZR V8 или EM30, которые отлично подходят для модификаций.
Статья написана при поддержке Time Cloud. Подписывайтесь, чтобы не пропускать новые материалы!
Всего голосов: Всего голосов: [Мой] Гаджет для опроса Купить Органайзер-переводчик Хорошие вещи Windows Ноутбук Нетбук Программирование C++ Видео Без звука Длинный пост 137Больше интересных статей здесь: Гаджеты.
Источник статьи: Как я купил электронный переводчик за 1.000 рублей и превратил в мини-нетбук на ARM.