Китайский часофон AN1 Smart Watch





Здравствуйте, любители китайских и не очень гаджетов. Уверен, многим поднадоел этот бесконечный поток безликих планшетов, тем более, например, компании вроде гугла поджимают ценовую и качественную планки своими Nexus, делая приобретение очередного китайского ноу-нейм планшета сомнительной затеей.
Гарантирую — в данном обзоре планшетов не будет. Пока все с нетерпением ждут новой волны носимых гаджетов, а именно «умных часов» от компаний Apple, Motorola, LG и других, китайцы не стали долго тянуть и в срочном порядке выпустили свою версию умных часов, образец которых и попал ко мне в руки.

Встречайте, 100% ноу-нейм часофон — SmartWatch AN1.
Спойлер: в конце обзора он будет хакнут.

История

Если вы когда-нибудь делали обзор чего-либо на хабре, то будьте уверены — рано или поздно вам постучат в личку добрые китайцы и предложат рассказать хабру про тот или иной гаджет, причём выбор-то ого-го какой широкий: кроме планшетов, как известно, на их унылых складах никаких полезных предметов для айтишника нет. А китайские планшеты обозревать, тем более на хабре — дело неблагородное, начиная с 2012 года.
Но в этот раз фартануло: милая девушка предложила мне посмотреть на их умные часы и, если заинтересуют, сделать обзор. Разумеется, ведь тема носимых гаджетов меня волнует давно, а тут такой случай выпал оценить китайский подход. 23 апреля отправлено через Сингапур, 19 мая на нашей почте, довольно шустро. Большинство фотографий кликабельны.



Figure 1. Хорошо они заполнили декларацию. Надеюсь, содержимое
заветной коробочки потянет на большее, чем MP4 плеер за $0.06.


Комплект и характеристики

С характеристиками странная ситуация: на сайтах магазинов, на коробке, и на деле характеристики отличаются.
OS Android 4.0.4, на коробке и в прошивке значится 4.1.1
Процессор 1GHz, Single Core,MT6515 ARMv7, графика: OpenGL ES 1.1, PowerVR SGX 531, AnTuTu score: 5855
Память 512M RAM, 4GB NAND (разметка такая, что доступно около 512M — пополам на /system и /data)
Экран 2", 320x240, ёмкостный TFT (5 точек)
Связь GSM, EDGE, GPS, FM, Bluetooth 3.0, WiFi b/g/n (чип MT6628)
Слоты и порты microUSB, microSD, SIM
Габариты 60 x 41 x 15, 72г с батареей (900mAh, Lithium, 3.7V)
Спецификация на коробке


