https://github.com/mjaakko/NeoStumbler
New stumbler application for contributing data to geolocation services
https://github.com/mjaakko/NeoStumbler
android beacondb geolocation mozilla
Last synced: 6 months ago
JSON representation
New stumbler application for contributing data to geolocation services
- Host: GitHub
- URL: https://github.com/mjaakko/NeoStumbler
- Owner: mjaakko
- License: mit
- Created: 2023-10-10T03:59:49.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-04-14T18:50:47.000Z (6 months ago)
- Last Synced: 2025-04-14T19:43:15.278Z (6 months ago)
- Topics: android, beacondb, geolocation, mozilla
- Language: Kotlin
- Homepage:
- Size: 9 MB
- Stars: 253
- Watchers: 9
- Forks: 22
- Open Issues: 49
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/mjaakko/NeoStumbler/actions/workflows/build.yml) [](./LICENSE) [](https://github.com/mjaakko/NeoStumbler/releases/latest) [](https://matrix.to/#/%23neostumbler:matrix.org) [](https://hosted.weblate.org/engage/neostumbler/)
# NeoStumbler
NeoStumbler is an Android application for collecting locations of cell towers, Wi-Fi access points and Bluetooth beacons to geolocation services, which have an API compatible with [Ichnaea](https://ichnaea.readthedocs.io/en/latest/api/geosubmit2.html) (i.e. Mozilla Location Services).
## Downloads
There are two variants available:
* *full* - includes all features
* *fdroid* - does not include closed components (i.e. Google Play Services)
* Features missing:
* [Fused location provider](https://developers.google.com/location-context/fused-location-provider)
* Automatic scanning based on [activity recognition](https://developers.google.com/location-context/activity-recognition)
* [Cronet](https://developer.android.com/develop/connectivity/cronet) HTTP engineYou can install NeoStumbler either from an app store or by downloading an APK from [Releases](https://github.com/mjaakko/NeoStumbler/releases) page. Versions marked as pre-release are release candidates for the next version of NeoStumbler. These versions should generally be usable, but might have some bugs, UI / UX issues and missing translations.
If you install NeoStumbler directly from an APK, you need to check for updates manually or use a tool such as Obtainium
### App stores
The *fdroid* variant is available from [F-Droid](https://f-droid.org/packages/xyz.malkki.neostumbler.fdroid/) or alternatively from [IzzyOnDroid](https://android.izzysoft.de/repo/apk/xyz.malkki.neostumbler.fdroid). Reproducible builds are used for building NeoStumbler on F-Droid, which means that it's possible to upgrade an existing installation to a newer version from an alternative source.
The *full* variant is available from [Accrescent](https://accrescent.app/app/xyz.malkki.neostumbler). The advantage of using Accrescent is that only the assets needed for your device are downloaded.
## Features
* Supports latest Android versions
* Collect data for cell towers, Wi-Fi access points and Bluetooth beacons
* Data collection can be started automatically while moving (if using the *full* variant with Google Play Services)
* Scanning can be automatically paused when not moving
* Map showing the areas where data has been collected
* Exporting scan data as CSV files or as a raw SQLite file## Development
The application has two product flavors:
* `full` - includes all features
* `fdroid` - features dependent on closed-source components (i.e. Google Play Services) are removed### Building
* Build debug APK: `./gradlew buildFullDebug` or `./gradlew buildFdroidDebug`
* Build release APK: `./gradlew buildFullRelease` or `./gradlew buildFdroidRelease`
* Note that by default this will build a signed APK
* This needs a Java keystore file named `keystore.jks` in the project root directory and setting values for environment variables (see `app/build.gradle`)
* Alternatively, to build an unsigned APK, remove `signingConfigs` block from `app/build.gradle`## Contributing
Contributions from the community are welcome and encouraged. Easiest ways to contribute are to create and update translations and to create bug reports. Requests for new features are welcome as well. If you want to implement a new feature, please create an issue first if there's some design or planning needed
### Translations
[Weblate](https://hosted.weblate.org/projects/neostumbler/) is used for translations. If you want to add translations for your language or to update existing translations, you can do that easily from Weblate. If you prefer, you can also update translations via a PR
Note that once you've finished translating a new language, it needs to be enabled in the build configuration. See [this commit](https://github.com/mjaakko/NeoStumbler/commit/2c17e6f71825563fa78510b18a1d8e80596e4797) for an example