Сообщество - TECHNO BROTHER

TECHNO BROTHER

2 085 постов 13 667 подписчиков

Популярные теги в сообществе:

470

Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытаться его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat). Получилось ли у меня это? Узнаем в статье!

Мотивация


На самом деле копаться в старых девайсах и пытаться найти им применение — это очень интересное и затягивающее дело. Ведь зачастую попытки оживить девайс заключаются в прочтении большого количества мануалов, документации, копании в терминале, а иногда даже компиляции загрузчиков/ядер! И подобные занятия интересны на всех уровнях: хардварный, системный, прикладной и пользовательский. В предыдущих статьях мы с вами моддили девайсы на всех этих уровнях: ремонтировали «железные» болячки, написали несколько статей о системном моддинге и компиляции загрузчиков под неизвестные китайские устройства, а также узнавали о пользовательском опыте установки готовой кастомной прошивки на 7-летнее устройство.


Но до сегодняшнего дня мы с вами обходили прикладной уровень моддинга устройств: т. е. написание самых обычных, повседневных программ, без которых сложно представить жизнь современного человека. Ещё во времена выхода первого Galaxy S в 2010 году, многие из нас уже сутками красноглазили в Java версии «аськи», кто-то уже сидел в ВКонтакте, хоть и большинство не заглядывали в смартфон каждые пару минут для проверки нотификаций.
К 2012 году смартфонная жизнь уже стала похожа на ту, к которой мы привыкли сейчас — соц. сети, мессенджеры, пуши, потоковое видео — многие из нас успели привязаться к такой жизни и… к конкретно тем самым девайсам!


2012 год давно миновал, тенденции в разработке приложений кардинально поменялись, а учитывая, что многие мои читатели не любят выбрасывать девайсы в мусорку (и правильно делают), наверняка кто-то регулярно заглядывает на полочку к своим пыльным «бывшим» гаджетам и рассматривает их с теплотой… но с сожалением понимает, что их время прошло. Или не прошло? :) Ну, тут как посмотреть. Если есть навыки и огромная мотивация, то программер может многое, в том числе и запилить все самые необходимые приложения сам!
Я давно лелеял эту идею, подумывая, как бы лучше её реализовать. Да и почти всю свою жизнь, я писал на C#, практически не «щупав» API Android и его UI фрейморк. В один день у меня очень сильно зачесались руки написать что-нибудь эдакое под него и причём сразу — весьма серьёзное!


Всем этим устройствам более 10 лет. Самым молодым из них является реплика Lumia 1020, которую мы тоже успели замоддить!

Так и родилась идея написать клиент YouTube. А потом и ВК. Ну и трекинг в придачу. Ну а чего б и нет, на всё про всё я выделил себе неделю: за это время я должен успеть закончить пусть и сыроватые, но вполне юзабельные клиенты для моих любимых сервисов. И я начал думать…

Планирование


Написание приложений под старые мобильные ОС, как и под любые другие платформы, требует планирования того, что и как будет работать с учётом ограничений целевой платформы. У меня было сразу несколько ограничений, что только раззадоривало пыл:

  • В большинстве своём, на старых версиях Android работают одноядерные чипсеты, а значит, лимитированная многопоточность. Никакой работы в UI-потоке кроме обновления интерфейса, а поскольку в первых версиях этой системы интерфейс менее отзывчив, чем в более свежих — нужно сохранять баланс между функционалом, симпатичностью и скоростью работы. Мои приложения должны оптимально работать в следующих условиях: 256мб ОЗУ, из которых свободно в среднем 30-40мб (Сбер, привет тебе с вылетами на 2гб ОЗУ), 1 ядро ~600мгц, видео-ядро уровня Mali300-Malii400. Негусто? Ну, нам сойдет.

  • Вторым ограничением стало тотальное устаревание корневых сертификатов, а как многие из нас знают, просто так их на мобильных системах не обновить. Поэтому придётся идти на хаки — делать сервер-реле, который преобразует трафик из https в http там, где нельзя просто отключить проверку верификации SSL (это как раз кейс с API VK). Решено — отдельный сервер-реле, который отправляет запрос на сервер ВК и обратно возвращает нам обычный результат в JSON.

  • Ну а третьим ограничением стал сам Android. targetSDK = 5 (Android 1.5 Cupcake), никакого AppCompat (кушает драгоценное свободное место), никаких сервисов Google (их тут нет лет 5 уже). Всё на чистом API системы, почти в тех же условиях, в каких 13-14 лет назад писались первые приложения для Android.


    Если я его раздобуду когда-нибудь, то в лепешку расшибусь, но портирую на него свои приложения. Тогда я с гордостью скажу, что мои приложения работают на 100% Android устройств %)


    Полный энтузиазма я сел писать код. Основную часть статьи я решил поделить на каждое приложение отдельно с конкретными объяснениями: где, что и как я делал. Хочется заранее сказать — я не особо давно пишу под Android, зато много писал под WinForms, поэтому какие-то решения могут показаться странными. А некоторые решения обусловлены версией Android. Например, нотификации в первых версиях Android не было Notification.Builder, а сам Notification был больше похож на структуру. Приложения, конечно же, мы будем писать на Java.

ВКонтакте


Первым делом я начал писать клиент ВК и сразу определился со своими хотелками, которые были весьма скромными: возможность листать диалоги, читать сообщения и отправлять их (с полной поддержкой QWERTY-клавиатур, т. е. отправка на Enter), плюс возможность слушать музыку без ограничений. На ВК бочку ни в коем случае не гоню, просто публичного API совсем нет, даже с ограничениями, хотя было бы здорово…

Мне снова хотелось почувствовать те эмоции, которые я когда-то ощущал от прослушивания музыки будучи школяром со своим первым Android-смартфоном. В 2013 году я прилетал со школы и слушал плейлист на практически таком же девайсе с идентичным железом и версией Android. Я хорошо помню, как пользовался прелестями многозадачности Android на 2G интернете (3G чипсет просто не поддерживал): одну песню слушаешь, поставил вторую качаться, пока песня доиграет — уже и вторая скачалась. :)


Итак, хотелки выбраны, пора начинать писать приложение. Для дебага у меня было 3 устройства: Galaxy S4 (Android 4.2 JB), китайский Galaxy S3 Mini I9300 (Android 2.2, на фото выше) и Samsung Galaxy S I9000 (Android 2.3), ну и конечно же эмулятор с 4.4 KitKat. Android Studio и сейчас умеет без проблем собирать приложения вплоть до версии Android 2.2 даже с последними Build Tools и Target SDK — главное выкинуть appcompat, androidx, и юнит тесты из build.gradle. Без каких-либо проблем он цепляет и сами устройства по adb. Даже отладчик без проблем работает.

Первым делом я начал писать активити (полноэкранная форма в терминологии Android, или «экран» приложения) с диалогами — он должен раз в n секунд подгружать данные и строить «морду» для всего этого. По сути, почти весь код клиента — это получение ответа от API ВК, разбор JSON на датасет и визуализация этого датасета на экран. Для этого я ввёл два объекта: VK, который делает асинхронные запросы на сервер, оборачивает работу с сервером-реле и парсит JSON и VKObjectProcessor (это скорее всего отрефакторится до VKDataSet чуть позже).


Архитектура приложения получилось довольно простой и примитивной. При старте активити авторизации проверяет данные приложения (PersistStorage) на наличие API-токена и при его отсутствии запрашивает авторизацию. Как это уже стало классическим среди различных «самопальных» клиентов, мой клиент «прикидывается» официальным приложением ВК — для этого используется связка app_id и app_secret приложения ВКонтакте для Android.

После авторизации приложение перенаправляет нас на страницу диалогов. Поскольку у нас нет ни пушей, ни лонгполлинга, метод обновления остается один — в заданные интервалы. Для этого у нас есть Handler, который раз в 3.5сек берет список диалогов с сервера, проверяет, обновились ли данные и если да — обновляет датасет, отправляя сигнал обновления интерфейса (который построен на ListView). Кроме того, у нас есть кэш аватарок — точно так же распаралелленый на несколько потоков, а загруженные на данный момент превьюшки хранятся в хэшмапе.


При этом сообщения реализованы схожим образом — на данный момент возможности горячей подгрузки сообщений «сверху» нет, поэтому обновляются последние 50 сообщений скопом и сразу. Шустро ли всё это работает? Вполне неплохо. Конечно, основное процессорное время уходит на разбор тяжелых JSON, но тут отчасти вина ВК — мало того, что кастрировали функционал getHistory в последних версиях API, так ещё и нет возможности возвращать только те поля, которые нужны.


Как же я поступил с аудиозаписями? Музыка через API — настоящая заноза для разработчиков клиентов, с которой пришлось «подолбаться». Правда, недолго — раз у нас для основных запросов уже есть сервер-реле, то почему бы не сделать ещё и для музыки? Суть обхода простая: если сгенерировать специальный API-токен, то можно свободно обращаться к методам, связанным с музыкой без необходимости притворяться официальным клиентом и «подписывать» запросы md5 ключом. Примитивный PHP-скрипт как раз и предоставляет такую возможность, позволяя получить доступ к базе музыки ВК, однако ограничение типичное — у пользователя должны быть открыты аудиозаписи:

Тут был код на пхп, о его скушал пикабу!

По итогу у меня получился рабочий плеер с поиском музыки и добавленными треками. Опять же — производительность остаётся отличной! Ссориться с ребятами из ВК не хочу, поэтому добавлять возможность качать треки пока не стал — но вам стоило бы быть подружелюбнее к разработчикам кастомных клиентов! :)


Что мы получили по итогу? Довольно простенький клиент ВК, который практически не потребляет ОЗУ и шустро работает. Да, здесь не хватает кучи различных фич — как минимум, прсомотра ленты и стены. Но ещё успеется — если проект будет интересен не только мне, то продолжим наращивать фишечки потихоньку! Уже ближе к релизу я слегка причесал клиент, добавив более «вкшный» дизайн и приделал анимированное боковое меню. Про Animation ещё кто-то помнит? :)

YouTube


С разработкой клиента YouTube были свои особенности: во-первых, в отличии от клиента ВК, видео через реле просто так не загрузишь, слишком много трафика, а во-вторых, YouTube уже не «отдаёт» видео в форматах, которые поддерживают старые устройства — в основном, это h263 до 720p. К сожалению, потоковое видео с софтовым декодированием уложит на лопатки большинство «одноядерников» тех лет.


Ситуация осложнялась тем, что ни VideoView, ни стандартные плееры всех смартфонов, на которых я отлаживал приложение, не умели игнорировать ошибки SSL и просто валились с ошибкой. Пришлось что-то придумывать: ведь видосики хочется смотреть на крутейшем AMOLED дисплее Galaxy S!


Посидел я, подумал и придумал. Для поиска по базе YouTube, получения информации и прямых ссылок на видео я решил использовать альтернативный фронтэнд YouTube, который называется Invidous API — крутая штука со своим API, которая сама распределяет пул токенов самого ютуба и отдаёт ответы в виде JSON. Форматы запросов очень простые: <url инстанса Invidous>/api/v1/метод, например «search?q=test&region=RU&hl=ru» — выдаст нам результат поиска «test» в Российском регионе. Очень удобно, да? А ещё Invidous — не какой-то отдельный сервис, а целая сеть т. н. инстансов — какой хочешь, такой и юзай! Поскольку большинство инстансов «прячется» за свежими сертификатами, пришлось идти на довольно известный костыль с отключением верификации хостнеймов у HttpUrlConnection:

А туть был костыль на Java.

А поскольку у нас нет возможности воспроизводить потоковое видео онлайн, то я решил его просто предварительно загружать через собственный менеджер закачек, с возможностью последующей очистки кэша. Поскольку таким устройствам 2060p качество не нужно, я выбираю 240p-360p mp4 в avc кодеке, в среднем ролики по 30 минут весят около 30-40 мегабайт. При HSDPA+, загрузка подобного видео займет около минуты-двух — не так уж и много, можно и подождать. Закинул тестовую версию в беседу любителей ретро-мобилок — люди были в восторге. ;)


