Organic Maps

A free offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MapsWithMe (Maps.Me) founders

Scale to fit

App ID:

OMaps

See details on the page automatic-app-scaling.

Phone Compatibility

0 of 5 Points, currently doesn't start because of a QWayland error.

How to install

Apt

Note that there is no Debian package for this application yet.

Flatpak

Command:

# Confirm that you trust and add the flathub repo to flatpak
flatpak install flathub app.organicmaps.desktop

Compiling from source

As the compilation of organicmaps requires at least 4GB RAM you can't compile it directly locally on the phone, as this would result in a kernel panic.

Setup QEMU

As your host is most likely running on an amd64 architecture, you need to install QEMU system for arm64:

sudo apt install qemu-system-arm

Get (an up to date) debian image. The nocloud image allows root access without password:

wget -c https://cdimage.debian.org/cdimage/cloud/bookworm/daily/20221112-1197/debian-12-nocloud-arm64-daily-20221112-1197.qcow2

Increase the virtual image size, so there is enough space for the compilation process:

qemu-img resize debian-12-nocloud-arm64-daily-20221112-1197.qcow2 +10G

Then start the image. As organicmaps requires at least 4GB of memory, give it at least 6GB to avoid any kernel panic during compilation or linking:

qemu-system-aarch64 -m 6G -cpu max -smp 4 -M virt -nographic -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd -drive if=none,file=debian-12-nocloud-arm64-daily-20221112-1197.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -device virtio-net-device,netdev=net0 -netdev user,hostfwd=tcp:127.0.0.1:2222-:22,id=net0

Once the image startet successfully, you can login as root without any password. You still need to grow the filesystem. As there were some errors in regards to wrong checksums of backup supernodes of the ext4 FS, deactivate the following option in /etc/fstab as otherwise you'll end up with a read-only filesystem:

vim /etc/fstab
"remove the grub option: errors=remount-ro from the first entry"

Then extend the FS

growpart /dev/vda 1

and add the contrib component to debian sources, update and reboot:

vim /etc/apt/sources.list.d/debian.sources
sudo apt update
reboot
Install dependencies
# install build-requirements
sudo apt install build-essential clang ninja-build python3 qtbase5-dev libc++-dev libfreetype-dev libglu1-mesa-dev libicu-dev libqt5svg5-dev libsqlite3-dev zlib1g-dev ccache cmake git
Get the sources

As several paths are hard coded during the compilation process, make sure you create at pseudo home directory for mobian.

There was an error with some boost libraries during the ./configure stage. As a solution, you need to clone also all submodules (there is most likely a much better solution, by utilising existing boost packages from debian.)

## create fake mobian dir
mkdir /home/mobian
cd /home/mobian
## shallow copy for a one off compilation
git clone --filter=blob:limit=128k --depth=1 --shallow-submodules  https://github.com/organicmaps/organicmaps.git
## only due to error messages from boost libraries 
cd organicmaps
git submodule update --init --recursive
build package

You can use more than 1 core for compilation, but I found that I run twice out of memory and into a kernel panic, so in the end I stuck to a single kernel:

./configure.sh
tools/unix/build_omim.sh -n 1 -r desktop
copy it to mobian

As the executable relies on several other files, it's best to copy the whole build directory to your phone (choose your IP address, and make sure the ssh server is running on your phone: sudo service ssh status):

scp -r omim-build-release mobian@10.42.0.1:~/

And make sure there is a data directory in the build directory. If not present, copy it from the source directory.

run it under mobian

Check which dynamic libraries are missing under phosh/mobian

ldd ~/omim-build-release/OMaps

I needed to install at least those two additional runtime packages, and in particular I'm not certain if this is the right one for libOpenGL.so.0 (please feel free to improve)

# install runtime dependencies
sudo apt install libicu72 libopengl0

Finally run Organicmaps with (currently for the very first start, it will ask to accept the Copyright and ask to Download the worldmap - then it will crash phosh. For the second startup, it will show the same error messages as with the flatpak package)

~/omim-build-release/OMaps

Repo

Known Issues

Doesn't start

When start with the command:

flatpak run app.organicmaps.desktop

The following error message occurs (Upstream bug):

QOpenGLWidget: Failed to create context
QWaylandGLContext: failed to create EGLContext, error=3009
qt.qpa.backingstore: composeAndFlush: QOpenGLContext creation failed
QWaylandGLContext: failed to create EGLContext, error=3009
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed