Vela README

The project's README from github.com/PimpinPumpkin/Vela. As one markdown file: README.md.

Vela Maps logo

Vela Maps

Google Maps, degoogled.

Live traffic, real place data and turn-by-turn navigation, with zero Google on your phone.

Stable release Build License: GPL v3 Stars Translation status

Install · What you get · Docs · FAQ · The book · Privacy · How it works · Build · Discussions · Translate

Visit the website

[!warning] Vela is in beta, so you may run into bugs. If you do, open an issue and fill out the template. Nightlies and canary builds are newer still and less tested than the weekly stable.

A degoogled maps & navigation client for Android - what NewPipe is to YouTube, for Google Maps. The map itself is open data: open vector tiles for the basemap, and Vela data for the places on it - Overture Maps and AllThePlaces, positioned with OpenStreetMap, baked into tiles in this repo and streamed from its releases - so browsing around never asks Google anything. Routes come from the open OSRM router. Search, tap a place or ask for a route and the device itself scrapes Google's public web endpoints (per-user, no backend) for the things only Google does well: search, hours, reviews and photos, and traffic-aware ETAs. Built to run on GrapheneOS and other no-GMS ROMs.

A tub of I Can't Believe It's Not Butter relabeled I can't believe it's not Google Maps

What reaches Google, by default

It is not a Google Maps wrapper. The map is a native Android app drawing open vector tiles (Jetpack Compose and MapLibre) - no Google SDK, no Play Services, no API key, nothing to sign in to. It looks like Google Maps because that is the point; underneath, almost none of it is.

