tutorial:
open charles proxy (use version 3.12.3)
turn on the mac os x proxy (you should keep it on 24/7)
install and trust charles root certificate
import these two rewrite sets (tools -> rewrite):
download this python script to generate the accesskey for the maps servers (obtains token from duckduckgo and sends it to the mapkit bootstrapper to get accesskey)
enable ssl proxying in charles for the following:
*.pythonhosted.org
*.pypi.org
*.ls.apple.com
gsp1.apple.com
go to
https://www.python.org/downloads/release/python-3125/ and install python (anything after 3.12.5 is no longer compatible with 10.9)
open terminal, type python3 -m pip install requests --trusted-host pypi.org --trusted-host files.pythonhosted.org
go into charles, head over to tools -> map remote, enable it
map the following (use the host box, leave protocol blank, for paths (e.g. /use), put "/use" into the path box):
gspa35-ssl.ls.apple.com -> gspe35-ssl.ls.apple.com
gspa11.ls.apple.com -> gspe11-ssl.ls.apple.com
gspa12.ls.apple.com -> gspe12.ls.apple.com
gspa19.ls.apple.com -> gspe19.ls.apple.com
gsp10-ssl.ls.apple.com/use -> gsp64-ssl.ls.apple.com/a/v2/use
gspa21.ls.apple.com -> gspe21-ssl.ls.apple.com
gsp1.apple.com (no its not a typo, theres no .ls here) -> gspe1-ssl.ls.apple.com
hit ok
run the python script and copy the accesskey (it should start with the unix timestamp and end with an equal sign (=))
paste (replace) the accesskey into the add query param rewrite rule in the accesskey rewrite set
hit ok on everything
the only inconvenience here is that you will have to generate and insert a new accesskey every 30 minutes, because they do expire and the map will stop updating once they expire
the app cannot generate accesskeys on its own because it was never supposed to; apple updated the authentication format from tk (token, which the app can generate) and mapkey (which the app can also generate) to just accesskey (which the app does not know how to generate), and sid (which actually doesnt matter; in fact, this app does send an sid value of 00 by default)
the python script was modified by gemini to help me with the proxy settings and the text