суббота, 24 сентября 2016 г.

Oysters T74HMi LTE. Специальное предложение от Мегафон.

Давненько я с вами ничего не "обозревал" и сегодня мы постараемся исправить эту ситуацию, тем более что несколько дней назад, 19 сентября, на волне разнообразных акционных предложений других операторов, касающихся продвижения тарифных планов "для планшетов" Мегафон запустил специальное предложение для своих абонентов - 4G-планшет с подключенной опцией "Интернет Планшет S". Подробнее об условиях акции вы можете прочитать на официальном сайте оператора, я же лишь напомню, что условия акции различны в различных регионах, поэтому при переходе на сайт Мегафона необходимо не забыть выбрать свой регион из списка.

Итак, что же мы получаем ... по условиям акции (которая в интернет-магазине оператора носит название "Кино в дорогу" или "4G планшет спасает от скуки") мы получаем специальное предложение - планшетный ПК Oysters T74HMi 4G, а также опцию "Интернет Планшет S" на несколько месяцев + пакет сериалов "Амедиатека" в MegaFon.TV. Условия подключения тарифной опции в разных регионах разные, так, например в Москве и МО планшет вам обойдется в 3990 руб., а тарифная опция в 800 руб., в других регионах цена планшета такая же, но опция стоит чуть дороже, уже 1020 руб. Плюс, если вы берете новую SIM-карту вместе с планшетом, то за нее придется "доплатить" еще 200 руб. Итого, если мы покупаем данный комплект в регионе общая стоимость покупки обойдется нам в 5010 руб. + стоимость SIM-карты (если мы берем новую, а не подключаем опцию на уже существующий номер).

Много это или мало - давайте попробуем разобраться вместе. Начнем с самого планшета. Oysters T74HMi 4G представляет собой 7" планшет с IPS матрицей и разрешением экрана 1024x600 пикселей. Сердцем устройства является четырехядерный чип от Mediatek - MT8735W с тактовой частотой 1.3 GHz. Графическая подсистема здесь представлена Mali T720 MP1. Планшет поставляется с одной из последних операционных систем от Google - Android 6.0 Marshmallow и обладает 1 Gb оперативной памяти и 8 Gb встроенной память (естественно необходимо учитывать что примерно половину из этого пространства занимает сама ОС Android). Более подробно с техническими характеристиками новинки можно ознакомиться на коробке:


Как вы уже поняли - в плане технических характеристик ни Мегафон, ни Oysters на этот раз нас ничем не удивили, практически аналогичная модель (за исключением операционной системы) уже представлена у оператора и это Мегафон Login 4 LTE , которая сейчас фактически стоит на 1000 руб. дороже, чем новый Oysters T74HMi 4G. Однако, разница между ними, пусть и формальная, но есть - у T74HMi 4G 2 слота для SIM-карт, в то время как у Login 4 всего один, плюс у новинки шестой Android, а там - пятый. В остальном же можно сказать что девайсы примерно одинаковые. Для вашего удобства я свел характеристики обоих устройств в таблицу:



Планшет Oysters T74HMi 4G Планшет Мегафон Login 4 LTE
Операционная система:Google Android 6.0 (Marshmallow) Google Android 5.1 (Lollipop) 
Процессор:1.3 GHz, 4-ядерный, MediaTek MT8735W (Cortex-A53), графическая подсистема: Mali T720 MP1 1.3 GHz, 4-ядерный, MediaTek MT8735 (Cortex-A53), графическая подсистема: Mali T720 MP2
Память:1 Gb (RAM) + 8 Gb (ROM), поддержка карт памяти microSDHC до 32 Gb 1 Gb (RAM) + 8 Gb (ROM), поддержка карт памяти microSDHC до 32 Gb
Экран:IPS, 7", 1024x600 пикселей, 16 млн. цветов, мультитач 5 точек IPS, 7", 1024x600 пикселей, 16 млн. цветов, мультитач 5 точек
Камера:2 MPix - основная, 0.3 MPix - фронтальная 5 MPix (автофокус) - основная, 0.3 MPix - фронтальная
Количество SIM:  2 (mini-SIM), simlock 1 (mini-SIM), simlock
Стандарты и диапазоны:GSM 850/900/1800/1900 MHz, UMTS 900/2100 MHz, FDD 1/3/7/20 GSM 850/900/1800/1900 MHz, UMTS 900/2100 MHz, LTE B3/B7/B20
Навигация:Модуль GPS GPS; ГЛОНАСС; A-GPS
Беспроводные технологии:Bluetooth 4.0, Wi-Fi 802.11 a/b/g/n (2.4/5 ГГц)  Bluetooth 4.0, Wi-Fi 802.11 a/b/g/n (2.4/5 ГГц) 
Дополнительно:FM–радио, зарядка через разъем Micro-USB FM–радио, зарядка через разъем Micro-USB
Батарея:3200 мА·ч, Li-Ion, 3.7V 3500 мА·ч
Габаритные размеры:188x108x10,8 мм. 188.5x108.4x10 мм.
Вес: около 290 гр. 290 гр.
Доступные цвета: черный черный
Официальный сайт оператора:Планшет Oysters T74HMi LTE + опция "Интернет Планшет S"  Планшет MegaFon Login 4 LTE + тарифная опция "Интернет Планшет S"
Цена: 3990 руб. (по акции), 8000 руб. (без акции)  4990 руб. (по акции), 6490 руб. (без акции)

Как видно, разница между устройствами не такая уж и существенная, от наличия второго слота для SIM-карт для среднестатистического пользователя все равно по большому счету ничего не меняется, т.к. оба слота simlock, т.е. по-умолчанию работа устройства в сети подвижной связи гарантируется только с SIM-картой сети Мегафон, о чем нам и повествует надпись на коробке.