What you do What reaches Google
Pan, zoom, browse the map Nothing. Tiles from OpenFreeMap, streets and labels from OpenStreetMap
The places drawn on the map Nothing, by default. Open data baked in this repo: Overture Maps and AllThePlaces, positioned with OpenStreetMap
Drop a pin, tap a house number Nothing. OpenStreetMap's Nominatim names the spot
Read a departure board Nothing, for the stops Vela draws from open transit data: the board comes from Transitous. Where Transitous has no coverage, Vela falls back to the stop's Google page
Ask for directions The traffic, and only the traffic. The route itself is computed by open OSRM, or on the phone from an OsmAnd-format region file (Google's own route only if the open router is down); Google is asked anonymously for the live ETA on top of it, and every couple of minutes while you drive, which Settings → Navigation turns off. For a walk Google is asked once for its route, used only when it is much shorter
Type a search Your text, anonymously, like a logged-out browser. Typing sends Google's own autocomplete each time you pause; submitting sends a Google search. Text that starts with a house number also goes to the open Photon geocoder
Tap a place An anonymous lookup of that place - no account, no app key. Hours, reviews and photos are the things only Google does well. Settings → Places can stop the lookup for places tapped on the map
Everything you save Nothing, ever. No account, no Vela backend, no Vela telemetry; saved places, history and settings stay on the phone

Download a region and it keeps working with no network: the map, search, routing and turn-by-turn navigation. Offline, or with Settings → Privacy → Use Vela without Google, the answer becomes nothing at all. A few things only a real browser engine gets, the first page of a place's reviews among them, are read from a Google page in an offscreen WebView, anonymously; the full list is in PRIVACY.md.

The full comparison against the Google Maps app and Google Maps web is below, and the per-request detail is in PRIVACY.md.

Screenshots

Navigation Map & search Place details Directions Search results
Public transit Departure board Stops on the line Light theme - map Light theme - place

Turn-by-turn with lane guidance, route shields and the speedometer; the keyless OpenFreeMap basemap wearing Google's own sampled colors and Google Sans Flex labels, with rated POI icons and the tiered dots; live place data; the directions panel with alternates, traffic in plain words and the avoid toggles; live departure boards with a tap-through stop list for every route; and the in-app light/dark themes (decoupled from the OS).

Install

Get it on Obtainium  Get it on F-Droid (Vela's own repo)

Obtainium auto-tracks the weekly stable release. Turn on "include prereleases" and you get the nightly channel instead.

The F-Droid badge is Vela's own repository, not the f-droid.org catalog - add https://pimpinpumpkin.github.io/Vela/repo to any F-Droid client and it serves the same signed APKs, weekly stable by default (fingerprint and nightly-channel setup in FDROID.md). Or grab an APK straight from Releases.

Check you got the real thing

Every Vela APK, from any channel, is signed with the same key. Its certificate fingerprint is:

SHA-256  29:93:8B:48:58:06:3E:42:E6:77:FF:95:C9:01:CD:48:24:8A:7F:03:2A:3A:E8:5F:9B:9E:56:17:56:8B:0D:36

Check a downloaded file against it before installing:

apksigner verify --print-certs vela-maps-*.apk

On the phone, App Verifier checks the same thing. It wants the package name on the first line and the fingerprint on the second, so paste this block, not the line above:

app.vela
29:93:8B:48:58:06:3E:42:E6:77:FF:95:C9:01:CD:48:24:8A:7F:03:2A:3A:E8:5F:9B:9E:56:17:56:8B:0D:36

Android enforces this for you after the first install: an update signed with a different key is refused, so a build that installs over your existing Vela came from the same place this one did.

This is the certificate the app is signed with, and it stays the same across releases. It is not a checksum of a particular APK, and it is not the same as the F-Droid repo fingerprint in FDROID.md, which signs the repo index rather than the app.

There's also a one-page tour at pimpinpumpkin.github.io/Vela, and every doc in this repository (the FAQ, the book, the full specification) is published there as a searchable site at pimpinpumpkin.github.io/Vela/docs.

Support Vela on Buy Me a Coffee


What you get

The complete running feature list lives in FEATURES.md.

Common questions

Where the places on the map come from, what each feature uses, and how to run Vela with no Google contact at all: docs/FAQ.md. The short version is that the map and its businesses are open data by default, and Google answers searches, place pages and live traffic.

Why a degoogled app uses Google

A phone without Google Play Services cannot run Google Maps, and the open map datasets fall well short on search, reviews, hours, and live traffic. So for those, Vela is a client of Google's public web endpoints. It asks them the same way a logged-out browser does, from each user's own phone, with no account, no shared API key, and no server in the middle. NewPipe does the same for YouTube. There are no ads, and your search history, saved places, and settings stay on the phone. If you run GrapheneOS or another no-GMS ROM, this gets you working maps back.

The map itself, the streets, the labels, and house numbers come from OpenStreetMap (in much of the US the house numbers come from OpenAddresses instead), and routes come from the open OSRM router. Google is only used for place details, search, and live traffic, plus extras you open yourself such as Street View and transit directions. So street names and house numbers can differ from what Google Maps shows, and how much detail you see offline depends on how well OpenStreetMap covers your area. I'm thinking of ways to improve OSM and fill the gaps in the data. Stay tuned.

Privacy

There is no Vela backend, no account, and no Vela telemetry. Vela fetches from Google directly from your phone like a logged-out browser - Google sees your IP, query, and map area, but not a Google account or any app key, much like using google.com/maps in an incognito window. Google does keep its own logged-out session cookie; Vela starts a new one every week by default (Settings → Privacy → Google session: weekly, daily, or every launch, plus a button to start one now). Your saved places, history, and settings never leave the device. Read the full breakdown of exactly what each service receives → PRIVACY.md.

The short version: Google shrinks from knowing who you are and everywhere you go to occasionally answering an anonymous question. With the default place source your map browsing never reaches Google at all, and your GPS trace is never uploaded anywhere. While you're actively navigating, Vela does ask Google for fresh traffic from your current position every couple of minutes - that's what powers the faster-route offers and the live arrival time - and that re-check can be turned off in Settings → Navigation ("Live traffic re-checks while navigating"); off-course re-routes remain, since turn-by-turn can't work without them.

What Google gets Google Maps app Google Maps web Vela
Tied to your Google account Yes, always signed in Yes unless incognito Never - there is no login
A persistent device identifier Yes (device + ad IDs via Play Services) Browser cookies No account, no app key; a logged-out Google session cookie that Vela replaces weekly by default, and an IP like any website visitor
Your precise GPS position Continuously while open, plus Location History if enabled While the tab is open Never while browsing - position stays on the phone. Searches send the map area you are looking at and, to rank places near you first, can ask about a small area around you; a route from your location sends that point as the start. While navigating, anonymous re-routes and the optional live-traffic re-check send your current position (toggleable in Settings → Navigation)
Every pan and zoom of the map Yes - their servers render the map Yes No, by default - map tiles come from OpenFreeMap and the places on them from Vela's own data, so Google never sees you browse
Your searches Yes, saved to your account history Yes The text reaches Google anonymously, as you type (autocomplete) and when you search
Place pages you open Yes Yes The place lookup reaches Google anonymously, under that logged-out session cookie
Turn-by-turn routes Yes, full trip telemetry Yes Routing runs on open OSRM, or OsmAnd-format region files on the phone; Google answers anonymous traffic checks - at planning, and during the drive for re-routes and the optional faster-route scanning
Saved places, home, work Stored on their servers Stored on their servers Stored only on your phone
Ad profile building Feeds your ads profile Feeds your ads profile Nothing to attach it to
Works with no Google contact at all No No Yes - one switch (Settings → Privacy → Use Vela without Google), and downloaded regions show the map, search, route, and navigate fully offline

Full per-request detail is in PRIVACY.md.

How it works

Every capability, the method behind it, and the file to read first is laid out in SPEC.md, the authoritative technical specification: the basemap, the places bake, the Google extractor, open routing, navigation, the offline stack and the signed remote-repair channel.

File What's in it
README.md This - what Vela is, why, and the privacy comparison
SPEC.md Every technical rule, contract, constant and constraint
docs/BUILDING.md Building from source, module architecture, and the release pipeline
docs/LANGUAGES.md The 15 supported languages, layer by layer (UI, spoken nav, neural voice, dictation), and how to add one
docs/TRANSLATING.md Translating Vela - in the browser on Weblate, or edit one file and open a PR
FEATURES.md The full, categorized list of every shipped capability (the encyclopedia)
ROADMAP.md What is still open + the big bets (self-hosted tiles, OSM contributions, a Play listing, opt-in telemetry, a Vela-own traffic layer); shipped and dead-end entries live in docs/ROADMAP-HISTORY.md
PRIVACY.md Exactly what each Google endpoint receives, per request
CLAUDE.md Build rules, module layout, and the hard-won gotchas - for contributors (human or AI)
docs/dpad.md D-pad / no-touchscreen operation - design, findings, per-surface audit, and the merge-with-upstream policy
docs/book/ Subsystem explainers: how places rank, when data is rebaked, what the camera rules are
docs/FAQ.md The questions people ask first, including what each feature sends to Google

Degoogled / GrapheneOS notes

Roadmap

Everything shipped so far is in FEATURES.md (the complete list) and the release notes of each build. Still open (details in ROADMAP.md):

Not going to happen - anything that needs you to sign in to Google or hand data to a backend: contributing reviews/photos/edits, live location sharing and share-ETA, a location timeline, and the login-gated data Google strips from anonymous requests (live busyness). Vela's whole point is that no account and no server ever sees you.

A note on the name

Vela Maps (app.vela) - the navigator's constellation "the Sails", and "sail" in several languages.

Contributing

Read CONTRIBUTING.md first - it covers the hard rules (no backend, no static Google keys, degoogled runtime, the :core/:app module boundary, docs-in-the-same-commit, and translations for all 15 languages) and how to send a change. There is no separate code-of-conduct document by design: keep it about the code. Security issues go through SECURITY.md (GitHub private vulnerability reporting), not a public issue.

Map data

The map itself is OpenStreetMap data, © OpenStreetMap contributors, available under the Open Database License, served as vector tiles by OpenFreeMap. Offline routing regions, place packs, house-number and building overlays are built from OpenStreetMap, OpenAddresses and Microsoft Building Footprints extracts and carry their licenses in the release notes of the hosting release. The places on the map are Overture Maps (CDLA-Permissive 2.0) and AllThePlaces data, positioned with OpenStreetMap. Transit boards come from Transitous and the agencies' own GTFS feeds. Satellite imagery is Esri World Imagery, with Google imagery where Esri has none at close zoom.

License

GNU GPLv3 Image

Vela is Free Software: you can use, study, share, and improve it at your will. You may use, modify, and redistribute this project only if your modifications remain open-source under the same license.

The app bundles the Google Sans Flex font, copyright The Google Sans Flex Authors, under the SIL Open Font License 1.1. Google Sans Flex is a trademark of Google LLC; Vela is not affiliated with or endorsed by Google.

Vela (PimpinPumpkin/Vela)

Searching Database…

2K ·GitHub
这是什么?Vela 是一款去 Google 化的 Android 地图和逐向导航应用,无需任何 Google Play Services 即可运行。它的底图取自开放数据(OpenStreetMap、Overture Maps、AllThePlaces),只有开放数据缺少的内容(如实时路况、评论和照片)才会匿名、按设备向 Google 的公开网络端点请求。
这只是 Google Maps 应用的套壳吗?不是。它是用 Jetpack Compose 和 MapLibre 构建的原生 Android 应用,渲染自己的开放矢量瓦片,不需要任何 Google SDK、API 密钥或登录;它只是看起来像 Google Maps,因为这就是设计目标。
运行它需要 GrapheneOS 或 Google Play Services 吗?不需要。Vela 为 GrapheneOS 和其他无 GMS 的 ROM 而设计,但在普通 Android 上也能运行,因为它从不调用 Play Services API;需要时一切都是对 Google 公开网络端点的直接匿名请求。
日常开车用它足够稳定吗?项目仍处于 beta 阶段,可能出现 bug;nightly 和 canary 版比每周稳定版渠道测试得更少。
没有网络连接它也能用吗?可以。下载一个地区后,地图、搜索、路线规划和逐向导航都能完全离线工作,还有一项隐私设置可以随时强制与 Google 零接触。
我使用时到底有什么数据会到达 Google?浏览地图、放置图钉和查看发车信息默认不产生任何请求。点击地点、搜索或请求路线时,才会就那一次查询(路况预计到达时间、地点详情、搜索文本)向 Google 发送匿名、无账号的请求,而且任何内容都不会保存到 Vela 服务器。
Vela Voice 是什么?一个用于逐向导航播报的神经文本转语音,以及一个用于搜索听写的本机麦克风,两者都完全在手机上运行,不会向云端语音服务发送任何内容。
它能帮我避开 ALPR/Flock 监控摄像头吗?可以。它会把社区 DeFlock OpenStreetMap 数据集中已测绘的车牌识别摄像头标注在地图上,可以选择优先走摄像头较少的路线,并在接近摄像头时给出语音或视觉提醒。
如果 Google 更改页面布局导致抓取失效怎么办?抓取规则保存在一个已签名的配置里,应用启动时会检查它;当 Google 改动某个字段或端点时,修复会在几分钟内推送到所有安装,无需更新应用。
我能把在 Google Maps 里保存的列表迁移过来吗?可以。把 maps.app.goo.gl 分享链接粘贴到搜索栏,就能导入列表中的地点及其所有者的备注,你还可以保存一份本地副本。
Size
225.4 MB
Stars
2K
Age
4mo
Commits · 90 Days