Add firmware 1.5.6 support - #3
Open
noon-at-cgn wants to merge 1 commit into
Open
Conversation
Patches NotificationManagerService (classes2.dex inside services.jar) to remove all notification-filtering mechanisms present in Viwoods firmware 1.5.6: 1. checkDisqualifyingFeatures(): removes the XOR inversion that inverted the areNotificationsEnabledForPackageInt() result, which caused non-whitelisted apps to be silently suppressed. 2. PostNotificationRunnable.postNotification(): forces the POST_NOTIFICATIONS permission check result to true, bypassing the per-app whitelist enforced via the Android permission system. 3. enqueueNotificationInternal(): replaces the ALLOWED_PKGS hardcoded set check with an unconditional goto, bypassing the eink-specific package whitelist that blocked non-approved apps at the entry point. 4. enqueueNotificationInternal(): also bypasses a separate hardcoded block that special-cased and dropped notifications from com.google.android.gms / com.google.android.apps.wellbeing before reaching the ALLOWED_PKGS check — a limitation still open even in the 1.3.8/1.4.0 patches. Standard Android per-app notification settings (isRecordBlockedLocked) are preserved so users can still disable individual apps in Settings. Also fixes post-fs-data.sh, which was chcon'ing a services.jar path that was never actually created (missing the mkdir/cp step), and adds service.sh to whitelist all installed apps from battery optimization at boot so backgrounded apps aren't killed before they can receive push notifications. Verified on-device: notifications now arrive for previously-blocked apps, confirmed via logcat (no more "eink project,Blocked notification" entries) and live testing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
NotificationManagerService(classes2.dexinsideservices.jar) to disable notification blocking on Viwoods AiPaper firmware 1.5.6, following the same three filter points identified for 1.3.8/1.4.0 (checkDisqualifyingFeatures,PostNotificationRunnable.postNotification,enqueueNotificationInternalALLOWED_PKGS), located by instruction pattern since offsets shift per firmware build.enqueueNotificationInternalthat hardcodes rejection ofcom.google.android.gms/com.google.android.apps.wellbeingnotifications before theALLOWED_PKGScheck is even reached — this was left as an open limitation in the 1.3.8/1.4.0 notes.post-fs-data.sh: it was chcon'ing$MODDIR/system/framework/services.jar, a path that was never created (missingmkdir -p+cpstep), so the SELinux fix was silently a no-op.service.shto whitelist all installed apps from battery optimization at boot, so backgrounded apps aren't killed before they can process push notifications.module.propandREADME.mdfor 1.5.6.Test plan
adb logcat | grep einkthat the "Blocked notification from package" log no longer fires