Files
notifications-master/README.md
T

55 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Notification Log
Notification Log is a private, non-root Android notification listener for API
3436. It keeps an encrypted local history of notification appearances, edits,
and removal reasons, including a distinction between an app cancelling its own
notification and a user dismissing it.
## Privacy and capture limits
The event log and copied image files are encrypted at rest with an Android
Keystore-backed AES-GCM key. Export is deliberately unencrypted only after the
user acknowledges a warning and chooses a destination through Android's Storage
Access Framework.
Android exposes standard notification extras such as title, text, big text,
inbox lines, messaging-style messages, and readable big-picture content. This
app copies a readable bitmap at post time when Android provides one. It cannot
reconstruct opaque custom `RemoteViews`, OTP content Android redacts, or image
URIs/Icons which Android does not allow it to load. Such images remain marked
as `[image]` without causing the text event to be lost.
The app declares `QUERY_ALL_PACKAGES` solely to implement the settings pages'
“all installed apps” list. A Play-distributed build must meet Google Play's
restricted package-visibility policy and provide the required declaration; a
future distribution variant may need a narrower app-selection flow.
## Background behavior
Android owns the notification-listener connection; this app has no polling,
scheduled job, alarm, or boot receiver. When one or more logging types are
enabled and notification access has been granted, Android binds the listener
again after device boot. When every logging type is disabled, the app disables
that listener component: it has no background service and does not start at
boot. Re-enabling any logging type re-enables and asks Android to rebind it.
## Notification update policy
Each platform notification key is tracked independently. Group summaries are
logged as their own platform notifications; the app does not invent extra group
events. Ongoing notifications are recorded when Android posts, updates, or
removes them, but are never treated as user-dismissible. Identical reposts are
ignored. With the default **Ignore routine updates** setting, standard
progress/chronometer notifications do not create edit rows; non-routine content
changes do. Disabling that setting records the updates as edits.
## Development checks
```bash
./gradlew test assembleDebug
```
The local Android test lab has been checked on AOSP API 34/35/36, Google APIs
API 35/36, and LineageOS API 35/36 using clean LSPosed snapshots. Root and
Xposed are not used by this application.