roadstrapp.0.4.15.apk
Roadstr 0.4.15
No Google code left in the app. None.
Roadstr was built to run on phones with no Google services, and it did. But the APK still
carried Google Play Services code — fifteen classes it could never execute on the very
devices this app exists for. Nobody put them there on purpose: they arrived as a
dependency of the location plugin and stayed, because a shrinker cannot remove code that
is still reachable on paper.
They are gone. Verified on the release APK, not assumed:
com.google.android.gms.* 0 classes
com.google.android.play.* 0 classes
Google components in manifest none
What was there, and why it survived so long
Roadstr has always read your position through Android's own LocationManager — every
single call site asks for it explicitly, which is what makes the app work on GrapheneOS,
/e/OS and LineageOS without Google apps. The Play Services code was never called.
It shipped anyway because geolocator decides at runtime whether to use Google's fused
provider or Android's own, so both remain reachable to the compiler. Excluding the library
at the build level simply broke the build: the Google client will not compile without it.
What changed
geolocator_android 5.0.3 (MIT) is now vendored in the repository with the proprietary
path removed — one file deleted, three lines changed, one dependency dropped. The Dart
API is untouched. third_party/geolocator_android/ROADSTR_FORK.md records exactly what
differs from upstream, so future versions stay easy to merge.
Also removed: Google Play Store split-install and deferred-delivery classes, which Flutter
links for apps that download parts of themselves from the Play Store. Roadstr does not.
What does not change
Nothing about how location works. Same provider, same accuracy, same behaviour on
de-Googled phones — there is simply nothing else left beside it now. Location permissions
are unchanged.
Staying that way
The Gradle build refuses com.google.android.gms and com.google.android.play outright,
so neither can return quietly through some future dependency. A test fails if the vendored
fork, the dependency override, or the exclusions are ever undone.
Verifying this release
sha256sum -c SHA256SUMS.txt
All four APKs are signed with the official Roadstr release key and carry versionCode 24.
Install the one matching your device (arm64-v8a for practically every phone made in the
last decade), or app-release.apk if you would rather not think about it.