Возьмите свой хуавей/сяоми/айфон/самсунг/дексп/дигму в руки. И возьмите еще один смартфон у друга. Похожи как две капли!? Так было не всегда, особенно на самой заре развития Android смартфонов - 2009-2011 году. Тогда у смартфонов было куда больше хардварных кнопок (вплоть до трекболла, который ласково называют одним женским органом). И сегодняшний гость не исключение. Правда, эта статья скорее ностальгическая, нежели техническая - поэтому если ищите техничку - можете пропускать этот пост.
![](https://habrastorage.org/getpro/habr/upload_files/36a/936/3f1/36a9363f1298676cac162ee471e07096.webp)
Предыстория
В 2008 году выходит HTC Dream (так же известен как T-Mobile G1) - первый серийный смартфон на Android (до этого был QWERY прототип от HTC - только для Google).
![Android Prototype(и тоже сделан HTC). Подробнее почитать можно в гугле - работал он даже не на Android 1.5 :) Android Prototype(и тоже сделан HTC). Подробнее почитать можно в гугле - работал он даже не на Android 1.5 :)](https://habrastorage.org/getpro/habr/upload_files/917/d3a/a29/917d3aa292ab09c5377cb833e7106617.webp)
![HTC Dream (T-Mobile G1) HTC Dream (T-Mobile G1)](https://habrastorage.org/getpro/habr/upload_files/c9f/fde/15c/c9ffde15cba9a4e17a78edab615f7ceb.webp)
Устройство получилось достаточно успешным (потому что опять же, предлагался оператором), и предполагался этот аппарат как коммуникатор - альтернатива устройствам на Windows Mobile. Это объясняет большое кол-во хардварных кнопок (плюс QWERTY клавиатура), т.к мир ещё не отошёл от концепции классических коммуникаторов. Посмотрите на QTek 9100 например:
![](https://habrastorage.org/getpro/habr/upload_files/5af/8e8/1c1/5af8e81c1790e2d1ecd0029ee4ecc2d1.webp)
Затем Google начали устраивать конкурсы для разработчиков с денежными призами, и всячески рекламировать свою систему. Таким образом, в 2009-2010 годах, некоторые крупные производители выпускали хотя бы по одному Android устройству. Например, небезызвестный "бюджетник" Galaxy Spica
![](https://habrastorage.org/getpro/habr/upload_files/9f7/66d/3ce/9f766d3ced10066b0120c7318ddf5517.webp)
Вобис со своим Highscreen Zeus
![](https://habrastorage.org/getpro/habr/upload_files/666/2d1/382/6662d1382543677ff5afdf557733c5db.webp)
Выделилась и (снова) HTC со своим легендарным Hero
![](https://habrastorage.org/getpro/habr/upload_files/1e4/e53/b52/1e4e53b52e980709d249f4659a952b9d.webp)
Аппаратов на фото выше у меня нет (у меня в Ейске продавали HTC Dream недорого, но я не успел), но если вдруг когда-нибудь появятся с меня обзор. Идея трекболла кажется очень классной сейчас.
Кстати, у меня есть забавный "загон". Когда я делаю какие либо проекты под мобилки, в случае андроида у меня при возможности минимальный таргет это 2.2-2.3. Связано это с глубоким уважением именно к этим версиям - для меня они легендарны.
![](https://habrastorage.org/getpro/habr/upload_files/5fa/1a8/42d/5fa1a842d3bab8831ddfcc2bec58d06d.webp)
Но сегодня речь про Motorola Milestone - первый Android смартфон от Motorola (той самой, которая до lenovo), который мне прислал читатель с хабра, за что ему спасибо! Подгон получился жирным - 3 аккумулятора (причём все живые - хотя Александр в этом сомневался до последнего), внешняя зарядка специально под эти акб, и сам смартфон в хорошем состоянии.
Однако были мелкие косяки - болячка первых Android смартфонов - ненадёжная и ломающаяся кнопка включения (она банально запала). Её можно перепаять, там обычный dip переключатель (хуже когда кнопка срывается с платы - она за собой легко может прихватить пятачки), который можно купить в любом магазине. А можно на софтовой стороне сделать автовключение при подключении зарядки.
Конкретно этот девайс сам включался при подключении зарядки, и вы можете сделать с своим устройством так же. За анимацию зарядки отвечает /bin/charge, по сути точно так же полностью загружается Linux, только в init.rc из-за специального аргумента в коммандлайне, запускается только анимация зарядки (а не zygote). За то, в каком режиме загружается система, отвечает ro.bootmode (или androidboot.mode на MTK). Можно прописать setprop androidboot.mode normal в init.rc, и посмотреть что получится. На каждый конкретный чипсет есть свои решения.
Если на ваше устройство есть Cyanogen Mod - можете поставить его, судя по всему, старые версии CM сами загружаются в обход анимации зарядки (но я не сказал бы, что долго пользовался старыми CM, поэтому могу ошибаться).
Но это включение, а пробуждение? Тут тоже два варианта - если это CM, то есть опция в настройках, которая реагирует на клавиши громкости. Но если не CM, то можно переназначить любую кнопку, как кнопку включения (например громкость вверх - тогда громкость можно будет изменять в настройках):
Нам нужен adb (включаем в настройках отладку по USB), запускаем консоль и идём в /system/usr/keylayout/. Видим там раскладки? Ищем свою (там есть и для стандартных USB клавиатур, и геймпад, вам нужна конкретно вашего девайса. На моём это sholes-keypad.kl (кодовое имя). Достаём его с помощью adb pull, и в блокноте на желаемую кнопку (например VOLUME_UP) ставим параметр WAKE. Вот так:
![В моей прошивке все кнопки были забинжены на "просыпание" :) В моей прошивке все кнопки были забинжены на "просыпание" :)](https://habrastorage.org/getpro/habr/upload_files/b95/a70/197/b95a70197a0542017adb418faeb665bc.webp)
Копируем его обратно с помощью adb push и перезагружаемся. Работает? Отлично :) На засыпание в обход таймаута можно поставить виджет Power Off.
Обзор
Итак, Milestone никогда официально не продавался в Росси. Его к нам завозили только серым импортом. Таким же образом в Россию попал и сегодняшний гость - мой читатель заказал его 13 лет назад из штатов. Само собой, клавиатура у него на английском, без гравировки. Критично ли это? Нет, ведь есть приложение-клавиатура, под названием Russian Keyboard, которое преобразовывает транслит в обычные русские буквы. Если привыкнуть - можно печатать так же быстро, как на ПК, и без такого количества ошибок, как печать свайпами.
![](https://habrastorage.org/getpro/habr/upload_files/141/a94/bf2/141a94bf2055134b0fc732206f884ffa.webp)
Есть dpad справа - для удобной навигации. При выдвижении клавиатуры, устройство само переключается в ландшафтный режим (кроме лаунчера).
На устройстве установлен CM9 на базе Android 2.3. Особо внимательные увидят этот модный закос под стиль Holo (Android 4) и лаунчер из Ice Cream Sandwich :) Как я уже говорил в своих статьях ранее - когда-то было очень модно пародировать Android 4 на устройствах, куда его официально не "подвозили". Очень много устройств осталось на 2.3, так и не получив обновления до 4.0.
![](https://habrastorage.org/getpro/habr/upload_files/0db/63d/03b/0db63d03b9f33dd1d5a4555282a261b0.webp)
![](https://habrastorage.org/getpro/habr/upload_files/f61/9ec/4e1/f619ec4e178413e2031c35dd28c7bd53.webp)
![](https://habrastorage.org/getpro/habr/upload_files/dc0/4c6/e37/dc04c6e374622a7b7eb40c1972773672.webp)
TI Omap 3430, с GPU PowerVR SGX530. Стоит напомнить, что на оригинале стояла оболочка MotoBlur - тогда особо никто не ставил голый Android (кроме вроде-бы LG, хотя и у него какая-то надстройка тоже была):
![](https://habrastorage.org/getpro/habr/upload_files/ff0/6bc/84b/ff06bc84bc3e699482335c675a0e4086.webp)
![](https://habrastorage.org/getpro/habr/upload_files/f8c/8a3/7fa/f8c8a37fad6704a23757f598d674851c.webp)
А вот так выглядел раньше Google Play
![](https://habrastorage.org/getpro/habr/upload_files/209/901/7fd/2099017fdaf7bcf4a6a5d78ca25bd826.webp)
Девайс спокойно подключается к ПК и сейчас, но действия по синхронизации нужно проделывать ручками. Кроме того, это последняя версия Android, где у нас не тупорылый и медленный MTP, а устройство реально прикидывается MSDC и подключает microsd к ПК.
Плеер здесь стоит когда-то популярный PowerAMP. Сторонние плееры отличались тем, что могли например воспроизводить трекерную музыку.
![](https://habrastorage.org/getpro/habr/upload_files/640/4a9/59b/6404a959b44ee4dbab3ab2172964edcd.webp)
![](https://habrastorage.org/getpro/habr/upload_files/e18/2f8/595/e182f859501d1dd38079cb89348ee428.webp)
Также есть известный тем, кто игрался с кастомами в то время, эквалайзер DSPManager. С ним можно было добиться гораздо более качественного звука.
![](https://habrastorage.org/getpro/habr/upload_files/14d/622/9e1/14d6229e12de0e9eccb4198f1a2c4073.webp)
![](https://habrastorage.org/getpro/habr/upload_files/9f0/1c9/8d7/9f01c98d7f9b147afc1c236ff1dd646d.webp)
Видеоплеер есть - MX Player. Я захотел посмотреть трейлер драйва, вот только хардварный кодек ниасилил 240p h264. В софтваре видео посмотреть можно (но девайс, очевидно, сильно греется, и ни о каких 60FPS и речи не идёт). и это при частоте ЦПУ 540мгц! Был бы HDMI - вообще было бы здорово (но у меня есть смартфон с HDMI, а недавно появился и кабель MicroHDMI).
![](https://habrastorage.org/getpro/habr/upload_files/b8a/8aa/63b/b8a8aa63b79cfab19c3313351f71b31b.webp)
Игры запустятся только самые ранние - GPU здесь неплох, но проц очень слабый.
Медиасервер
Я всё говорю и говорю вам в статьях про медиа-плеер. Окей, закидывать на флешку можно, но это муторно и медленно в большинстве случаев. Так почему бы не сделать синхронизацию мультимедиа по сети?
![](https://habrastorage.org/getpro/habr/upload_files/522/74b/351/52274b3514048807807036e70463cfa1.webp)
Есть два варианта: DLNA и SAMBA клиент. SAMBA клиент требует root и поддержку SMB дисков в ядре, поэтому мы возьмём DLNA (хотя я успешно настраивал SAMBA на китайских игровых приставках например, т.е поддержка SAMBA с большой вероятностью будет включена). Однако у SAMBA есть несомненное преимущество - если вы любите гонять эмуляторы, то в отличии от DLNA, вы можете расшарить свою библиотеку ромов и сейвов на свой девайс. SAMBA диск легко монтируется в любую папку в /mnt/sdcard, и её может увидеть любой софт, в т.ч музыкальный плеер.
Для DLNA нужен клиент BubbleUPNP - он платный, но мы ведь с помощью DLNA будем копировать треки локально, верно? Если нет - то можно и вылечить софт. Всё равно на 2.3 работает только версия 1.x.
Идём в параметры потоковой передачи мультимедиа и разрешаем доступ для BubbleUPNP
![](https://habrastorage.org/getpro/habr/upload_files/a4e/46b/46b/a4e46b46bc04ab1b293ac38aac55aa2d.webp)
Выбираем наше устройство в devices и заходим в библиотеку.
![](https://habrastorage.org/getpro/habr/upload_files/5db/e27/d4c/5dbe27d4cfee4ea937d54466f412d060.webp)
Жмём меню и нажимаем "Download". Клиент скачает всё на девайс, и это будет куда быстрее перекидывания через USB.
![](https://habrastorage.org/getpro/habr/upload_files/010/1fe/65d/0101fe65d9b274cefe698f03cba4f8fb.webp)
Есть ещё вариант перекидывать через adb по Wi-Fi, но это отдельная история (схожая с развертыванием FTP сервера на Android - так тоже можно).
Мессенджеры
Что 100% работает и будет работать даже на Android 2.1 - так это почта и жаббер (если вам нужно общаться только с кем-то из вашей семьи - перевести их на жаббер будет не проблемой). Можно протащить Telegram через сторонний браузерный клиент, но он работает через http, и хранит сессию на своем сервере, так что это... не особо безопасно с точки зрения приватности.
Браузер загружает ВК, но вёрстка поломана (причём поломаны именно стили - какие то плюшки из HTML5?). Браузер ноет о сертификатах, и установка корневого сертфиката ВК (x509) не помогла :( Возможно в Dolphin Browser ситуация лучше, но относительно адекватно сайты сейчас загружает только Opera Mini (поскольку страницы рендерит сервер, и у него всегда актуальные сертификаты).
Заключение
Девайс возможно и устарел заметно, но это не значит, что он бесполезен. Например, из него можно сделать сетевой диск про запас с репозиторием исходников небольших проектов (это не шутка, читаем внимательно "про запас"). Из него можно сделать мультимедийный плеер с синхронизацией по Wi-Fi со всеми DLNA устройствами, и как клиент, и как сервер. В конце концов, его можно использовать для переписки с родственниками и как экстренный телефон. Так разве это повод выкинуть такую редкость на мусорку, если на первый взгляд ей нельзя найти применение? Я считаю что нет.
А вы как считаете?