Поскольку Invidous отчасти строится на анонимности — авторизации тут нет. Однако свою задачу посмотреть видосики он выполняет нормально — поэтому весь UI приложения я поделил на 4 вкладки: тренды, популярное, история и поиск. Подписки, как и историю можно реализовать на стороне клиента — для некоторых такой подход покажется плюсом, для кого-то — нет, однако минимальный задел для клиента уже есть — мы можем смотреть видео!

А где скачать?


Приложения и бэкэнд полностью открытые, исходный код доступен по лицензии GPLv3. Следить за статусом проекта можно на моём GitHub!
Последние версии можно скачать в релизах проекта.

Из текущих хотелось:

  • Портировать на Android 1.6. Несмотря на то, что приложение в целом имеет targetSDK = 5, на 2.1 оно работать отказывается. В Android, после 2.1, слегка поменялся бинарный формат xml разметок, из-за чего приложение на старых системах вылетает с исключением. Но это решаемо: eclipse adt в зубы, импортируем проект и вперед! ;)

  • Кроме того, я экспериментировал с попытками как можно сильнее уменьшить нагрузку как на сеть, так и на процессор путём облегчения датасетов. Если один JSON от ВК весит в среднем 30-60кб (который 1 ядерный чипсет частотой 600мгц может «долго» жевать, негативно сказываясь на UI), то примитивный KeyValue формат, который содержит только нужные поля умещается в 5-6-7кб в текстовом виде и благодаря своей примитивности (весь парсинг — два substring, один indexof и поиск ключа по хешмапе) совсем не «налегает» на процессор. Благодаря этим наработкам, я запилил и примитивный клиент ВКшечки для j2me.

    В целом, можно сделать единый формат датасетов для мессенджеров, а на бэкэнде реализовывать всё что угодно — Telegram, ВК, да хоть личные сообщения на хабре, а для платформ только делать «морды»: так можно завести современные мессенджеры и на Sailfish, и на J2ME, и на Symbian, и на WinMobile, практически без пота и крови :)

  • Полная адаптация под кнопочное управление. Сейчас с клиента можно без проблем писать сообщений с любой клавиатуры, в том числе и QWERTY. Однако основной интерфейс всё ещё не полностью адаптирован под кнопки и требует выполнения некоторых действий пальцем.

Заключение


Как по мне — получилось вполне неплохо. Да, приложения кое-где сыроваты и явно не дотягивают по функционалу до их больших версий. Но кое в чем они всё таки выигрывают: они лёгкие и быстрые, а самое главное — ещё могут продлить жизнь любимого девайса для кого-то. И я считаю — это классно! Среднее потребление ОЗУ обеими клиентами: 5-10мб. Вес APK: 30-50кб на момент выхода статьи. Вот что значит писать под голое API без модных фреймворков! ;)
Что до остального функционала — кое-что в Android продолжает неплохо работать и в наше время. Например, DLNA-стриминг в доме, E-Mail клиент или банкинг через смски. Я уверен, это покрывает 80% потребностей большинства пользователей — так разве после этого можно назвать старые смартфоны бесполезными?

Я писал эту статью с целью показать вам, что старые девайсы отнюдь не тыква, если есть щепотка энтузиазма в глазах и любовь к гаджетам, а заодно и поделиться с вами своими приложениями. Часто в комментариях мне пишут, что хотели бы пользоваться своими смартфонами и дальше, если бы не устаревающие версии Android. А вы как считаете? Жду ваше мнение в комментариях.

Статья подготовлена при поддержке компании TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи про девайсы каждую неделю! А ещё не забудьте проставить плюсик на хабре, если статья вам понравилась - это поможет с финансированием и выходом новых статей!

Показать полностью 13
404

Ретропонедельник №91 Лазер ЛГ-78

Начинаем понедельник с нового экспоната виртуального музея советской бытовой техники. Но не ограничивая себя рамками бытовой техники, сегодня будем рассматривать советский лазер ЛГ-78.

На фото лазер с блоком питания. Произведен Львовским заводом Полярон. Это гелий-неоновый лазер небольшой мощности, сопоставимой с бытовыми лазерными указками.

1980 год. Преимущество лазера - его когерентность, поэтому его можно использовать в опытах с голографией. Блок питания выдает напряжение в пару киловольт постоянного тока, с возможностью отрегулировать ток.

Блок питания достаточно простой - на умножителях напряжения. На форуме даже нашлась срисованная схема, привожу для общего понимания.

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

Высоковольтный разъем с фишкой из фторопласта.

Сам лазер в кожухе их металла, выходное окно на фото обращено к нам. Есть открутить крышки, то видно глухое и полупрозрачное зеркало с фланцем юстировки, залитое компаундом

Естественно для поста я аккуратно компаунд снял

Резисторы

Сама трубка лазера:

По сути - трубка похожа на неоновую вывеску, только имеет пару зеркал с точной настройкой.

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

Это наверное самое печальное фото. Разряд с фиолетовым оттенком - а значит в трубку попал азот из воздуха. Места соединения стекла трубки и металлических наконечников с зеркалами не идеально, и года взяли свое - посторонние газы смогли попасть внутрь. Теперь это газоразрядная лампочка, а не лазер.

Показать полностью 17
6

Таинственный ящик

Здарова, пикабушники! Озадачила меня вот такая находка. Может кто прояснит: из-под чего такой ящик может быть? К сожалению сфотографировать не догадался, рисунок по памяти, подробности ниже..

Несколько лет назад подобрал на площадке добротно собранный ящик из фанеры, сначала подумал, что кто-то купил дорогое импортное оборудование, а от ящика избавился. Сколько то пролежал он у меня на огороде, но вот понадобилась толстенная фанера и решил я его разобрать. Оказалось, что ящик состоит из двух слоёв фанеры, толстой (18-21мм) и тоньше (6-8мм) а между ними слой вставок, что-то типа вспененного полистирола, так же в стенку были посажены два стеклянных "глазка" на эпоксидку. Когда разобрал ящик, на одной из фанерок с внутренней стороны оказался фрагмент рисунка краской от руки, часть телефона с дисковым номеронабирателем и само слово телефон (не полностью) И вот тут я задумался, ящик то отечественный получается и довольно старый, но аккуратность и точность изготовления поразительны. Ах да, на дне ещё был прикручен трапецевидный брусок, видимо для фиксации содержимого. Размеры приблизительные 100×40×30 см

upd: глазки нашёл

Показать полностью 2
502

Смартфон-раскладушка на Android с двумя AMOLED дисплеями. Ремонтируем и смотрим на редчайшний Samsung SM-W2014

Казалось бы, в 2023 году мобильный рынок уже давно заполонили одинаковые смартфоны, где меняются только технологии изготовления дисплеев, разрешение, железо, и иногда чуть-чуть корпус, но в целом все выглядят практически одинаково. Но немногие знают, что одни из самых сочных и необычных устройств выпускаются только… для азиатского рынка! Разве ж где-то ещё встретишь людей, которые ходят всерьёз с полноценными смартфонами-раскладушками, с двумя полноразмерными дисплеями и флагманским железом!? Проблема одна: в РФ достать такие аппараты очень тяжело, особенно теперь. Однако мне удалось раздобыть Samsung Galaxy SM-W2014 за копейки с… нюансом, который требовал обслуживания. А это значит, что сегодня мы с вами: перепаяем аккумулятор, портируем кастомное рекавери, вычистим хлам из прошивки и оценим, каково пользоваться таким девайсом сейчас? Интересно? Жду вас под катом!

Предыстория


Честно сказать, я не так много знаю про японские телефоны и смартфоны, хоть и наслышан о них в положительном ключе. В России их купить крайне проблематично: например японские аппараты зачастую заблокированы на локальных операторов, таких как NTT DOCOMO, некоторые устройства умеют только CDMA, которого в России уже давно нет, да и носителей японского языка у нас тоже не особо много. Однако устройства действительно было очень необычными и заслужили того внимания, что к ним проявляли гики и просто люди, которые слышали про японские телефоны.

В нулевых, во всём остальном мире были популярны самые разные форматы смартфонов — слайдеры, раскладушки, моноблоки, но в азиатских странах особенно горячо любили раскладушки локального производства. Нет, на рынке Японии всё равно оставались привычные нам Nokia или Motorola, однако доля локальных производителей тоже была весьма немалой. И даже если начать рассматривать подобную раскладушку, то сразу удивляешься: Японцы использовали свой форк Symbian, который назывался MOAP, они делали раскладушки с поворотными дисплеями и вводили кучу разных фишечек типа iWidget, которые в чём-то даже обгоняли «европейские» телефоны, своя программная платформа с крутым 3D (MascotCapsule, помним такое?). Даже чипсеты они делали свои: аппарат ниже умудряется работать на базе чипа Hitachi SH-G3! Процессор этой же линейки использовался когда-то в консолях от SEGA!


К моменту популяризации Android, японцы быстро полюбили эту ОС и начали выпускать на ней самые разные девайсы, которые заметно выделялись, а поскольку развитие Android совпало с популяризацией китайских маркетплейсов в РФ, всё больше людей узнавали о японских смартфонах. Это явление назвали «японодроидами» и «японоводами», а некоторые люди стали целенаправленно их искать и делиться опытом использования, ведь Android позволял гораздо больше свободы и там хотя-бы можно было включить английский язык (а иногда и русский — morelocale в помощь). Аудитория подобных смартфонов была гораздо меньше, чем у культовых HTC Wildfire или Desire, поэтому какого-то особого моддинга на них или крутых кастомов ожидать не приходилось. Но обычно они всегда работали на неплохом железе и практически не использовали недорогих решений от MediaTek (разве что Sony в одном смартфоне) и Spreadtrum. На 4pda даже есть общая тема для японодроидов, где владельцы делятся своими впечатлениями и ищут решения каких-то проблем. На момент написания статьи, тема на 4pda с обсуждением японских смартфонов набрала 174 страницы. Нехило!


Обратите внимание на тенденции дизайна в Японии: глобальный Xperia Arc (третий) кое в чем похож на Sharp Aquos (второй)

Не стоит забывать и про китайский рынок, на котором тоже любят всякие необычные по европейским меркам мобильники, и раскладушки в том числе. А ещё там очень были популярны телефоны с телевизором, вы наверняка думали, что это всё шутка, видя у людей очередную Nokla с выдвигающейся антенной? Думали, что китайцы делали такие телефоны чисто для рынков Индии, РФ и Тайланда? Нет, они тоже использовали свои девайсы, в том числе и реплики айфонов, самсунгов и ещё бог знает чего. С выходом Android смартфонов, самобытность китайцев подугасла и действительно необычные девайсы мы видим уже не так часто, как раньше. Видимо, большая часть производства направлена на ODM мобильники и смартфоны именитых брендов:


CECT V777 — китайский ответ на японские смартфоны, но гораздо более доступный и даже поставлявшийся в РФ!

Ну а как насчёт Южной Кореи? Там тоже бывали необычные девайсы. Конкретно за раскладушки я не слышал, но знаю, что время от времени Samsung и LG делали очень крутые штуки. Если я ничего не путаю, в нулевых Samsung уже делали смартфоны с GPU (графическими ускорителями) для корейского рынка и другими прикольными фишками. Из тех, что я сразу вспоминаю — здоровая лопата LG Optimus Vu с по настоящему «квадратным» дисплеем, который и в руках то попробуй удержать. Хотя идея реально прикольная, мне лично понравилась! Из других запоминающихся устройств могу вспомнить Galaxy Round и G Flex — первые смартфоны с «погнутыми» дисплеями. Это ещё не совсем такие «гнущиеся» дисплеи, как в свежих «флипах», но они там действительно гибкие. До этого схожий эффект создавала Acer со своими смартфонами bePhone, у которых тачскрин был как-бы слегка изогнут.


Наш сегодняшний герой — Samsung SM-W2014, более известный как Galaxy Golden 3, был выпущен ещё в конце 2013 года как флагманский смартфон исключительно для рынка Китая. Производитель предлагал мощнейший на тот момент чипсет Qualcomm Snapdragon 800, 2гб ОЗУ, 32гб ПЗУ с слотом под MicroSD (редкость даже тогда для таких объемов!), а также два одинаковых полноценных сенсорных SuperAMOLED дисплея по обеим сторонам устройства! Но как же я раздобыл его, если он предназначался для рынка Китая? В этом мне помог мой читатель с Хабра — OldPronStar. Мужик выложил на известную онлайн-барахолку объявление о продаже SM-W2014 за… 1.000 рублей, а жил он в Красноярске. Как только я его не уговаривал выкупить устройство. И по предоплате, и доставкой, но продавать он мне его не хотел. Только личная встреча! Висел девайс с нового года, я под одной из своих статей написал про него, спросил — может кто-то сможет помочь с его покупкой — на что вызвался мой читатель! Он мне написал, я ему скинул номер продавца и он почти сразу его забрал, а через день уже отправил.


