воскресенье, 30 ноября 2014 г.

Мегафон Login 3. Обновление прошивки до 5.2.5.0.

Вы будете смеяться ... или плакать ) Но сегодня мы снова возвращаемся к нашей злободневной теме, а именно, планшету Мегафон Login 3 (MFLogin3T). Не так давно на FOTA стала доступна новая версия прошивки 5.2.5.0 и множество людей испытали проблемы с обновлением до последней версии по воздуху. Т.е. после скачивания 49 Mb обновления с FOTA, при попытке его установить большинство пользователей получали Error 7, с описанием: /dev/block/platform/msm_sdcc.1/by-name/sbl1 has unexpected contents.

Давайте я попытаюсь объяснить вам почему так происходит. Все обновления (по крайней мере те, которые выпускались до настоящего момента, включая 5.2.5.0) на FOTA являются инкрементальными. Т.е. они последовательно, в виде патчей ставятся на предыдущую версию прошивки. И если хотя бы один файл, который обновляется, в вашем планшете модифицированный, т.е. его SHA1 хеш не соответствует тому, который должен быть - то обновление завершится с ошибкой. Порядок обновления со стоковой прошивки 5.0.8.0 такой:

5.0.8.0 -> 5.1.6.0 -> 5.1.8.0 -> 5.2.5.0

Т.е. предполагается что вы купили планшет с прошивкой 5.0.8.0, при следующем обновлении у вас установится 5.1.6.0, при следующем - 5.1.8.0 и наконец 5.2.5.0. Сразу оговорюсь что в этом посте, я рассказываю все для пользователей - которые никаким образом не модифицировали свои планшеты, т.е. не изменяли системные файлы, не прошивали модифицированные recovery и т.п. Либо же для пользователей у которых есть полный backup оригинальной прошивки планшета, сделанный с помощью HDD Raw Copy. Итак, предположим что у нас оригинальная 5.0.8.0 прошивка. Обновляетмся последовательно через FOTA (т.е. через штатное обновление), 5.1.6.0 - успещно, 5.1.8.0 - успешно, 5.2.5.0 - неуспешно :(( С Error 7 и описанием указанным выше.

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

Внимание! Перед выполнением этих действий убедитесь в том что у вас установлена 5.1.8.0 и обновление на 5.2.5.0 по воздуху действительно не проходит с указанной ошибкой. Эта инструкция только для этого случая.

  1. Скачиваем модифицированный recovery , он нам понадобится, т.к. в нем есть root-доступ к файловой системе планшета.
  2. Переводим планшет в режим fastboot. Выключаем его, зажимаем кнопки Громкость Минус + Кнопка включения питания и отпускаем их после того как планшет провибрирует два раза и на экране появится надпись Android. Если вы все сделали правильно, то планшет должен остаться в этом же состоянии. Т.е. на экране будет надпись Android.
  3. Загружаемся в модифицированном recovery - fastboot boot image-new.img
  4. Скачиваем sbl1.mbn update_5.2.5.0.sbl1.mbn.7z и кладем его в папку с ADB и fastboot.
  5. Итак, если вы все сделали правильно, то на планшете должен быть загружен модифицированный recovery, а adb должен видеть его. 
  6. Заливаем и прошиваем sbl1.mbn следующими тремя командами:
  7. adb push sbl1.mbn /data/media/0/Download/
  8. adb shell dd if=/data/media/0/Download/sbl1.mbn of=/dev/block/mmcblk0p2
  9. adb shell dd if=/data/media/0/Download/sbl1.mbn of=/dev/block/mmcblk0p3
  10. Перезагружаем планшет и запускаем обновление на 5.2.5.0 через FOTA или любым другим способом. Все успешно обновится.
Скачать обновление 5.2.5.0 в виде ZIP архива можно здесь - FW8978-MegaFon-delta-ota-V5.2.5.zip




вторник, 25 ноября 2014 г.

Alcatel One Touch Hero 2 8030Y

В этой заметке я расскажу вам о новом 6"-дюймовом фаблете от Alcatel - Alcatel One Touch Hero 2 8030Y. Даже скорее это будет не рассказ, а подборка ссылок на различные обзоры на различных околомобильных ресурсах, коих уже предостаточно. Если верить обзорам, то смартфон будет продаваться как в различных розничных сетях по рекомендованной цене 17 990 рублей, так и будет доступен у одного из операторов (по всей видимости, это будет Мегафон) по более привлекательной цене - 12 990 рублей. Именно по этой причине я и не смог пройти мимо этой модели в своем блоге. Ну а теперь собственно слайды ;) Т.е. ссылки на обзоры.

Обзор нового Android фаблета Alcatel One Touch Hero 2 (8030Y)

Думаю этих обзоров будет вполне достаточно, чтобы составить представление о данном фаблете, ну а я наверное лишь поподробнее расскажу о чипе MediaTek 6592, который собственно и является сердцем Hero 2.  Чип MT6592 использует ядра Cortex-A7, функционирующие на тактовой частоте до 2 ГГц. Компания представила новинку еще в 2013 году и в этом же году было запущено массовое производство чипа с использованием 28-нм техпроцесса TSMC. В известном бенчмарке AnTuTu, как мы уже успели заметить из обзоров, чип набирает около ~32000 баллов. 

Согласно iXBT, "производитель говорит о полной масштабируемости нового процессора. MT6592 умеет отключать некоторые процессорные ядра при отсутствии большой нагрузки. Новинка может похвастаться поддержкой воспроизведения видео в формате Ultra HD и кодеков H.265 и VP9. Также платформа поддерживает дисплей разрешением до Full HD и камеры разрешением до 16 Мп. Технология MediaTek ClearMotion призвана преобразовать видео с частотой 24/30 к/с в 60 к/с для более плавного воспроизведения.

Стоит отметить также поддержку технологии Miracast и возможность интеграции с комбинированным беспроводным решением MediaTek, объединяющем 802.11n Wi-Fi, Bluetooth, GPS и FM. Новая SoC предназначена для топовых смартфонов и планшетов, работающих под управлением Android".

Вообщем так или иначе, новинка обещает быть достаточно интересной. Лично я с нетерпением жду появления операторской версии Hero 2 в салонах Мегафон. Т.к. цена в 12990 руб. для подобного устройства кажется явно привлекательной и, естественно, что лучше один раз увидеть и "пощупать" его вживую, чем сто раз услышать или прочитать. На момент написания этой заметки ни в интернет-магазине Мегафон, ни в салонах связи - никакой информации по OT-8030Y (Alcatel One Touch Hero 2) не представлено. Будем надеяться, новинка сможет появиться в продаже до конца ноября.

Обновлено 03.12.2014 

На официальном сайте оператора Мегафон, вернее в его интернет магазине, появилась информация о старте продаж Alcatel One Touch Hero 2 8030Y. Заявленная цена на момента написания этих строк 16 990 руб. Собственно здесь вы можете посмотреть всю информацию. Однако об операторской версии по сниженной цене пока что никакой информации нет. 

понедельник, 24 ноября 2014 г.

CWM Recovery для Alcatel OT-6036Y / OT-6050Y

Сегодняшний пост будет посвящен двум телефонам от Alcatel - Alcatel One Touch 6036Y Idol 2 MINI S и Alcatel One Touch 6050Y Idol 2S. Несмотря на то что эти модели появились в продаже в России уже довольно давно и ветки, посвященные данным моделям на множестве мобильных форумов, в частности, 4pda.ru успели набрать уже за сотню сообщений - полноценного CWM Recovery для 6036Y и 6050Y пока никто так и не собрал. Даже на зарубежных форумах, вроде xda-developers пока тишина.

Совместно с пользователем 4pda ruslan_3_ - мы решили восполнить этот пробел. И вот, после значительного количества потраченного времени и даже одного специально приобретенного для экспериментов аппарата - нам это все же удалось. На скриншоте вы видите запущенный на OT-6036Y CWM Recovery v6.0.4.9, точно такой же билд теперь есть и для его старшего собрата - OT-6050Y. Правда вот условия по которым этот recovery будет распространяться - пока еще не продуманы. Другими словами - выкладывать его в public или нет - мы пока не определились.

В идеале, конечно бы хотелось реализовать какую-то схему donate (добровольных пожертвований), где каждый желающий сможет поблагодарить разработчиков рублем. Но с учетом российских реалий и нашей с вами общей страсти к халяве - почему-то мне кажется что все это не сработает. Стоит только одному человеку скачать CWM, как он тут же появится на куче мобильных форумов и других ресурсов как их собственная разработка. Поэтому пока мы в раздумьях ... возможно позже мы и придем к решению - выложить все в public, но пока решение не принято - сам recovery мы выкладывать не будем.

Если у вас есть какие-то мысли, предложения, мнения - с удовольствием выслушаем их в комментариях. И пусть пока "релиза" еще не состоялось, но сама по себе новость "да, cwm возможен на 6036/6050 и он есть", думаю, будет приятна многим ... На этом пока все )

Обновлено 26/11/2014: Теперь CWM общедоступен, скачать его можно по ссылке ниже. Если вы хотите поддержать разработчиков, вы можете сделать это здесь.

Как установить CWM Recovery на Alcatel Idol 2 Mini S (Alcatel OT-6036Y)?

  1. Скачиваем архив cwm_alcatel_6036y_v2.7z
  2. Установить драйвера ADB из прилагаемого архива - AdbDriverInstaller.exe
  3. Перевести телефон в режим FastBoot (выключаем аппарат, далее удерживаем на нем кнопки Громкость Минус + Кнопка включения питания. До появления надписи Alcatel One Touch Idol 2 MINI S)
  4. Если вы все сделали правильно, эта надпись должна остаться на экране
  5. Подключаем телефон к ПК
  6. Запускаем файл check_device.cmd, если вы все сделали правильно, то вы увидите надпись, типа "9e0eb10 fastboot" (цифры могут быть другими). Если надпись появилась, переходим к следующему шагу, если нет усанавливаем драйвера из пункта 1.
  7. Запускаем файл flash_recovery.cmd и прошиваем CWM, по окончании прошивки телефон перезагрузится. Для входа в CWM при включении удерживайте кнопку Громкость Плюс + кнопку включения питания.

Как установить CWM Recovery на Alcatel Idol 2S (Alcatel OT-6050Y)?


Инструкция аналогична предыдущей, только скачиваете архив cwm_alcatel_6050y.7z (!)

Внимание! Recovery для OT-6036Y и OT-6050Y разные (другими словами, они несовместимы). Выбирайте файл CWM для вашей модели телефона.

FAQ по CWM 


Q. Куда создается Backup при backup'е на внутреннюю память и на SD?
A. Итак, если вы находитесь в CWM:

1. /sdcard - внутренняя память телефона
2. /storage/sdcard1 - SD карта

Если вы загрузились в Android:

1. /storage/sdcard0/clockworkmod - это место на SD (!) куда складываются backup'ы
2. /mnt/shell/emulated/clockworkmod - это место во внутренней памяти, куда складываются backup'ы. Увидеть эту папку можно подцепившись к телефону по ADB (root права при этом необязательны).

Q. Что делать, при попытке backup'а во внутреннюю память - при backup'е раздела data он не вмещается. Это нормально?
A. Вполне. По-умолчанию в CWM стоит формат .tar, это значит что все файлы помещаются в backup в несжатом виде. Естественно что так, во внутреннюю память все не войдет. 

Можно попробовать выбрать формат со сжатием, чтобы он уместился во внутреннюю память, правда в этом случае процесс backup'а будет ощутимо дольше. Заходим в меню backup and restore --> choose default backup format и выбираем там tar+gzip. После этого пробуем сделать backup to /sdcard (внутренняя память), скорее всего он поместится.

вторник, 18 ноября 2014 г.

CMS Битрикс. Полезный твик визуального редактора.

Заметка буквально на пару минут, но кому-то может оказаться чрезвычайно полезной. Если вы часто редактируете какой-то контент под Битрикс, будь-то новости или еще что-то - возможно иногда вы сталкивались со следующим "багом" визуального редактора, особенно если шаблон построен на BootStrap'е. При нажатии кнопки "Режим редактирования исходного кода" на панели визуального редактора весь текст "сбивается в кучу" и на экране предстает хаос вроде этого:

Т.е. данный эффект происходит только при нажатии на кнопку (1), при нажатии же кнопки (2) - отображение вполне нормально. Пофиксить данный баг довольно легко. Открываем файл /bitrix/admin/htmleditor2/editor.css и в стиле для textarea.bxeditor-textarea добавляем параметр line-height: normal. Т.е. полный стиль выглядит так:

textarea.bxeditor-textarea{display: none; width: 100%; border-width: 0; background-color: #ffffff;box-shadow:none;border-radius: 0 !important; padding: 0 !important; max-height: none!important; max-width: none!important; line-height: normal; }
После этого указанный "баг" уже не проявится и ваши буквы будут мягкими и шелковистыми ))

воскресенье, 16 ноября 2014 г.

Мегафон Login 3. Возвращаем доступ к ADB на 5.1.6.0

В прошлом посте я писал о негативных моментах, которые появляются при обновлении прошивки Мегафон Login 3 на 5.1.6.0, в частности, о том что в этой прошивке пропал доступ к ADB и диагностическому порту Qualcomm. Т.е. если установить в Опциях разработчика галочку "Разрешить отладку по USB" - то устройство в диспетчере устройств видится, но работать с ним через ADB нельзя, т.к. adb devices сообщает нам о том что устройств не найдено. Собственно немного поковырявшись я нашел способ "вернуть все как было". Как раз в момент когда я пишу эти строки в планшет восстанавливается backup от 5.0.8.0, который я потом обновлю до 5.1.6.0 и еще раз проверю способ перед тем как его выложить в public.

Собственно почему так произошло - догадаться нетрудно, разработчики по всей видимости хотели ограничить доступ к диагностическому порту Qualcomm, но вместе с этим "сломали" и adb. Почему так произошло, и что именно было изменено - я не разбирался в силу отсутствия времени, может как-нибудь потом, но способ вернуть все на свои места вполне рабочий.

Внимание! Материал приведенный ниже устарел. Актуальная практическая инструкция по возвращению доступа к ADB на последних версиях прошивок находится здесь - Мегафон Login 3. Возвращаем доступ к ADB на последних прошивках.

Новый метод тут.