Дамп build.prop
<code class="bash"># begin build properties # autogenerated by buildinfo.sh ro.build.id=IMM76D ro.build.display.id=ALPS.ICS2.MP.V1.18 ro.build.version.incremental=eng.lt.1395940871 ro.custom.build.version=1395940871 ro.build.version.sdk=15 ro.build.version.codename=REL ro.build.version.release=4.1.1 ro.build.date=Fri Mar 28 01:23:10 CST 2014 ro.build.date.utc=1395940990 ro.build.type=user ro.build.user=lt ro.build.host=ubuntu ro.build.tags=test-keys ro.product.model=AN1 ro.product.brand=XINGHAN ro.product.name=F9-2S ro.product.device=F9-2S ro.product.board=XINGHAN ro.product.cpu.abi=armeabi-v7a ro.product.cpu.abi2=armeabi ro.product.manufacturer=XH_F9 ro.product.locale.language=zhr ro.product.locale.region=CN ro.wifi.channels= ro.board.platform= # ro.build.product is obsolete; use ro.product.device ro.build.product=F9-2S # Do not try to parse ro.build.description or .fingerprint ro.build.description=fise15_ics2-user 4.0.4 IMM76D eng.lt.1395940871 test-keys ro.build.fingerprint=alps/fise15_ics2/fise15_ics2:4.0.4/IMM76D/1395940871:user/test-keys ro.build.flavor= ro.build.characteristics=default persist.sys.timezone=Asia/Shanghai # end build properties  # begin mediatek build properties ro.mediatek.version.release=ALPS.ICS2.MP.V1.18 ro.mediatek.platform=MT6575 ro.mediatek.chip_ver=S01 ro.mediatek.version.branch=ALPS.ICS2.MP # end mediatek build properties # # system.prop for generic sdk #  rild.libpath=/system/lib/mtk-ril.so rild.libargs=-d /dev/ttyC0   # MTK, Infinity, 20090720 { wifi.interface=wlan0 # MTK, Infinity, 20090720 }  # MTK, mtk03034, 20101210 { ro.mediatek.wlan.wsc=1 # MTK, mtk03034 20101210} # MTK, mtk03034, 20110318 { ro.mediatek.wlan.p2p=1 # MTK, mtk03034 20110318}  # MTK, mtk03034, 20101213 { mediatek.wlan.ctia=0 # MTK, mtk03034 20101213}   # MTK, TeChien { ro.media.enc.hprof.file.format=3gp ro.media.enc.hprof.codec.vid=m4v ro.media.enc.hprof.vid.width=720 ro.media.enc.hprof.vid.height=480 ro.media.enc.hprof.vid.fps=30 ro.media.enc.hprof.vid.bps=3400000 ro.media.enc.hprof.codec.aud=amrnb ro.media.enc.hprof.aud.bps=12200 ro.media.enc.hprof.aud.ch=1 ro.media.enc.hprof.aud.hz=8000  ro.media.enc.mprof.file.format=3gp ro.media.enc.mprof.codec.vid=m4v ro.media.enc.mprof.vid.width=352 ro.media.enc.mprof.vid.height=288 ro.media.enc.mprof.vid.fps=30 ro.media.enc.mprof.vid.bps=990000 ro.media.enc.mprof.codec.aud=amrnb ro.media.enc.mprof.aud.bps=12200 ro.media.enc.mprof.aud.ch=1 ro.media.enc.mprof.aud.hz=8000  ro.media.enc.lprof.file.format=3gp ro.media.enc.lprof.codec.vid=h263 ro.media.enc.lprof.vid.width=176 ro.media.enc.lprof.vid.height=144 ro.media.enc.lprof.vid.fps=30 ro.media.enc.lprof.vid.bps=384000 ro.media.enc.lprof.codec.aud=amrnb ro.media.enc.lprof.aud.bps=12200 ro.media.enc.lprof.aud.ch=1 ro.media.enc.lprof.aud.hz=8000 # MTK, TeChien }  # wifi.tethering.interface=ap0 #  ro.opengles.version=131072  wifi.direct.interface=p2p0 dalvik.vm.heapgrowthlimit=64m dalvik.vm.heapsize=128m   # Encrypt phone function ro.crypto.tmpfs_options=mode=0771,uid=1000,gid=1000 ro.crypto.fs_type=ext4 ro.crypto.fs_real_blkdev=/emmc@usrdata ro.crypto.fs_mnt_point=/data ro.crypto.fs_options=noauto_da_alloc ro.crypto.fs_flags=0x00000406  # audio ro.camera.sound.forced=0 ro.audio.silent=0  # USB Config Type ro.sys.usb.storage.type=mtp,mass_storage  # USB MTP WHQL ro.sys.usb.mtp.whql.enable=0  # Power off opt in IPO sys.ipo.pwrdncap=2  ro.sys.usb.storage.type=mtp,mass_storage  # # ADDITIONAL_BUILD_PROPERTIES # fmradio.driver.chip=3 ril.external.md=1 ro.sf.hwrotation=0 ril.current.share_modem=1 launcherplus.allappsgrid=2d launcher2.allappsgrid=3d_20 curlockscreen=2 ro.mediatek.gemini_support=false drm.service.enabled=true fmradio.driver.enable=1 mediatek.wlan.chip=MT6628 mediatek.wlan.module.postfix=_mt6628 dalvik.vm.mtk-stack-trace-file=/data/anr/mtk_traces.txt ro.config.notification_sound=OnTheHunt.ogg ro.config.alarm_alert=Alarm_Classic.ogg ro.config.ringtone=Backroad.ogg net.bt.name=Android dalvik.vm.stack-trace-file=/data/anr/traces.txt</code>

Спецификация NAND


Разметка NAND
<code class="objectivec">[PART] blksz: 2048B [PART] [0x0000000000000000-0x000000000003FFFF] "PRELOADER" (128 blocks) [PART] [0x0000000000040000-0x00000000000FFFFF] "DSP_BL" (384 blocks) [PART] [0x0000000000100000-0x00000000003FFFFF] "NVRAM" (1536 blocks) [PART] [0x0000000000400000-0x000000000041FFFF] "SECCNFG" (64 blocks) [PART] [0x0000000000420000-0x000000000047FFFF] "UBOOT" (192 blocks) [PART] [0x0000000000480000-0x000000000097FFFF] "BOOTIMG" (2560 blocks) [PART] [0x0000000000980000-0x0000000000E7FFFF] "RECOVERY" (2560 blocks) [PART] [0x0000000000E80000-0x0000000000F9FFFF] "SECSTATIC" (576 blocks) [PART] [0x0000000000FA0000-0x0000000000FFFFFF] "MISC" (192 blocks) [PART] [0x0000000001000000-0x00000000012FFFFF] "LOGO" (1536 blocks) [PART] [0x0000000001300000-0x000000000139FFFF] "EXPDB" (320 blocks) [PART] [0x00000000013A0000-0x000000000FE9FFFF] "ANDSYSIMG" (120320 blocks) [PART] [0x000000000FEA0000-0x0000000011C9FFFF] "CACHE" (15360 blocks) [PART] [0x0000000011CA0000-0x0000000011C9FFFF] "USER" (0 blocks)</code>

Для справки: процессор MT6515 является абсолютным двойником MT6575, отличие лишь в отсутствии 3G у 6515. MT6575 вышел в 2011 году, а на рынок попал к началу 2012. Операционная система AN1 везде указана как Android 4.1.1, даже в прошивке, но по факту там стоит Android 4.0.4 ICS, который вышел в 2012 же году.

Девайс поставляется в 5 разных расцветках: чёрная, белая, розовая, золотая с белым, золотая с чёрным. Как видите, мои шансы получить на обзор девайс нормального цвета составляли 20%. С другой стороны, шансы получить именно розовый такие же, поэтому я бесконечно благодарен за золотой. SWAG!



Figure 1. Летом рука буквально кипит под ними.
awolf:
ппц, нафиг ОНО тебе вообще
только не говори что собрался использовать как часы
им же убивать можно

xlab:
Это часы, как их ещё использовать
Не дрова же колоть
хотя погодите-ка...


     


Figure 2-3. Стандартное содержимое коробки: сабж, наушники, провод, блок питания, инструкция на ломанном английском.



     


Figure 4-5. Кнопка Vol+, кнопка back, пластиковая крышечка usb, динамик, видно дыру для камеры

Крышечка для usb состоит из твёрдого пластика, сразу же начала отходить и стала абсолютно бесполезной — пришлось удалить. Ремешок сделан из силикон-резины, затягивает хорошо (при желании, можно наложить жгут).



     


Figure 6-7. Кнопка home, кнопка power с другой стороны корпуса. Батарея снимается очень легко, под ней расположены слоты для карт microSD и SIM.

Разъём audio jack отсутствует, в комплекте шли наушники microUSB, они же выступают в качестве антенны для FM-радио. Лучшее применение — отрезать половину, а оставшийся кусок провода использовать как антенну, радио при этом будет работать через динамик.



     


Figure 8-9. Носимая на запястье музыкальная шкатулка условного дяди Васи.



     


Figure 10-11. Экран TFT еле тащит, но всё хорошо видно. Лучше всего, конечно, ночью.

Экран ведёт себя как любой подобный из семейства TFT — под разными углами инвертирует цвета, на солнце его видно плохо, есть зернистость, пятна засветов. Насчёт TTX не знаю. Подсветку отрегулировать нельзя.



Figure 12. SWAAAAG!

Цена и наличие

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

Софт и прошивка

Как я уже писал выше, на девайсе стоит Android 4.0.4. Проверить это просто: во-первых, можно посмотреть дамп build.prop (под таблицой характеристик) и найти индентификатор сборки
ALPS.ICS2.MP.V1.18
, во-вторых, можно несколько раз ткнуть по строке с 4.1.1 в настройках и словить пасхалку от 4.0.x:



     

Figure 13-14. About Phone.

Прошивка является практически AOSP, с небольшими модификациями в сторону уменьшения веса и удобства использования на экране 2". Стандартный андроид — ни больше, ни меньше. Далее будут только избранные скриншоты.



     

Figure 14-15. Экран блокировки и рабочий стол (установил часы MIUI).



     

     

Figure 16-18. 3 экрана встроенных приложений. Кроме SuperSU.

Из встроенных приложений можно отметить следующие:
  • Dialer 2 — альтернативная стандартной звонилка, корректно отображается на экране 2", скриншоты на Fig. 19-20;
  • File Manager — удобный проводничок, умеет видеть скрытые файлы и открывать файлы с карты в соответствующих приложениях;
  • CameraMX — стороннее многофункциональное приложение в качестве фотокамеры, скриншот на Fig. 23. Примеры фото вы не хотите видеть;
  • One Shot — при запуске открывает CameraMX и без вопросов делает снимок. Шпионская фича;
  • Sound Recorder — удобный в использовании диктофон, пишет в .amr. Шпионская фича;
  • Иконка с иероглифами — секундомер, скриншот на Fig. 24. Когда я достал девайс из коробочки, там было установлено больше приложений с аналогичными названиями и ещё более стрёмным содержимым, но после сброса всех данных они куда-то делись, а значит не являлись встроенными;



     

Figure 19-20. Внешний вид и удобство звонилки мне определённо нравятся.



     

Figure 21-22. Входящий вызов и исходящий.



     

Figure 23-24. CameraMX с платными фильтрами (in-app purchases). Какое-то подобие секундомера (с баннером).



     

Figure 25-26. Сообщения и контакты.



     

Figure 26-27. Почтовое приложение. Кстати, можно использоваться на полном серьёзе — проверять сообщения очень удобно.



     

Figure 28-29. Браузер. Не смотря на размеры экрана, тачскрин выполняет свою функцию на редкость хорошо.

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



Автор обзора не имеет отношения к видео.



     

Figure 30-31. Галерея и музыка. Музыкальное приложение корректно работает даже с .m4a из iTunes.

Встроенного Google Play нет, видимо ради экономии места и для избавления от google-зондов. Установка GApps вручную возможна, только следует учесть, что версия android — 4.0.4 и SDK — 15. На /system разделе места мало, следует ставить избирательно. Я не фанат сервисов google в своих часах, поэтому решил, что обойдусь форумом 4PDA и Яндекс.Store.



     

Figure 32-33. Yandex.Store, корректно работающий на 2". Статус устанавливаемых приложений (всё как обычно).



     

Figure 34-35. Чтение PDF (с производительностью нормально, но на 2" 320x240 — извращение). Карты.



     

Figure 35-36. Имеется поддержка A-GPS. Тест GPS прошёл гладко — спутники быстро нашлись, хотя я был внутри комнаты около окна.

Что касается проигрывания видео, то здесь MK6575 явно не тянет. Образец разрешения 720x304 шёл с заметными лагами в стандартном видеоплеере, VLC и MX Player (при активном HW Decoding). Поэтому, при необходимости посмотреть кино на часах, следует сконвертировать предварительно под разрешение экрана (320x240). Только следует учесть, что при активном использование ресурсов CPU/GPU батарея держит около 2-3х часов.



     

Figure 37-38. Потребление батареи в режиме ожидания (оставлены на ночь). Бенчмарк CPU/GPU в AnTuTu.

Немного фрикинга

Прежде чем творить непотребства с прошивкой и тушкой часофона, следует обзавестись дампами NAND, пока девайс ещё жив. Первым делом нужно рутануть систему, если вы ещё не сделали это — лично я рутанул как только достал из коробки. Framaroot отлично справляется со своей задачей.



     

Figure 39-40. SuperSU установлен, запрос доступа работает.

Теперь следует воспользоваться кухней Mtk Droid Tools, созданной нашим соотечественником.



Воспользуемся опцией Backup (1) для копирования блоков из всех разделов NAND. Опция (2) перепакует скачанные блоки в формат, воспринимаемый SP Flash Tool. Опция (3) автоматически генерирует и прошивает CWM recovery. Кнопкой входа в режим recovery является VolUp, достаточно просто удерживать её при включении устройства и до появления CWM.

Процесс загрузки всего семейства MTK, а mt6575 в частности, протекает так: preloader -> uboot -> kernel. Соответственно, preloader делает начальную инициализацию, читает разметку NAND и совершает прыжок по адресу uboot. В зависимости от причины включения (обычное, воткнут кабель, ...), uboot продолжает загрузку или нет. Preloader отвечает за отрисовку индикации заряда и логотипа, пока uboot решает, что ему делать.

Preloader также отвечает за прошивку NAND при помощи утилиты SP Flash Tool, которая используется, грубо говоря, китайцами на заводе. В более старых моделях Mediatek, прошивка производилась через UART, однако в нашем случае всё происходит быстро и через USB.
Интерфейс SP Flash Tool


Для прошивки частей NAND следует выключить устройство, нажать «Download» и подключить кабель. Во время подключения кабеля Preloader обнаружается программой и начинается процесс. Все части автоматически цепляются из scatter-файла, сгенерированном в MTK Droid Tools (MT6575_Android_scatter.txt). Однако, описание разметки NAND должно полностью совпадать с фактической разметкой на устройстве. В случае несовпадения программа безопасно уведомит об ошибке и напишет в лог, что именно не совпало.
Актуальная разметка NAND у Smart Watch AN1 (взято из лога UART)
<code class="bash">part PRELOADER size 0 40000 part DSP_BL size 40000 C0000 part __NODL_NVRAM size 100000 300000 part __NODL_SECCFG size 400000 20000 part UBOOT size 420000 60000 part BOOTIMG size 480000 500000 part RECOVERY size 980000 500000 part SEC_RO size E80000 120000 part __NODL_MISC size FA0000 60000 part LOGO size 1000000 300000 part __NODL_EXPDB size 1300000 A0000 part ANDROID size 13A0000 EB00000 part __NODL_CACHE size FEA0000 1E00000 part USRDATA size 11CA0000 D920000</code>

Таким образом, при наличии бэкапов и пока жив preloader — устройство является неубиваемым. В случае же запоротого preloader, в mt65xx имеется специальный meta-mode, пока не пришлось его проверять (к счастью), но этот режим вызывается путями либо а) зажимания VolUp при подключении usb кабеля, либо б) замыкания специального тест-пина на землю.

И тут я не выдержал.




+ частичное фото обратной стороны (там нет ничего интересного).

Чем дешевле сделан девайс, тем проще его разбирать. Корпус был скреплён 8ю абсолютно одинаковыми крестовыми винтами, после вывинчивания которых он распался сам собой (собою). Внутри, как оказалось, не используются традиционный термоклей или какая-нибудь жёлтая изолента. Вся переферия аккуратно разложена по полочкам и прижата корпусом сверху. На этой же стороне A располагаются все интересующие нас пины. Во-первых, судя по аналогичному примеру для mk6577, активирующий meta-mode пин находится справа в углу и маркирован как KCOLO. Во-вторых, имеются пины tx4, rx4, tx1, rx1, кто-то из них явно отвечает за UART. Методом тыка выяснилось, что tx1 и rx1 в правом нижнем углу.



     



Батарею можно подрезать ножиком и тогда проводочки от UART выведутся без помех батарее. Теперь к такому НЁХ на руке ещё больше вопросов у окружающих.

Строка загрузки ядра a.k.a. param line:
console=tty0 console=ttyMT0,921600n1 root=/dev/ram nand_manf_id=0xad nand_dev_id=0xbc uboot_ver=2010.06 uboot_build_ver=MAIN2.2.ubt.2274 lcm=1-nt35582_mcu_6575 fps=4732
, а значит minicom нужно настроить на baudrate 921600. Мой pl2303 с кварцем вроде справляется. После загрузки общаться с uart tx/rx можно через /dev/ttyMT0 и ничто не будет этому препятствовать.
Полученный вывод помог в понимании процессов mk65xx и в дальнейшем сильно пригодится при отладке кастомных сборок ядра/uboot, если будет не лень.

Дальнейший хакинг можно производить в режиме любителя (настройка и кастомизация прошивки, пока устройство морально не устареет) или в режиме гуру — попытаться склеить имеющиеся исходники в один паззл и сборать AOSP 4.1+ например. Кстати, исходники к SoC mk65xx есть в открытом доступе. Различные компании выкладывают исходные коды прошивок, соблюдая GPL, но заодно у них получается слить те или иные конфиденциальные части, принадлежащие Mediatek. Репозитории на GitHub точечно удаляются по DMCA, но на 4PDA лежат бессмертные архивы: http://4pda.ru/forum/index.php?showtopic=535287. Особым энтузиазмом в сторону mt65xx отличаются наши соотечественники, например luckasfb, почётный форумчанин 4PDA и любитель собирать кастомные прошивки для семейства mt65xx из утёкших исходников. Я в ближайшее время чуть глубже проверю ситуацию для MT6575, поскольку Android 4.1 позволит использовать новый Google Search с распознаванием русской речи и, в частности, бесподобного ассистента Дусю прямо на часах на руке.

Итоги

Бренд и производителя найти не удалось, в метках и отпечатках мелькает XINGHAN, ничего путного нагуглить не получилось. Как и модель — F9-2S. Устройство сделано в период октябрь 2013 — март 2014, в продажу поступило в апреле 2014. Общее качество отличается исключительной экономией на всём. Платформа и OS — конца 2011ого.
Всё это походит на какой-то эксперимент малого тиража и с большой, в следствие этого, ценой. Ещё и с попытками обмануть рядового покупателя. :<

С другой стороны, да простят меня любители гигагерцев ядра и мегабайт оперативки, эти характеристики не являются первоочерёдными. Система работает ощутимо быстро (лучше, чем на некоторых телефонах, которые мне доводилось щупать), браузер листает плавно, скорость Wi-Fi обычная (у меня в сети до 15MBit/s), батареи хватает на просмотр времени в течение всего дня. В любом случае, видео смотреть или книжки читать на наручных часах — это можно локоть левой руки повредить.

И, наконец, самая главная составляющая для меня — это хакабельность устройства. По шкале хакабельности Smart Watch AN1 заслуживают твёрдую 8/10, где 0 по шкале — это Geeksphone Peak (обзор я делал ровно год назад, кстати), а 10 по шкале — это SoC Allwinner A10 и всё что с ним связано.

Это прозвучит глупо, но я боюсь часов. Они тикают. И проникают в мозг.
—Деннис Лехэйн. Остров проклятых.

Источник: habrahabr.ru/post/225359/