Security and privacy¶
Safety and privacy¶
Data flow on Android¶
flowchart LR
APP[Steady app] --> ENC[record encryption]
KEY[Android Keystore] --> ENC
ENC --> DB[app-private SQLite]
APP --> TOKEN[separate provider-token storage]
KEY2[separate Keystore key] --> TOKEN
Security boundaries¶
| Area | Protection |
|---|---|
| Tracking data | per-record AES-256-GCM in the app-private SQLite database |
| Keys | non-exportable in Android Keystore |
| Provider tokens | separate Keystore-backed storage |
| Companion memory | encrypted private file |
| Screenshots | blocked by default |
| App access | optional device-lock authentication |
| Android system backup | disabled |
Portable backups¶
Portable backups are encrypted with a key derived from the user's passphrase through PBKDF2-HMAC-SHA-256 and AES-256-GCM. The passphrase is not stored and cannot be reset. Before a complete restore, the app displays a summary and requires explicit confirmation.
Excel exports are readable analysis files and are intentionally not encrypted. The encrypted backup is the protected storage format.
What is intentionally not included¶
- no telemetry,
- no mandatory user account,
- no Steady cloud synchronization,
- no provider tokens in backups, logs or Excel,
- no Companion chats or local Companion memories in the normal tracking backup,
- no personal demo data in the repository.
Encryption protects data at rest. An unlocked, rooted or otherwise compromised device is outside this protection model. Data deliberately transferred to an external AI provider is also subject to that provider's retention rules.