Забегая вперед скажу что устройство бюджетное, поэтому ждать от него многого не стоит, тем не менее для выполнения большинства повседневных задач его должно хватить, ну а более детально я постараюсь рассмотреть все эти моменты ниже. Начнем как обычно с упаковки, комплектации и внешнего вида. На вид коробка в которой поставляется в планшет достаточно дешевая, т.е. в таких коробках поставляются к примеру запчасти для OEM-производителей и т.п., но никак не продукт ориентированный на массового потребителя. Впрочем, не будем забывать о цене устройства и его сегменте (прежде всего помним, что это бюджетная модель, сравнивать черный цвет Oysters T74HMi 4G и черный цвет black onyx нового iPhone 7, пожалуй я тоже не буду, это излишне ;)

Комплектация минимальная:


Планшет, зарядное устройство, micro-USB шнур, руководство пользователя и SIM-карта, если же конечно вы ее брали.



По внешнем виду - тоже ничего необычного, "стандарт". Наэкранные кнопки управления (меню, домой, назад) расположены снизу экрана, сверху динамик и фронтальная камера, кнопки включения питания и качелька управления громкостью на правой кромке. Здесь правда нужно отметить что когда берешь этот планшет в руки, все в нем подчеркивает бюджетность (почему-то с другими бюджетками у меня такого ощущения не возникало) ... я попытался понять почему, т.к. вроде и такой же пластик, дешевенький, но не противный на ощупь, все такое же, но ощущение каких-то "недоделок" не покидало меня. И вот почему. Когда включаешь планшет кажется что изображение находится где-то "в глубине" под толстым слоем стекла. Для примера вы можете взять смартфон или планшет с хорошим разрешением экрана, накрыть его миллиметровым или двух- оргстеклом и попытаться посмотреть на него сверху. Представили? Вот как-то так и в Oysters T74HMi 4G. Изображение хорошее, яркое, для разрешения экрана в 1024x600 точек и IPS матрицы - вполне на уровне. Но если посмотреть на края экрана, особенно под углом - кажется что смотришь "под стекло" и это немного отталкивает (отчасти этот эффект еще был вызван наклеенной транспортной пленкой, когда ее снимаешь он становится значительно меньше). Второй момент которые виден на фото выше - это качество сборки. Когда я попытался снять крышку отсека для установки SIM-карт - удалось мне это сделать с трудом, зато вместе с моим усилием направленным на снятие крышки задняя стенка, которая вообщем-то предусмотрена несъемной (ну защелкнута она там на клипсы, но пользователь снимать ее не должен) вдруг тоже подалась в направлении приложения и силы и стала открываться. Т.е. крышка отсека для установки SIM-карт осталась неподвижной, а задняя стенка чуть не снялась полностью. На фото все это видно.


На этих двух фото я попытался показать вам "глубину стекла" и эффект "аквариума" при взгляде на края экрана, но как раз это получилось не очень, т.е. фото не передает этих ощущений (как я уже и говорил, и еще раз повторюсь, после отклеивания транспортной пленки этот эффект уменьшается). Зато на них видно что экран яркий и на нем все достаточно хорошо видно. К слову об экране. Запас по яркости у него приличный, а углы обзора достойные, так что если закрыть глаза на некоторую зернистость изображения (все-таки 1024x600) для просмотра фильмов или онлайн ТВ в дороге устройство вполне подойдет.

Вот несколько скриншотов интерфейса, на котором видны установленные приложения, доступное пользователю количество свободной памяти (все скриншоты сделаны сразу после включения планшета без установки каких-либо приложений), а также некоторые меню и информация об устройстве:




Здесь же видны и результаты тестирования Antutu Benchmark v6.2.1, итого если подвести краткий итог по скриншотам выше - действительно Android 6.0 с установленными обновлениями безопасности от 1 июня 2016 г., 17343 очка в Antutu, что вполне ожидаемо для MT8735 и ~3.93 Gb доступного пользователю объема памяти. Не забывая о том что Android M поддерживает такую функцию как Adoptable Storage, естественно я решил проверить как она работает в Oysters T74HMi 4G:


Все оказалось стандартно, единственное, после установки microSD планшет автоматически предлагает только выбрать ее в качестве основного устройства для хранения данных. Диалогового окна с вопросом о том каким образом мы хотим использовать SD, как внутреннюю память или как внешнюю SD не возникает. Для того чтобы отформатировать SD как внутреннюю память нужно зайти в ее настройки и выбрать этот пункт в контекстном меню вручную. Ну а далее все стандартно, после форматирования SD как внутренней памяти нам будет автоматически предложено перенести на нее имеющиеся приложения (здесь имейте ввиду что из-за специфики ОС Android полностью перенести приложения на SD нельзя, т.е. часть их все равно останется во внутренней памяти). Для того чтобы вы лучше воспринимали как распределяется память в планшете, т.е. какой процент от приложения хранится во внутренней памяти устройства, а какой на SD отформатированной как внутренняя память (adoptable storage) я решил провести небольшой эксперимент и установить два ресурсоемких приложения: WOT Blitz и Hearth Stone, вот что из этого получилось (скриншот распределения памяти до установки см. выше).


Здесь надо сказать что распаковка ресурсов WOT Blitz на microSD шла неприлично долго, я поймал себя на мысли что оно уже распаковывается более получаса в тот момент когда прогресс распаковки приблизился к 35%. После чего (на отметке в 35%) я запустил секундомер, чтобы хотя бы примерно оценить затраченное на установку игры время. Распаковка от 35% до 42% заняла аж 11 минут, а до 100% - 29 минут. Отчасти это связано с тем, что Sandisk'овская SD установленная в планшет по факту оказалась не такой уж и быстрой. Т.к. внутренней памяти устройства в любом случае не хватит на установку пары-тройки объемных игр, будьте готовы к тому что процесс установки очередного 3D-хита может занять у вас довольно продолжительное время.


Честно говоря я не стал ждать первого запуска Hearthstone, поэтому скриншот выше демонстрирует состояние памяти после скачивания 1.05 Gb контента из Google Play. На левом скриншоте мы видим распределение памяти после установки и запуска WOT, на правом у нас просто добавился скачанный Hearthstone.

Как видно - при установке нескольких "тяжеловесных" приложений место во внутренней памяти устройства расходуется незначительно, так что выгода от Android M и Adoptable Storage очевидна. Единственным минусом здесь (при форматировании SD как внутренней памяти) будет невозможность ее использования в ПК и других устройствах. Т.е. отформатировав SD как внутреннюю память вы не сможете вставить ее в картридер, чтобы, например скопировать фотки, так как в этом случае раздел на ней будет уже не FAT32, а зашифрованный ext4 раздел (кому интересно не так давно я писал как расшифровать содержимое такой SD).


Теперь настало время вставить SIM в планшет и протестировать скорость соединения (понятно что этот параметр субъективен и зависит от местности в которой проводится тестирование, качества покрытия оператора, плотности окружающей застройки и т.п.), но тем неменее без него обзор не был бы полноценным.


Первый скриншот - это SMS уведомления, которые пришли от Мегафон, сразу же после установки SIM-карты, а также результат проверки остатков пакета. Видимо "стоимость SIM-карты в 200 руб." объявленная сотрудниками салона включала в себя 50 руб. за SIM и 150 руб. на баланс номера. Второй - это тест скорости WiFi, третий - тест 4G. Как я уже и говорил, данная информация (11.97 Mbps / 8.09 Mbps) является достаточно субъективной и в другом месте (на другой БС) планшет возможно показал бы и лучшие результаты, но даже достигнутого результата вполне достаточно для просмотра онлайн-видео, закачки "тяжеловесного" контента и т.п. - LTE работает.

Также я установил из Google Play приложение GPS Test для оценки качества GPS приемника:


Не знаю какие погрешности будет выдавать девайс в процессе реального использования в качестве навигатора, но результатами "синтетического теста" я вполне удовлетворен. Планшет практически моментально нашел спутники и определил свое местоположение, при этом, как вы можете видеть на последнем скриншоте - In Use (в использовании) получилось целых 16 спутников.

Пример фото на основную камеру 1600 x 1200  Pixels (1.92 MPixels) (4:3):


Как вы понимаете с 2 мегапикселями на борту говорить о каком-либо качестве, автофокусе и прочих благах цивилизации не приходится. Если коротко - то камера есть и она работает, но выполняет скорее утилитарную функцию - сфотографировать что-нибудь по-быстрому и, например, с кем-нибудь поделиться. Хранить подобные снимки или пытаться снимать на эту камеру текст, как вы понимаете, никто не будет.

Если подвести краткое резюме, то Oysters T74HMi 4G это:
  • Все же достаточно неплохое и производительное бюджетное устройство, если рассматривать его в категории до 4000 руб. (т.е. если принимать в расчет именно акционную цену без учета затрат на услги связи). Если же рассматривать заявленную полную стоимость устройства - 8000 руб., то за эти деньги однозначно "нет".
  • Хорошо зарекомендовавший себя в бюджетных системах чип от Mediatek MT8735W (аналог MT6735 для планшетов) и 1 Gb RAM дает неплохую для данной категории устройств производительность в играх и 3D-приложениях, т.е. устройство вполне подойдет в качестве подарка ребенку (который "не жалко", если его случайно уронить и т.д. и т.п.) ... 
  • Поддержка функции Adoptable Storage в Android 6.0 Marshmallow в большинстве случаев поможет решить проблемы с нехваткой свободной собственной памяти устройства, при условии если вы отформатируете SD как внутреннюю память (сделать это лучше сразу, до установки всех приложений).
  • Наличие 4G и двух слотов для SIM-карт можно считать дополнительным плюсом, однако, simlock, т.е. изначальная настройка устройства на использование только с SIM-картами Мегафон немного портит картину (кстати, в устройстве предусмотрена штатная возможность разблокировки, при помощи ввода кода разблокировки сети).
  • IPS матрица имеет достаточный запас по яркости и неплохие углы обзора (что несомненно плюс), однако, малое разрешение экрана и бюджетный модуль дисплея сказываются на качестве изображения, требовательный пользователь наверняка заметит некоторую зернистость. В целом же, если учитывать стоимость девайса, то экран в T74HMi скорее можно похвалить чем поругать.
  • Звук ... если вы до этого подумали что я перечисляю только относительные плюсы - то теперь пойдут минусы. Громкость встроенного динамика достаточна чтобы нормально не прислушиваясь (с вывернутым регулятором громкости на максимум) смотреть ролики на YouTube или онлайн ТВ в закрытом помещении (в квартире, на даче и т.п.) ... Где-нибудь на улице или в дороге, если вы не используете наушники, окружающий шум сможет заглушить динамик планшета и вы рискуете ничего не услышать. Разговорный динамик (т.е. тот который предназначен для звонков / голосовой связи) в моем экземпляре оказался отвратительным. Абонента на другом конце линии вообще не было слышно, даже помещении с идеальной тишиной. Т.е. я разбирал что мне говорят через слово, а то и через два. Использовать разговорный динамик по прямому назначению у меня, увы, не получилось. Поэтому и вам рекомендую на это не рассчитывать, либо же проверить качество голосовой связи непосредственно в салоне, перед покупкой устройства. При разговоре через гарнитуру - таких проблем нет. 
Рекомендовать же Oysters T74HMi к покупке или нет - однозначно ответить сложно. Аудитория изначально заинтересованная в покупке бюджетного устройства вполне может найти его привлекательным (если сравнивать T74HMi с другими моделями представленными в Мегафоне, то он однозначно лучше чем "планшет для водителя" T72HM, и примерно такой же по характеристикам, как более дорогой Login 4), те же пользователи у которых бюджет / цели / задачи позволяют приобрести более дорогую модель - не обратят на него внимания в принципе. В любом случае предложение от Мегафона в качестве "готового решения" - планшет + интернет для него найдет своих потребителей.

p.s. Если у вас есть вопросы, замечания, предложения - буду рад видеть их в комментариях. Также я постараюсь в ближайшее время написать еще один пост посвященный Oysters T74HMi 4G в который войдут какие-то моменты не вошедшие в этот обзор (возможно на основе ваших вопросов и комментариев), а также "по традиции" постараемся осветить вопросы прошивки кастомного recovery (TWRP), получения root, секретных кодов dialer'а и т.п. Ну а на этом пока все ... stay tuned ...

Обновлено 25.09.2016 09:04 (MSK)

Небольшая статистика по HearthStone ... после закачки игры процесс ее первичной инициализации, т.е. распаковка ресурсов, занимает примерно 8 минут. После появления главного меню от нажатия кнопки запуска игры до, собственно, начала игрового процесса проходит примерно секунд 40. Т.е. в принципе играть на нем в HearthStone вполне можно. На всякий случай скриншот распределения памяти при установленных WOT Blitz и Hearthstone:

Как видно, игра распаковала часть своих ресурсов на внутренний накопитель устройства. Т.е. до установки, просто после скачивания, у нас было занято 0.89 Gb на внутреннем накопителе и 4.64 Gb на SD-карте, отформатированной как Adoptable Storage. После установки, объем занятого места на внутреннем накопителе увеличился до 1.92 Gb, а на SD до 6.17 Gb. Но это уже специфика самого приложения HearthStone, а не устройства. Т.к. его разработчики посчитали что для нормальной работы приложения часть ресурсов должна в любом случае располагаться во внутренней памяти устройства, которая по скорости чтения / записи данных быстрее большинства microSD флешек.

Тем не менее, даже при занятых 1.92 Gb на внутреннем накопителе в планшет возможно установить еще не одну игру, при этом объем используемой каждым приложением памяти на внутреннем накопителе будет минимальным, т.к. основной контент будет размещаться на microSD.

Краткий FAQ по устройству (будет обновляться по мере возникновения вопросов)

Q. Есть ли OTG в Oysters T74HMi 4G?
A. Да, OTG есть, подключенная USB мышь отлично заработала:


Q. Возможна ли установка кастомного recovery (TWRP) на этот девайс?
A. А почему нет? TWRP для него вполне можно собрать на базе исходников OmniROM, что я успешно и сделал:


Для интересующихся вот дерево устройства oysters_t74hmi_4g_device_tree для сборки TWRP. Бинарник и инструкции по прошивке пока не выкладываю, желающие могут собрать TWRP самостоятельно на базе выложенного дерева самостоятельно.

Q. А что по-поводу root? 
A. По-поводу root все стандартно, если у вас есть установленный TWRP, то root-права можно получить прошивкой последнего zip'а с SuperSU с chainfire.eu , несколько скриншотов в качестве proof'а:


Q. А не могли бы вы выложить образ вашего TWRP и инструкцию по его прошивке?
A. Пока я не принял такого решения, если когда-нибудь я решу выложить свои наработки, то вы увидите их в этом или отдельном посте посвященном конкретно TWRP и root для Oysters T74HMi 4G. Как быстро это произойдет (и произойдет ли вообще) зависит от интереса пользователей к проекту и проявленной ими активности. Возможно кто-то соберет вам TWRP быстрее, тем более что свой вклад в community я уже сделал, выложив дерево для этого девайса на GitHub.

Q. А есть ли какие-то секретные коды Dialer'а для этого устройства? Инженерное меню или еще что-нибудь?
A. Есть конечно. Ну во-первых это стандартное инженерное меню Mediatek, которое вызывается при наборе комбинации *#*#3646633#*#* (если вам лень запоминать эту комбинацию, то можно установить удобное приложение-меню для быстрого доступа из Google Play - Debug Menu Access) или *#*#29305652#*#*. Во-вторых это меню различных hardware тестов от производителя, которое можно вызвать набрав *#*#35465#*#*, выглядит оно так, как показано на скриншоте справа. Т.е. еще перед покупкой вы можете проверить исправность отдельных компонентов устройства. Отдельное внимание я бы уделил пункту Audio Check в котором можно проверить громкость разговорного динамика (receiver) и громкость внешнего динамика - speaker (забавно, но для проверки громкости в этом тесте используется фрагмент композиции Максим "Знаешь ли ты?", видимо в Oysters её любят ;) Также можно проверить дисплей, тач, вспышку / фонарик и т.п. Ну и в качестве совета - если с тестами все более-менее понятно, то вот различными опциями в инженерном меню я бы злоупотреблять не рекомендовал (оно ведь не зря называется инженерным), т.к. изменение каких-либо параметров смысл которых вы представляете себе не вполне отчетливо может привести к некорректной / нестабильной работе устройства в целом.

Q. А сколько держит батарея?
A. Вот здесь приведен пример теста при интенсивной нагрузке - Oysters T74HMi LTE и Мегафон TV. Тест батареи. В режиме просмотра онлайн ТВ через 4G/LTE приблизительно получается 2 часа и 10 минут до полного разряда.

четверг, 22 сентября 2016 г.

Teeworlds. Собираем под Windows из исходников.

Дело было вечером, делать было нечего ... ;) Началась эта история с того, что один из участников нашего сообщества @kolobus рассказал мне об игре Teeworlds. Для тех кто не в курсе - это такая "ретро" мультиплеерная стрелялка. По первым скриншотам она мне почему-то напомнила червяков, но, как оказалось, геймплей намного динамичнее и фактически это просто неплохой action. Нормальный человек бы посвятил первое знакомство с игрой непосредственно процессу, но меня почему-то зацепило другое. В разделе Downloads на официальном сайте игры я увидел версии для Win32 и Linux 64-bit'а (речь идет о последней на данной момент версии 0.6.3), однако, релиза 0.6.3 для Win64 почему-то не было. Хотя на сайте говорится что как раз в версии сервера 0.6.3 пофикшена уязвимость сервера. Вообщем не долго думая я решил разобраться, а как собрать всё это из исходников, чтобы заполучить бинарники клиента и сервера под Windows 64. В принципе получилось довольно быстро.

Первое что необходимо сделать - это прочитать мануал по сборке, благо разработчики все достаточно подробно описали - Compiling Teeworlds. Ставим Python 2.7, git (в любом случае он будет полезен) и MSVC 2013. Как говорится в мануале плюсом ко всему нам потребуется bam - https://github.com/matricks/bam , однако на Git'е последняя версия -  0.5, а сборочный скрипт bam.lua от игры требует версию 0.4. Ок ... качаем исходники bam-0.4.0 и слегка правим скрипты make_win32_msvc.bat и make_win64_msvc.bat добавляя туда поддержку современных компиляторов. Например для x64:

@echo off

@REM Check for Visual Studio
call set "VSPATH="
if defined VS140COMNTOOLS ( if not defined VSPATH (
 call set "VSPATH=%%VS140COMNTOOLS%%"
) )
if defined VS120COMNTOOLS ( if not defined VSPATH (
 call set "VSPATH=%%VS120COMNTOOLS%%"
) )
if defined VS110COMNTOOLS ( if not defined VSPATH (
 call set "VSPATH=%%VS110COMNTOOLS%%"
) )
if defined VS100COMNTOOLS ( if not defined VSPATH (
 call set "VSPATH=%%VS100COMNTOOLS%%"
) )
if defined VS90COMNTOOLS ( if not defined VSPATH (
 call set "VSPATH=%%VS90COMNTOOLS%%"
) )
if defined VS80COMNTOOLS ( if not defined VSPATH (
 call set "VSPATH=%%VS80COMNTOOLS%%"
) )

@REM check if we already have the tools in the environment
if exist "%VCINSTALLDIR%" (
 goto compile
)

if not defined VSPATH (
 echo You need Microsoft Visual Studio 8, 9, 10, 11, 12, 13 or 15 installed
 pause
 exit
)

@REM set up the environment
if exist "%VSPATH%..\..\vc\vcvarsall.bat" (
 call "%%VSPATH%%..\..\vc\vcvarsall.bat" amd64
 goto compile
)

echo Unable to set up the environment
pause
exit

:compile

Для x86 в принципе все то же самое, только вместо vcvarsall.bat нужно использовать vsvars32.bat. Скрипты для сборки bam'а можно посмотреть в Git'е для 0.5.0. В итоге у нас собирается bam.exe ... отлично ... Далее качаем исходники самой Teeworlds - teeworlds-0.6.3-src.zip и распаковываем в отдельную папку. Создаем build.cmd следующего вида (шапка для поддержки компиляторов выше), а затем следующие строки:
cd teeworlds-0.6.3-src
..\bam-0.4.0\bam -c all
..\bam-0.4.0\bam client_release
..\bam-0.4.0\bam server_release
После чего запускаем компиляцию и получаем несколько ошибок в результате, которые касаются функции round. Исправить их довольно просто:

  • Открываем в исходниках Teeworlds заголовочный файл src/base/math.h и ищем там определение функции round - inline int round(float f), заменяем round на roundmy, так чтобы получилось так - inline int roundmy(float f).
  • Затем открываем \src\game\editor\layer_tiles.cpp и ищем в нем метод void CLayerTiles::BrushRotate(float Amount), в нем мы видим вызов  int Rotation = (round(360.0f*Amount/(pi*2))/90)%4; - заменяем его на вызов roundmy, т.е. в итоге у нас получается строка: int Rotation = (roundmy(360.0f*Amount/(pi*2))/90)%4;

Всё, на этом предварительная подготовка исходников закончена. Собираем и получаем бинарники (если вы проводите сборку под Win64, то bam по всей видимости нужно собирать 64-битным, если под Win32, то 32-х).

Ну а кого просто интересует конечный результат, т.е. готовые бинарники клиента и сервера Teeworlds 0.6.3 для Windows 64-bit, то вот они - teeworlds-0.6.3-win64.7z .

Обновлено 22.09.2016 02:51 (MSK)

Да, ну и обнаружив официальный репозиторий teeworlds на GitHub'е - https://github.com/teeworlds/teeworlds я не мог пройти мимо чтобы не попробовать собрать последнюю 0.7 trunk :


Все получилось, единственное, что при сборке использовался уже свежий bam 0.5.0 и более свежая версия SDL 2.0.4 (stable). Результат, а именно бинарники Teeworlds 0.7 trunk можно забрать тут:


В сборку включены стандартные карты, файлы языковых переводов и т.п., а также клиент и сервер. Единственное о чем следует помнить - публичных серверов на версии 0.7 пока не так много и играть вы сможете только на тех серверах у кого он собран c той же GAME_NETVERSION_HASH, у этой сборки он равен "8743be4f24dc7e35".

среда, 21 сентября 2016 г.

Яндекс.Браузер. Классический интерфейс.

Сегодня речь пойдет о небольшом "лайфхаке" в Яндекс.Браузере или о том как включить классический интерфейс. Вы скажете, что может быть проще? Ведь даже на официальном сайте подробно и в картинках рассказано как это сделать. Но иногда бывают ситуации из серии "не тут-то было". Сегодня я установил на свой нетбук с Ubuntu свежий Яндекс.Браузер - 16.9.1.466 beta (64 bit), сделал кое-какие настройки, перезапустил его и хотел было зайти в Настройки -> Настройки внешнего вида и Выключить новый интерфейс. Однако, к моему удивлению, нужная кнопка на привычном месте отсутствовала:


Что меня конечно же огорчило. Не то чтобы я пользуюсь этим браузером постоянно - но полезные и удобные "фишки" в нем безусловно есть, например, режим "Турбо" от того же Яндекса, который помогает экономить трафик на мобильном интернете и вообщем-то скрывает от провайдера посещаемые вами сайты, встроенная поддержка DNSCrypt и еще пара полезных мелочей, которые иногда побуждают им воспользоваться (т.к. все это есть сразу и работает из коробки). Ну вот, подумал я ... опять ретроградов никто не любит, началось все со ВКонтакте, где пользователям "запретили" использовать старый интерфейс, принудительно переключив все аккаунты на новый. Теперь вот Яндекс.Браузер ... нет, я конечно люблю новшества и Material Design ... но только там где мне их не навязывают.

Первая моя мысль ... а может быть еще не все потеряно, может быть есть возможность как-то вернуться к классическому интерфейсу? С этими мыслями я подумал, что если такая возможность есть, то она должна быть где-нибудь в скрытых настройках, например, в browser://flags , ну или по-крайней мере в одном из параметров профиля. Первая версия была неудачной, а вот со второй ... я решил попробовать удалить профиль Яндекс.Браузера, т.е. полностью очистил папку ~/config/yandex-browser-beta (в Linux профиль Яндекс.Браузера для текущего пользователя хранится именно там) и запустил браузер снова:


Чудо-чудесное ... кнопка вернулась на место ;) Но ... ммм ... эээ ... а, если например у нас уже был профиль и нам не хочется его удалять? Т.е. как вы поняли выбрать новый или классический интерфейс вы хотите использовать можно только при первом запуске браузера, в дальнейшем почему-то кнопка магическим образом исчезает и в процессе работы переключаться между этими интерфейсами нельзя (вот такое странное ограничение). А если я хочу сегодня использовать новый интерфейс, а завтра классический? ;) На самом деле так тоже можно. Заходим в ~/config/yandex-browser-beta и открываем файл Local State в текстовом редакторе.

Для удобства можно конечно взять какой-нибудь удобный json editor, хоть онлайн, например вот этот - http://www.jsoneditoronline.org/ ... но мы с вами обойдемся и nano или gedit ... вообщем любым "блокнотом". Находим в нем строчку:

"custo_ui_first_time_launch":false и сразу после нее через запятую дописываем - "custo_use_classic_interface":true . Если посмотреть через JSON редактор, то это выглядит следующим образом:


Всё, наслаждаемся привычным классическим интерфейсом:


Может быть кому-то окажется полезным, кому-то нет ... но если кто-то столкнется с ситуацией что кнопка "Выключить новый интерфейс" в Яндекс.Браузере по каким-то причинам пропала, можно пойти двумя путями: удалить профиль и при первом (!) запуске выключить новый интерфейс, либо вписать в конфиг параметр custo_use_classic_interface со значением true. На Windows-based ОС скорее всего поведение браузера аналогично, честно говоря - я не проверял.

воскресенье, 18 сентября 2016 г.

Alcatel Idol 3 (4.7") 6039Y. TWRP Recovery. Прошивка.

В этом посте я расскажу вам о новой версии TWRP Recovery 3.0.2-0 для нашего аппарата, собранной мной недавно из исходников (основное отличие от предыдущих версий - полная поддержка Adopted Storage, т.е. карты памяти отформатированной как внутренняя память в Android 6.0.1, а также корректный backup и восстановление EFS), а также об универсальном способе прошивки этого recovery на любой Idol 3 4.7 6039Y. Под "любыми" здесь имеются ввиду даже те аппараты у которых версия прошивки старше чем 010 04 и на которых метод прошивки recovery через QFIL по каким-то причинам не срабатывает. Но для начала давайте попробуем собрать всю накопившуюся на данный момент информацию по Idol 3 воедино, т.к. постов было достаточно много и какие-то из них уже успели устареть, а какие-то актуальны и по сей день.

Подборка информации по Alcatel Idol 3 6039

  • Alcatel Idol 3 (OT-6039). Подборка материалов. - пожалуй самый первый пост от 25.05.2015, когда информация о нем только появилась в интернете. В принципе его можно было бы смело переместить "в архив", если бы не подборка полезных ссылок в нем с обзорами, видеообзорами, тестами и т.п. Так что если вы только присматриваетесь к этому аппарату, то бегло пробежаться по нему будет не лишним.
  • Alcatel Idol 3 (4.7") 6039Y. Взгляд со стороны. - первый взгяд на аппарат от меня. Пост написан когда аппарат уже появился у меня на руках и помимо общей обзорной информации включает в себя mini FAQ, некоторые вопросы из которого актуальны и сейчас. Вопрос "Как установить TWRP?" из этого FAQ уже потерял актуальность.
  • Alcatel Idol 3. Прошивка TWRP на версии ПО 010 04 и выше. - в посте рассказывается об особенностях прошивки 010 04, поясняется почему на ней невозможно прошить TWRP через fastboot, а также приводится альтернативный способ прошивки кастомного recovery через QFIL. В принципе этот метод актуален и до сих пор, но на некоторых (новых) аппаратах может не сработать.
  • Alcatel Idol 3 (4.7") 6039Y. Обновление 01004. - еще один пост, который рассказывает об особенностях релиза прошивки 010 04.
  • Alcatel Idol 3. Как создать backup NVRAM при помощи QPST? - создаем backup собственного NVRAM (nvram + efs) с помощью QPST. Актуально и по сей день, желающие могут сделать его на всякий случай.
  • Alcatel Idol 3 (4.7") 6039Y. Переразметка внутренней памяти. - можно прочитать для общего ознакомления. В настоящий момент потерял актуальность, т.к. существует zip для прошивки в TWRP для автоматической переразметки, а с выходом Android 6.0 и обновлением через MU (Mobile Upgrade) память переразмечается автоматически.
  • Idol 3. Firmware Checker. - утилита, которая позволяет определить физический объем памяти в вашем аппарате, т.е. точно определить 8-ми или 16-ти гигабайтная версия у вас.
  • Alcatel Idol 3 (4.7") 6039Y. Android 6.0.1 Marshmallow. Русская версия. - неофициальный релиз Android M сделанный на основе американской версии прошивки, с выходом официального русского релиза потерял актуальность.
  • Alcatel Idol 3 (4.7") 6039Y. Android 6.0.1 Marshmallow. Официальный релиз. - официальный релиз Android 6.0.1 для России. В посте также присутствует официальный zip-архив с обновлением, а также рассказано о способах его установки через штатный recovery и встроенное приложение обновления. Данная информация актуальна и более того, нигде до этого не публиковалась. Так что рекомендуется к прочтению.
  • Alcatel Idol 3 (4.7") 6039Y. Как получить root на Android 6.0.1? - пост в котором приводится решение проблемы с bootloop'ом при попытке прошить SuperSU и получить root на Android M. Так что если у вас 6.0.1 и вы хотите получить root, также обязательно ознакомьтесь с ним.
Ну вот, если в плане истории - как бы и все ;) Кому лень все это читать - вкратце расскажу как развивался аппарат и работа с ним:

Изначально аппарат появился в продаже с прошивкой 010 01, с ней не было никаких проблем в плане кастомизации, работали все команды fastboot'а, поэтому через какое-то время разработчиками были собраны кастомное recovery (TWRP), получен root и началась работа над кастомными прошивками. Все было хорошо вплоть до версии 010 04, в которой производитель просто вырезал команды fastboot'а из aboot (emmc_appsboot) (точно также как это было сделано в самой первой прошивке для Idol 4), в результате чего использовать fastboot для загрузки кастомного recovery стало нельзя, т.к. в aboot'е просто отсутствовала команда прошивки разделов. После чего petrov.0 на xda-developers собрал набор образов системных разделов (sbl1, rpm, tz, hyp, aboot) от предыдущей версии прошивки для возвращения команд fastboot в аппарат. Прошивалось все это через QFIL. Ну а я тем временем решил пойти по простому пути, просто сделав набор для прошивки TWRP через QFIL (все-таки трогать данные разделы не рекомендуется). Как оказалось не зря, т.к. нашлись аппараты с другим OEM PK Hash на которых ни способ восстановления fastboot, на способ прошивки recovery через QFIL не работали (универсальный способ который будет описан в этом посте - должен работать на любых аппаратах). Параллельно со всем этим появилась информация о том, что часть аппаратов была выпущена с чипом на 8 Gb (как и указано в спецификациях), а часть пошла в продажу с 16 Gb'ным чипом. Часть памяти в этом разделе была просто "скрыта" в неиспользуемом разделе userdatabak. Так и началась тема с "переразметкой". Изначально все это делалось вручную с помощью gdisk ... затем появился zip для автоматической переразметки, использующий консольный gdisk - sgdisk. Но оказалось что у части пользователей которые попытались воспользоваться скриптом для переразметки на 8 Gb'ных аппаратах "слетал" раздел userdata (что неудивительно) и восстановить аппарат после такой "переразметки" можно было только с помощью MU. Затем появилась вторая версия скрипта, в которой уже появилась проверка фактического размера eMMC Flash, то прошивка его на 8 Gb аппаратах не приводила к необходимости полной перепрошивки, скрипт автоматически определял фактический объем установленной памяти. Параллельно с этим я разработал свой Idol 3 Firmware Checker, позволяющий пользователям проверить сколько же памяти в их аппарате на самом деле простым запуском приложения ... Так и прошел год ... ) Ну да ладно, наверное все это читать утомительно и история мало кому интересна. Поэтому перейдем к главному.

TWRP Recovery 3.0.2-0-decker-1 для Idol 3 6039

Скачать последнюю версию всегда можно здесь: recovery-3.0.2-0-decker.img

Краткая история изменений:

  • Поддержка F2FS.
  • Корректное время в TWRP.
  • 24-х часовой формат времени и часовой пояс UTC+3 по-умолчанию.
  • Отсутствует SuperSU, чтобы при выходе из Recovery кто-нибудь случайно не сделал свайп для установки (особенно актуально для пользователей Android 6.0).
  • Отсутствует таймаут выключения экрана при нахождении в TWRP.
  • Возможность Backup'а EFS (разделы modemst1 и modemst2).
  • Поддержка ADB и MTP в TWRP.
  • Ядро от Android 6.0.1 (естественно, что TWRP будет работать вне зависимости от того какая ОС у вас установлена).
  • Полная поддержка Adopted Storage (т.е. SD карта отформатированная как внутренняя память будет видеться в TWRP и на ПК через MTP) [17.09.2016]
  • Исправлена ошибка "Failed to unmount '/system' (Device or resource busy)" после создания backup'а (ошибка проявлялась на предыдущих сборках) [17.09.2016]
  • Раздел Firmware (радиомодуль) добавлен к списку разделов, доступных для backup'а. [17.09.2016]
  • Очередной fix. TWRP теперь полностью построен на базе ветки android-7.0 и включает в себя все последние исправления, включая commit, исправляющий backup подразделов, баг, из-за которого восстановление EFS приводило к невозможности старта устройства. [18.09.2016]

Варианты установки

  • Через fastboot на версиях прошивки до 010 04.
  • Через QFIL на тех аппаратах где это возможно.
  • Через Sahara & Firehose Test (Alcatel Flasher) на любых аппаратах (несколько инструкций на английском и французском)

Как прошить TWRP через Sahara & Firehose Test (Alcatel Flasher)?

1. Переходим в на страницу приложения - Sahara & Firehose Test и внимательно читаем всю информацию, т.е. что это такое, для чего это нужно и т.п., чтобы впоследствии у вас не возникало лишних вопросов. После чего скачиваем архив с приложением и распаковываем его в отдельную папку.

2. Устанавливаем на ПК драйвера Alcatel, если они у вас еще не установлены. Самый простой способ сделать это - это установить утилиту Mobile Upgrade Q отсюда. Она автоматически установит все необходимые драйвера.

3. Переводим свой телефон в Download Mode. Для перевода телефона в режим Download Mode подключаем выключенный телефон к ПК и зажимаем на нем: Громкость Вверх + Громкость Вниз + Кнопка включения питания. Обязательно зажимать их при подключенном к ПК USB кабеле (!). После появления картинки как на скриншоте, нажмите Громкость Вверх для перехода в Download Mode. Если вы подключили к ПК включенный телефон, последовательность действий та же, просто держите нажатые кнопки до тех пор, пока телефон не перезагрузится. Вплоть до появления этой картинки. Далее по инструкции выше.

4. Скачиваем образ TWRP отсюда - recovery-3.0.2-0-decker.img .
5. Запускаем Sahara & Firehose Test:


6. Выбираем вашу модель телефона (1), в нашем случае - это Alcatel Idol 3 4.7" (OT-6039).
7. Нажимаем в программе кнопку Detect (2), программа должна найти список всех COM-портов в системе. Выбираем COM-порт (3) с названием Qualcomm HS-USB QDLoader 9008 (у вас он может называться чуть по-другому, в зависимости от версии драйвера установленного в системе, важно выбрать тот COM-порт, который содержит в названии 9008).
8. Нажимаем кнопку NPRG (4) для загрузки в телефон Firehose Programmer'а. Если все прошло успешно, то в окне лога (5) вы увидите что-то вроде:
18.09.2016 2:43:52: Start Download NPRG ....
18.09.2016 2:43:52: offset[0],len[52]
...
18.09.2016 2:43:52: offset[102400],len[4096]
18.09.2016 2:43:52: offset[106496],len[3044]
18.09.2016 2:43:52: SAHARA_END_IMAGE_TX_ID received

0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  *................*

18.09.2016 2:43:53: Send done command

0000: 06 00 00 00 0C 00 00 00 00 00 00 00              *............    *
9. Нажимаем кнопку Get GPT (6). В результате мы должны увидеть таблицу разделов (7). Если таблица GPT заполнилась, дальше уже можно выполнять другие действия с телефоном.
10. Теперь нам необходимо проверить корректно ли у нас работает приложение, для этого создадим backup собственного раздела recovery (сделать это обязательно - т.к. если по каким-то причинам у вас не создастся backup, т.е. некорректно пройдет чтение данных из аппарата, то использовать запись настоятельно не рекомендуется, верно и обратное, если backup у вас успешно считался, то можно смело записывать новый раздел в аппарат). В таблице разделов (7) ставим галочку напротив раздела recovery и выбираем имя файла (по-умолчанию recovery.img) куда будет сохранен backup. Запускаем создание Backup'а нажав на кнопку (9) Read. Если backup создан успешно в файле recovery.img будет сохранен образ вашего текущего раздела recovery (размер файла для Idol 3 должен быть около 32 Mb).
11. Если предыдущий шаг завершился успешно, то можно прошивать TWRP. Для этого указываем в (10) имя файла с образом TWRP recovery, т.е. recovery-3.0.2-0-decker.img и нажимаем кнопку (11) Write.
12. На экране появится запрос подтверждения:


Ответ Yes - Да, я хочу отказаться от выполнения любых операций записи, Ответ No - означает, продолжить запись. Нажимаем No и дожидаемся окончания процесса прошивки, успешное его завершение выглядит так:


Обратите внимание, после окончания процесса прошивки телефон так и останется в Download Mode, автоматической перезагрузки не происходит (а зачем? мало ли вы захотите совершить еще какие-нибудь операции с телефоном, например считать информацию (8) с помощью кнопки Info).

Поэтому после завершения прошивки TWRP вам необходимо перезагрузить его вручную. Нажимаем и удерживаем кнопку Громкость Вверх и зажимаем (т.е. нажимаем и удерживаем) кнопку Включения Питания. Телефон перезагрузится, после появления заставки Alcatel кнопку включения питания можно отпустить, но кнопку Громкость+ мы продолжаем удерживать вплоть до появления заставки TWRP. Когда она появится можно запустить TWRP. Поздравляю, вы успешно прошили и загрузились в TWRP.

p.s. Любые вопросы, предложения, пожелания, а также мысли по теме вы можете оставлять в комментариях, также стараемся не забывать про поддержку проекта, без которой было бы невозможным написание этого поста и создание утилиты для прошивки.

Внимание! Материалы приведенные в данной статье размещены в ознакомительных целях. Все действия описанные в данной статье вы осуществляете на свой страх и риск! Автор(ы) статьи не несут ответственности за вышедшее из строя оборудование, в результате ошибочных действий или неверного понимания вами смысла изложенного в ней материала, а также в силу любых прямых и косвенных причин, которые потенциально могут привести к неработоспособности вашего устройства или любым другим проблемам с ним. Если вы не уверены в своих силах, сомневаетесь и т.п. - не выполняйте ничего из вышеописанного. Используя материалы из этой статьи вы соглашаетесь с тем, что ответственность за ваши действия несете вы и только вы.