# Linthra v0.1.12 — release notes

**Linthra is an Android music player for local files and self-hosted music
servers.** v0.1.12 is a focused **clean-reinstall and Android data-safety
release**. It prevents Android from restoring an obsolete Linthra catalog and
settings after the app has been uninstalled, while leaving normal in-place
updates completely unchanged.

- **Version:** `0.1.12` (`versionName`), `versionCode` `112999`
- **Platform:** Android
- **Application ID:** `io.github.thezupzup.linthra`
- **License:** MPL-2.0

## What's new

### Clean reinstalls

- **No more restored ghost tracks.** After uninstalling and reinstalling Linthra,
  Android no longer restores an old SQLite catalog containing songs that may no
  longer be reachable.
- **No stale folder references.** Removed local-folder URIs and expired Android
  Storage Access Framework grants are not resurrected on a fresh installation.
- **Clean debug-to-stable switching.** Uninstalling a debug APK and then
  installing the stable build now starts with a clean Linthra library instead
  of silently importing the previous test state.
- **No stale server or preference state.** Linthra's private databases,
  SharedPreferences, files, and device-protected storage are excluded from
  Android backup restore.

### Updates still preserve everything

- **Normal app updates are unaffected.** Installing v0.1.12 over an existing
  Linthra installation keeps accounts, settings, playlists, catalog, cache, and
  other private app data.
- **No database migration.** The existing Drift schema and stored catalog remain
  unchanged during an update.
- **No user action required.** Existing users can update normally from their
  current installation source.

## Technical summary

- Android Backup is disabled explicitly for debug, profile, and release builds.
- Android 11-and-lower full-backup rules exclude every private storage domain.
- Android 12+ data-extraction rules exclude the same state from both cloud backup
  and device-to-device transfer.
- Regression tests require every Android build type to retain the no-restore
  policy and verify all private storage domains remain excluded.
- Implemented in PR #300.

## Verification completed

- Dart formatting passed.
- Flutter analysis and the complete test suite passed.
- Android debug APK compilation passed with the merged manifests and backup
  rules.
- The privacy scan and GitHub Sponsor simulation passed.

## Upgrade and distribution notes

- Updating in place preserves the current Linthra installation and its data.
- Uninstalling the app still removes its private data as expected; a subsequent
  installation now starts clean instead of receiving an Android-restored copy.
- Do not mix GitHub and F-Droid install sources because their APKs use different
  signing keys and cannot update one another.
- F-Droid will detect the stable `v0.1.12` tag and build from source using its own
  signing key.

No ads, no tracking, no analytics, no telemetry. Linthra plays music you already
own or that your own server provides.