По словам читателя, продавец взрослый мужик, который не хотел особо заморачиваться с отправкой или просто не особо доверял. Но вот как у него оказался такой девайс — вопрос открытый, не сказать ведь, что Красноярск близок к Китаю и ответ на него дал сам продавец (данные скрыл):


Вот уж необычно получилось! В целом, вообще непонятно, кто додумался выбросить такую штуку на помойку. Это ж редкость дикая! Но видимо, именно он должен был попасть ко мне и конкретно о нём должна быть написана статья! Девайс требовал некоторого обслуживания: продавец запаял изношенный АКБ напрямую к пятакам на плате (коннектор АКБ скорее всего уже был выломан до него), который держал… ну может час в режиме сна. Не порядок! Кроме того, на устройстве были мусор и вирусы в системном разделе, которые требовалось вычистить.

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

Ремонт


Давайте начнем с замены АКБ! Тут всё просто: отпаиваем старую АКБ, припаяем новую и наслаждаемся. Единственный минус в том, что продавец залил клеем и пятаки на плате и сами клеммы АКБ. Пришлось отрезать, наращивать, изолировать и припаивать свою АКБ.


Я установил аккумулятор на 1.500мАч от битого смартфона Lenovo. Батарейка 2015 года выпуска, но в целом всё ещё умудряется держать заряд!


BSI (т. е. средний контакт) я припаивать не стал. Разные смартфоны реагируют на него по разному, но иногда это может стать причиной того, что устройство не заряжается. На BSI обычно висит терморезистор, либо просто фиксированный резистор, который как бы выполняет роль ID аккумулятора.

После замены АКБ девайс включился и… тут мы увидим тот самый нюанс, о котором я предупреждал в начале статьи! Если подключить к выключенному смартфону ЗУ, то мы увидим анимацию зарядки… MediaTek! Подключаем устройство к ПК и видим заветное — MediaTek MT65xx Preloader! Это очень и очень хорошая китайская реплика, которая повторяет оригинал почти 1 в 1! После небольшого анализа, я узнал, что устройство работает на базе Android 4.2 и чипсета MediaTek MT6572, что открывает довольно большие возможности моддинга. Например, девайс можно превратить в «айфон! :)


Да, да, вы только представьте, китайцы всерьез скопировали смартфон для… китайского рынка! И причины этому были. Оригинал стоил 1649$, что по тому курсу около 50.000 рублей, т. е. его цена примерно равна текущей цене на Galaxy Z Flip! Цена этой реплики была около 10-15 тысяч рублей, что немало (для сравнения — младший братец флагмана Galaxy S4 — S4 Mini стоил те же самые 15 тысяч), а я точно помню, что такие продавали на AliExpress в 2013-2015 годах и были довольно популярны. Высокая цена оправдана не только эксклюзивностью подобных устройств но и сложностью конструкции. Здесь два полноценных сенсорных дисплея, которые нужно делить на программном уровне. Концевой выключатель внутри при открытии раскладушки переключает картинку на внутренний экран, при этом переключение сделано скорее всего на уровне драйвера дисплея. Как только приходит сигнал с выключателя, драйвер, видимо, переключает коммутацию питания подсветки, а возможно и полностью питание дисплея, при необходимости выполняя инициализацию снова (дисплеи переключаются отнюдь не моментально). С тачскринами же всё скорее всего проще: одинаковый контроллер, тачскрины, а откуда принимаем данные у нас решает сигнал CS.
Получается, у нас вдвойне более редкий девайс? :)

Но устройство требовало и софтварное обслуживание. После включения смартфона и подключения Wi-Fi, его раз в несколько секунд выкидывало на рабочий стол. Я сразу же подумал, что дело не в багах прошивки, а затесавшейся малвари в недрах прошивки, которая написана очень криво и при невозможности соединиться с сервером рекламы/ещё чего-то подобного, банально крашилась, вылетая на рабочий стол. И был прав: заходим в /system/app и видим столько всего интересного…

Речь про apk типа „com.hktkdzq.ph.cz.apk“, „com.rf.test.apk“. Они не одексированы (у них нет сопутствующего файла .odex), а значит „левые“ и на работоспособность не влияют. Но все равно делайте бэкапы

Я сразу же вытащил build.prop и загуглил номер сборки прошивки на манер наличия оной в свободном доступе. Но увы, таких нет, так что будем доводить до ума свою! Тут нужна аккуратность. Необходимо либо сразу полностью снять дамп устройства с помощью SP Flash Tool, либо сделать дамп первых 64мб eMMC — это включит в себя все необходимые разделы для включения смартфона — preloader, lk, boot. Саму систему можно и с другого девайса портировать, а без родного lk и ядра — телефон кирпич! Можно сделать и полный дамп eMMC — будет ещё надежнее.

Создаем scatter с помощью MTK Droid Tools — он содержит в себе разметку памяти для фирменной программы для прошивки MediaTek — SP Flash Tool. Он поможет узнать нам, где у нас находится раздел с boot и recovery и вычитать их напрямую. Загружаем полученный скаттер в SP Flash Tool, идём в вкладку readback, кликаем „add“ и в свойстве Length пишем 0x03e80000. Нажимаем start, подключаем выключенный телефон к ПК (иногда это нужно делать с зажатыми кнопками громкости) и ждём — флэшер всё сделает сам! Это самый необходимый минимум для восстановления „кирпича“ в будущем.


Теперь нам нужно вытащить конкретно раздел boot. Для этого открываем скаттер в текстовом редакторе, ищем нужный нам раздел boot и копируем его linear_addr в поле Start в флэштуле, а в поле length — соответственно length из скаттера. Вычитываем наш раздел boot, заходим в MTK Droid Tools и автоматически создаём CWM кнопкой „Recovery and boot“ из вычитанного boot.img:


Полученный рекавери окажется в папке MTK Droid Tools/recovery. Теперь нам нужно его прошить, но SP FlashTool не даст этого сделать: он будет считать, что таблица разделов изменилась и устройство нужно перепрошить полностью. Поэтому мы запишем лишь необходимый кусок памяти (этим же способом можно прошить полный дамп, если вы его делали). Жмём Ctrl + Alt + V, в заголовке окна появится надпись „Advanced Mode“. Заходим в Window, ставим галку на „Write memory“, заходим в появившуюся вкладку и прописываем смещение нашего boot.img, выбирая полученный recovery. Для чтения памяти preloader не нужен, т. к. при тестах, аварийном режиме и readback, чипы MediaTek работают в спец. режиме „BROM“, а вот при записи preloader нужен. Для этого мы с вами и делали бэкап первых 64мб eMMC! Открываем дамп в HEX редакторе и ищем строку ».bin" или «MTK_BLOADER_INFO».

Там записано заводское название нашего прелоадера — они переносимы между устройствами. В моём случае им оказался «preloader_ratech72_wet_rlk_jb3.bin». Забиваем в гугл и находим такой же прелоадер в прошивке некоего Blackview JK890. Качаем его прошивку, берём оттуда наш файл и загружаем его в SP Flash Tool. Почему нельзя просто извлечь его в HEX редакторе? SP Flash Tool хитро считает контрольную сумму для него, а как понять, где конец прелоадера, я пока не знаю. Попробовал обрезать до начала «нулей» — не работает. :(

Эта часть материала с поиском прелоадера может быть полезной не только для моддинга неизвестных устройств, но и для поднятия кирпичей. Если у вас лежит подобный девайс мертвым грузом с «левым» прелоадером — можете по CID eMMC (который можно узнать в вкладке memory test, только снимите галки с «ROM Test») найти подходящий прелоадер и прошить его. Устройство, возможно, снова оживет!


Такс, «Write memory» нажали, рекавери записали, загрузились в него нажатием «громкость вверх + включение» и видим, что всё работает! Правда чуть-чуть перевернуто, но это не критично. Иногда производители действительно ставят дисплеи «вверх-тормашками», а затем софтово переворачивают их в нужную ориентацию. Сделано это из-за того, что на некоторых платах коннектор дисплея можно развести только в определенном месте. Владельцы телефонов на базе ранних чипов Spreadtrum меня поймут — когда прошиваешь какую-то прошивку… а она вверх-ногами!


Заходим в терминал, пишем adb shell и монтируем системный раздел (карту блоков можно посмотреть в том же MTK Droid Tools). В моём случае, это /dev/block/mmcblk0p4: mount /dev/block/mmcblk0p4 /system/. После этого у нас открылся полный RW доступ к разделу /system/! Теперь мы можем установить root, моддить устройство или вычистить хлам. Поскольку девайс уникален, я решил его оставить в стоке, но сделать юзабельным, вычистив вирусы из /system/app. И тут китайцы подготовили нам подлянку. При попытке сделать rm <название apk>, программа будет писать «Operation not permitted» несмотря на наличие root прав! Просто китайцы повесили атрибут immutable на все файлы в этой папке, чтобы их нельзя было отключить даже при наличии root доступа в системе с помощью спец. программ. Решение простое — chattr -i -a .. После этого любые файлы можно будет удалить. Я рекомендую скопировать все файлы из этой папки локально (adb pull /system/app/), на случай чего. Удалять можно почти любые apk без сопутствующего .odex. Те apk, что вместе с файлами .odex — созданы при компиляции прошивки, они необходимы системе, а их код «одексирован» и содержится отдельно от архива. А те, что просто *.apk — «докинуты» производителем отдельно. Удаляйте всё, что выглядит подозрительно или даже пытается косить под системные сервисы (чего только com.gogle.meps.services стоит, это не очепятка). Я удалил больше 10 apk различной малвари. И это в смартфоне за 10-15 тысяч рублей! Очуметь просто…

Всё сделали? Теперь можно накатить root или сделать дампы необходимых разделов с помощью MTK Droid Tools. А можно просто перезагрузить устройство и посмотреть на результаты. В моём случае всё заработало сразу нормально: мусор вычистился, девайс заработал пошустрее и стало больше свободной ОЗУ.


Ой! А в устройство только китайский и английский язык. Но ситуацию исправить можно. Берем замечательное приложение morelocale и меняем язык на русский. Переведется только часть приложений, но глобально язык мы сменим, а значит установленные приложения уже будут на русском. Куда ни шло! Перед этим нужно дать morelocale специальное разрешение через adb shell: pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION. Теперь чуть лучше!

Ну вот теперь мы получили рабочую и крайне необычную мобилку. Хотя описанное в статье может выглядеть сложным для неподготовленного пользователя, работы тут на час от силы. Ничего сложного нет, если что, можете спросить в ЛС. :)

Смотрим на девайс подробнее


Давайте теперь посмотрим на смартфон внимательнее и попробуем решить, можно ли его использовать в 2023 году. В отличии от оригинала, у нашей реплики всего 512мб ОЗУ и двухядерный бюджетный чипсет MT6572 с GPU Mali 400MP, когда за эти деньги можно было найти девайс на топовом чипсете MediaTek — MT6592 с 1-1.5гб ОЗУ. ПЗУ тут около 512мб, устройству НЕОБХОДИМА MicroSD флэшка. Без неё он не может ни фотографировать, ни скачать что-то — прямо как на старых смартфонах 2010 года.

Что первое бросается в глаза — китайцы убрали миниджек за 3 года до Apple — его здесь вообще нет, даже несмотря на присутствие значка наушников на заглушке! Китайцы уже тогда предлагали слушать музыку в bluetooth гарнитуре.


Однако сам корпус выполнен качественно, не люфтит, не ощущается дешевым. Здесь явно использовали довольно неплохие материалы. От времени на моем экземпляре выломали заглушку петли и слегка треснули задний экран, без влияния тачскрина. Механизм плавный, не тугой, мне лично нравится.


При открытии девайса, он автоматически переключает экраны — в системе считается как «один» — т. е. вывести часы сзади не получится. Видно, что китайцы применяли хорошие IPS матрицы, которые в целом можно спутать с ранними AMOLED'ами — цветопередача отличная, да и разрешение ничего — <вставить>. Тачскрины есть и на заднем, и на переднем дисплее — представьте себе, открываете вы раскладушку и начинаете тыкать по ней, несмотря на хардварную клавиатуру! Люди в общественном транспорте явно удивятся такому чуду.
Кроме того, у устройства конечно же есть гироскоп — а значит, посмотреть на нём можно и фильмы. В таком случае, клавиатура будет представлять из себя роль «подставки».


Что самое обидное — сходу клавиатуру можно использовать для печати и она весьма удобная, но… только на китайском T9 или английском. Поддержки русской клавиатуры не предусмотрено. В целом, с выходом кнопочников на Mocor, появились и другие клавиатуры, в числе которых есть и ввод на русском — так что сейчас это не проблема. Есть и обычная экранная клавиатура Google — кому как привычнее!

Ну а работает смартфон на базе Android 4.2 JellyBean с оболочкой (или её копией) Samsung TouchWiz. Всё работает весьма бодренько, каких-то очень серьезных лагов нет, а повседневные приложения бегают нормально. WhatsApp, Telegram, VK — всё это работает здесь хорошо.


Можно и посерфить интернет. Правда, использовать придется Opera Mini из-за устаревших сертификатов. Более-менее свежую версию Chrome можно установить на устройство, но он будет лагать — ведь у нас всего 512мб ОЗУ!

Для прямых целей он тоже неплохо подойдет — есть всё, что нужно: импорт/экспорт контактов, 2SIM. Разве что синхронизации с ПК не хватает — но контакты без проблем можно выгружать в облако. Радиомодуль здесь поддерживает только 3G, так что ещё какое-то время девайс останется актуальным, в то время как оригпнал умел уже 4G. В целом, выбор MT6572 для меня всё ещё остаётся загадкой — просили немалые деньги, накидали вирусов (с рекламы производитель скорее всего получал хорошую денюжку) и всё равно поставили ультрабюджетный чип. Можно же было хотя бы 6582 поставить!



Ну а игры я не буду затрагивать — в них тут играть будет не очень удобно. :) Хотя хардварные кнопки в эмуляторах можно без проблем забиндить — потянет он любые эмуляторы примерно до уровня PS1 включительно, что в целом тоже неплохо.

Заключение


Концепция получилась интересной. Раскладушки — это сами по себе телефоны, которые рассчитаны именно для звонков своим форм-фактором. Казалось бы — в них не потыкать пальцами — но азиатские производители показали обратное. Но выполнять остальные задачи на них как минимум немного необычно. Не сказать, что неудобно — просто требует привыкания. Мне лично девайс понравился, это действительно редкая мобилка, которую нужно бережно хранить — ведь шлейф на него сейчас днем с огнем не сыщешь. Кто знает, может быть концепция Android кнопочников пошла именно от таких раскладушек?

А вы как считаете? Жду ваше мнение в комментариях!
Следующим у нас станет Alcatel Fire E на базе редкого зверя в наших краях — FireFox OS!

Материал подготовлен при поддержке @Timeweb.Cloud
Подписывайтесь на меня и таймвеб, чтобы не пропускать новые статьи про моддинг гаджетов каждую неделю!

Показать полностью 23 2
86

Знакомимся с микрокомпьютером типа SMARC. А также делаем для него "самодельный монитор" - подключаемся по LDVS к матрице

Всем привет. Недавно получил для экспериментов необычную вещь - так называемый SMARC. Сегодня решил рассказать о нем, что он из себя представляет и вообще зачем он нужен. Сразу говорю - писать буду "языком дилетанта", так как не все могут понять терминологию.

По сути, SMARC - это общее название для одноплатных микрокомпьютеров. Используются в IOT устройствах, вычислительных модулях и не только. В целом критерий выбора SMARC один - вам не нужна очень большая мощность, но необходимы "компьютерные" вычисления. Да, конечно есть ARDUINO, но как по мне это вкусовщина - кому что нравится тот то и использует. Пример применения - вы хотите сделать небольшой домашний медиасервер, поддерживающий 4к, шифрование/дешифрование видео на лету, передачу медиа по RTP и так далее.... Но вы не хотите чтоб он занимал много места и много ел электричества. Да и при этом он должен быть относительно недорогим. И кстати, на нем можно запустить не только линукс, но и винду!

Смарки производит много кто. Вот например Тайваньский производитель - Embedian. Производит множество разных смарков, мощностью от 600 мгц, до 1,8 ггц/4 ядра. Основная платформа - ARM.

Кстати, их производят и в России :-)

Вот как он выглядит:

По сути это просто плата размером с 2 спичечных коробка.

Но естественно, для запуска данного устройства необходима дополнительная плата с распаянными периферийными разъёмами, такими как USB, Ethernet и другими. Каждый производитель оборудования на базе SMARC делает эти платы самостоятельно, распаивая только необходимые ему разъёмы. Однако в случае с Embedian есть возможность заказать так называемую "плату разработчика", или как еще ее называют, "инженерную плату". Их особенность - на ней распаяны абсолютно все периферийные разъёмы, которые только доступны. И даже есть готовые стартовые киты. Например вот такой. Кстати именно его я и взял. Про нюансы доставки рассказывать не буду - это тема для отдельной статьи. И кстати, на нем уже есть установленная операционная система :-)

Через некоторое время я получил вот такую железяку:

Но вот незадача. Видеовыхода на нем нет в привычном нам понимании. Да, никакого VGA или HDMI. Вместо него имеется целых 2 выхода LVDS! Один под 8 бит, другой под 6 бит (об этом чуть позже). Кстати, как и на большинстве инженерных плат.

Что же это за LVDS такой? По сути - это такой стандарт передачи видеоданных. Большинство мониторов внутри работают используя LVDS протокол.

Ну а где-же привычный HDMI? Сейчас объясню.

Если рассматривать передачу видеоданных, то большинство мониторов работают по следующей схеме:

Данные, которые поступают в монитор по HDMI, котроллер монитора расшифровывает и отправляет на матрицу уже в виде LVDS сигнала.

То есть, фактически к данному SMARC мы можем подключить матрицу напрямую, минуя видеокарту на устройстве (вместо нее используется встроенный LVDS контроллер) и контроллера монитора.

Можно конечно заказать в Китае LVDS -> VGA /HDMI конвертер и подключить к обычному монитору, но это стоит денег. По этому я решил пойти чуть более сложным, на зато практически бесплатным путем, благо сам LVDS провод был в комплекте.

С этого момента фото будет мало (в основном будет тех описание), так как работа уже проведена и разбирать заново нет никакого желания. Но кое какие фото имеются.

Я взял матрицу со старого, древнего уже не рабочего ноутбука Acer Aspire 5100 и разобрал ее. Выкинув все лишнее (микрофон, wifi антенки) мы получаем саму матрицу, шлейф к ней, и инвертор для запуска LED лампы подсветки.

Чтобы продолжить необходимо разобраться в самой матрице.

Кстати, пару слов о них:

Матрицы бывают двух видов. 6-ти и 8-ми битные. О том какая матрица можно узнать погуглив даташит на нее и посмотрев сколько цветов она воспроизводит. 6-ти битные матрицы воспроизводят 262144 цветов, 8-ми битные....эм, не помню, в общем больше.

Есть несколько правил:

  1. Если матрица 8-ми битная, то к ней нельзя подключить 6-ти битный интерфейс.

  2. Если матрица 6-ти битная, то к ней можно подключить 8-ми битный интерфейс, путем отсечения 4-й пары видеоданных. Однако нужно учитывать, что при этом уменьшится яркость и некоторые цвета могут поплыть.

Матрица мне попалась QD15TL07, ревизии 2.0, производителя AU Optronics Corp. Это 6-ти битная матрица, с разрешением 1280х800, 15,4 дюйма.

Для операции на пациенте нам необходима распиновка разъёма.

Сам провод разъема вынимаем, отрезаем лишнее, оставляя только небольшой отрезок шлейфа на самом разъеме матрицы. Дополнительно с нижней части отрезаем разъем, идущий на инвертер. Он нам в последствии понадобится.

Распиновку берем из даташита на матрицу:

Также лезем в даташит нашего любимого смарка, и видим такую таблицу:

На самом деле это несколько неудобно, по этому мы зайдем с другой стороны, и найдем так называемую схему подключения. Благо производитель ее заботливо предоставляет:

Вот теперь понятнее и интереснее. Заметьте, я взял разъем LVDS2 по той причине, что по нему понятно какие пины отвечают за 4-ю пару данных (A3M и A3P на схеме). А как мы помним, они нам не нужны.

Заглянув в даташит на смарк мы увидим, что данные D0 соответствуют R, D1 соответствуют G, D2 соответствуют B. Совмещаем обе таблички в одну:

Берем оба провода (один от матрицы, один от платы), вооружаемся паяльником и делаем дела.

Проверяем и видим очень тусклое изображение. Как говорил Кот Матроскин - "А это все потому, что у тебя подсветки то нет!".

Для того чтоб подключить подсветку нам необходимо запитать инвертер. У нас это Sumida PWB-IV13154T.

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

Все инверторы запитываются напряжением от 12 до 19,5 вольт, а также имеют 2 разъёма управления - разъем ВКЛ/ВЫКЛ, и разъем яркости.

Для начала находим минус. Включаем мультиметр на режим прозвона и тыкаем в проводки (вы же их не выкинули?) плюсом, а в площадку ground на плате - минусом. Зазвонило - отлично. Это пины 6 и 7, это у нас минус.

Теперь находим на плате предохранитель - он выделяется буквой Y напечатанной сверху и находится рядом с разъёмом. И снова звоним. Оп, пины 1 и 2 это плюс.

Теперь осталось найти яркость и включение. а у нас 3 пина - 3, 4 и 5. Какой-то из них лишний. Находим микроконтроллер на плате. Перед ним стоят резисторы. Звоним проводки - звонятся 3 и 4. Пятый не звонится, значит он у нас лишний.

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

И у нас как раз такой инвертор. Для того чтоб его запустить нам понадобится два резистора. один номиналом 600 ом, второй - номиналом 221 ом. Можно взять чуть больше или чуть меньше, сути не поменяет. Теперь, и используя метод пальцевого тыка, подцепляем в пину 3 резистор на 221, а к 4 - на 600. Представляем что пин 4 это яркость и цепляем его на заземление (не минус!), т.е. на корпус матрицы. Теперь подцепляем пин 3 с резистором на пин питания. Матрица засветилась. Отцепляем пин 3. Матрица погасла. Отлично, мы угадали! А если бы не угадали? Тут легко. Если бы мы не угадали, то при после отцепления пина от питания матрица бы не погасла. Она бы погасла при следующем тычке в питание, а нам это не нужно - пусть подсветка включается автоматически при подсоединении блока питания.

Теперь собираем схему (я использовал навесной монтаж, без всяких плат, грубо и бесповоротно припаялся к проводам), припаиваем разъем питания, собираем все в корпус и вуаля! Монитор для смарка готов!

Но...не все так просто. Разрешение экрана немного не совпадает, из за чего изображение "троится". Нужно наверное перешивать контроллер.....но это уже история для совершенно другой статьи. Ну и на последок результат работы:

Показать полностью 9
15

Ещё поработают

На первый взгляд кажется, что эти два утюга из разных эпох: Первый (Braun si6590) будто прилетел из космоса, второй же (УТП - 1000) сошёл с экрана классического нуара 50-х годов, где им роковая блондинка размозжила голову своего мужа - тирана. Но на самом деле первый утюг всего лишь на 3-4 года младше второго. Справедливости ради - нужно отметить, что данный УТП-1000 - копия американского утюга Mary Proctor, и как долго его ещё выпускали мне не известно. Braun же - куплен в 2005 (6) году, и на прилавках был тоже продолжительное время (по западным меркам), очень уж удачная модель получилась, несмотря на появляющуюся тенденцию к планированному устареванию, несколько раз падал без последствий, оставался включенным, но секрет живучести прост, вода из-под крана у нас хорошая, накипи не даёт.

Показать полностью 2
Отличная работа, все прочитано!