Cinderbox Companion
0.1.1 · GitHub
More about this app
Companion app for Stardew Valley on Android with Steam Cloud save sync, game file download, and SMAPI mod management
Cinderbox Companion
A companion app for Stardew Valley on Android. Syncs save files with Steam Cloud, downloads game files, and manages SMAPI mods — all from your phone.
Works with both the official Android port and Cinderbox (the modded Android client).
This is an independent fan project. It is not affiliated with, endorsed by, or connected to ConcernedApe, Chucklefish, or the Cinderbox developers. Stardew Valley is a trademark of ConcernedApe.
Important Warning
Use this app at your own risk. I have limited experience with Stardew Valley modding and cannot guarantee how syncing, downloading, or mod management will affect your save files.
Always back up your saves before using this app. The app creates automatic backups during sync, but you should also keep your own copies in a safe location.
I am not responsible for any loss of save data, corrupted files, or damage to your device that may result from using this app. If something goes wrong with your saves, having a manual backup is the only reliable way to recover them.
Features
- Steam Cloud Sync — Pull saves from Steam Cloud to your device, or push local saves back. Conflict detection tells you which version is newer before you overwrite anything.
- Game File Download — Download Stardew Valley game files directly from Steam using your own account. Supports branch selection and file verification.
- Cinderbox Setup Wizard — Guided setup for Cinderbox: handles permissions, downloads the APK, walks you through installation, and verifies everything is ready before downloading game files.
- SMAPI Setup — Extracts SMAPI internals to the correct location so mods can load.
- Mod Manager — Browse Nexus Mods, download, install, update, and manage SMAPI mods and content packs directly from the app. Requires a free Nexus Mods API key.
- Multiple File Access Methods — Supports Root, Shizuku, All Files permission, SAF, and manual staging to access save files across different Android versions and device configurations.
- Auto-Sync — Optionally push saves to Steam Cloud automatically when the game closes (requires root).
Requirements
- Android 8.0 (API 26) or higher
- A Steam account that owns Stardew Valley
- An internet connection for Steam login and cloud sync
Android Version Compatibility
The app works best on Android 13 and below, where file access to the game's save directory is straightforward.
Android 14+ introduced stricter file access restrictions that prevent apps from reading /Android/data/ directly. Workarounds:
- Rooted device — Full access with no restrictions.
- Shizuku — Grants elevated file access without root. Install Shizuku from the Play Store and start it via ADB or wireless debugging.
- Manual file transfer — Use a file manager that still has access to
/Android/data/(such as ZArchiver, MT Manager, or MT2) to manually move saves between the game directory and a staging folder. The app's SAF staging mode supports this workflow. - Cinderbox mode — Cinderbox stores saves in
/storage/emulated/0/StardewValley/desktop/Saves/instead of inside/Android/data/. This path remains accessible with the standard All Files permission even on Android 14+, avoiding the stricter restrictions that apply to app-private directories.
Getting Started
- Download the latest APK from the Releases page and install it.
- Log in with your Steam account. Steam Guard (2FA) is supported — you can sign in with a code or scan a QR code from the Steam mobile app.
- Sync saves — The Saves tab shows all your Steam Cloud saves. Pull them to your device or push local saves back to the cloud.
- Download game files (optional) — If you need game files for Cinderbox (or something like Winlator), go to the Download tab. The setup wizard will guide you through the full process.
File Access Setup
On first use, the app auto-detects the best available method to access save files. You can change this in Settings under "File Access". The available methods depend on your device:
| Method | Requires | Android Version |
|---|---|---|
| Root | Rooted device | All |
| Shizuku | Shizuku app running | All |
| All Files | MANAGE_EXTERNAL_STORAGE permission | 11–13 (may not work on 14+) |
| SAF | User-selected directory | All (staging mode on 14+) |
| Manual | File manager | All |
Cinderbox Directory Structure
If you're using Cinderbox, the app expects files in the following structure:
/storage/emulated/0/StardewValley/
├── desktop/
│ ├── GameFiles/
│ │ ├── Stardew Valley.dll
│ │ ├── StardewValley.GameData.dll
│ │ ├── BmFont.dll
│ │ ├── xTile.dll
│ │ ├── Lidgren.Network.dll
│ │ └── Content/
│ │ └── (PC game assets)
│ ├── Mods/
│ │ └── (your mods)
│ └── Saves/
│ └── (your save folders)
└── smapi-internal/
└── (SMAPI files)
The setup wizard and SMAPI extraction handle most of this automatically. Game files require a Steam account that owns the PC version.
If you used the Cinderbox client before version 0.8, those files lived directly under StardewValley/ (Saves/, Mods/, GameFiles/).
Companion 0.1.1+ uses the desktop/ layout required by Cinderbox 0.8+. It offers to move leftover files on launch; you can also move them from Settings. Existing destination save or mod folders are left intact, with their old copies reported as conflicts. An existing GameFiles/ folder is never merged with another version. Back up your saves before migrating.
Please join the Cinderbox Discord for help with Cinderbox-specific issues and an up-to-date guide and list of compatible mods.
Building from Source
git clone https://github.com/ObfuscatedVoid/Cinderbox-Companion.git
cd ./Cinderbox-Companion
./gradlew assembleDebug
The debug APK will be in app/build/outputs/apk/debug/.
Requires JDK 17 and Android SDK 35.
Links
- Cinderbox on Nexus Mods — "Cinderbox - Play Desktop SDV on Android" — download the APK here
- Cinderbox Source Code — Official Cinderbox repository
- Cinderbox Discord — Community for the Cinderbox modded Android client
- Nexus Mods API Key — Required for mod browsing and downloads
License
This project is provided as-is with no warranty. See LICENSE for details.
How Shizuku is used
Can list, read and write Stardew Valley saves for Steam Cloud sync via a `Shizuku UserService` file service.
This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.
How this app uses Shizuku
Shizuku is used to read and write Stardew Valley save files inside the protected app data folder so saves can be synced with Steam Cloud.
- List local saves: the app lists save folders and their files in the game save directory through the privileged file service.
- Sync saves with Steam Cloud: downloaded cloud saves are written into the game save folder and local saves are read for upload, including creating folders, writing files atomically with temp files and rename, and cleaning up temp files, all through the privileged file service.
- Check save access: the app checks whether the game save directory exists and is reachable through the privileged file service before syncing.
Android APIs or commands used
java.io.File.existsjava.io.File.isDirectoryjava.io.File.listFilesjava.io.File.lengthjava.io.File.mkdirsjava.io.File.deletejava.io.File.renameTojava.io.RandomAccessFile
Notable details
When Shizuku is not available the same save operations can use All Files access, SAF directory access, or manual file staging.
Changelog
What's new for version 0.1.1
Cinderbox
- Support for Cinderbox 0.8+: saves, mods, and game files now live under
StardewValley/desktop/. - If you still have files in the old folders, Companion offers to move them on launch. You can also do this from Settings. Existing destination folders are left alone, and conflicts are reported instead of overwritten.
- Setup checks for missing game files before copying, and detects the installed Cinderbox version instead of treating a downloaded APK as installed.
Saves
- Changing the save location or file access method takes effect without restarting the app.
- Steam Cloud uploads reuse existing file paths and skip unchanged files, avoiding duplicate saves under a different path.
- Save imports validate the files and back up an existing save before replacing it. Unreadable files now stop a sync instead of being silently skipped, and backups made close together no longer share a folder.
- Fixed Community Center bundle progress and museum donation counts in the save viewer.
Mods
- Disabling a mod now uses the folder naming SMAPI actually skips. Mods disabled with the old naming are converted automatically when possible.
- Updates match mods by their ID, keep your config and disabled state, and stage the replacement before swapping out the old files.
Back up your saves before migrating or syncing. This release uses the folder layout for Cinderbox 0.8 and newer.
What's Changed
- Support the new Cinderbox directory layout by @Yiluo2333 in https://github.com/ObfuscatedVoid/Cinderbox-Companion/pull/10
- Cinderbox 0.8 migration and save/mod management fixes by @Producdevity in https://github.com/ObfuscatedVoid/Cinderbox-Companion/commit/c25309680f2791c492cec19d4e0c6a0ddd702c61
Full Changelog: https://github.com/ObfuscatedVoid/Cinderbox-Companion/compare/v0.1.0...v0.1.1
Permissions
12 permissions requested