Итак, что нам потребуется:
  1. Скачиваем архив mflogin3t_enable_adb_5.1.6.0.7z и распаковываем его в отдельную папку.
  2. Если у вас до этого не были установлены драйвера ADB - обязательно устанавливаем их, т.е. запускаем AdbDriverInstaller.exe и нажимаем в нем кнопку Install (драйвера входят в комплект архива).
  3. Далее нам необходимо загрузить планшет в режиме FastBoot. Выключаем его, зажимаем кнопки Громкость- + Кнопка включения питания и отпускаем их после того как планшет провибрирует два раза и на экране появится надпись Android. Если вы все сделали правильно, то планшет должен остаться в этом же состоянии. Т.е. на экране будет надпись Android.
  4. Подключаем планшет к ПК.
  5. Запускаем файл boot_recovery.cmd , в результате планшет загружается с модифицированным recovery, в котором монтируются разделы /system и /data и доступен root. Если вы все сделали правильно - вверху будет надпись Recovery NoSigCheck / Decker. Если планшет не загрузился в recovery и fastboot написал какую-то ошибку, перед выполнением пункта 5 выполните пункт 2.
  6. После предыдущего шага на экране у вас должен быть Recovery NoSigCheck / Decker. Запускаем файл restore_settings.cmd . Если все сделано верно, настройки adb вернутся к первоначальному состоянию и планшет перезагрузится.
  7. Далее, делаем две вещи. Заходим в меню Настройки -> О планшете. Тыкаем по пункту "Номер сборки" до тех пор пока не появится надпись о том что режим разработчика включен. Заходим в меню Настройки -> Для разработчиков, перетаскиваем ползунок в правом верхнем углу экрана в положение "Вкл" и ставим птичку "Отладка по USB". Затем заходим опять в Настройки -> О планшете и нажимаем три раза по пункту Модель. Если до этого вы все сделали верно там будет пункт enable_adb, который как раз в 5.1.6.0 и стремились убрать. 
  8. Нажимаем по enable_adb, и ставим птичку на Отладка по USB. После чего планшет видится по adb devices. Бинго!

Также вы можете воспользоваться любым файловым менеджером для работы с устройством через ADB, например плагином FarDroid для FarManager или соответствующим плагином для Total Commander (ADBPlugin.wfx):


Как мы видим - все работает. Ну и чтобы ни у кого не осталось сомнений, что adb работает именно на 5.1.6.0 можно дать команду adb shell getprop ro.build.display.id, результат на скрине ниже:

Как видно - у нас 5.1.6.0 и adb работает. На этом на сегодня все.

p.s. Большая просьба при цитировании данной статьи оставлять ссылку на оригинал. Спасибо.

суббота, 15 ноября 2014 г.

Мегафон Login 3. Обновление прошивки до 5.1.6.0.

Не так давно вышло обновление прошивки - 5.1.6.0, доступное через FOTA (т.е. через обновление по воздуху). Если вы по каким-то причинам не можете скачать данное обновление с помощью штатного средства обновления программного обеспечения на планшете - ниже инструкция как сделать это самостоятельно.



  1. Скачиваем архив - FW8978-MegaFon-delta-ota-V5.1.6.0.zip, это официальное обновление доступное через FOTA. Скачать его можно непосредственно из браузера. По-умолчанию файл будет сохранен в /storage/sdcard0/download.
  2. Выключаем планшет и входим в меню Recovery. Для этого на выключенном планшете удерживаем кнопку "Громкость+" и нажимаем кнопку включения питания (кнопку Громкость+ продолжаете удерживать).
  3. В recovery выбираем пункт apply update from internal storage, и в /data/media/0 выбираем папку Download, а в ней скачанный нами файл.
  4. Дожидаемся завершения процесса обновления.
Однако, если вы устанавливали вручную какие-то обновления до этого, то 5.1.6.0 автоматически у вас может не поставиться, выдавая ошибку Error in /tmp/sideload/package.zip

(Status 7) и т.п. Или же, проблему верификации определенных файлов. Это связано с тем, что обновление 5.1.6.0 накопительное, т.е. оно включает в себя только diff'ы (отличия от оригинальных файлов), и если системные файлы на вашем планшете не совпадают с теми, которые ему нужны, то оно не поставится. Приведу просто пример. Допустим у вас был текстовый файл с содержанием "крокодил", в обновлении "сказано", что его содержимое нужно превратить в "крокодилица". Т.е. дописать "ица" в конец файла, при условии что в нем содержится именно "крокодил". В обновлении есть только информация о том что нужно добавить или изменить, а также контроль, что версия файла который обновляется соответствует нужной.

Поэтому если у вас в данном файле записано "паравоз" вместо крокодила, то естественно что никакой крокодилицы не получится. Т.е. проверка версий файлов перед обновлением у вас не пройдет.

На оригинальную же прошивку 5.0.8.0 с родным (немодифицированным) recovery это обновление встает без проблем:


Результатом успешного выполнения скрипта будет надпись script succeeded: result was [/system] Install from sdcard complete. Скриншот информации о планшете после обновления:


Таким образом, обновление без проблем встает на стоковую прошивку 5.0.8.0 (!). Что же делать, если у вас модифицированная прошивка или вы вручную устанавливали 5.0.9.0-Test? Только откатиться к изначально созданному backup'у 5.0.8.0 (!) Если же у вас нет данного backup'а - остается только ждать пока специалисты создадут образ 5.1.6.0 пригодный для прошивки через модифицированный recovery.

Внимание! Если вы установили 5.1.6.0 - то root по описанному мной ранее способу вы не получите. Также, в 5.1.6.0 была отключена возможность включения диагностического порта Qualcomm, а следовательно воспользоваться имеющимся способом разблокировки - вы тоже не сможете. Т.е. пункт меню enable_adb в 5.1.6.0 отсутствует в нужном месте. Также, при включении adb в опциях разработчика - т.е. при включении опции отладки по USB устройство все равно не видится через adb (хотя в диспетчере устройств оно присутствует).  Т.е. по adb devices - пусто. Следует трижды подумать перед тем как обновляться на 5.1.6.0 (!)

Ну и в качестве еще одного резюме из моего поста на 4PDA: "Если после получения root у вас были затронуты (изменены хоть на 1 байт) любые из системных файлов, которые обновляются в 5.1.6.0 - то обновление не встанет. Если у вас модифицированный recovery - то обновление не встанет. Если у вас еще что-то модифицированно, что затрагивается в обновлении 5.1.6.0 - оно тоже не встанет )) Если вы еще не успели разблокировать свой планшет - то после установки 5.1.6.0, вы тоже уже не разблокируете его. Если вы пользуетесь ADB, например, для тестирования своих приложений - то после установки 5.1.6.0 не сможете делать этого, т.к. там оно сломано.".

Alcatel One Touch Fire E. Первый смартфон на Firefox OS.

Не так давно Mozilla объявила о начале продаж нового смартфона Cloud FX на базе операционной системы Firefox OS со стоимостью всего 33$ (правда продажи этого смартфона начались в Индии). И вот буквально сегодня, с подачи знакомого я наткнулся на новость на сайте Мегафона - «МегаФон» первым в России начинает федеральные продажи новейшего смартфона на Firefox OS. Правда в ней речь идет не о 33-х долларовом смартфоне, а об Alcatel One Touch Fire E (6015X), заявленная стоимость которого составляет 4990 руб.

