Difference between revisions of "IOS"

From Navit's Wiki
Jump to: navigation, search
m (moved Navit on Iphone to IOS: unified OS articles)
(Test the iPhone version (no jailbreak required))
Line 14: Line 14:
* Select "Navit" from Filesharing/Apps
* Select "Navit" from Filesharing/Apps
* Copy your downloaded map to "Navit Documents"
* Copy your downloaded map to "Navit Documents"
This solution is obsolete since no new builds were made in the last 3 years.
== Screenshots and Videos ==
== Screenshots and Videos ==

Revision as of 10:47, 19 June 2016

Test the iPhone version (no jailbreak required)

  • Submit your UDID to iphone at navit-project.org (see below how to get the UDID)
  • Be patient. Your UDID has to be included in a provisioning profile and a new package has to be generated which will run on your device. This is a manual process.
  • Open http://download.navit-project.org/navit/iphone_ipa/svn with safari on the phone/pad
  • Download the newest svn version
  • Click on OK to install navit
  • Download a map from http://maps.navit-project.org to your pc
  • Rename the downloaded map to "navitmap.bin"
  • Connect your device to your pc/mac
  • Start itunes if it doesn't start automatically
  • Choose your device on the left sidebar
  • Select "Apps" on the upper menu bar
  • Select "Navit" from Filesharing/Apps
  • Copy your downloaded map to "Navit Documents"

This solution is obsolete since no new builds were made in the last 3 years.

Screenshots and Videos

Iphone screen1.jpg Iphone screen2.jpg


Version: Beta 0.5

  • 0.1-r2391-2 (adding landscape, cursor, navigation status...): 29/07/09
  • 0.1-r2391 + (garmin driver): 08/07/09
  • 0.1-r2391: 05/07/09
  • 0.1-r2307: 27/06/09
  • 0.5-r5225: 20/09/12

What works

  • Routing
  • GPS updates
  • OSM maps
  • Speech
  • Track logs
  • Landscape/Portrait mode

What does not

  • speech (play failure since 3.0)

What was not tested

  • Garmin maps (Last binary includes Garmin driver but not tested ...)
  • Others maps

What is on development

Concerning Opentoolchain

Cydia packages

Temporarily, Packages are available through this below repository:

main-dev (latest): http://szndvc.dyndns.org/cydia/
main (r2307): http://download.navit-project.org/navit/iphone/cydia/

From Cydia go to Manage > Sources > Edit > Add and add one of the above URL there. Then Search->"navit", install it .

By default, navit is expecting OSM maps:


For example, you can either use:

  • iphone terminal and wget:
iphone$ cd /var/mobile/Media
iphone$ mkdir Maps
iphone$ cd Maps
iphone$ wget http://maps.navit-project.org/planet.bin


  • openssh
PC$ wget http://maps.navit-project.org/planet.bin
PC$ scp planet.bin root@xxx.xxx.xxx.xxx:/var/mobile/Media/Maps/planet.bin

xxx.xxx.xxx.xxx is the ip of your iphone.

enjoy having your free GPS on your iPhone.

PS: Temporarily, because I hope it will accepted on telesphoreo.

Home made packages

I assume that your cross-compiler is ready and that you are able to generate telesphoreo packages.

  • Cross-compiler: [1]
  • Telesphoreo: [2]
svn co http://svn.telesphoreo.org/trunk  
export PATH=$PATH:$WHEREIS_YOUR_TOOLCHAIN/toolchain/pre/bin
export PKG_ARCH=iphoneos-arm


First you will need to compile below libraries:

  • FreeType
  • FontConfig
  • SDL
  • SDL_image
  • Png
  • ImageMagick
  • Jpeg6b (optional)
  • Tiff (optional)

Png, tiff, Imagemagick are already available on telesphoreo which is the APT-based distribution of Unix software for modern smartphones started by Jay Freeman (saurik). So you can download it from Cydia. For others, you will find all necessary telesphoreo patches on below ticket: [3]

 patch -p0 < sdl_ft_fc_jpg_new_packages_telesphoreo.diff

Currently, I hope that above libs will be accepted on telesphoreo distribution to skip this first step.

Then we can deal with Navit code.


Please find below telesphoreo patch for navit:

r2391-2:http://szndvc.dyndns.org/navit/telesphoreo_r2391_2.diff (full patch + deps)
r2391+garmin:http://szndvc.dyndns.org/navit/telesphoreo_r2391_garmin.diff (full patch + deps)
r2391:http://szndvc.dyndns.org/navit/telesphoreo_r2391.diff (full patch + deps)

Navit patch:




This is a draft !!

I know, there are some obvious workarounds and hacks! and my OBJC is rusty :)


  • [Iphone] New vehicle type: Iphone GPS coordinate reading
  • [SDL] options in config file for BPP and NOFRAME (2391)
  • [OSM] search in unknown city (without is_in tag)
  • [OSD] Announcer toggle fix
  • [DBG] Added HAVE_NO_DEBUG (Iphone does not like hash calculation :))
  • [NAV] Added tell_street_name in configuration file (2391)
  • [CONFIG] Navit XML configuration file for Iphone
  • [FILE] !!Dirty!! Hacking file_wordexp_new(). Indeed wordexp seems to not work on my env :(. All "*" for file path are not allowed yet. Direct path only.
  • [BUILD] !!Dirty!! with disable-plugins mode, darwin gcc seems to not link plugins from *.la => Force link against .o and add all libs to navit_LDADD
  • [EXTRA] Iphone application metadata (icons ...)

Once your telesphoreo source code is patched with additional libs and Navit. Just enter below command

./package.sh navit 

It will build navit and all other dependencies (above libs).

Upload your deb files (scp,ssh,...) to your device and install them thanks to dpkg ...

dpkg -i fontconfig_2.6.0-1_iphoneos-arm.deb
dpkg -i freetype_2.3.9-5_iphoneos-arm.deb
dpkg -i sdl-image_1.2.0-r4521-4_iphoneos-arm.deb
dpkg -i sdl_1.3.0-r4521-1_iphoneos-arm.deb
dpkg -i jpeg_6b-14-x_iphoneos-arm.deb
dpkg -i navit_0.1.0-r2307-x_iphoneos-arm.deb

Then Have fun :)

Concerning App Store

Need a volunteer with a mac :)

  • SDL is ready for Xcode


OSM map files are expected as below:


A new navit.xml can be copied into /var/mobile/.navit/


<graphics type="sdl" w="340" h="480" bpp="16" frame="0"/>

Frame and bpp options have been added


Get festival library + Erica utilities on Cydia. Then change your speech configuration in "/var/mobile/.navit/navit.xml" to

 <speech type="cmdline" data="flite -t '%s' -o /var/mobile/tmp.wav &amp;&amp; play /var/mobile/tmp.wav &amp;"/>

Test feedback

  • OSM: Routing is very slow (long distance is a nightmare for user :() (Almost fixed with CACHE_SIZE define)

How to get the UDID of your device

The UDID is a 40 digit hex string required to take part in the testing of a new iPhone port. The following possibilities to get it are known: