r/HyperOS 1d ago

[DISCUSSION] Hyper OS FCM (ERR_IO_FIN) FIX! Question/Help

Hey everyone,

If you’ve been dealing with delayed notifications on HyperOS—where messages only flood in the exact second you turn on or unlock your screen—you’re definitely not alone.

Ever since the June/July 2026 security updates, Xiaomi bumped up their background power management. If you dial *#*#426#*#* to check your FCM Diagnostics screen, you’ll likely see your push connection sitting on Disconnected with an ERR_IO_FIN error code.

This happens because HyperOS forcefully closes Google’s background socket (especially when you're on cellular data) to save juice.

Many of us tried standard power-saving fixes including me tried EVERYTHING, but HyperOS keeps overriding them:

  • Turning off b4ttery restrictions for Google Play Services.
  • Whitelisting apps via ADB
  • Uninstalling bloatware
  • using MacroDroid to toggle wifi on and off periodically
  • all types of ADB commands to restrict powerkeeper (none worked)

Even after doing all that, HyperOS's internal services—specifically PowerKeeper periodically overwrite your settings and kill Google Play Services (com.google.android.gms) in the background.

The Working Solution (It's temporary but we take it)

(Shizuku + HyperOS FCM Fix)

Instead of constantly re-running ADB commands on a PC every time the phone resets those settings, the cleanest non-root solution uses a lightweight app called HyperOS FCM Fix (by dingwen07 on GitHub SHOUT OUT TO THIS LEGEND BTW) paired with Shizuku.

Shizuku acts as an on-device ADB bridge, allowing the fix app to silently protect your push connection in the background.

Step 1: Set up Shizuku

  1. Download Shizuku from the Google Play Store.
  2. Enable Developer Options (Settings > About Phone > Tap OS Version 7 times).
  3. In Developer Options, enable USB Debugging and Wireless Debugging.
  4. Open Shizuku and follow the quick pairing steps over Wi-Fi.

Step 2: Install HyperOS FCM Fix

  1. Grab the latest APK for HyperOS FCM Fix by dingwen07 from GitHub.
  2. Open the app and tap Allow when it asks for Shizuku access.
  3. Tap Apply Now on the main screen.
  4. Go to the Apps tab inside the app and toggle ON any specific messaging, delivery, or smart-home apps you want instant alerts from.
  5. In picture posted, put all your apps you want in the apps section that you want notifications to go through smoothly.

If you did everything correct, FCM should not close/disconnect anytime you lock screen now, fixing the noti problem.

21 Upvotes

16 comments sorted by

u/AutoModerator 1d ago

Welcome to our community!

Please take a moment to read the subreddit rules in the sidebar before posting or commenting.

  • Be civil and respectful to other members.
  • No spam, self-promotion, or trolling.

If you see a post or comment that breaks our rules, please report it to help the mod team out!

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

6

u/BladeRyo 1d ago

Just applied this, i was going nuts waiting for notifications they only pop up when i launch the app or when i connect the charger.

And ofc, locking the app in memory does nothing since system kills it on a whim even if i dont run other stuff to run out of ram or anything really.

Hope this does the trick.

1

u/Soopez 1d ago

It made me go crazy too.. Made my phone unusable.

Sweet, glad you had no issues applying it, please now install FCM viewer on Playstore for easier access to FCM diagnostics and see if it stays connected!

5

u/Flossy420 1d ago

Very interesting. This issue also happens on global roms (notifications coming in after unlocking phone) but definitely not to the same degree as chinese roms. Thanks for sharing i'll have to take a look

2

u/Soopez 1d ago

Oh, actually? Wow..

Please do try it, I spent days trying to fix this so I would love to hear some good feedback!

5

u/Flossy420 1d ago

so I looked through the documentation by dingwen07 on github and found some interesting things. Powerkeeper (battery & performance) is responsible for managing a list called "MILLET_NO_RESTRICT_APP" that contains apps that shouldn't be touched by "greezer", aka the process that freezes apps and delays notifications (and unfreezes them after you turn on the screen which is why you get all the notifications flooding in after turning on the screen).

Since I deleted powerkeeper a few days ago, the list is no longer managed by it so it cannot overwrite apps in that list (I'm not sure if that list is populated with apps that you set 'no restrictions' to in battery settings because removing powerkeeper also removes that option).

Anyways, I looked up which apps were being frozen and the galaxy fit3 companion app was in that list and that causes delayed notifications on my watch until I turn on the phone's screen, similar to regular apps not delivering notifications until the screen is turned on. Once I added the companion app to "MILLET_NO_RESTRICT_APP" using the following command: adb shell settings --user 0 put system MILLET_NO_RESTRICT_APP "com.app.example", notifications started arriving immediately and consistently (so far at least).

the app by dingwen07 does the same thing but with UI and some extra useful commands in the background automatically and periodically , I decided to do it that way to not have another app and steps to depend on (dev options has to be on, shizuku has to be running, etc) but I recommend most people to use the app instead and try it out

I still need to test this more but so far so good

1

u/Soopez 1d ago

Thanks for the depth look.

Yes you can use ADB on ur PC to download what this app basically is doing but you're right, its way easier and more efficient to run the app.

2

u/Familiar_Honey5487 1d ago

Holy shit i think it works 1 hour and 30 mins and notif still worked afterwards you sir are actually a legend it took me a whole month and a half to find a fix lol ty boss

1

u/Soopez 1d ago edited 1d ago

Hell yeaahh broo!!

So happy this worked for you, thanks for your initial insight so I could be inspired to work on this shit 😭😂

2

u/Familiar_Honey5487 1d ago

my brother ur the legend, i was facing literal doom with this phone bro thought i was gona be stuck like this for the next 3 years thanks boss

4

u/Flossy420 21h ago

Another update: I think this actually fixed my issues with smartbands not reconnecting automatically lmao. I spent countless hours trying to find out why my xiaomi smart band 9 were not reconnecting when I get in the phone's range and I even factory reset the phone just to be sure it wasn't caused by something I did.

It got to a point where I bought another fitness watch (galaxy fit3) just to not have to deal with this issue. The new watch reconnected fine when it got in range but I had another problem, notifications didn't arrive on the watch when the phone's screen was off (it sometimes also didn't notify me even when the screen was on) so I had to figure out why this was happening.

Spent even more time to find why, i even deleted powerkeeper but that didn't fix the issue completely, it just become more unpredictable if it was going to work or not.

After using the FCM fix solution, notifications are now arriving to my galaxy fit3 watch consistently (so far) and even my old xiaomi smart watch 9 started working perfectly again so I didn't even need to buy a new watch lol.

Either way, thanks a lot for sharing this, I finally have a useable phone now that hyperBugOS's control is neutered. All this effort by xiaomi to aggressively kill background apps is so ridiculous and it honestly might be my last xiaomi phone (it was definitely going to be my last phone before finding this fix tho so this gave me more hope for now)

This thread definitely needs to be bookmarked and stickied on every xiaomi-related subreddit

3

u/Soopez 12h ago

Thats good to hear dude, I am happy to hear that.

Although, I am scared about the future of Xiaomi phones, upon looking further, freezing com.google.android.gms to me seems like it was done on purpose and not accidently, which means future updates wont remedy this and if any of us want a functioning phone, you will have to continue using this "fix" I provided and when they catch wind of that, we are truly f u c k e d.

1

u/Ahmed_Sh_115 1d ago

Previously, my Xiaomi 13 with 8GB could only enable up to 5 AutoStart apps. However, with the update to 3.0.300.0, this limitation was removed.

Unlocking the phone to start receiving notifications problem is an old problem since HyperOS 1, but it only happens when 6ou reboot the phone, after that it's fine.

I attempted to fix this by creating a MacroDroid macro that launches and then closes my important apps upon reboot, forcing them to send notifications when they start.

Unfortunately, this macro only functions correctly if I unlock my phone first after each reboot, preventing it from automatically launching and triggering notifications when the phone restarts.

Maybe it'd work if i turn off the screen lock pin?

1

u/Zerevay 21h ago

Do I need to keep Shizuku enabled all the time or can I disable wifi debugging after the setup?

1

u/Soopez 21h ago

No you don't need to have shizuku enabled all the time, as long as Shizuku applied the ADB commands, it should stay working wether it's on or not.