SonaWave Privacy Policy
Scope and current status. This page is the dedicated privacy policy for the Google Play edition of SonaWave, developed by Shunzi Deng (邓顺子). The edition is being prepared for release. This revision describes the existing playback and SonaWave email / QR account services used as its foundation. Google Sign-In, Google Play in-app purchases and a Cloudflare Worker for purchase verification are not enabled in the current preparation version. We will update this policy to match the actual test or release version before those services are used.
The HarmonyOS, desktop and independently distributed Android editions have their own policies. Request account and data deletion.
1. The service and your audio libraries
SonaWave is a music and audiobook playback client. It does not host or supply a music or audiobook catalog. You choose your own local files or servers, including Navidrome / Subsonic, Emby, Jellyfin, fnOS Music, Audiobookshelf, WebDAV and SMB, and may authorize your own Baidu Netdisk.
Basic playback does not require a SonaWave account. When you connect to a source, credentials, library requests, playback reports, favorites and listening progress needed for that source are sent directly to the server or provider you select. Your audio files, library contents, server passwords and listening history are not routinely uploaded to our account server. Optional encrypted configuration transfer and the Baidu authorization relay are described below.
2. Information we process
Email and QR sign-in
If you choose email sign-in, we process your email address and a verification code to authenticate you and create or access your SonaWave account. Account identifiers, sign-in sessions and membership status let you use the same account across supported editions. Verification emails are delivered by Alibaba Cloud DirectMail. Without account sign-in, no email address is required for basic playback.
Device information and membership
Account, QR sign-in, membership, device-management and feedback requests may include an account ID, platform, device name (Android manufacturer and model) and a device-identifier hash. The app hashes Android ID with an application prefix on the device; if unavailable, it generates a random identifier. The raw Android ID is not sent to our server. The hash is still an identifier used to associate this device with your account; it is not treated as anonymous data. We use it to identify devices, enforce the applicable membership rules, revoke sessions and issue signed offline entitlement records.
Sign-in tokens and server credentials use Android system-backed secure storage. An offline membership record can contain an account ID, device hash, entitlement status and an expiry of up to 30 days. If an account already has membership from another edition, our server uses its existing entitlement and relevant purchase records to determine access. This revision does not enable a new Google Play purchase flow or promise that the planned Play device rules are already implemented.
Optional QR configuration transfer
When you approve another device's sign-in, you may also transfer your server list, credentials, settings, third-party API keys, radio list and custom source icons. The transfer option can be turned off. Configuration is encrypted on the sending device using X25519 key agreement and AES-256-GCM. Our relay receives ciphertext that it cannot decrypt. The received transfer payload is cleared after delivery; undelivered payloads expire with the QR request, normally within five minutes. QR sign-in records are cleaned up within one day. Public IP addresses are compared to warn about sign-ins from different networks.
Feedback, support and security
If you submit feedback or a report, we process its category, text, contact details, app / system version and device model, and account / device identifiers where available. Only include information you want us to receive. Our server and hosting providers can process request IP addresses, times and operational logs for security, troubleshooting and rate limiting. Visiting this policy also involves ordinary web requests to our hosting and content-delivery provider.
Data kept on your device
Local library indexes, playlists, playback and search history, downloads, caches, edited lyrics and settings are stored on your device. They may be sent to your chosen source when you explicitly use source synchronization, upload or backup features. Diagnostics are not automatically submitted to us; you can choose to copy and send a log for support. The Android app disables system cloud backup of its app data. Password-protected configuration exports are created only when you request an export and are saved where you choose.
3. Permissions and local-network features
We explain optional permission use when you start the relevant feature. You can deny or later revoke optional permissions; the corresponding feature may then be unavailable.
- Audio / storage access: to scan, play and manage audio you select. Existing preparation builds can request all-files access for adjacent covers, lyrics, CUE sheets and metadata sidecars, and for file editing. Those operations are local. The storage implementation and this description must be updated to the actual Play-compliant file access before a Play test version is submitted.
- Camera: only on the QR scanning screen. Frames are processed on the device and are not uploaded as camera images.
- USB DAC access: when you enable USB exclusive output, we ask Android for access to the DAC you connect. Its device name, vendor / product identifiers, audio capabilities, permission and connection status are processed on your device to connect and configure playback. USB diagnostics stay on your device unless you choose to submit a log for support. Choosing “Always use” or “Open by default” in Android's USB dialog lets the system manage the saved device association and access on reconnection.
- Optional microphone permission: only if a previously connected DAC cannot obtain USB access automatically when reconnected, you may try the optional compatibility setup under “Automatic access and reconnecting”. Some Android systems require microphone permission (RECORD_AUDIO) before offering “Always use” for a DAC that also has audio input. We request this permission only when you select that option. SonaWave does not use it to record sound and does not record, save or upload microphone audio. Declining does not prevent basic playback or require changing an automatic USB grant that already works. Devices that already receive USB access automatically do not need this extra setup. You can revoke the permission in Android's app-permission settings; whether a USB association is remembered is controlled by Android.
- Notifications, media-playback foreground service and wake lock: for playback controls and continued background / screen-off playback.
- Display over other apps: only if you enable floating lyrics and grant permission in Android settings. It displays lyrics; it does not capture screen contents.
- Network / multicast: for your sources, account services and local-network discovery / casting. When cast reception is on, the app announces its device name and description address on the LAN and accepts playback requests. It is normally off on phones and can be disabled in settings. Source discovery runs when you request it.
4. Service providers and optional integrations
We do not sell personal information. Information is disclosed only to provide the features you choose, to operate and secure the service, or where legally required.
Tencent Cloud / EdgeOne: our account service is hosted in mainland China and uses content-delivery / network infrastructure. These providers process the request and operational information needed to host and deliver it, under their privacy policy.
Alibaba Cloud DirectMail: receives your email address and verification-email content to deliver sign-in codes. See its privacy policy.
Google ML Kit barcode scanning: scans QR codes on-device. Google may receive SDK diagnostic / usage data such as device manufacturer and model, OS version, app package and version, per-installation identifiers, SDK version, API configuration, input / output sizes, feature events, performance and error metrics. We initialize it when the scanning feature is opened. See Google's Privacy Policy and ML Kit data disclosure.
Services configured by you are contacted for the feature you request:
- Lyrics / covers: your LrcApi-compatible service can receive song title, artist and album.
- Lyrics translation: the provider you select can receive lyric text, target language and your own API credentials. Supported providers include Baidu, Microsoft Azure, Tencent Cloud, Caiyun, Huawei Cloud, Google Translate, DeepL and an OpenAI-compatible endpoint you enter. Translation is off by default.
- Custom DNS: an enabled resolver receives the domain being resolved. Choices include Alibaba, Tencent, Cloudflare, Google and custom resolvers. This is independent of the not-yet-enabled purchase-verification Worker.
- fnOS FN Connect: receives the FN ID you enter to resolve your server's address; automatic address selection may repeat this when the network changes.
- Baidu Netdisk: receives authorized API requests for the SonaWave app-data folder, file playback / management, nickname and membership information. Device-code authorization and renewal pass through our server because the app secret stays on the server. Returned tokens are held on your device, not persisted as tokens on our server, and are excluded from configuration exports / QR transfers. You can revoke authorization through Baidu or remove the source.
- Existing preparation-build update checks: GitHub / GitCode receive version-check and installer-download requests, including the requesting IP address. These do not include your SonaWave account or device hash. Automatic checks can be disabled. The Play edition will use Play's update mechanism; this policy will be revised with that channel change before testing.
- Existing account avatar: if an account linked through the HarmonyOS edition has an avatar, loading it contacts its image host, which can see the request IP address. No server password or SonaWave session token is included.
The Android app does not contain advertising or a general analytics / automatic crash-reporting SDK. ML Kit's own diagnostic behavior is described above. If Play distribution adds installer protection or telemetry, we will confirm the enabled settings and update the disclosures for that build. We do not collect contacts, microphone recordings, precise location or a list of installed apps.
5. Storage, security and retention
Our account and support database is stored and processed in mainland China. Users outside mainland China send that data to China. Hosting / content-delivery providers can process network requests at their infrastructure locations, including delivery locations outside China. Source data is handled by the source or provider you choose, which may be in another country. Additional international processing, including any future purchase-verification relay, will be disclosed before use and handled under applicable data-protection requirements.
We use HTTPS for our account service, system-backed credential storage, encrypted configuration transfer and restricted access to service data. You control your own source's transport security; choose HTTPS and other secure protocols where available.
Account data is kept while your account remains active and is deleted or de-identified when a verified deletion request is processed, subject to the limited retention below. QR payload / sign-in retention is described in Section 2. Verification-code records have limited validity and are removed during account deletion. Offline membership records expire within 30 days. Feedback and security records are retained only as needed to resolve support issues, prevent fraud or meet legal duties, then deleted or de-identified. Any applicable transaction records may need to be retained for statutory periods, including at least three years where China's transaction-record requirements apply. Retained records are not used for advertising.
6. Delete your SonaWave account and data
You can request deletion of your account and associated data without installing or reopening the app. Email tlntindeng01@gmail.com with the subject “SonaWave account deletion”, preferably from the email address linked to your account. Identify the account you wish to delete. This release does not offer a separate data-deletion request workflow that keeps the account active. You may still contact us to exercise applicable privacy rights as described in Section 7. Do not send passwords, sign-in codes or payment-card details.
We verify account ownership before deleting another person's data and may ask for proportionate verification through an agreed support process. We reply within 15 working days and tell you about any necessary additional steps or retained data. You can also use Settings → Account & membership → Delete account in the existing app.
Account deletion revokes sessions and removes or de-identifies account profile information, email, device bindings, verification codes and associated entitlement data. Associated feedback / support information is handled as part of your verified request. Limited transaction, legal or anti-fraud records may be retained for the reasons and periods in Section 5. Deletion ends the account's access to membership; it does not itself make a refund request or cancel a separate store subscription. It does not delete your audio files or data on a server you own.
7. Your other choices
You can review your account and devices in settings, sign out, request correction of account data, revoke optional permissions and provider authorizations, or contact us to exercise applicable privacy rights. Withdrawing consent to the in-app privacy notice stops use of the app until you accept again. Data that remains only on your device can be removed through the app's controls, uninstalling or clearing app storage; independently exported files must be removed from the location you chose.
8. Children
SonaWave is not designed specifically for children. We do not knowingly collect children's personal information in violation of applicable law. If you are under the applicable age for independent consent, use account features only with a parent or guardian's permission. Contact us if you believe a child has provided information without the required permission so that we can investigate and delete it where appropriate.
9. Changes and contact
We keep this policy at this address and show its revision date. Before material changes to data handling take effect, we update this page and provide the in-app notice / consent required for the relevant version. Google Sign-In, Play Billing and any overseas verification service will be covered here before they process your data.
Developer and privacy contact: Shunzi Deng (邓顺子), SonaWave.
Email: tlntindeng01@gmail.com. We reply to privacy requests within 15 working days. You may also contact the competent data-protection authority or exercise other rights available under applicable law.