пятница, 8 мая 2009 г.

Получение мобильного приложения Gmail

Новая версия Gmail для мобильных телефонов на Java радует всем.. И скоростью работы, и удобством, и интерфейсом. Получить приложение можно зайдя по ссылке - http://m.google.com/mail - где будет линк на загрузку приложения. Сервер Google автоматически определит модель Вашего телефона и выдаст сгенерированный *jad файл, в котором будет ссылка на соответствующий *jar для загрузки и установки приложения. Все это протекает прозрачно для пользователя, ему нужно лишь подвердить загрузку и установку приложения.
Для чего все это я затеял? Обратился знакомый, которому нужен мобильный доступ gmail, а его телефон SonyEriccson не может скачать программу напрямую, хотя модель довольно свежая (W810).
Однако, хотелось бы иметь его на компьютере, да и на некоторых телефонах процесс протекает немного по другому. В общем случае мы имеем *jar файл (архив с бинарной сборкой программы) и *jad файл (текстовый, с описанием основных настроек программы). Для телефонов Nokia нет никаких проблем. Кладем на карту памяти оба файла (должны иметь одинаковое имя, разное расширение) и запускаем. Все работает на ура. Можно поковырять файл gmail.jad на предмет скрытых настроек и т.д. (об этом ниже).
С телефонами SonyEriccson немного сложнее. JAD файл при установке не считывается, приложение запускается с неудобоваримым интерфейсом. Но все лечится.. И обо всем по порядку:

1. Получение файла.
Нам понадобится wget. Скармливаем ему ссылку выше - http://m.google.com/mail, при этом, нужно сказать серверу Google, что на него зашли именно с телефона. Для этого пользуем переменную "user-agent".
wget --user-agent="Nokia 6300" http://m.google.com/mail
Получим файл 'mail' в котором нас интересует строка со ссылкой, перед которой стоит id="productLink". В нашем случае она такова: "http://m.google.com/mail/download?dc=gorganic"

Скармливаем эту ссылку wget еще раз:
wget --user-agent="Nokia 6300" "http://m.google.com/mail/download?dc=gorganic" -O jad.link
После чего в полученном файле находим строку с id="productLink", где будет ссылка на генератор *jad файла. В моем случае она такая: "http://m.google.com/mail/download/mail.jad?dc=gorganic&ver=2.0.6"

Это и есть нужная нам ссылка.. Вся предыстория нужна для того, чтобы получить актуальную версию приложения (как видим, последняя версия 2.0.6). Запускаем wget с полученной ссылкой:
wget --user-agent="Nokia 6300" "http://m.google.com/mail/download/mail.jad?dc=gorganic&ver=2.0.6" -O gmail.jad

Получаем файл gmail.jad. Он нам будет нужен. Открываем его текстовым редактором, находим строку, которая начинается с "MIDlet-Jar-URL:". После этого идентификатора идет ссылка на *jar файл, который нам необходим. Качаем его:
wget http://m.google.com/mail/download/binaries/L1/2.0.6/mail_n60-3.jar -O gmail.jar
Готово.. Можно закинуть gmail.jar и gmail.jad в телефон Nokia и запустить приложение.

2. Ковыряние.
Итак, открываем файл gmail.jad в текстовом редакторе.. Все идентификаторы на англицком понятны, пояснений не требуют.. Я, например, поменял переменную DefaultMailDomain: gmail.com на свой домен, т.к. пользуюсь почтой Google Apps в своем домене.

Теперь про телефоны SonyEricsson. Для получения ссылок и *jad файла в переменную "user-agent" wget вносим необходимые значения, а именно "SonyEricssonW810". Для корректной установки и работы без *jad файла необходимо перенести все основные настройки из gmail.jad в gmail.jar. Для этого открываем файл gmail.jar любым архиватором (7zip например), в корне файла, в папке "META-INF" находим файл MANIFEST.MF. В него, при помощи текстового редактора переносим из *jad файла все, что ниже переменной "MIDlet-Install-Notify: ". Полученный gmail.jar бросаем на карту памяти телефона в папку "Прочее", после чего в телефоне находим его и устанавливаем. Все.