# Notification Log Notification Log is a private, non-root Android notification listener for API 34–36. 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 ```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.