GrapheneOS / os-issue-tracker

Issue tracker for GrapheneOS Android Open Source Project hardening work. Standalone projects like Auditor, AttestationServer and hardened_malloc have their own dedicated trackers.
https://grapheneos.org/
353 stars 20 forks source link

Cross-user-profile notification forwarding broken #3348

Open pxlkng opened 7 months ago

pxlkng commented 7 months ago

Notification forwarding appears to be broken, probably since the A14 QPR2 update. (Didn't notice immediately so can't say exactly since when)

My setup is:

(I have not tampered with any system apps at all, to also have mentioned that. Nothing disabled, no permission removed for system apps, etc.)

So I've always used the notification forwarding feature to get a notification in the secondary user profile when a new update is being installed, a restart is required, or after an update the App optimization is done and apps need restart. This always worked and they got forwarded to secondary user profile. (SUP from now on)

Now I've started to notice that those forwardings don't work anymore. More precise, it appears that SUP notifications do still get forwarded to Owner, but not the other way around. Owner notifications don't get forwarded to SUP at all anymore.

I've tested this with:

I've also disabled and re-enabled the notification forwarding option to see if that fixes it, without success.

Steps to replicate with task.org:

Pixel 7a 2024031400

thestinger commented 7 months ago

We're unable to reproduce so far.

thestinger commented 7 months ago

@pxlkng Please try Settings > System > Reset > App preferences reset for the secondary user.

pxlkng commented 7 months ago

@pxlkng Please try Settings > System > Reset > App preferences reset for the secondary user.

@thestinger Owner notifications still don't get forwarded.

mrtz6 commented 7 months ago

have you tried restarting your device?

thestinger commented 7 months ago

@pxlkng Can you make another secondary user and see if they get forwarded there?

pxlkng commented 7 months ago

@pxlkng Can you make another secondary user and see if they get forwarded there?

@thestinger Set up a new secondary user profile, didn't change any default settings, just went through setup wizard and repeated the reproduction steps from my issue.

Notifications still didn't get forwarded from Owner to SUP in the new secondary user.

TempUser13 commented 7 months ago

I personally have never had any notification forwarded between notifications with the forwarding feature enabled

thestinger commented 7 months ago

@pxlkng Can you see if they get forwarded from one secondary user to the other?

pxlkng commented 7 months ago

@thestinger Yes, they do get properly forwarded from SUP -> SUP

thestinger commented 7 months ago

@pxlkng Is Do Not Disturb enabled in some form in Owner? Unsure what could be wrong. I could understand it being broken for everyone but it seems it's just broken for you which is weird.

pxlkng commented 7 months ago

@thestinger DND is enabled neither in the Owner profile nor in the SUPs.

pxlkng commented 7 months ago

@thestinger Is this still being looked into currently? Otherwise, I would like to help and keep this alive; Is there any more information I can provide to help in finding the cause for this issue? Or is there anything else I could test or do?

Considering the circumstances I feel confident that this has to be some kind of regression introduced by the last updates, given that this feature worked perfectly fine for me in the past and I haven't changed anything in my configuration since it had worked. It could possibly be something breaking only on a specific setup with a regression introduced by QPR2, for example.

thestinger commented 7 months ago

No, it's not being looked into. It's only impacting one person and we have high priority Bluetooth and other regressions from QPR2 to work on, particularly Bluetooth which seems to be an AOSP issue not impacting the stock OS due to it using a different Bluetooth APEX version so it will be very hard for us to solve that.

HighIQGPUpeasant commented 6 months ago

Pixel 7 Pro, Build Number: 2024040900 Last update: April 5, 2024

I can second what pxlkng is describing with the cross profile notification bugs/inconsistencies, skip to 5) if you would like to hear where things went wrong (rest is to describe the context). Also seems like another user in this post had the same issue, since they also said pxlking's post here describes their problem (started their post 1 day before Pxlking's OP). https://discuss.grapheneos.org/d/11515-unable-to-get-cross-profile-notifications/3

Pixel 7 Pro, 512GB, just installed the last couple weeks, weekend project before making daily driver. I never tampered with system apps. First go to see how it worked without google with notifications, realized the futility, installed 3 google apps, had temporary success but then stopped working cross-profile, played with a million notifications settings, but you can eject all that from the replication process in your minds because for redundancy's sake and out of exhaustion I did factory reset, and after that, the only installations/settings changes post-factory reset were in this chronological order (no SIM card ever inserted since I got the device):

1) Owner admin boot-up configuration: selected turn off location services, everything else was typical/recommended, connnected to wifi on bootup

2) installed F-droid on admin profile, followed by Proton VPN on admin profile (worked), enabled cross profile notifications sharing.

3) created 2nd google-poison profile (all substeps except i. were within that profile in the following order), enabled cross profile notifications, plus phone call/sms, plus background running. i. From admin profile, I installed F-droid into the 2nd google profile. ii. Within 2nd google-poison profile, I installed and configured separate Proton VPN account (worked). iii. Immediately after VPN worked I installed the 3-app bundle of Google Play Services/Framework/Playstore from Graphene OS app repository. iv. Prompted by notification a min or two after, I enabled Google play services the background/battery permission it wanted, gave all three network permission on install (I plan to winnow away those permissions once this greater issue is resolved). v. Installed Aurora store, did the default/recommended options expect I only granted it installation permission (tutorials said all 3 or 4 or so permissions were necessary for aurora app store to open the main store page but I found that wasn't the case). Went for the Anonymous mode (secure one, not insecure), didn't encounter any issues using Aurora in the following step... vi. Installed Signal App from aurora store, didn't transfer/import contacts/data, just said sign up and used old account's number, SMS verification, etc..tested call function with friends iphone a foot away, and with google play services running, it worked very promptly (still on the 2nd google poison profile) with messages and signal voice call ringing. Also, unlike the pre-factory reset attempt when I tried to go without google play services, Signal DID NOT say/prompt/notify it needed to resort to its backup/native notification functionality. Promptness of signal notifications, notification that your thoroughly half-castrated google play services/compatibility layer was running together indicated to me as a GUI peasant that Google is almost certainly relaying the notifications, since they were cripplingly slow when, before my factory reset, I did not have google play services/framework/play store installed. vii. Installed protonmail from aurora store, email account separate from VPN account, notifications worked only about 15-45 seconds slower than signal probably cause of email provider delay, but once again affirmed google notifications were working since from what I've read protonmail from aurora or google play store will not send notifications without google play services

4) Returned to admin profile, tested to see if notifications would forward from 2nd Google-poison profile, worked with loud audible pings using your Graphen OS notification relayer, and even the signal calls sent Graphene OS notifications that were strangely but happily accompanied by the ringing noise until I signed into 2nd Google-poison profile to open signal app and answer, and I felt elated and vindicated by the factory reset, but then things started to clog-up/break down again....exhaustively described as follows...

5) I stress tested the cross-notification function by switching back and forth at least a half dozen times, seemed to work pretty well with consistently loud audible pings except sometimes signal calls with happily welcomed rings would create double "Graphene-OS" notifications to the admin profile didn't mind since that was hardly an issue, but then I went on to create a 3rd profile, but before that I'll mention I robotically configured the only the following on the admin profile at this point in the sequence: -DONE Turn off auto-set time -DONE Turn off wifi automatically when connection is lost after x minutes -DONE Turn off Bluetooth automatically when connection is lost after x minutes -DONE Enable Autoreboot Timeout after x hours -DONE Turned off print service None of these should have had any effect on notifications, but I mention them here just for redundancy's sake.

6) Created 3rd profile, enabled cross profile notifications, plus phone call/sms, plus background running, installed F-droid into 3rd profile from admin profile i. Installed ProtonVPN with 3rd separate proton account, worked (and the other ProtonVPN accounts continued to function too when I subsequently switched during this whole process) ii. Tested notifications (again this was in 3rd profile), and the smooth Signal call ringing notification function being pushed from 2nd google-poison profile (which had signal) wouldn't work.. I tried to see if it would still push it to the admin profile, and the bugginess started to spread like a cancer to admin profile which had been working as described up to and including step 5). Although perhaps it wasn't spreading per-say but just inevitability manifested with sequential profile swaps.

From here I should stress I truly didn't change any notification settings amid the profile shuffling (I was being very rigid and systematic like an electrician looking for a short this whole saga after throwing in the towel with factory reset the day prior). I went back and forth between profiles trying to replicate the smooth cross-profile notification functionality I had leading up to step 5) described above. The choir of consistent cross-profile loud audible pings (and greatly welcomed phone ringing!) I experienced leading up to step 5) gave way to an inconsistent/mostly patternless collage of muted mini notification icons next to OS time at top-left of screen, sometimes illuminating lock screens, sometimes not, sometimes making a noise like I wished, sometimes not, sometimes making signal call rings (this was very rare), and sometimes just more muted/low-key indications, and sometimes not offering any form of notification at all.

As a GUI-savy peasant, I really strove to find a rhyme or reason to the intermittent function, but every proposed theory or perceived pattern I tried to recognize wouldn't hold up to subsequent profile swapping. The only real pattern was that A) rebooting the phone and reentering 2nd google-poison profile then swapping back to admin, or B) ending session for google-poison profile, reentering google-poison profile, and then reentering admin or 3rd profile both seemed to make the buginess dissipate for maybe 1 or 2 subsequent profile swaps, and more often than not the failure rate/muted notification rate was lower when I swapped back into admin than it was for when I swapped into the 3rd profile. But I have to stress, the performance was by and large inconsistent and erratic, even though I didn't toggle any settings, and normally the act of toggling settings might otherwise explain the fluctuations in software/application/OS performance, which truly convinces me there is some underlying bug-iness.

I understand debugging and replicating is a pain-staking process, and I would just like to say how important I think this cross-profile notification concern is, since notifications, especially with email and messaging, are quite literally integral to what any form of telephone device is supposed to do (something that notifies you of a communication attempt from someone else). What's more, the profile-seperation also seems to be one of the most powerful privacy-enhancing capabilities the OS has to offer, a force-multiplier so to speak that gives someone the application-cloning power of up to 32 phones for the price of 1, and is perhaps the greatest selling point I could stress to friends and fmialy. I already have typed list of 50+ apps from my old phone to add one by one among around a dozen planned profiles I'm excited to leverage it for, once I can forecast what type of cross-profile notification functionality I should expect. I have literally not created or posted on a technical discussion forum in 5+ years, but because of the promise of this OS which I view as game-changing, and my burning desire to make it work, seeing Pxlkng's OP showed me this wasn't a one-off bug, and could indeed be a widespread problem that creates a make-or-break hurdle for adoption for many interested/open-minded GUI-savy peasants (I suspect most casual users just stick to one profile, and the power users maybe already jumped on it pre Pixel 7 or got newest and brightest Pixel 8s, or are willing to shoulder the burden of delayed/absent notifications for enhanced privacy). I don't know if its unique to Pixel 7/Pixel 7 Pro or not, but considering that's the Pixel 7 generation is most affordable and attainable newer one to be had with decent storage, I would definitely again like to stress that I really did feel this was worth the time to troubleshoot for a whole day, scour forums, create a Github account, write this mini-essay, and implore you to see if you can address this.

In the off chance it is of any convenience for any developers, since the privacy-seizing potential of the OS is important enough even for me to break my general online opsec and post a contact link for my Signal, below is a link for connecting with my signal username/account (just set it up instead of relying on phone number). No expectation for a personal reach out on that app, again just in case someone working on patches/updates has a question or two regarding minor details I neglected to highlight thus far, so that I can be of prompt assistance in some of you fixing it for the greater project. The fact that Pixelkng's OP similar notification issue just happened in the last ~35 days also suggests its a recent software bug, perhaps just affecting Pixel 7s, but not sure.

Regardless, I'll make it work, even if it means I have to switch back to provider phone calls for receiving unplanned calls from friends/family, since I'd rather have my phone company have those calls than dozens of apps and google pilfering my smartphone use data across all apps.

Thanks again to all you devs. Although I aced an intro comp-sci python course in college, I would literally jump off a bridge if I had to handle code for a living (entering a comp lab with sun bright in the sky and walking out in the dead of night just to find one line of code was wrong for half the time I squanders, soul-crushing for me). Appreciate this project more than hardly any software I can think of.

Also seems like another user with Pixel 7 had the same problem on March 15th through March 19th in this post: https://discuss.grapheneos.org/d/11515-unable-to-get-cross-profile-notifications/3

Signal Link: https://signal.me/#eu/xcG5xc47RwZVhnnfGjSRC7-PDhTGSyJoSBWnPvVA85ZU_A6kooBPO6K06ZvcTjwY Username: comm.24

antgig commented 4 months ago

I have also been having this issue for several months and I have the same setup as pxlkng with a mostly unused main profile and a user profile as my daily driver. Notification forwarding enabled for both.

Pixel 6a 2024052100

antgig commented 4 months ago

I was able to able to find a solution to the problem. In the main profile, I went to Privacy and clicked on 'Notifications on lock screen' then selected 'Show all notification content.' I then switched back to my other profile and eventually received a notification regarding the system updater.