Skip to content

Add firmware 1.3.8 support - #2

Open
magcrider wants to merge 6 commits into
ScreenSensitive:mainfrom
magcrider:firmware/1.3.8
Open

Add firmware 1.3.8 support#2
magcrider wants to merge 6 commits into
ScreenSensitive:mainfrom
magcrider:firmware/1.3.8

Conversation

@magcrider

Copy link
Copy Markdown

Patches NotificationManagerService (classes2.dex inside services.jar) to remove all three notification-filtering mechanisms present in Viwoods firmware 1.3.8:

  1. checkDisqualifyingFeatures(): removes the XOR inversion that inverted the areNotificationsEnabledForPackageInt() result, which caused all 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.

Standard Android per-app notification settings (isRecordBlockedLocked) are preserved so users can still disable individual apps in Settings.

Also adds SELinux context fix to post-fs-data.sh (chcon) and ANALYSIS.md / INSTALLATION.md with patch documentation.

magcrider and others added 6 commits May 6, 2026 10:55
Patches NotificationManagerService (classes2.dex inside services.jar)
to remove all three notification-filtering mechanisms present in
Viwoods firmware 1.3.8:

1. checkDisqualifyingFeatures(): removes the XOR inversion that inverted
   the areNotificationsEnabledForPackageInt() result, which caused all
   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.

Standard Android per-app notification settings (isRecordBlockedLocked)
are preserved so users can still disable individual apps in Settings.

Also adds SELinux context fix to post-fs-data.sh (chcon) and
ANALYSIS.md / INSTALLATION.md with patch documentation.
- Add 1.3.8 to tested firmware list and requirements
- Document all three notification filter points patched in 1.3.8
- Note that each release targets a specific firmware version
Iterates all installed packages (system + user) at each boot and adds
them to the device idle whitelist and allows unrestricted background
activity. This ensures apps like WhatsApp can receive FCM push
notifications without being killed by Viwoods' aggressive power
management.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant