Offline privacy-respecting navigation

Published 2026-02-05; Last updated 2026-02-05

For some time now we have been offering ALPR-avoiding navigation services that show you where ALPR are known to be installed and help you route around those areas. This is also the API behind the DeFlock app and we serve hundreds of requests daily.

However, that requires you to be online and to trust that we are not storing your data. We do not track you, but why should you have to tell anyone where you might be going?

ALPR-avoiding navigation, totally offline and free

Starting today, you can do all of your privacy-respecting navigation offline, without ever having to send anyone your search requests.

Setup instructions for:

Once you follow those instructions you are set up for navigation and should see something like this:

Each of those magenta objects represents an ALPR that is in the DeFlock dataset, which uses OpenStreetMap as its database. Click on any of them to learn more.

We are working with the CoMaps team to get this functionality into the main app. Follow their news or social media to be notified when it is released.

In the meantime, we will keep making improvements and releasing new versions here.

Please let us know what we can improve! Our contact information is available here.

Setup instructions for Android

  1. Download our and install our latest test version APK
  2. Download our latest avoidance pack, or the more specialized ones with only confirmed ALPR locations or only suspected ALPR locations.
  3. Open the avoidance pack with the app. This might take a few seconds to load. Alternately, click , scroll to the bottom, click "Import tracks", then and select the kmz file you downloaded in the previous step.
  4. Zoom into an area of interest, for example around Berkeley, CA USA. You should see something like:
  5. Under the settings ( > ), find the "Navigation" section and click "Routing options"
  6. Make sure "Avoid bookmarks" toggle is active, then go back to the map

Setup instructions for iOS / iPhone

Coming soon!

How it works

We have modified the routing system to add an optional check for Bookmarks/Tracks/Favorites. Basically, anything that you import into the Bookmarks menu and have marked as visible will be used to create impassible walls during the routing process.

Practically speaking, if you can see it on the map, the router can too. Just enable the "Avoid bookmarks" setting in the Navigation options.

Feel free to try out your own tracks and tell us if we can improve anything!

Technical explanation

The routing engine uses an EdgeEstimator to weigh each edge in the navigation graph (e.g. IndexGraph). We created a BookmarkAvoiderFactory that subscribes to the BookmarkManager and can decorate the EdgeEstimator on demand to create a BookmarkAvoider.

The BookmarkAvoider itself encapsulates the EdgeEstimator and a GeometryCollection made of all visible bookmarks and tracks. It satisfies the EdgeEstimator interface and is used exactly as the undecorated version would be.

Whenever the BookmarkAvoider receives a Segment to weigh, it checks whether the Segment intersects the GeometryCollection. If there is an intersection, it returns the maxmimum weight: effectively, that graph edge is impassible. Otherwise the standard EdgeEstimator returns its own weighting.

See Codeberg for the source code. Things are updating rapidly so check back periodically.

Known issues

No iOS build

Working on it

Impossible routes cause the app to crash

If you try to route from inside to outside an excluded area, the app will crash. The same is true for routes that are not technically impossible but require searching over a massive area with key connections blocked by ALPR, like trying to get from SF to Mendocino.

We are working on this.

FAQ

Is it really, truly offline?

Turn on airplane mode and find out!

Can I use my own tracks or other data?

Absolutely! If you can see it in your bookmarks, you can use it. Just follow the import instructions from above and use your own data.

Can you make an avoidance pack specific to XYZ?

Get in touch and we will see what we can do. If it is on OpenStreetMap or in a common file format (csv, kml, kmz, geojson, ...) the answer is probably yes.

Next steps


Home
API
Suspected locations
Offline navigation avoiding ALPR
News
Live ALPR map
Gitlab
Contact
Donate