Как я купил электронный переводчик за 1.000 рублей и превратил в мини-нетбук на ARM
Я всегда любил находить новые применения стареньким девайсам, даже если обход защиты и разработка для них чего-то полезного занимала у меня некоторое время. И если с прошлыми моими статьями, где я привносил новую жизнь смартфонам на Android 2.3, а затем и на Android 1.5 всё понятно — девайсы получили возможность не только быть звонилками, но и вполне полноценными смартфонами, то в случае таких необычных девайсов, как электронные переводчики — всё гораздо интереснее, ведь по сути, это дешёвые альтернативы таким легендарным устройствам, как HP Jornada! Недавно я купил переводчик Ectaco за 1.500 рублей на Windows CE, обошел встроенную оболочку, написал программу, которая твикает реестр и даже портировал туда эмулятор NES. Интересно узнать об этом процессе во всех подробностях? Тогда добро пожаловать под кат!
❯ Предисловие
Есть на свете такой интересный класс устройств, как портативные клавиатурные минипк — HPC. Основные особенности таких девайсов перед обычными органайзерами — полноценная QWERTY-клавиатура, возможность запускать кастомный софт и порой интересные процессоры на очень необычных архитектурах. Совсем недавно, я писал статью о том, как купил целых два таких HPC — HP 620LX и HP Jornada 680, причём 620LX я отреставрировал — девайс теперь полностью работает!
Но буду предельно честен: оба девайса были куплены по низу рынка и не полностью рабочими. Каждый обошёлся в 3.000 рублей, в сумме 6.000 рублей — весьма немалая для меня сумма. Ценники на рабочие экземпляры, причём не всегда с доком и дата-кабелем начинаются от 5-6 тысяч рублей. Кто-то из читателей скажет мол это копейки, но для меня сейчас это прям ощутимые деньги, плюс в моём чате после выхода статьи многие писали что тоже хотели бы заполучить подобные девайсы, но не имеют возможности выложить такую сумму. И тут я подумал, что надо-бы поискать альтернативы джорнаде, которые были бы гораздо дешевле.
Однако с чего начать поиски? Ведь хочется девайс именно компактный и на необычном процессоре, понятное дело что EEEPC (которые, к слову, на вторичке стоят по 500 рублей) тут не подходят. Коммуникаторы на Windows Mobile тоже вполне недорогие — можно найти некоторые модели HTC или Glofiish по 500-1.000 рублей, но всё же это сайд-слайдеры, а хотелось бы форм-фактор ноутбука (к слову, из «ноутбучных» есть Toshiba Portege G910, который я давно хочу заполучить). И тут подписчик из Казахстана заслал мне целую коробку с подогоном ништяков, где среди девайсов оказался электронный органайзер Citizen!
Девайс меня жутко заинтересовал, даже несмотря на монохромный простенький ЖК-дисплей, мне хотелось под него что-нибудь написать самому. Да хоть понг или стрелялку, где кораблик — один пиксель слева, а астероиды — пиксели справа. Но я понимал, что конкретно в этой модели вся прошивка лежит в ROM (масочной, которая физически прошивается на заводе один раз) и под эту модель ничего написать самому не получится. Поэтому я полез на барахолки с тегами «органайзер» искать девайсы с возможностью подключения к ПК по USB: мало ли, хоть какая-то модель будет поддерживать кастомные программы на манер инженерных калькуляторов.
Но нет, поиски не увенчались успехом. Зато в какой-то момент, онлайн-барахолка подсунула мне объявления о продаже электронного переводчика Ectaco, которые тоже были в разделе «для офиса», как и органайзеры. И всё бы ничего — ну да, цветной дисплей, ну да, выглядит замечательно, но я даже не представлял что за процессор и ОС в таком девайсе стоят. Пока не полистал фото, не присмотрелся к крайне знакомому интерфейсу и не увидел вот это...
Да! Вы все правильно поняли, некоторые переводчики работают на базе WIndows CE. А если там стоит WinCE, то как минимум есть солидный объем оперативной памяти (хотя бы 64 мегабайта), дисплей с разрешением 240x320 и довольно бодрый процессор, как минимум 150-200МГц. Далее я хотел узнать, с чем же мне предстоит столкнуться и начал гуглить мануал, дабы узнать о доступных пунктах в меню и можно ли выйти через них в оболочку WinCE (как на навигаторах). Чтения мана дало понять что нет, но я узнал что для работы устройства обязательно нужна SD-флэшка из комплекта устройства, иначе девайс стопорится на белом экране.
А это тоже наводит на определенные мысли. Либо девайс полностью загружается с SD-карты, либо запускает оттуда программы, через которые потенциально можно запустить explorer.exe и выгрузить стандартный софт из памяти. И я начал искать в сети образ родной флэшки. Я нашел на ютубе гайд по восстановлению такого переводчика, где автор видео выложил архив в облако, скачал и начал колупать — да здесь же целая папка System, где лежат отдельные exe'шники каждой программы, представленной на устройстве!
в облако, скачал и начал колупать — да здесь же целая папка System, где лежат отдельные exe'шники каждой программы, представленной на устройстве!
На этом моменте я понял, что девайс надо брать! Также на онлайн-барахолках попадаются переводичики и других брендов, которые потенциально работают на других системах. Их тоже было бы интересно поколупать (авось на Linux!), попытаться что-то с ними сделать, но я пока не могу себе позволить их купить.
Когда девайс приехал ко мне, я понял что отдал деньги не зря: он настолько компактный (даже меньше iPhone 14 Pro Max), что помещается в карман летних шорт, у него есть QWERTY-клавиатура и DPAD (что пригодится для игр), а также резистивный тачскрин и реально классный корпус с металлической рамкой дисплея. Придя домой, я сразу же начал его колупать: такие красавчики точно не должны отправляться в утиль, я был уверен что смогу найти для них новое применение!
Тут важно отметить, что устройства от Ectaco были топовыми в свое время и стоили кучу денег. 15 тысяч рублей в 2009 году — очень серьезные деньги, это цена новенького коммуникатора Rover, Xperia X10 вышедшего годом позже, или, например, Mio/Glofiish. Неудивительно, что девайсы построены на базе неплохого железа и полноценной WinCE!
❯ Что под капотом?
Конечно же перед тем, как смотреть софт, нужно посмотреть на каком железе работает наш переводчик. Разбирается девайс несложно, но конструкция весьма замудренная, нужно быть аккуратным. Вытаскиваем флэшку, откручиваем винтики на крышке отсека АКБ и отключаем аккумулятор. В моём девайсе, он уже был кем-то заменен на свежий (родные уже «все»):
Далее выкручиваем 4 винта из задней крышки и расщелкиваем клипсы — сама крышка снимается легко. Затем нужно открутить винты, крепящие динамик и отложить заднюю крышку в сторону. Перед нами открывается внешний вид материнской платы (вернее, целых двух):
Сорян за качество фото на этапе разборки, мой S8, купленный по низу рынка и используемый в качестве камеры уже «подустал» и модуль автофокуса у него поврежден.
Сверху расположена материнская плата с процессором, ОЗУ и флэш-памятью. То есть, по сути, это SoM (система на модуле), но не общего назначения, а разработанная Ectaco для своих нужд. Моделей переводчиков было много и возможно компания меняла конфигурацию ОЗУ/процессора и т. п., оставляя одну и ту же нижнюю плату. Для дальнейшей разборки, стоит отклеить черную наклейку, дабы не повредить шлейф дисплея, открутить три винта, крепящие верхнюю плату и снять крепежи грузиков, впаянные в пластик корпуса. Теперь нужно аккуратно вставить плоскую отвертку так, как показано ниже и упереть её в пластиковую прокладку между коннекторами верхней и нижней платы:
Не тяните пальцами за другие части платы. Она достаточно тонкая и погнуть/надломить её не составит труда!
Теперь верхнюю плату можно снять. Осторожнее с шлейфом дисплея — он весьма хрупкий и его можно случайно порвать:
Теперь мы можем разглядеть основную плату нашего девайса подробнее. В качестве процессора используется чипсет NXP LH7A404-N0F000B3. Это ARM922T (ARM9TDMI, ARMv4) ядро, работающее на частоте до 200МГц. Уже вполне неплохо, на уровне ранних Intel StrongARM (XScale)! В качестве оперативной памяти, используются две банки Samsung K4M56163LG по 32Мб каждая. Теоретически, объем ОЗУ можно расширить до 128Мб, как я это делал в статье про апгрейд коммуникатора QTek! Тест-поинты дисплея подписаны, скорее всего используется стандартная TTL-RGB матрица (но найти такую на замену будет сложно).
С обратной стороны платы расположился чип флэш-памяти типа NAND в корпусе TSOP Legacy. Это стандартная самсунговская флэшка небольшого объема, но на ней находится скорее всего только загрузчик — сама система грузится в ОЗУ с SD-карты. Приятно радует, что подписаны тест-поинты на плате и среди них мы видим как минимум UART. Это значительно повышает возможности девайса для моддинга в будущем, единственный нюанс — лишь бы на этом UART не висела консоль ядра Windows CE, потому что иначе открыть COM-порт не выйдет и «выпнуть» логи из определенного терминала как в Linux не получится! Именно с такой проблемой я и столкнулся на навигаторах с WinCE на борту (UART'ов в SiRF Atlas IV только два, один на GPS-модуль, т. е. чип придется снимать и напрямую к шару паяться, а второй на логи системы).
На основной плате расположился чарджер/КП, кодек AC97, разъемы и другие необходимые модули для функционирования девайса!
❯ Обходим оболочку
Итак, сейчас при включении девайс нам показывает главное меню и встроенный софт для перевода, а также мультимедийные приложения и игры. Неплохо, но явно маловато, при этом какой-либо отдельной кнопки или последовательности нажатия на тачскрин для выхода в explorer.exe как в случае с многими моделями навигаторов здесь нет.
Поскольку я уже знал, что вся система грузится с SD-карты в рамдиск, я сразу же понял, что нужно копать именно флэшку. Вытаскиваем SD-карточку, вставляем в кард-ридер и видим следующую картину:
Ага, мы видим два потенциальных вектора для атаки: первый это system.bin, собственно «сырой» образ для загрузки в ОЗУ и папка System/App с системными приложениями. Изучение system.bin я отложил на потом, решив подобраться с самого простого метода — попытка подменить exe'шники программ в System/App. Я открыл в IDA Pro программу-лаунчер, которая представляет из себя меню устройства и проверил на манер наличия проверки каких-либо подписей перед запуском программ. Их, к счастью, не оказалось: правда и реверсил я как оказалось не лаунчер, а стартовую анимацию как потом узнал. Сам лаунчер находится в system.bin, но в прошивке для другого девайса, Launcher находится именно на флэшке.
Помимо этого, в папке лаунчера лежит файл с описанием пунктов меню и соответствующими программами. Я добавил туда пункт, который запускает \Windows\explorer.exe — и это сработало — девайс попал на рабочий стол! Но нужен был способ автоматизации всего этого дела и самое главное — закрытие родной оболочки (она кушает ОЗУ и на нее можно случайно переключиться в панели задач).
Итак: если стартовая анимация запускается лаунчером и нет никаких проверок подписей, то всё просто, нужно лишь написать небольшую программу, которая будет запускать explorer.exe и прибивать родное меню. За минут 30 был написан следующий говнокод (помимо этого, я писал итератор по виндовым окнам дабы найти название класса окна лаунчера):
int WinMain(HINSTANCE inst, HINSTANCE prevInst, LPWSTR cmdLine, int nShowCmd)
{
// Launch explorer
PROCESS_INFORMATION info;
CreateProcess(L"\\Windows\\explorer.exe", 0, 0, 0, 0, 0, 0, 0, 0, &info);
// Terminate launcher
HWND hwnd = FindWindowW(L"NSGL_WINDOW", 0);
if(hwnd)
{
DWORD procId;
GetWindowThreadProcessId(hwnd, &procId);
HANDLE proc = OpenProcess(PROCESS_TERMINATE, false, procId);
TerminateProcess(proc, 0);
CloseHandle(proc);
}
}
Этого кода было достаточно для полноценного запуска системы и полного «выпинывания» стандартной оболочки из памяти :) Но есть важный нюанс: несмотря на то, что здесь используется WinCE 5.0 — довольно свежая система, нормально работают бинарники собранные только для PocketPC 2003 в VS2005/VS2008, иначе система ругается на отсутствие библиотек. Учтите это, если захотите себе такого же красавца!
Но, поскольку система загружается в рамдиск каждый старт устройства, то и реестр системы сбрасывается после отключения. Поэтому я добавил в программу патчинг реестра сразу при старте устройства и копирование нужных для работы других программ dll-файлов в Windows/
void DbgMessageBox(wchar_t* str)
{
MessageBox(0, str, L"Error", MB_OK);
}
void PatchRegistryKeyI(wchar_t* path, wchar_t* key, DWORD val)
{
HKEY hk;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, path, 0, KEY_READ | KEY_WRITE | KEY_SET_VALUE, &hk) != ERROR_SUCCESS)
{
DbgMessageBox(L"Failed to open registry path");
return;
}
if(RegSetValueExW(hk, key, 0, REG_DWORD, (BYTE*)&val, sizeof(val)) != ERROR_SUCCESS)
{
DbgMessageBox(L"Failed to patch registry subkey");
return;
}
RegCloseKey(hk);
}
void PatchRegistry()
{
PatchRegistryKeyI(L"Explorer", L"ViewAll", 1);
PatchRegistryKeyI(L"Explorer", L"ShowExt", 1);
PatchRegistryKeyI(L"Explorer", L"ShowSys", 1);
PatchRegistryKeyI(L"Explorer", L"ExpandControlPanel", 1);
PatchRegistryKeyI(L"\\SOFTWARE\\Microsoft\\Shell\\OnTop", L"Default", 1);
}
void CopyDlls()
{
const wchar_t* searchPath = L"\\Storage Card\\Dll\\";
const wchar_t* searchPattern = L"\\Storage Card\\Dll\\*.*";
WIN32_FIND_DATAW findData;
HANDLE findFile = FindFirstFileW(searchPattern, &findData);
while(findFile != INVALID_HANDLE_VALUE)
{
wchar_t srcPath[255];
wchar_t dstPath[255];
wsprintfW((LPWSTR)&srcPath, L"%s%s", searchPath, &findData.cFileName);
wsprintfW((LPWSTR)&dstPath, L"\\Windows\\%s", findData.cFileName);
CopyFileW((LPCWSTR)&srcPath, (LPCWSTR)&dstPath, true);
findFile = FindNextFile(findFile, &findData) ? findFile : INVALID_HANDLE_VALUE;
}
}
Второй вектор для атак — образ system.bin, я исследовал чуть позже. Открыл образ системы в hex-редакторе и обнаружил, что первый мегабайт просто забит нулями, без каких-либо данных. Возможно это своеобразная защита от любителей распаковывать ROM'ы. Воспользовался поиском текста по сигнатуре CE (часть заголовка образа) и сразу же нашел начало файла: сигнатуру образов CE можно определить по 4-м байтам, где два первых байта произвольные (их значение я не знаю), а вторые два (00 EA) — постоянные. Также сигнатурой можно считать последовательность символов ECE.
Вырезаем лишний мегабайт и используем программу dumpromx для распаковки образа устройства. Получаем набор готовых файлов. Чуть позже это помогло мне разобраться, как работают драйвера в Windows CE. При желании, можно напрямую редактировать ветки реестра (файлы .hv) и подменить программы/библиотеки на свои!
dumpromx -d nk1/ nk0.bin
В копирайтах программ я нашёл имя Вячеслава Боярышникова, который работал над устройством в 2008-2009 году. Отдельное спасибо ему и компании Ectaco за то, что не стали вставлять палки в колеса и сделали процесс моддинга максимально простым и приятным: я обошел стандартную оболочку в первый же день. Серьезно, это проблема современных устройств с заблокированными загрузчиками. Хабр ресурс большой, может кто-то знает его и кастанет в статью? :) Авось ему интересно будет посмотреть, что стало с девайсом его разработки спустя столько лет.
После этого, у нас есть полноценный доступ к винде и сразу же максимально удобный — панель задач не скрывается, системные файлы тоже видны в проводнике. Теперь я скопировал много самых разных программ на флэшку, но как они работают мы узнаем позже.
❯ Так что с ним можно сделать теперь?
Несмотря на то, что девайс работает на винде (пусть и CE), софта под него не очень много. Многие программы с HP Jornada и других HPC начала нулевых собраны под устройства с процессорами SH3 или банально не оптимизированы под разрешение дисплея нашего переводчика, а ещё в отличии от десктопной винды, у CE есть большие проблемы с совместимостью.
И казалось бы — да и ладно, вон есть Windows Mobile на базе всё той же CE, софт для неё должен хорошо работать на переводчике, но всё, конечно же, не так просто. Особенно когда вопрос касается игр! Большинство эмуляторов здесь не работают т. к. требуют библиотеку GX, которой нет в CE. Поэтому я решил портировать эмулятор сам, который будет рисовать картинку используя GDI.
В качестве основы я взял Wave's NES с китайской реплики телефона Nokia TV E71, выбросил платформо-зависимый код и реализовал рендер с обработкой кнопок для CE. Но вот незадача — производительность совсем не ахти.
Затем я искал возможность выводить картинку напрямую на дисплей — и через DirectrDraw (который почему-то был в дистрибутиве Windows, но для него не было драйвера), и через ExtEscape, и пытался реверсить драйвер дисплея но увы... Остаётся только медленный GDI - и именно в него идёт упор по скорости эмуляции из-за преобразования пиксельформатов (5551 винды в 565 нативный) каждый кадр. Максимум я добился вот такой производительности. Не густо.
При том, что QTek S110 с даунклокнутым до 208МГц PXA272 тащил эмулятор вообще без каких либо проблем, потому что в нём есть прямой доступ к фреймбуферу через GX!
Основной проблемой я считаю отсутствие сете вого стека в системе. К сожалению, сеть сюда никак не получится прокинуть, а жаль, была бы неплохая машинка для проверки почты и работы в терминале, благо порт Putty на нее есть!
Но всё же под девайс есть некоторое количество полезного софта. Например пресловутые текстовые редакторы.
Есть и плееры. Причём в качестве плеера девайс показывает себя вполне неплохо. Кроме того, есть TCPMP — можно попробовать посмотреть киношку, если есть цель смотреть видеоконтент на ретро-девайсах.
Ну и есть конечно же разные нативные игры с HPC 2000х годов! Такие раньше на отдельных дисках продавали!
Сейчас я активно портирую KVM (JVM для J2ME) и MIDP-профиль на Windows CE. Если у меня получится — то на WinCE появится поддержка Java-игр!
❯ Заключение
Вот такой интересный материал с моддингом электронного переводчика у нас с вами сегодня получился. Весьма перспективный девайс, и если бы был прямой доступ к фреймбуфферу — потенциально очень неплохая машинка для ретро-гейминга. А как вам такая идея превращения профильного устройства во что-то совершенно иное? Пишите своё мнение в комментариях!
Также я сейчас ищу несколько девайсов для будущего контента, с которым вы, мои читатели, могли бы помочь. В первую очередь, я активно ищу дата-кабель для HP Jornada. У меня есть всё для того, чтобы запилить под него свою игру и рассказывать вам о таком опыте в отдельной статье и видео, но нет самого главного — дата-кабеля, с помощью которого можно было бы устанавливать и отлаживать нашу демку! Так что если у кого-то есть, будет здорово, если сможете поделится.
Также я сейчас ищу телефон Motorola на платформе MAGX или EZX (Linux). Среди таких, например, RAZR V8 и RAZR V9, EM30 и некоторые другие девайсы. Они отлично поддаются моддингу и с ними можно запилить крутой контент!
У меня есть Telegram-канал «клуб фанатов балдежа», куда я выкладываю мысли о ремонте, моддинге и программировании под девайсы прошлых лет. Подписывайтесь, дабы не пропускать всякое интересное каждую неделю!
Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!
Когда-то Meizu сделала свой ответ iPhone на Windows и...
Он местами был круче, чем смартфон от Apple :) Основатель Meizu, Джек Вонг, по достоинству оценил первый iPhone и решил что сможет сделать лучше. Поскольку Meizu до этого занималась только MP3-плеерами, он решил собрать команду инженеров и сделать свой ответ на iPhone за год:
Как операционную систему Meizu решили взять Windows CE (ядро Windows Mobile) и разработать свою собственную оболочку, а в качестве аппаратной платформы выбрали новейший процессор Samsung S3C6410 с свежим ядром ARM11, работавшим на частоте от 533 до 800МГц, а также GPU собственной разработки Samsung - FIMG SE. Как итог - процессор был заметно мощнее, чем установленный в iPhone Samsung S5L8900, при том что оба чипсета являются очень близкими родственниками. При этом GPU в Meizu был значительно мощнее чем в айфоне и поддерживал не только FFP, но и полноценные шейдеры вместе с OpenGL ES 2.0 - на момент выхода это было очень круто!
По памяти устройство тоже не обделили: выпускались версии с 8 и 16 гигабайтами встроенной памяти. И даже ОЗУ у M8 больше: целых 192МБ против 128МБ у первого iPhone.
Не подвёл и дисплей: в M8 использовалась TFT-матрица с заметно более высоким разрешением разрешением 480x720, против 320x480 у iPhone. Тачскрин здесь был тоже емкостным, как и у айфона, но без поддержки мультитач. А ещё M8 полностью оправдывал своё происхождение от компании, которая до этого делала только плееры: в смартфоне было установлено два очень громких и при этом качественных динамика, благодаря чему звук как в наушниках, так и в динамиках был ну просто невероятным! Представьте себе громкость Motorola E398 и качество звучания 5800 XpressMusic - вот то-то же!
А ещё у M8 был съёмный аккумулятор. Причём сам аккумулятор совместим с Sony Ericsson'овскими, так что при желании можно было купить аккумулятор для K750i и аккуратно вставить его в корпус устройства. За это прям большой респект Meizu!
Всего за год Meizu разработала оболочку, которая достаточно точно копировала основные аспекты интерфейса iOS, но при этом была куда более открытой к пользователю и разработчикам. В отличии от iPhone 2G, где возможности запуска приложений вообще не было на релизе (AppStore появился только через год - в iOS 2.0), Meizu позволял запускать всё что угодно прямо из родного проводника. Хочет запустить софт от КПК? Пожалуйста. От терминала сбора данных? Вообще без проблем. Хочешь написать что-то своё? Пиратский Visual Studio из ближайшего перехода с SDK для Windows Mobile и в путь! Нет необходимости покупать x86 мак, погружаться в отвратительный синтаксис ObjC (Swift тогда ещё не было) и страдать в экосистеме Apple. Ты просто пишешь софт для Meizu и если он не подвязан на чисто-смартфонный функционал (по типу модема), то можешь без проблем портировать его на обычный компьютер или КПК!
Интересно также то, что Meizu потом лицензировала эту оболочку другим производителям. Как минимум известно о нескольких смартфонах Coolpad на WinCE с оболочкой от Meizu.
Что-же касается плавности, то у M8 с этим всё неплохо по меркам тех лет, но некоторые "задумки" есть. Не прям критично, но это всё равно в разы лучше чем у первых Android смартфонов. Тут iPhone побеждает Meizu.
Зато у M8 из коробки была полноценная многозадачность - причём даже в кастомных приложениях :)
А вот где M8 держит паритет, так это в камере. И там, и там модули не берут звёзд с неба и снимают посредственно. K750i и любой другой камерафон от Sony Ericsson и Nokia снимали куда круче!
В целом, M8 был очень интересным гаджетом на момент выхода и в некоторых аспектах значительно превосходил первый iPhone. Но тут пришла Apple и зарубила все продажи вне рынка Китая из-за патентов, что в своё время и не дало стать M8 действительно народным популярным устройством...
Теперь M8 почётно лежит в моей коллекции Windows-устройств как один из самых необычных гаджетов 2008 года. И всё таки какие же смартфоны, коммуникаторы и КПК на Windows Mobile были крутыми! Если вдруг захотите что-то подогнать из подобного и увидеть полноценную статью - пишите в комменты :)
Празднование запуска Windows 95
началась новая эпоха и успешное развитие рынка
Я купил смартфон с камерой 41мп за 600 рублей и оживил его. Сможет ли он стать повседневным фотоаппаратом?1
Камера уже давно стала неотъемлемой частью современного смартфона. Ещё со времен ранних Sony Ericsson, производители пытались делать «камерафоны» и постепенно доводили качество фото до уровня дорогих «цифровиков». В 2023 году, развитие дошло до пика — например, Xiaomi ставит линзы Leica, а Huawei делает смартфоны с камерами 50+ мегапикселей и многие люди уже на полном серьезе берут камерофоны в качестве полноценной замены бюджетной зеркальной камере. Качественная фотография — недешевое удовольствие, однако недавно я наткнулся на Nokia Lumia 1020 с камерой 41мп в состоянии полного кирпича всего за 600 рублей. Сегодня мы с вами: разберемся, как работает процесс загрузки на процессорах Qualcomm, оживим смартфон с убитым загрузчиком в состоянии 9008, посмотрим, на что способен такой смартфон в современных задачах и оценим его камеру. Интересно? Тогда жду вас в статье!
❯ Покупка
Мобильная ОС Windows Phone в своё время были весьма перспективным игроком на мобильном рынке. Microsoft активно вкладывала силы в разработку новых устройств и версий этой системы, при этом продолжая «гнуть» свою линию касательно дизайна и опыта от использования мобильной системы. Немудрено, что у WP на пике её развития было довольно много почитателей, которые использовали систему до самой её смерти (формально — в 2016, фактически — в 2018).
Microsoft просто необходимо было заручиться поддержкой серьёзного производителя для того, чтобы конкурировать с устройствами на iOS и Android. Этим самым производителем стала
Nokia, мобильное подразделение которой когда-то перекупили Microsoft. У финского производителя было довольно много направлений, где они стремились найти своего покупателя и камерофоны — одно из них. Если говорить конкретно о смартфонах с революционной камерой — то первенцем стала Nokia 808 PureView, который по совместительству стал последним смартфоном на ОС Symbian. Смартфон работал на базе последней версии Symbian Belle, имел дисплей AMOLED с технологией ClearBlack, работал на базе бодренького (но не флагманского) чипсета от Broadcom, а вишенкой на торте была камера аж на 41мпкс.
Спустя год, Nokia приняла решение выпустить новый камерофон, в этот раз, уже на базе стремительно развивающиеся Windows Phone 8. Помимо свежей ОС, смартфон оснастили весьма серьёзным по тем временам железом — Qualcomm MSM8960, 2гб ОЗУ и 32гб ПЗУ, AMOLED-дисплей с HD-разрешением, а также камерой на всё те же 41 мегапиксель с системой оптической (не программной) стабилизации.
Недавно я снова листал барахолки в поисках чего-то интересного и приметил Lumia 1020 в состоянии кирпича за 600 рублей. Человек писал, что пытался разблокировать загрузчик и в конец добил смартфон, а как отремонтировать его теперь — не знает. Сказано — сделано, я заказал девайсик, а когда он пришел ко мне — начал ковыряться и пытаться оживить.
❯ Ремонт программный
При подключении к ПК, устройство успешно определилось системой, причём в режиме Qualcomm 9008 aka QHSUSB_DLOAD — сервисный режим. Но перед тем как мы перейдём непосредственно к ремонту, нужно понять принцип работы загрузчиков на устройствах Qualcomm. После подачи питания на чипсет, он начинает выполнять так называемый BootROM — или первичный загрузчик, который записан производителем на заводе в ПЗУ чипа. Этот загрузчик невозможно повредить или изменить, поскольку он буквально «прожигается» и навсегда остается в каждом экземпляре чипа (этим пользовались при взломе старых iPhone, где находили уязвимости в BootROM и делали джейлбрейк). Задачей BootROM является найти в одном из источников и загрузить вторичный загрузчик, который в свою очередь проинициализирует оборудование (ОЗУ, eMMC) и начнёт процесс загрузки системы.
Первичный загрузчик может пытаться найти вторичный на любом из носителей — eMMC память, NAND память, USB и даже MicroSD-флэшка (это требуют наличия прожженного с завода фьюза в процессоре и работает не везде. Именно благодаря этому появились образы debrick для Galaxy S4/S4 Mini). И когда по каким-то причинам (например, неудачная прошивка или отвал памяти) BootROM не может найти вторичный загрузчик (в случае Nokia — Lumia BootMgr), он «сваливается» в режим 9008 — или режим низкоуровневой загрузки прошивки. Окирпиченый до такого состояния смартфон обычно нельзя прошить обычными средствами, поэтому некоторые мастера прибегают к помощи программатора, а другие — к помощи фирменных программ от производителя чипсета, коими являются QFIL и отчасти thor2.
Свежие люмии даже в состоянии полного кирпича может восстановить WDRT — Windows Device Recovery Tool, но с моделями 2013 года и ниже он не справится, нужно действовать самому. Устанавливаем WDRT (с ним идут необходимые драйвера и программы), открываем командную строку и идём в папку с установленной программой:
cd C:\Program Files (x86)\Microsoft Care Suite\Windows Device Recovery Tool\
Теперь ищем прошивку для нашего устройства в формате ffu (можно легко найти в интернете, например на lumiafirmware), а также emergency-файлы. Если найти их не получается, то можно скачать их с помощью попытки восстановления WDRT (однако он все равно не сможет сам восстановить устройство) — найти их можно будет в «C:/ProgramData/Microsoft/Packages». Конкретно для 1020 я уже нашёл emergency-файлы и выгрузил на свой диск. Кидаем полученные файлы в папку с WDRT.
Переключаемся на командную строку и выполняем вот такую команду:
thor2 -mode emergency -hexfile "FAST8960_EOS_ROW.hex" -mbnfile "RM875_msimage_v1.0.mbn" -ffufile "имя нашего ffu с прошивкой"
После этого пойдет процесс прошивки и thor2 сделает всё сам. Смартфон несколько раз перезагрузится — в первый раз на «красный экран», второй раз уже в систему. Вот и всё!
Важно также отметить, что если смартфон определяется как USB-HID — это не значит, что он не работает, просто АКБ упала в глубокий разряд и смартфону нужно время на то, чтобы её «растолкать».
Что же происходит в процессе прошивки? Сам по себе процессор в режиме 9008 делать ничего не может — он ожидает от thor2/QFIL специальной программы-программатора (которая занимается инициализацией ПЗУ/ОЗУ) — ей и является FAST8960_EOS_ROW.hex. Кроме программатора, нам нужен вторичный загрузчик — которым является файл RM875_msimage_v1.0.mbn. Он содержит в себе всё что нужно, чтобы смартфон мог загрузится до режима прошивки фирменными средствами производителя смартфона, конкретнее — таблицу разделов GPT, вторичный загрузчик, recovery раздел, реализация UEFI если это Lumia и т.п. После того, как thor2 восстановит загрузчик и перезагрузит смартфон, он прошьет смартфон обычной ffu прошивкой и на этом восстановление будет закончено. Смартфон снова ожил!
❯ Смотрим на смартфон
Как я уже говорил ранее, смартфон работает на базе ОС Windows Phone 8. Через некоторое время после выхода, на него вышло обновление до WP 8.1, но в текущих реалиях обновляться на неё никакого смысла нет. К сожалению, сейчас кое-как живёт и барахтается только Windows Mobile 10, которую в разы проще джейлбрейкнуть и под которую до сих пор выходит новый софт (в основном — клиенты приложений). За WP8 после 2016-2017 года как будто все забыли…
Магазин уже несколько лет как не работает, а просто установить приложения как условные apk нельзя. Ситуация очень близка к WP7. Однако есть способ сделать Interop Unlock (джейлбрейк) и устанавливать XAP-приложения, хотя толку от этого немного — большинство клиентов различных сервисов давно не работает, хотя, например, немногочисленные годные игрушки с WP7 сюда встанут без каких либо проблем.
Давайте же посмотрим, какие немногочисленные возможности всё ещё остались у этого смартфона «из коробки»:
Вот и весь магазин.
С звонками смартфон справляется неплохо. Для жителей центральных регионов может стать приятной плюшкой то, что у смартфона есть поддержка LTE и даже в качестве звонилки он всё ещё может неплохо поработать. Минусы тоже есть: нет поддержки VCF из коробки, а значит контакты нужно предварительно экспортировать на SIM (в WP 8.1 такая возможность есть).
А ещё тут очень удобное приложение для СМСок и почты. Всё очень круто анимировано и работает действительно быстро, ни о каких лагах и речи нет. Принимать СМС-ки от банков? Легко!
Но не звонилкой же мы едины. У смартфона нет поддержки MicroSD флэшек, но это компенсируется довольно большим объемом встройки — целых 32гб ПЗУ, на тот момент это было очень много. А чем эту память можно забить кроме фотографий и видеозаписей? Конечно же музыкой! Смартфон определяется как Nokia PC Suite (последней версией для WP7), так что можно синхронизировать плейлисты, а можно просто подключить смартфон как MTP-устройство и накидать музыки/видео напрямую. Как с проигрыванием видео, так и с воспроизведением музыки он справляется отлично.
Причем аудиотракт здесь действительно вполне ничего. До уровня BlackBerry (а те вообще похоже пытались впихнуть Hi-Fi плеер в телефон) не дотягивает конечно, но звучит очень и очень достойно, даже лучше чем Galaxy S4. Поддержка BT тоже, конечно же, есть. Как плеер смартфон очень неплохо подойдет и не нужно сравнивать его с дешевыми кнопочниками: те звучат в разы хуже.
Карты Here уже к сожалению не работают. Да и Internet Explorer Mobile уже безвозвратно устарел и ничего современного не откроет. Тоже самое в целом можно сказать про Edge в WM10, но тот хоть что-то открыть может.
И всё же обидно получается, смартфон так шустро работает но из-за закрытости, система не получила жизни и померла сразу с окончанием официальной поддержки. Грустно, а ведь всё так хорошо оптимизировано даже для слабых устройств!
❯ Фотовозможности
И конечно же куда без описания фотовозможностей! Это же камерофон и тут надо не рассказывать, а показывать. Однако всё же нужно сказать о том, что у смартфона аж три приложения камеры (два от Nokia и один от Microsoft), он умеет сохранять фото в Raw, у него есть полноценный HDR (причем он сохраняет несколько фото с разной экспозицией) и он умеет снимать видео 720p/30FPS с применением той самой оптической стабилизации. Часть фото ништяков на люмию вы могли увидеть в моих майских статьях. В общем, смотрим:
Осторожно, трафик:
А вот так он снимает видео:
Полный фотосет можно посмотреть на imgur. Весьма достойно, согласитесь? И это при том, что я всё фотографировал на авто. Профессиональный фотограф сможет выжать из люмии ещё больше!
Продолжение поста «В Омске "заглючила" огромная стена Меги»2
Не прошло и дня, как...
Местный бомбер, вероятно slava, воспользовался тем, что на объекте был оставлен подъемник (фото ниже для наглядности).
Как пояснили ребята, им с утра ещё нужно было слегка подправить сетку фотошопа.
Обидно. Художники там больше месяца с вышек не слазили, не успели закончить такую крутую работу - и тут ворвался местный бомбер и на тебе...
Как говорят сами ребята из команды SPEKTR у себя на странице в ВК: Раньше нужно было протыкать банки, прежде чем их выбросить около работы, видимо теперь еще нужно укатывать с места подъемники
P.S. Вот так этот участок выгядел вчера:

























































