Privacy-First Android Local Notification History & Media Archiving Application (NotiStar-Style Background Resilience)
| Riwayat Notifikasi | Aturan Aplikasi | Detail Notifikasi | Pengaturan & Retensi |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
NotifPlus adalah aplikasi pencatat dan pengarsip riwayat notifikasi lokal (local notification history) untuk perangkat Android dengan standar keamanan dan privasi tingkat tinggi (Zero-Internet Privacy & DevSecOps Best Practices) serta keandalan penangkapan latar belakang tanpa jeda seperti Samsung NotiStar.
Seringkali pesan atau notifikasi penting diubah, dihapus, atau ditarik oleh pengirim pada aplikasi perpesanan (misalnya WhatsApp, Telegram, dll.), atau tidak sengaja terhapus dari panel notifikasi sistem. NotifPlus menangkap setiap peristiwa notifikasi yang masuk melalui NotificationListenerService secara immutable snapshot, sehingga riwayat pesan awal beserta lampiran medianya tetap tersimpan secara aman di penyimpanan privat perangkat.
- Zero Internet Permission: NotifPlus tidak meminta ataupun mendeklarasikan izin akses internet (
android.permission.INTERNET). Data notifikasi Anda tidak akan pernah keluar dari perangkat. - App-Sandboxed Storage: Database SQLite (Room) dan file lampiran media disimpan di penyimpanan internal privat (
filesDir), serta dikecualikan dari Android Cloud Backup (allowBackup="false"). - No Log Leaks: Konten notifikasi sensitif tidak pernah dicetak ke log sistem (
Logcat). - Biometric Security: Dilengkapi proteksi autentikasi biometrik bawaan (Fingerprint / Face Unlock).
Untuk mengatasi pembunuhan proses agresif oleh sistem operasi OEM (seperti Samsung One UI, Xiaomi MIUI/HyperOS) dan Doze Mode pada Android 13+:
- Self-Healing Rebind Engine: Mendeteksi hilangnya koneksi binder dan secara dinamis memulihkan
NotificationListenerServicemenggunakanrequestRebind()dan pemulihan komponenPackageManager. - Boot & Package Update Auto-Recovery: Menggunakan
BootCompletedReceiverdenganRECEIVE_BOOT_COMPLETEDdanMY_PACKAGE_REPLACEDagar pemantauan langsung aktif kembali saat ponsel dinyalakan ulang. - Battery Optimization Handling: Integrasi langsung dengan
REQUEST_IGNORE_BATTERY_OPTIMIZATIONSuntuk mencegah sistem mematikan penangkapan notifikasi di latar belakang. - Resilient Payload Parser: Perlindungan terhadap crash saat mengekstrak Parcelable / Bundle yang berukuran besar atau memiliki format proprietary OEM.
- πΈ Immutable Notification Snapshots: Setiap perubahan notifikasi (diedit, diganti, atau dihapus) disimpan sebagai snapshot terpisah yang tidak dapat ditimpa.
- πΌοΈ Media Attachment Extractor: Mengunduh dan mengarsipkan gambar/media lampiran notifikasi secara otomatis sebelum notifikasi aslinya hilang.
- π Pencarian & Pemfilteran Real-Time: Cari notifikasi dengan debouncing cepat berdasarkan teks, nama aplikasi asal, rentang waktu, atau status lampiran.
- π§Ή Retention Lifecycle & Automated Cleanup: Pengaturan masa retensi arsip (7 hari, 30 hari, 90 hari, atau permanen) yang dibersihkan secara berkala menggunakan Android
WorkManager. - β‘ Per-App Auto-Dismiss Rules: Opsi untuk otomatis menutup notifikasi asli per-aplikasi setelah notifikasi berhasil tersimpan di NotifPlus.
- π Biometric App Lock: Mengunci akses ke riwayat notifikasi menggunakan sensor biometrik perangkat.
- π¦ Export & Archive Transfer: Ekspor riwayat notifikasi yang sepenuhnya dikendalikan oleh pengguna.
Aplikasi ini dibangun menggunakan arsitektur modern Android (Clean Architecture + MVVM):
| Komponen | Teknologi / Library |
|---|---|
| Language | Kotlin 2.0.21 |
| Build System | Gradle 8.9 / Android Gradle Plugin (AGP) 8.7.3 (Kotlin DSL) |
| Min / Target SDK | Android 10 (API 29) / Android 15 (API 36) |
| UI Framework | Jetpack Compose (BOM 2024.12.01) + Material 3 |
| Icons & Design | Material Icons Extended |
| Architecture | Clean Architecture (Domain, Data, Presentation, UI, Service) |
| Dependency Injection | Dagger Hilt 2.53.1 + Hilt Navigation Compose + Hilt Work |
| Database & ORM | AndroidX Room 2.7.0 (KSP, Room Paging, Migrations) |
| Preferences | AndroidX DataStore Preferences 1.1.2 |
| Background Tasks | AndroidX WorkManager 2.10.0 |
| Paging | AndroidX Paging 3.3.5 |
| Image Loading | Coil Compose 2.7.0 |
| Security / Biometrics | AndroidX Biometric 1.1.0 |
| Serialization | Kotlinx Serialization JSON 1.7.3 |
| Testing | JUnit 4, Google Truth, Kotlinx Coroutines Test, Espresso, AndroidX Test Core |
| DevSecOps & CI/CD | GitHub Actions, Gitleaks Secret Scanning, Android Lint SAST |
NotifPlus/
βββ .github/
β βββ workflows/
β βββ devsecops-ci.yml # Automated Build, Test, Lint & Secret Scanning
βββ app/
β βββ src/
β β βββ main/
β β β βββ java/com/notifplus/
β β β β βββ data/ # Room Database, DAOs, Entities, Repositories
β β β β βββ di/ # Hilt Dependency Injection Modules
β β β β βββ domain/ # Models, UseCases, Repository Interfaces
β β β β βββ presentation/ # ViewModels (History, Detail, Settings, Access)
β β β β βββ service/ # NotificationCaptureService, BootReceiver & Workers
β β β β βββ ui/ # Jetpack Compose Screens, Components, Theme
β β β βββ res/ # Drawables, Strings, XML Data Rules
β β β βββ AndroidManifest.xml
β β βββ test/ # Unit Tests (JUnit & Truth)
β βββ build.gradle.kts
βββ docs/ # Device Screenshots & Previews
βββ gradle/
β βββ libs.versions.toml # Version Catalog
βββ .gitignore # Android & DevSecOps Best Practices Ignore Rules
βββ PRIVACY.md # Disclosure Kebijakan Privasi
βββ SECURITY.md # Kebijakan Keamanan & Pelaporan Kerentanan
βββ README.md # Dokumentasi Proyek
βββ settings.gradle.kts
- JDK 17 (disarankan Eclipse Temurin atau OpenJDK 17).
- Android Studio (Koala / Ladybug atau versi yang lebih baru).
- Android SDK dengan platform API 36 (Build Tools 34/35).
- Perangkat fisik atau Emulator Android dengan Android 10 (API 29) ke atas.
-
Clone Repository:
git clone https://github.com/Adrian463588/NotifPlus.git cd NotifPlus -
Jalankan Unit Test:
# Windows (PowerShell) .\gradlew.bat test # Linux / macOS ./gradlew test
-
Build APK (Debug):
# Windows (PowerShell) .\gradlew.bat assembleDebug # Linux / macOS ./gradlew assembleDebug
File APK hasil build akan berada di
app/build/outputs/apk/debug/app-debug.apk. -
Install ke Perangkat / Emulator via ADB:
adb install -r app/build/outputs/apk/debug/app-debug.apk
-
Aktivasi Izin Akses Notifikasi (PENTING):
- Buka aplikasi NotifPlus di perangkat Anda.
- Ketuk banner "Akses Notifikasi".
- Aktifkan toggle untuk NotifPlus pada pengaturan sistem.
Repositori ini menerapkan siklus DevSecOps otomatis melalui GitHub Actions:
- Secret & Credential Scanning: Menggunakan
Gitleaksuntuk mendeteksi kunci API, token, atau kredensial rahasia. - Static Application Security Testing (SAST): Menjalankan
Android Lintuntuk mengevaluasi celah keamanan, konfigurasi manifest, dan performa kode. - Automated Unit Testing & Build Validation: Menjalankan seluruh rangkaian pengujian unit test dan memastikan build APK berhasil pada setiap commit di branch
main.
Aplikasi ini dilindungi di bawah kebijakan privasi lokal. Untuk informasi lebih lanjut mengenai penanganan data notifikasi, silakan baca PRIVACY.md dan SECURITY.md.
Dibuat oleh Adrian Syah Abidin



