Skip to content
 
 

Repository files navigation

Syncthing ES-DE Safe Sync

License: MPLv2 Get it on Obtainium Translation status Build App

A wrapper of Syncthing for Android. Head to the "releases" section or F-Droid for builds. Please seek help on the forum and/or social media apps first before creating issues on the tracker.

screenshot 1 · screenshot 2 · screenshot 3

Switching from the deprecated official version

Switching is easier than you may think! See our wiki article for detailed instructions.

Wiki and Useful Articles

Our knowledge base is published here.

Building and Development Notes

See detailed info.

ES-DE Gaming Sync

This fork adds an opt-in metadata bridge for Android retro-gaming handhelds. ES-DE normally stores every game's mutable state for a system in one gamelist.xml; synchronizing that file from multiple handhelds creates coarse file conflicts. The bridge keeps every gamelist.xml local and ignored, then synchronizes one small .esde.json sidecar per game instead.

Both current ES-DE layouts are supported: the central ES-DE/gamelists/<system>/gamelist.xml tree and the legacy/portable ROMs/<system>/gamelist.xml layout used by external scrapers. Sidecars always live below the same system directory in .esde-sync. For the ROM layout, Safe Launch verifies and safely enables LegacyGamelistFileLocation in ES-DE's settings/es_settings.xml before starting ES-DE.

Version 1 synchronizes favorite, completed, playcount, playtime, lastplayed, and the exact opaque altemulator value. Missing sidecar fields do not erase local values. ES-DE Safe Launch checks the selected Syncthing folders and primary device before play, imports metadata, starts the chosen ES-DE app, then exports and synchronizes changes after return. When the primary device is unavailable, Start without sync remains available and marks local changes as pending until a later successful synchronization.

Safe Launch declares Android's Home category, so it can be selected as the Home app on handhelds that use ES-DE as their launcher. Some Android builds display the package label Syncthing ES-DE Safe Sync in the Home picker and collapse the second launcher icon; the Gaming Sync settings therefore include direct buttons to open Safe Launch and the system Home-app picker. Android does not allow an app to disable its own “Pause app activity if unused” protection silently; the Gaming Sync settings provide a direct link to App info for that user-controlled switch.

On a fresh installation, a resumable First Setup wizard guides the device role, ES-DE and gamelist roots, primary Syncthing device, Gaming Sync folders, shared content categories, ignore protection, and Safe Launch/Home integration. SafeSync automatically enforces SaveGamelistsMode=always, enables the legacy ROM gamelist location only when required, and prevents a receiving device from seeding shared state from fresh defaults. After play, return to ES-DE and press Home, then keep the Safe Launch screen open until SAFE TO SWITCH DEVICE is shown.

Read the architecture, implementation plan, and test APK installation guide before enabling it.

The fork checks the official Syncthing releases every six hours. A newly published version is committed directly to main, assigned a unique app tag, built, test-signed, and published with SHA-256 checksums under GitHub Releases. The public test signature is stable for upgrades but is not a trusted production or store signature.

When the original Syncthing-Fork is installed beside a fresh ES-DE Sync installation, onboarding offers a guided configuration migration. It uses the original app's encrypted export/import archive because Android prevents direct access to another package's private data, and preserves the Syncthing identity, folders, devices, index, and compatible app settings.

Do not run this fork and the original Syncthing-Fork against the same local folders at the same time. Stop or disable the original app first. This fork has its own application ID. A completed migration preserves the Syncthing identity; skipping it creates a new device that must be authorized on your NAS.

Acknowledgments

This project was forked from syncthing/syncthing-android.

Special thanks to the former maintainers:

Privacy Policy

See our document on privacy: privacy-policy.md.

License

The project is licensed under MPLv2.

About

Syncthing-Fork - A Syncthing Wrapper for Android.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages