The Android companion for StarPilot, available through Google Play.
Application ID: com.starpilot.galaxy.
Proprietary software — not open source. Pull requests are welcome. You may review the source, fork it on GitHub, and build or modify it locally to evaluate changes and contribute back to this repository, under the proprietary terms.
Redistributing the source or builds, or publishing builds to any app store, is not allowed without prior written permission from the applicable copyright holders. This includes free, paid, modified, and renamed versions, and uploads to Google Play, the Apple App Store, F-Droid, or other distribution services. GitHub viewing/forking rights and third-party license rights remain unaffected. Official releases are published by the project or its authorized distributors.
By submitting a PR, you agree to the contribution terms in LICENSE.txt, which allow maintainers to incorporate and distribute your contribution in official proprietary releases; you retain ownership of your contribution. Identify any third-party code and its license in your PR.
Gradle-related notices and bundled web dependency notices are preserved separately and do not provide an open-source license for the app.
- License and contributions
- Branches and shared code
- Set up
- Test and build locally
- Promote a release
- Publish to Play
- Release configuration
| Branch | Purpose | Release destination |
|---|---|---|
Play-Dev |
Play development | Play-Distro |
Play-Distro |
Stable Play edition; repository default | Google Play |
Shared screens, connections and fixes belong in app/src/main. Play-specific
code and permissions belong in app/src/play, behind AppDistribution.
The old main and play-store branches are retained for history.
Install Git, Python 3 and GitHub CLI for repository tooling and pull requests.
gh auth login --hostname github.com
gh repo clone dirwin31/StarPilotAndroid
cd StarPilotAndroidLocal Android builds also need JDK 17, Android SDK platform android-37.0 and
build tools 37.0.0. The app targets SDK 36.
./gradlew testPlayDebugUnitTest lintPlayReleasepython3 -m unittest discover -s tests -p test_starpilot_cli.py
node --test push-relay/relay.test.js push-relay/server.test.js
node tests/test_demo_fixtures.mjs./build_play.shThe Play bundle remains unsigned unless upload credentials are supplied. See implementation notes for remaining device checks.
./tools/snapshot_galaxy_web.sh /path/to/openpilotReview the snapshot changes before committing. CI verifies that Play excludes the APK installer permission. Device testing and Google Play review remain separate release steps.
Increase versionCode and versionName in app/build.gradle.kts on the Dev
branch, commit and push, then open the matching promotion PR:
# Play development → stable Play
gh pr create --repo dirwin31/StarPilotAndroid --base Play-Distro --head Play-DevReview checks and merge the PR before publishing from Play-Distro.
These instructions are for authorized release maintainers only; they do not grant permission to redistribute the app or publish a store listing.
Choose one publication method below. Replace 1.2.1 with the committed
versionName. Release tags must be unique and remain unchanged after publication.
git fetch origin
# Play release
git tag play-v1.2.1 origin/Play-Distro
git push origin play-v1.2.1The workflow validates the stable branch and version, runs tests, and builds the Play edition.
# Play release to internal testing
gh workflow run release.yaml --repo dirwin31/StarPilotAndroid \
--ref Play-Distro -f tag=play-v1.2.1 -f play_track=internalPlay tracks are internal, alpha, beta, production, or none to skip
Play Console upload. Dev branches cannot publish through this workflow.
gh run list --repo dirwin31/StarPilotAndroid --workflow release.yaml
gh release view play-v1.2.1 --repo dirwin31/StarPilotAndroidConfigure these secrets in the android-release GitHub environment:
| Edition | Required secrets |
|---|---|
| Play signing | COMPANION_UPLOAD_KEYSTORE_BASE64, COMPANION_UPLOAD_KEY_PASSWORD |
| Play Console upload | PLAY_SERVICE_ACCOUNT_JSON |
Never commit signing keys. Without the Play service account, the signed AAB is published to GitHub only. Uploads default to internal testing.
See Play and push relay setup for Firebase, upload keys, Play Console declarations and review requirements.