Analyse der Google Mobile Maps API

Den heutigen Abend war ich damit beschäftigt, mich um das Thema GPS-Lokalisierung zu kümmern. Dabei kamen dann einige interessante Dinge zu Tage. Zum einen wusste ich gar nicht, dass o2 einen Handy-Lokalisierungsdienst für lau anbietet. Nachdem man sich in das o2-Portal eingeloggt hat, kann man dort sein Handy lokalisieren. Nach einigen Sekunden erscheint in einer -billig gemachten- Karte der ungefähre Bestimmungsort des Handys. Mein Handy wurde ca. 1.6 Kilometer zu weit nördlich angezeigt, aber das bleibt nun mal nicht aus.
Meine andere Erkenntnis war, das man mit Google Maps Mobile http://www.google.com/gmm/tour.html?hl=de sich ebenfalls den Standort des Handys anzeigen lassen kann. Die J2ME-Applikation sucht sich die Cell ID des Betreibers heraus, in dem das Handy eingeloggt ist. Google hat wohl mit den großen Handynetz-Betreibern Verträge geschlossen, so dass sie auf die Zell-Datenbanken zugreifen können.

Leider konnte ich die J2ME-Anwendung auf meinem P910i nicht installieren. Ich schaute deshalb nach, ob man eventuell die Demo benutzen kann, um die API mit anderen Tools zu benutzen.
Nachdem ich die passende JAR-Datei heruntergeladen habe, musste ich leider feststellen, dass über die Sourcen ein Obfuscator gejagt wurde – ok ich hätte das wohl auch so gemacht 😉

Ich baute mir ein kurzes Shellscript:

#!/bin/bash
find -name "*class" | sed 's/.class//g' | sed 's/.///g' >> files.txt

for clazz in `cat files.txt`;
do
    echo "FILE $clazz" >> code.txt
    javap -c $clazz >> code.txt
done

Und hatte somit von den allen Klassen den dekompilierten Byte-Code. Viel anfangen konnte ich damit leider nicht, ich stellte nämlich fest, dass die komplette Verbindung zwischen J2ME-Client und Google Maps Mobile im Binärformat abgewickelt wird.
Frontcontroller der Server-API ist http://www.google.com/glm/mmap – und das war es auch schon. Also leider nix mit REST o.ä.
Der Client stellt eine Anfrage über POST als Client “MobileRunner” im Binärformat, der Server sendet die Antwort ebenfalls als Binary zurück.

Tja, leider blöd gelaufen. Ich hätte gerne ein paar Anwendungen geschrieben, die auf die Google Mobile Maps-API setzen würden.

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>