"Alcatel OneTouch Fire E оснащен двухъядерным чипом Qualcomm Snapdragon 200 с тактовой частотой 1,2 ГГц, 512 МБ оперативной и 4 ГБ встроенной расширяемой памяти, 5-мегапиксельной основной и 0,3-мегапиксельной фронтальной камерами. 4,5-дюймовый дисплей получил очень скромное разрешение - 540 х 960 пикселей. Предусмотрена поддержка 3G, GPS, Bluetooth и Wi-Fi (802.11b/g/n). Емкость аккумулятора - 1700 мАч. Fire E стал первым в России смартфоном на базе новой Firefox OS 1.3, который поступил в продажу официально." (по материалам kompiki.ru)

Изначально, я хотел немного рассказать о Firefox OS, т.к. эта операционная система практически неизвестна в России, да и различные гаджеты на ее основе пока что скорее редкость, чем повседневная практика. Но потом, пришел к выводу, что неплохо было бы для начала собрать в одном месте ссылки, как посвященные различным обзорам Firefox OS, так и, собственно, самой линейке аппаратов Fire от Alcatel:

В чем же основной минус смартфона на Firefox OS, каким он представляется на данный момент? Как вы уже наверное успели уловить из представленных выше обзоров - плюс Firefox OS и аппаратов на ней в том, что в данном случае производитель не пытается составить конкуренцию "hi-end" устройствам. Наооборот, за счет использования Firefox OS мы можем получить полноценный смартфон со всеми востребованными функциями по цене обычного телефона (индийский бюджетник Cloud FX за 33$ - прямое тому доказательство). Сниженные требования к процессору (а следовательно и энергопотреблению), открытый исходный код и аппаратная платформа, все это безусловно влияет на конечную стоимость устройства. Однако, здесь есть и обратная сторона медали. Особенность Firefox OS в том, что на ней будут запускаться только те приложения, которые основаны на web-технологиях (HTML5, CSS и JavaScript). Основными недостатками такого подхода, как вы понимаете, является сложность при разработке специфичных приложений, например, различных игр и т.п., так как вы понимаете - возможности web (html, css, javascript) не безграничны.

Собственно это же подтверждает и обзор от ixbt ... большинство приложений в Firefox OS - представляют собой мобильные версии сайтов, которые без наличия доступа в интернет - попросту не работают. А разнообразие встроенных (локальных) приложений крайне ограниченно (впрочем, тут и так есть все что нужно для "жизни").

Кстати, да ... забыл ссылку на самое главное - официальный сайт производителя: ALCATEL ONETOUCH FIRE E. Там же вы сможете найти полные спецификации и технические характеристики этого устройства. Fire E поставляется в трех цветовых исполнениях - Dark Chocolate, Mozilla Orange и Slate. Если проще, и без оттенков - черный, оранжевый и серый ;)

Все аппараты выглядят довольно приятно (по крайней мере на скриншотах) и наверняка найдут своих "поклонников" или просто желающих опробовать новую ОС в действии. Однако, лично на мой взгляд, цена в 4990 руб. немного настораживает. Во-первых - это не такая известная ОС, во-вторых - отсутствие любимых удобных приложений, т.к. каждый уже успел к чему-то привыкнуть, будь то Android, iOS или Windows Phone. Ну и самое главное - 4990 руб., это уже цена 4G / LTE аппарата с 4.5" экраном (например, если смотреть в сторону брендированных моделей - тот же Мегафон 4G Turbo, который продавался по схожей цене и оказался достаточно неплохим аппаратом), а Fire E, к сожалению, только 3G. Впрочем, возможно, в скором времени я вновь вернусь к Fire E и Firefox OS - но уже совершенно с другой стороны. Время покажет )

p.s. Слово "первый" в названии заметки отнюдь не случайно, и это не ошибка. Т.е. понятно что первым был ZTE Open C, и вроде как даже нашлись умельцы с успехом перешившие Билайн Смарт 2 прошивкой от ZTE Open C. Но официально, первым поступившим в продажу в России смартфоном с Firefox OS - является именно Fire E (Alcatel OT-6015X).

p.p.s. Аппарат уже поступил в продажу в сеть розничных торговых точек Мегафон - и является залоченным на оператора, т.е. по-умолчанию его работа возможна только с microSIM картами Мегафон. Чуть подробнее про обзор и способы разблокировки Alcatel One Touch Fire E 6015X от оператора читайте в статье - Обзор и разблокировка Alcatel One Touch Fire E 6015X.

среда, 12 ноября 2014 г.

DrWeb 10.0 Security Suite. Новая версия.

Зима ... крестьянин торжествуя, на дровнях обновляет путь ... неся гармонию, защиту, эру backup'а и ... Гм, о чем это я? Как-то совсем незаметно для меня прошел новый релиз нового антивирусного продукта от DrWeb - DrWeb 10.0. Как раз сейчас в момент написания этих строк "девятка" на моем ноутбуке обновляется на последнюю версию. Можно долго теоретизировать о преимуществе того или иного антивируса, приводить тройки лидеров, а-ля KAV, DrWeb, ESET NOD32 ... или же высказывать аргументы в пользу некоммерческих программных продуктов или условно-бесплатных. Или же вообще занять позицию ярого "виндоненавистника". Речь пойдет немного не об этом. Мне как давнему поклоннику данного продукта объективно интересно, чем же лично для меня будет полезна новая версия? Будет ли она работать быстрее на том же железе, и появятся ли какие-то доп. функции.

Собственно до начала установки я ознакомился с "пресс-релизом" на официальном сайте - Новая версия Dr.Web 10.0 для Windows, что рекомендую сделать и вам, для получения самого общего представления. Из явно-заметных тенденций - минимизация интерфейса. Т.е. все настройки для "продвинутых пользователей" убираются "с глаз долой", на виду находятся только самые необходимые и понятные неискушенному пользователю функции. Все AV-продукты постепенно так или иначе стараются стать "ближе к народу", т.е. "домохозяйко-ориентированными". Где-то даже в этом есть смысл (однако, когда я не смог произвести тонкую настройку модуля Spider Gate в 9-тке, нужно было всего-лишь добавить пару сайтов в белый список - и вроде из интерфейса это делается интуитивно понятно ... только вот желаемого эффекта я смог добиться лишь полностью отключив модуль Spider Gate), однако, когда ты пытаешься понять куда же упрятано то что нужн, и как оно на самом деле работает - становится как-то тоскливо.  Верхом совершенства в минимализме - будет наверное одна большая красная кнопка "Устранить угрозы безопасности", которая изредка будет изменяться на желтую "Необходимо продлить лицензию" ))

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

К слову, что мне нравилось, правда у другого антивирусного вендора - это поддержка HIPS (Host-based Intrusion Prevention System), реализованная у ESET. Хочется - запретил запись любой гадости в автозагрузку, указав соответствующие папки, ветки реестра и другие "тонкие настройки" - и превентивный уровень защиты от неизвестных вредоносов обеспечен. Ни один WinLocker не сумеет закрепиться в системе. Однако, для такой "тонкой настройки" все же требуются определенные знания, "домохозяйка" их сделать определенно не сможет. А вот отсутствие подобных возможностей (именно тонкой настройки продукта продвинутыми пользователями) в большинстве современных версий антивирусных продуктов немного удручает. Мне не нужно чтобы антивирус мигал "зеленым глазом" и писал что все хорошо, я должен понимать как и за счет чего мне хорошо )) И при желании мог сделать чуть лучше ) Ну да я отвлекся.

Сразу после запуска установщика антивирус определил что у меня установлен DrWeb 9.0 и предложил обновить версию, уведомив при этом, что компьютер будет перезагружен. В процессе работы установщика имеется возможность сохранить файлы в карантине,  защищаемые объекты, а также пользовательские настройки продукта. Обновление прошло на удивление быстро (если сравнивать процесс с обновлением версии KAV 14.0 на KAV 15.0 на идентичном железе) и после перезагрузки я имел счастье лицезреть "единый командный центр DrWeb" в мини-агенте.

Естественно первое что я попробовал сделать - это проверить функцию белого списка в модуле Spider Gate, т.е. добавил сайт, который "девятка" определяла как нежелательный (даже при условии что он был внесен в исключения) - в список исключений. Все заработало с первого раза, т.е. применение настроек произошло мгновенно.

Интерфейс антивируса также претерпел изменения. Теперь меню настроек в административном режиме больше приближено к Metro интерфейсу Windows 8, такие же кнопочки, переключатели, флажки и т.п. Кстати, на скриншоте слева вы видите тот самый мини-агент (командный) центр, который появляется при клике по значку антивируса в трее. Кстати, сам паучок в трее, теперь у нас не зеленый, а серый ... (написав эту фразу я понял что обзор сводится к обсуждению изменений элементов графического интерфейса и понял что пора его заканчивать) ...

Ну и в качестве резюме. По моей субъективной оценке существенного прироста в производительности, равно как и ее потери, по-сравнению с девятой версией - я не заметил. Но, я думаю, что не стоит судить об этом по первым 15 минутам работы с антивирусным продуктом (чуть позже, когда 10.0 немного "приживется" у меня - добавлю пару строк комментария к этому посту). В новой версии появились функции, которые диктует окружающая действительность - возможность backup'а важных данных, улучшенная версия родительского контроля (интересно, а много людей ей пользуются?), а также множество мелких исправлений и улучшений, направленных на улучшение юзабилити продукта (домохозяйками ;) в целом. Собственно, грамотный маркетинговый ход ... Наш антивирус поможет вам справиться с троянцами шифровальщиками (если вы потрудитесь его настроить) ... в условиях, когда конкуренты не заявили подобной "фичи" - наверное это правильно. Если вы пользовались до этого DrWeb'ом и у вас современный ПК - можно смело обновляться, фатальных неприятностей не случится. Настройки подхватятся, лицензия перенесется ... Жизнь продолжится ))

На этой радостной ноте я и закончу этот пост. Всем спасибо ))

p.s. Скачать демку DrWeb 10.0 можно тут, там же можно получить полнофункциональную трехмесячную демо-версию, которая по-функционалу ничем не отличается от коммерческой. Кстати сейчас полнофункциональную версию можно приобрести со скидкой 40%.

p.p.s. Скриншот потребления памяти (Windows 8, 4 Gb RAM):


вторник, 11 ноября 2014 г.

Как разблокировать Билайн А106?

В этой заметке я расскажу вам о том как разблокировать телефон Билайн А106 от оператора. Немного побродив по просторам интернета, стало понятно что публичного и быстрого решения вообщем-то нет, о чем свидетельствует масса запросов по этому телефону, например на mforum.ru. Где-то люди ищут способы разблокировки с помощью боксов (программаторов), есть даже unlocked full (образ прошивки уже разлоченного телефона), прошив который в телефон с помощью специального ПО телефон становится разблокированным. Однако, данный способ подойдет далеко не всем. Так, например, различным сервисным центрам по ремонту сотовых / мастерским, обладающим необходимым оборудованием и ПО - да, "простому человеку" имеющему на руках телефон - скорее всего нет.

И вот тут-то как раз нужно сказать что решение все-таки существует. Билайн А106 можно разблокировать официально предусмотренным производителем методом, а именно с помощью кода разблокировки. Небезызвестный вам сайт UnlockClub.Ru как раз проводит бесплатное тестирование. Все что нужно - это просто подать заявку по соответствующей форме и получить в ответ заветный NCK код. Заявки можно подать в двух местах:

Т.е. читаем условия участия и порядок оформления завяки, оставляем заявку и получаем NCK код. Который вводим на запрос телефона при вставленной симке другого оператора.

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


Аппарат представляет из себя простейшую звонилку с цветным дисплеем 128x160 пикселей, 1.77". Поддерживаемые стандарты и частоты: GSM/GPRS 900/1800 MHz. Помимо стандартных функций - калькулятора, FM-радио, фонарика и т.п., вполне привычных для телефонов подобного класса - есть и небольшие технические нововведения. Как вы можете видеть из картинки справа, аппарат поддерживает Micro SD карты до 8 Gb и способен проигрывать wav, amr, mp3, m4a, aac, midi, mid, а также видео - 3gp и mp4. Не думаю что кто-то будет пережимать любмый фильм в mp4 или 3gp чтобы посмотреть его на А106 в дороге )) Но тем неменее потенциально, такая возможность есть.




понедельник, 10 ноября 2014 г.

Проверка корректности IMEI. Алгоритм Луна.




В этом небольшом посте я приведу несколько реализаций широко известного алгоритма Луна (Luhn algorithm) на JavaScript, который используется при проверке контрольной суммы IMEI. Вверху, вы можете видеть онлайн-форму для проверки, ну а теперь собственно перейдем к реализациям.

Вариант 1.

<script language="javascript">
<!--
function luhnChk(luhn) {
    var len = luhn.length,
        mul = 0,
        prodArr = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]],
        sum = 0;
 
    while (len--) {
        sum += prodArr[mul][parseInt(luhn.charAt(len), 10)];
        mul ^= 1;
    }
 
    return sum % 10 === 0 && sum > 0;
};
;
-->
</script>

По времени выполнения - этот вариант должен быть быстрее остальных.

Вариант 2.

// takes the form field value and returns true on valid number
function valid_credit_card(value) {
  // accept only digits, dashes or spaces
 if (/[^0-9-\s]+/.test(value)) return false;
 
 // The Luhn Algorithm. It's so pretty.
 var nCheck = 0, nDigit = 0, bEven = false;
 value = value.replace(/\D/g, "");
 
 for (var n = value.length - 1; n >= 0; n--) {
  var cDigit = value.charAt(n),
     nDigit = parseInt(cDigit, 10);
 
  if (bEven) {
   if ((nDigit *= 2) > 9) nDigit -= 9;
  }
 
  nCheck += nDigit;
  bEven = !bEven;
 }
 
 return (nCheck % 10) == 0;
}

четверг, 6 ноября 2014 г.

Mikrotik. Запрещаем доступ к определенным сайтам по IP.

Собственно небольшая заметка, которая пригодится тем, кто хочет порезать рекламу на некоторых сайтах по IP на домашнем / офисном Mikrotik'е, ну и вообще, не только рекламу, а и доступ к любым сайтам из списка. Для начала нам необходимо уяснить, что в настройках Mikrotik в разделе IP -> Firewall -> Adress Lists есть списки адресов. Т.е. первое что нужно сделать - это добавить туда какие-то хосты, а потом уже писать соответствующие правила для firewall'а (например, разрешить, запретить и т.п.). Добавим туда три сайта с рекламой по IP:

/ip firewall address-list
add address=195.234.99.231 comment=rarenok.biz list="Blocked sites"
add address=193.105.200.13 comment=post.rmbn.net list="Blocked sites"
add address=195.234.99.4 comment=realer.info list="Blocked sites"

А теперь добавим правило для firewall'а:

/ip firewall filter
add action=reject chain=forward comment="Blocked sites" dst-address-list=\
    "Blocked sites" dst-port=80 protocol=tcp reject-with=tcp-reset

Тут все просто. Для всех сайтов из списка Blocked sites, т.е. где Dst IP совпадает с IP из списка у нас будет действовать action reject с reject-with = tcp-reset. Таким образом при обращении к ним. браузер будет просто считать что соединение было сброшено и не будет пытаться "достучаться" до них.

Теперь попробуем "расширить" данный пример для сайтов с мобильной рекламой. Скачиваем любой из представленных на различных "околомобильных" форумах файл hosts, в котором якобы прописаны баннерные сети и прочая гадость, с которых Android устройства тащат рекламу. Файл hosts надо как-то распарсить, для того чтобы добавить эти хосты в список Mikrotik'а. Это можно сделать к примеру, с помощью следующего PHP скрипта:

<?php

$f = file_get_contents("hosts");
$hosts = explode("\n",$f);
foreach ($hosts as $host) {
 if (preg_match("/^([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})\s(.*)/",$host,$res)) {
 $dns_record = dns_get_record($res[2], DNS_A);
 // var_dump($dns_record);
 if (!empty($dns_record[0])) {
 echo '/ip firewall address-list add address='.$dns_record[0]['ip'].' comment='.$res[2].' list=host_mikrotik'."\r\n";
 }
 }

}
?>

В результате в stdout у нас будут выведены соответствующие команды для Mikrotik'а. Пример:

/ip firewall address-list add address=68.170.148.7 comment=208.185.87.8.liveadvert.com list=host_mikrotik
/ip firewall address-list add address=64.151.102.166 comment=t2.leadlander.com list=host_mikrotik
/ip firewall address-list add address=38.113.1.80 comment=counter.bizland.com list=host_mikrotik
/ip firewall address-list add address=46.30.212.41 comment=adpop.theglobe.net list=host_mikrotik
/ip firewall address-list add address=217.163.21.34 comment=ad.bharatstudent.com list=host_mikrotik

Т.е. эти сайты будут добавлены в список host_mikrotik. Ну и на "закуску" самое интересное. Думаю, все мы понимаем что резать что-либо по IP не есть хорошая идея. Т.к. "под нож" могут попасть и вполне полезные сайты на том же IP. А можно ли использовать в правилах firewall'а имена хостов вместо IP?

Ответ на этот вопрос как раз дает статья - Use host names in firewall rules. Оставляю вам ее для самостоятельного изучения. Если вкратце - то все строится на динамическом резольвинге имен. Так, например, если вы введете в терминале Mikrotik'а put [:resolve vk.com], то увидите IP vk.com ... только в статье предлагается это делать с периодичностью 1 час. Т.е. раз в час в шедулере запускается скрипт updatehostnames, который обновляет адреса в заданном списке (изначально они задаются как 0.0.0.0). Ну и совсем напоследок - мануал по скриптовому языку в Mikrotik.

p.s. На всякий случай текст скрипта Mikrotik для обновления IP в списке:

 /system script add \
   name=resolvehostnames policy=write,read \
   source="# define variables\r\
   \n:local list\r\
   \n:local comment\r\
   \n:local newip\r\
   \n:local oldip\r\
   \n\r\
   \n# Loop through each entry in the address list.\r\
   \n:foreach i in=[/ip firewall address-list find] do={\r\
   \n\r\
   \n# Get the first five characters of the list name\r\
   \n  :set list [:pick [/ip firewall address-list get \$i list] 0 5]\r\
   \n\r\
   \n# If they're 'host_', then we've got a match - process it\r\
   \n  :if (\$list = \"host_\") do={\r\
   \n\r\
   \n# Get the comment for this address list item (this is the host name to u\
   se)\r\
   \n    :set comment [/ip firewall address-list get \$i comment]\r\
   \n    :set oldip [/ip firewall address-list get \$i address]\r\
   \n\r\
   \n# Resolve it and set the address list entry accordingly.\r\
   \n    : if (\$newip != \$oldip) do={:set newip [:resolve \$comment]\r\
   \n    /ip firewall address-list set \$i address=\$newip}\r\
   \n    }\r\
   \n  }"

среда, 5 ноября 2014 г.

Разблокировка ZTE MF823 (Мегафон М100-3) кодом разблокировки.

Так или иначе все равно приходится возвращаться к теме мобильных устройств по вашим просьбам. И в этом посте я расскажу вам как разблокировать 4G/LTE модем ZTE MF823 (Мегафон М100-3) с помощью кода разблокировки. Если взять мегафоновскую версию модема, то, наверное, все видели, что при попытке вставить в модем SIM-карту другого оператора встроенное ПО для соединения с интенрнет - Megafon Internet запрашивает у вас некий Unlock Code (код разблокировки сети), см. скриншот:


Теперь, благодаря сайту UnlockClub.Ru у вас есть возможность бесплатно принять участие в тестировании и получить код разблокировки. Все что необходимо сделать - это выполнить условия участия в тестировании на форуме UnlockClub.Ru в этой теме - Мегафон М100-3 (ZTE MF823). Разблокировка кодом. или в соответствующем обсуждении в группе ВКонтакте. Обратите внимание, что на момент написания этого поста тестирование все еще активно и заявки на разблокировку принимаются, однако, в будущем - оно может завершиться в любой момент. 

Рассмотрим вкратце, что же нам потребуется. Ничего сложного в этом нет, скачиваем по предоставленной ссылке драйвера Qualcomm, устанавливаем их, затем скачиваем и запускаем приложение ZTE MF823 Manager. Подключаем модем к ПК, устанавливаем драйвера со встроенного CDROM раздела, если вы еще не успели сделать это до этого. Запускаем встроенное ПО и убеждаемся что модем у нас доступен по адресу 192.168.0.1 (в мегафоновской версии, при входе по этому адресу будет выдаваться ошибка, т.к. web-интерфейса у Мегафон М100-3 по-умолчанию нет). После этого можно запускать ZTE MF823 Manager:


Далее, делаем все по шагам. Нажимаем кнопку "1. Connect", в результате у вас в системе должен появиться еще один COM-порт, который называется HS-USB Android Diag 902D COM-порт:


Запоминаем его номер и нажимаем "2. Detect". После этого в выпадающем списке у вас должны появиться все COM-порты представленные в системе. Выбираем из списка COM-порт номер которого мы запомнили на предыдущем шаге (в данном случае это COM6) и нажимаем кнопку "3. Read". Если все получилось, то в окне лога вы увидите что-то вроде:

IMEI: 862926022081114
Unlock attempts: 05
Status: Locked
Encrypted: 61D4BD7108B7B7504EEF78B9829B9BF0

Копируем эту информацию и оставляем запрос в теме форума или в обсуждении и дожидаемся вашего NCK кода. Ввести полученный код разблокировки вы можете в программе для соединения с интернет (см. скриншот, код разблокировки вводится в поле Unlock Code), в web-интерфейсе (если он есть в вашей версии модема) или с помощью AT-команды - AT+ZNCK="nck code".

Сам себе DynDNS. Или делаем собственный DynDNS сервер.

Немного отвлечемся от темы телефонов, модемов, да и вообще GSM в целом. В этой заметке я расскажу вам о том как с минимальными затратами поднять собственный DynDNS сервер. Хотя наверное это будет слишком громко сказано, поэтому вкратце опишем задачу по-другому. Допустим у нас есть домен company.ru и мы хотели бы использовать его поддомены для резольвинга некоторых хостов имеющих динамические IP. Поясню на примере. Допустим у нас есть несколько удаленных точек, на которых функционирую, ну, к примеру, IP камеры. Вы бы хотели чтобы доменные имена camera01.company.ru, camera02.company.ru и т.п. резольвились на их текущий IP. При условии что IP-адреса на данных точках выдаются провайдером динамически. Как вариант, конечно, можно воспользоваться сервисами вроде DynDNS или NO-IP, но их использование (в бесплатном режиме) связано с определенными ограничениями, например на DynDNS необходимо ежемесячно подтверждать хост, иначе ваша учетная запись будет удалена и т.п.

Что нам понадобится изначально? Во-первых сам домен - у нас это будет dnsapi.ru. Во-вторых хостинг с поддержкой PHP и включенными модулями CURL и SimpleXML (найти такой дешево - тоже не проблема). Поставим конкретную задачу, допустим, у нас есть хост - назовем его decker и мы хотим чтобы имя decker.dnsapi.ru всегда резольвилось по текущему IP данного хоста.

Теперь настало время рассказать вам о замечательном сервисе Почта для домена от Яндекс и о его API для работы с DNS - API DNS Яндекс.Почты. Итак, первое что мы должны сделать - это делегировать наш домен на Яндекс, чтобы в интерфейсе почты для домена он у нас выглядел вот так:


Про то как делегировать домен на Яндекс - здесь мы подробно останавливаться не будем, т.к. все эти моменты очень подробно расписаны в помощи почты для домена. Если в двух словах, то сначала (!) нам надо подтвердить владение доменом одним из предложенных способов, а затем изменить NS записи DNS-зоны нашего домена на dns1.yandex.net и dns2.yandex.net. Основное сделано. Теперь внимательно читаем мануал про API DNS, из которого мы сможем узнать, что для домена делегированного на Яндекс возможно программное изменение любых элементов DNS-зоны. Т.е. мы можем добавлять поддомены, изменять записи и т.п. программное. Понимаете к чему я веду?

Создали мы поддомен decker в зоне dnsapi.ru, т.е. decker.dnsapi.ru - изменили программное A-запись для этого поддомена на свой текущий IP, и бинго. Но как узнать свой текущий API, а тем более как написать скрипт для изменения A-записи? Все элементарное - просто. А именно - я все это сделал уже за вас )) Теперь единственное что от вас потребуется - это разместить нижепреведенный скрипт на вашем хостинге. Но для начала необходимо получить токен. Это делается 1 раз, и этот токен потом необходимо прописать в скрипте. 

get_token - Метод предназначен для получения авторизационного токена. Авторизационный токен используется для авторизации в API DNS, которая требуется для обращения к остальным методам API. Получать токен нужно только один раз. Чтобы получить токен, следует иметь подключенный домен, авторизоваться его администратором и перейти по указанному в документации адресу.

Ну а теперь собственно код скрипта (в этот файл нужно вставить свой токен, свои имя домена, и имя хоста (поддомена) для которого будет обновляться IP):

<html><body><pre>
<?php

function validip($ip) {
 if (!empty($ip) && $ip == long2ip(ip2long($ip)))
 {
  // reserved IANA IPv4 addresses
  // http://www.iana.org/assignments/ipv4-address-space
  $reserved_ips = array (
    array('0.0.0.0','2.255.255.255'),
    array('10.0.0.0','10.255.255.255'),
    array('127.0.0.0','127.255.255.255'),
    array('169.254.0.0','169.254.255.255'),
    array('172.16.0.0','172.31.255.255'),
    array('192.0.2.0','192.0.2.255'),
    array('192.168.0.0','192.168.255.255'),
    array('255.255.255.0','255.255.255.255')
  );

  foreach ($reserved_ips as $r) {
    $min = ip2long($r[0]);
    $max = ip2long($r[1]);
    if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
  }
  return true;
 }
 else return false;
}

function getip() {
 if (isset($_SERVER)) {
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && validip($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && validip($_SERVER['HTTP_CLIENT_IP'])) {
   $ip = $_SERVER['HTTP_CLIENT_IP'];
  } else {
   $ip = $_SERVER['REMOTE_ADDR'];
  }
 } else {
  if (getenv('HTTP_X_FORWARDED_FOR') && validip(getenv('HTTP_X_FORWARDED_FOR'))) {
   $ip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif (getenv('HTTP_CLIENT_IP') && validip(getenv('HTTP_CLIENT_IP'))) {
   $ip = getenv('HTTP_CLIENT_IP');
  } else {
   $ip = getenv('REMOTE_ADDR');
   }
 }

 return $ip;
}

function open_https_url($url,$refer = "",$usecookie = false) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); 
    if ($refer != "") { 
        curl_setopt($ch, CURLOPT_REFERER, $refer ); 
    } 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
 $result =curl_exec ($ch); 
 curl_close ($ch); 
 return $result; 
}

/* Settings */
$token = ""; // ваш токен
$domain = ""; // ваш домен
$host = "";      // ваше имя хоста (поддомена)

$res = open_https_url("https://pddimp.yandex.ru/nsapi/get_domain_records.xml?token=".urlencode($token)."&domain=".urlencode($domain));
$xml = @simplexml_load_string($res,'SimpleXMLElement', LIBXML_NOCDATA);

if (!empty($xml)) {

if (($xml->domains->error)  == "ok") {
foreach ($xml->domains->domain->response->record as $record) {
 // echo $record["subdomain"]."\t".$record["type"]."\t".$record["id"]."\r\n";
 if (($record["subdomain"] == $host) && ($record["type"] = "A")) break;
}

if (($record["subdomain"] == $host) && ($record["type"] = "A")) {
// нашли запись о нужном поддомене
   echo "Domain: ".$record["domain"].", IP: ".$record[0]." [ID: ".$record["id"]."]\r\n";
   //$ip = "192.168.1.5"; 
   $ip = getip();
   echo "New IP: ".$ip."\r\n";
   $res = open_https_url("https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=".urlencode($token).
 "&domain=".urlencode($domain)."&subdomain=".urlencode($record["subdomain"])."&record_id=".
 urlencode($record["id"])."&content=".$ip);
   $xml = @simplexml_load_string($res,'SimpleXMLElement', LIBXML_NOCDATA);
   echo "Status: ".$xml->domains->error."\r\n";
} // failed to find host
} // failed to retrieve zone records
} // empty xml

?>
</pre></body></html>

После того, как мы отредактировали секцию settings в скрипте - смело заливаем его на свой хостинг и открываем с того хоста (!) для которого необходимо обновить IP, результат выполнения вы видите прямо в браузере:


Как мы видим, IP адрес для поддомена decker.dnsapi.ru был успешно изменен. Если мы теперь сделаем nslookup decker.dnsapi.ru - то увидим IP нашего хоста. Правда есть единственное "но", для обновления DNS-записей "по всему интернету" требуется некоторое время.

Таким образом серверная часть у нас готова. Например, мы разместили скрипт на нашем хостинге по адресу http://ourhosting.org/script.php, теперь на ПК decker (или на маршрутизаторе) достаточно добавить в автозагрузку (или в планировщик, для периодического обновления, например каждые 30 минут) запуск этого скрипта. Т.е. фактически нам нужно сделать HTTP GET запрос к скрипту http://ourhosting.org/script.php ... Берем wget, и создаем bat'ник в котором будет запускаться wget http://ourhosting.org/script.php каждые 30 минут. Бинго! В итоге хост decker.dnsapi.ru всегда ссылается на внешний IP той машины, на которой запущен данный скрипт. К слову, возможности выполнения HTTP GET запросов встроены в любое сетевое оборудование, например, в Mikrotik и т.п. Так что вариантов использования предложенного способа масса.

Вопросы, замечания, пожелания, комментарии приветствуются ...

p.s.  По просьбам трудящихся скрипт для Mikrotik (необходимые права test, write, read):

/tool fetch url="http://ourhosting.org/script.php" mode=http dst-path=decker.txt
:log info [/file get decker.txt contents]

Здесь в качестве URL - выступает URL размещенного нами PHP скрипта. 

суббота, 1 ноября 2014 г.

ZTE MF823 (Мегафон M100-3). Полезные советы.

Всем привет ... Этот пост скорее всего будет немного сумбурным и посвящен модему ZTE MF823, а именно, его мегафоновской версии Мегафон M100-3. Здесь я расскажу о некоторых его "секретах", которые, надеюсь, будут полезны не только любителям "поковыряться" в прошивках, но и обычным пользователям. Но для начала - давайте разберемся, что же мы имеем в мегафоновской версии? По-умолчанию после установки драйверов на модем со встроенного CDROM модем устанавливается как RNDIS устройство. Т.е. как сетевой девайс имеющий IP адрес 192.168.0.1, у ПК же появляется отдельный сетевой интерфейс в сетевых подключениях - Remote NDIS based Internet Sharing Device.

Фактически ZTE MF823 - это устройство на базе Linux, т.е. полноценная железка с web-интерфейсом (к слову, у него есть даже ADB как в Android). Однако, при попытке зайти на http://192.168.0.1/ мы получаем ошибку - Access Error: Site or Page Not Found, что свидетельствует о том, что web-интерфейс в мегафоновской версии модема отсутствует (по-крайней мере в так было в доставшемся мне экземпляре). Давайте разберемся, как все-таки добавить web-интерфейс в этот модем.

Восстанавливаем web-интерфейс Мегафон М100-3


Для начала возьмем PuTTy и через Telnet зайдем на модем. Т.е. зайдем на 192.168.0.1:23:


Логин и пароль: root и zte9x15 соответственно. После попадания в консоль запускаем FTP Server (да, да, там есть и такой):

tcpsvd -u root:root -vE 0.0.0.0 21 ftpd -w / &

После этого подключаемся к 192.168.0.1 любым FTP клиентом и в /usr/zte_web/web/ заливаем распакованное содержимое архива - megafon_m100-3_web.7z (архив естественно нужно распаковать на ПК и содержимое папки web из архива залить в /usr/zte-web/web/)

И при входе в web-интерфейс по 192.168.0.1 видим следующую картинку:


Все. Web-интерфейс у модема теперь есть и рулить им можно непосредственно из него.

Чуть позже я опишу здесь другие интересные "находки" ... а то уже светает ))

Factory Mode

Переход в данный режим осуществляется с помощью команды:


Т.е. достаточно перейти по этой ссылке и модем уйдет в Factory Mode, в котором "проявятся" несколько COM-портов модема, включая диагностический. Драйвера для этого режима можно найти тут - ZTEDrvSetup.zip. Модем должен ответить так: {"result":"FACTORY:ok"}. В результате, модем будет переключен в другой режим (PID = 0016). Следите в ДУ за установкой драйверов. В результате, должно появиться 3 устройства - ZTE Diagnostics Interface, ZTE Proprietary USB Modem и ZTE NMEA Device.

Для возврата в обычный режим - необходимо подключиться терминалом (в качестве терминального клиента можно использовать Putty) к порту на котором находится модем и ввести команду AT+ZCDRUN=F. После чего переподключить модем. 

На режиме Factory Mode - я остановлюсь чуть позже.

Кстати, переключиться в этот же режим из консоли Linux можно с помощью:

echo 2 > /sys/class/android_usb/android0/debug_enable (при этом интерфейс RNDIS также пропадает, т.е. модем становится недоступным по 192.168.0.1)

Другое


http://192.168.0.1/goform/goform_get_cmd_process?cmd=imei - узнать IMEI модема.

Кстати, с помощью goform_get_cmd_process и параметра в cmd можно получить не только IMEI, но еще и следующие параметры (разбираться что к чему относится пока нет времени, поэтому просто списоком):

HTTPSHARE_GETCARD_VALUE,  get_loginfo,  station_list,  simcard_status,  current_network,  ConnectionMode,  vdf_configuration,  router_diagnostics,  wifi_settings,  login_status,  battery_status,  device_diagnostics,  network_location,  HTTPSHARE_AUTH_GET,  HTTPSHARE_GETCARD_NAME,  HTTPSHARE_GETCARD_VALUE,  client_ip_address,  UpgradeToolInfo,  battery_value,  pbm_data_info,  pbm_data_total,  pbm_capacity_info,  sms_page_data,  sms_data_total,  sms_parameter_info,  sms_cmd_status_info,  sms_capacity_info,  sms_status_rpt_data,  sms_data_class0,  cb_data_total,  cb_msg_total_num,  ussd_data_info,  get_device_mode,  get_user_mac_addr,  pack_size_info,  new_version_state,  current_upgrade_state,  upgrade_result,  if_has_select,  update_info,  GetUpgAutoSetting,  upg_roam_switch

Разблокировка с помощью NCK кода


Бытует довольно распространенное мнение, что для модемов ZTE кодов разблокировки не существует, и что они, якобы, разблокируются только перепрошивкой. По-крайней мере так написано в шапке одной известной темы на популярном форуме 4pda.ru, да и на некоторых других ресурсах.

Собственно это видео снималось лишь для того, чтобы развеять этот миф. Производитель (ZTE) предусмотрел штатную возможность разблокировки своих устройств с помощью уникального NCK кода. И все это работает, в чем вы и сможете убедиться в данном видео. Для примера мной был взят модем Мегафон М100-3 (ZTE MF823), на видео хорошо видно, как мы вводим код разблокировки в web-интерфейс (также его можно было ввести с помощью AT-команды - AT+ZNCK="code") - после чего модем успешно работает с симкой МТС.