Skip to content
OOryvelle

Legal

Privacy Policy

App
Oryvelle
Developer
NekoDesk — Aziz Manaa
Contact
nekodesk.dev@gmail.com
Effective date
August 29, 2026

Oryvelle is for ambient soundscapes, guided breathing, wind-down routines, and private notes. It stores your data on your device. It does not run user accounts, does not collect behavioral analytics, and does not serve ads. It uses Firebase Crashlytics for crash reporting to keep the app stable — see Third-party services below. Google Drive Backup and Restore are optional features you can use to protect your journal — neither is required to use the app, and Oryvelle does not create a Google profile. An optional Google Play subscription unlocks Premium sounds. Google Play reviewers can use a non-personal reusable review code to evaluate those same features without an account, purchase, or free trial.

What data the app stores

On your device (always)

DataPurposeWhere stored
Journal entries (rating, duration, mood tags, notes)Show your relaxation history and trendsLocal device storage
Playback sessions (sounds played, duration, timer used)Power local personalization and weekly insightsLocal device storage
Onboarding preferences (relaxation goals, sound categories, routine choices)Personalize recommendationsLocal device storage
Saved mixes and last-played mixLet you resume or replay your soundsLocal device storage
App settings (timer defaults, volume, crossfade)Remember your preferencesLocal device storage
Public cached audio files (up to 72 MiB)Play sounds without re-downloadingLocal device cache — automatically managed; can be cleared via Android Settings → Apps → Oryvelle → Storage
Premium audio for the active session (up to 64 MiB)Play authorized premium sounds during the current sessionTemporary local cache — cleared when the premium session ends
Premium entitlement status and verification timestampsRemember recently verified Premium access for up to 72 hoursEncrypted local app storage
Google Play reviewer session token and expiryRestore temporary reviewer access after an app restartEncrypted local app storage until expiry, access is ended, or uninstall

These stored values stay on your device unless you explicitly use Drive backup or manual transfer. Subscription verification is the limited exception described below. None of this data is used for advertising or behavioral analytics.

With Google Drive — only when you choose Backup or Restore

When you choose Backup or Restore, Google may ask you to select an account and grant access to Oryvelle's private Drive app-data folder. Oryvelle receives a short-lived access token for that operation. It does not store your Google display name, email address, or a persistent Google profile.

If you choose Drive backup, the app uploads a copy of your sleep journal content to a private folder in your own Google Drive (appDataFolder). The backup includes:

  • The free-text notes you write for each journal entry
  • Your sleep rating
  • The sleep duration
  • Your mood tags

This appDataFolder is:

  • Visible only to you and to Oryvelle
  • Not accessible to other apps
  • Not visible in your main Drive file list
  • Controlled entirely by you — you can delete it at any time through your Google account settings

Backup encryption. Oryvelle does not apply its own client-side encryption to the backup before uploading it. Your journal content is transmitted to Google Drive over HTTPS and is stored in your own Google Drive account. Because Oryvelle does not encrypt the backup with a separate key before upload, anyone who can access your Google account or Drive backup data could read your backed-up journal entries.

What is not backed up. Drive backup covers only your sleep journal content. Your playback sessions, onboarding preferences, saved mixes, and app settings are not uploaded to Drive backup — they remain on your device.

You can disconnect Google Drive at any time without losing local data. Disconnecting revokes Oryvelle's Drive permission and clears pending authorization state, but does not delete an existing backup. The next Backup or Restore will request permission again.

Google Play reviewer access

Google Play reviewers can enter a reusable, non-personal review code to access all Premium features without creating an account, purchase, free trial, or permanent entitlement. The app sends the code over HTTPS to the NekoDesk service only to authorize reviewer access. The raw code is cleared from the screen after submission, is never written to app storage, and is not stored or logged by the service.

After successful activation, the service returns a signed reviewer session valid for 30 days and a short-lived Premium media grant. The session contains protocol and expiry claims only; it does not contain a name, email address, Google account, user ID, device or installation identifier, or location. The app stores the session token and expiry in encrypted app-private storage so reviewer access can be restored after a restart. Premium media grants remain in memory only. Ending reviewer access or uninstalling the app removes the local session; an expired or invalid session is also cleared.

Reviewer credentials are used only to authorize and secure reviewer access. They are not used for advertising, analytics, personalization, or account creation. Application-generated logs contain only the route, outcome code, and HTTP status; request bodies, credentials, authorization headers, session tokens, media grants, and IP addresses are excluded.

Third-party services

Google Drive authorization

When you authorize Drive Backup or Restore, your data is handled under Google's Privacy Policy: policies.google.com/privacy

Google Play Billing and Premium verification

Purchases are processed by Google Play. To verify Premium access, Oryvelle sends the Google Play purchase token over HTTPS to api.oryvelle.app/v1/entitlements/exchange. The raw token is not logged or stored by Oryvelle's server; a SHA-256-derived lookup key and entitlement result may be cached there for up to five minutes. The app stores an encrypted Premium status snapshot for up to 72 hours. A short-lived content access grant remains in memory only.

Cloudflare delivery and abuse protection

Cloudflare delivers requests to cdn.oryvelle.app and api.oryvelle.app and protects the service from abuse. Ordinary request metadata, including the request-origin IP address and standard HTTP headers, may be processed for delivery, security, and short-window rate limiting. Reviewer-access rate limiting uses request-origin information only to limit repeated activation or refresh attempts, not to infer location, build a profile, or support advertising or analytics. NekoDesk does not write IP addresses or reviewer credentials to application-generated logs or durable application storage.

Sound catalog

The app fetches catalogs and public media from our CDN (cdn.oryvelle.app); Premium media is authorized through api.oryvelle.app. This requires a standard internet connection when content is not cached. Public catalog and free-audio requests do not include app-provided personal data. A Premium cache miss includes only the short-lived entitlement grant described above; that credential is not stored with cached audio.

Firebase Crashlytics (crash reporting)

Oryvelle uses Firebase Crashlytics, provided by Google, to detect and diagnose app crashes. Crashlytics is active in release builds only — it does not run during development.

What Crashlytics collects:

  • Device model and manufacturer
  • Android OS version
  • App version and build number
  • A randomly generated installation ID (not linked to your identity)
  • Crash stack traces and exception details
  • Timestamps of crashes

This data is used only to identify and fix stability issues. It is not used for behavioral tracking, advertising, or product analytics.

Data is handled by Google under the Firebase Privacy Policy: firebase.google.com/support/privacy

Google Play In-App Updates

The app uses the Google Play In-App Update API to check whether a newer version of Oryvelle is available. This is handled by the Google Play Store on your device and governed by Google's Terms of Service. No personal data from within Oryvelle is sent during update checks.

What we do not do

  • We do not collect behavioral or product analytics.
  • We do not serve ads or share data with advertisers.
  • We do not sell your data to anyone.
  • We do not create NekoDesk user accounts or store your sleep journal on our servers.
  • We do not use Google Play reviewer credentials to identify reviewers or create accounts.
  • We do not access your microphone, camera, contacts, or location.
  • We do not transfer data to third parties except as described above (Google Drive, Google Play, Premium verification, reviewer authorization, Cloudflare, and Firebase Crashlytics).

Android OS backup

Android's automatic backup is intentionally disabled in Oryvelle. Your data is protected through the explicit options in the app — Drive backup or manual JSON export — not through OS-level backup. This gives you full control over when and where copies of your data exist.

Data retention and deletion

On-device data: You can delete your notes individually from the journal screen, or clear all saved mixes from Settings. Uninstalling the app removes all locally stored data.

Drive backup data: If you have enabled Drive backup, your backup files remain in your Google Drive until you delete them. You can remove them through Google Drive settings under Storage → Manage storage → Oryvelle.

Google Drive authorization: Disconnect from Settings to revoke Oryvelle's Drive access. This does not delete your Drive backup files — you must delete those separately if you want them removed.

Google Play reviewer data: The reusable review code is not stored by the app or NekoDesk service. The encrypted reviewer session remains on the device until it expires, reviewer access is ended, or the app is uninstalled. Reviewer rate-limit state is short-lived and used only for security and abuse prevention.

Crashlytics data: Crash reports are associated with a randomly generated installation ID, not your identity. To request deletion of crash data, contact us at nekodesk.dev@gmail.com and we will submit a deletion request to Firebase on your behalf.

Children's privacy

Oryvelle is intended for adults aged 18 and over. We do not knowingly collect personal information from anyone under 18. If you believe a minor has provided personal information through the app, please contact us at nekodesk.dev@gmail.com and we will take steps to remove that information.

Your rights (EEA, UK, and California residents)

If you are in the European Economic Area (GDPR), United Kingdom, or California (CCPA), you have rights regarding your personal data, including the right to access, correct, or delete it. Because Oryvelle stores data locally on your device and does not transmit it to our servers, you exercise most of these rights directly through the app. For data held by Google (Drive backup or Google Play purchase data), exercise your rights through your Google account settings. For crash data held by Firebase Crashlytics or a request concerning the NekoDesk reviewer service, contact us and we will handle the request.

For any other requests, contact us at nekodesk.dev@gmail.com.

Security

Your journal database is encrypted with SQLCipher. Serialized preferences, saved mixes, Premium entitlement state, and reviewer session values are encrypted with a key protected by Android Keystore. Cached audio remains inside Android's app sandbox. Google authorization tokens stay in memory for the requested Drive operation and are not persisted by Oryvelle. Data sent to Google Drive, Google services, Firebase, or the NekoDesk service is transmitted over HTTPS. Oryvelle does not apply client-side encryption to Drive backups, so once uploaded the backup content is protected by your Google account and Google Drive's controls, not by a separate Oryvelle encryption key.

Changes to this policy

If we make material changes to this policy, we will update the effective date above and, where appropriate, notify you within the app. Continued use of Oryvelle after changes take effect constitutes acceptance of the updated policy.

Contact

Questions or concerns about this privacy policy: