Files
notifications-master/README.md
T

2.1 KiB
Raw Blame History

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.

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

./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.