четверг, 22 декабря 2011 г.

Google 2-Phase Authentication & Google Authenticator & Time Zone & Android Phone Root

По горячим следам.

Итак, есть у гугла такая крутая фича, как двухэтапное подтверждение: кроме пароля, нужно ещё вводить одноразовый код подтверждения, который можно получить на телефон через SMS, сгенерировать на телефоне специальной программой Google Authenticator или взять из заранее распечатанного списка. И всё бы хорошо, но код генерируемый Authenticator’ом привязан ко времени. И вот не так давно правительства России, Украины и Беларуси ввели в странах декретное время. Соответственно, телефоны, не имея обновленной информации начали неправильно определять часовой пояс и, как результат, коды, генерируемые Authenticator’ом работать перестали.

Как же обновить на телефоне базу часовых поясов? Ну, способы есть разные, но на данный момент проще всего воспользоваться программой TimeZone Fixer. Одна только проблема — эта программа требует root-доступа к телефону. Что представляет определенную проблему.

Не буду томить, для телефона HTC Wildfire с Android 2.2.1 рабочий алгоритм оказался таким:

  1. Ставим новый загрузчик . Можно использовать программы с ресурсов http://revolutionary.io/ или http://unrevoked.com/.  Последняя у меня отработала с ошибкой на последнем этапе, но это мелочи. В процессе работы системе нужно будет подсунуть подходящие драйверы. Я их сделал из Android SDK Google USB Drivers, отредактировав файл android_winusb.inf – я добавил в обе секции инсталляции строки
    ; HTC Wildfire
    %CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C8B&MI_01
    ;HTC Incredible
    %SingleAdbInterface%        = USB_Install, USB\VID_0BB4&PID_0C9E
    %CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C9E&MI_01
    %SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0C94
    ;HTC Supersonic
    %SingleAdbInterface%        = USB_Install, USB\VID_0BB4&PID_0C8D
    %CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C8D&MI_01
    Сами идентификаторы, понятное дело, посмотрел в Диспетчере Устройств.
  2. Теперь, собственно, Root. Нужно установить пакет http://androidsu.com/superuser/. Забросить его в корень флешки, выключить телефон, включить, удерживая кнопку уменьшения громкости, выбрать пункт RECOVERY, затем выбрать инсталлирование zip-архива.
  3. Ну а теперь можно запускать TimeZone Fixer и радоваться жизни.