MIUINativeNotifyIcon restores notification icons MIUI dropped
Fix the native notification bar icon function abandoned by the MIUI development team.
At a glance
- What is it?
- MIUINativeNotifyIcon is an Xposed module written in Kotlin that restores the native notification bar icon on MIUI, where the vendor abandoned the feature. It hooks the System UI through LSPosed, covers MIUI 11 to 14 and HyperOS 1.0 to 4.0, and the author has announced the project will be retired in favour of a merged, cross-system replacement.
- Who is it for?
- Adopt MIUINativeNotifyIcon if you run a stock MIUI or HyperOS phone and want small monochrome notification icons back, and be prepared to move when the successor project lands. Skip it if you use a third-party MIUI build, since the author states problems on unofficial ROMs are not their responsibility, and skip it if you are below Android 9.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 3 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What the module restores and on which builds
The project description is short and specific: it fixes the native notification bar icon function that the MIUI development team abandoned. The README states that it repairs the native notification icon dropped by the MIUI team, and that it supports MIUI 11 through 14 as well as HyperOS 1.0 through 4.0. The baseline is Android 9 at the oldest end, via MIUI 11 or MIUI 12 and 12.5, with the author describing that as the minimum recommendation. There is a warning attached to earlier builds. The advice is to start from a MIUI 12.5 development build dated 2021-5-18 or later, because earlier versions may or may not work because of bugs in MIUI itself, and may show icons as black or white blocks. That is an unusually specific piece of guidance and it tells you the module was validated against a wide range of MIUI builds over time rather than only against the newest one. The topics list the repository as android and xposedmodule, and the primary language is Kotlin, with the project built on Gradle through a Kotlin DSL build script.
LSPosed only, and the scope that has to be set
The compatibility notes are the operational core of this project, and they are strict. The module supports LSPosed only, with the scope set to the system interface, and EdXposed is struck through as support that will stop at any time. The reason for the LSPosed requirement is straightforward: the module works by hooking the system UI process, and the hook target has to be named in the scope for LSPosed to apply it. The README also asks that you always keep the latest version of LSPosed, because older versions can result in the hook not taking effect, and if the newest version still fails, you should long press the system interface entry in the scope and choose to re-optimise. That last step is a real diagnostic and it tells you the failure mode you will hit is a hook that loads without effect rather than a crash. The second constraint is about the ROM. The author asks that you use the official MIUI version, and states that problems arising from third-party modified builds are not something the developer is obliged to solve or fix.
Where the builds come from, and which one to trust
The release section separates test builds from stable ones, and the channels are worth reading carefully. GitHub Actions CI produces automated test builds, and a Telegram CI channel carries the same automated test builds. GitHub Releases carry the formal, stable versions, and the Xposed-Modules-Repo project carries the stable versions as well. The module identifier used by that repository is com.fankes.miui.notify, which is the string you would see in a module list. The README is unusually firm about provenance: releases for this module are distributed only through the addresses listed there, and versions obtained from other non-official channels, along with any effect they have on you, are the responsibility of nobody involved. The badge set makes the same point in a different way, with a GitHub all releases downloads badge and a separate LSPosed downloads badge pointing at the Xposed-Modules-Repo entry. The distinction between the CI channels and the stable channels is the practical one. If you want the version that other users have tested, take a GitHub Release or the Xposed-Modules-Repo build, not the newest automated build pushed to Telegram.
The project is being wound down in favour of something broader
The migration announcement is the most consequential line in the README for anyone planning to use this module. The author maintains modules for both MIUI and ColorOS at the same time, finds maintaining two separate modules inconvenient, and has decided to gradually merge the two projects and decouple them into a new project, with the plan to adapt more systems and devices, for example stock and stock-like systems. Once the new project is settled, a link to it will be added here, at which point the author will stop maintaining this project and recommend that users move to the new one. The practical reading is that this repository is in maintenance mode for its remaining users. That does not make it unusable today, but it does mean the compatibility list will not grow with new MIUI or HyperOS releases, and the long-term home for this functionality is the successor project rather than this one. The project is also part of a broader effort, the ANIP project, which collects contributions to improve notification icons, and the exploration history behind the module is documented in a separate EXPLORE_HISTORY.md file.
Licence, language support and the licensing obligations that follow
The licence is the GNU Affero General Public License version 3, and the README spells out what that requires of anyone who distributes the software or a modified version. Every derivative work must use the same AGPL licence, the complete source code must be provided when distributing the software or its modified version, the original copyright notice and licence information must be retained, and no additional restrictions may be imposed on other people's free use of it. The copyright holder is Fankes Studio with a 2017 date.
Copyright (C) 2017 Fankes Studio([email protected])
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.The author encourages free distribution and improvement under the AGPL terms while asking that attribution be respected and the original author's name not be misused. A separate note says the software is free and driven by interest, for study and exchange, and that anyone who paid for it from a non-official channel may have been defrauded and is welcome to report it. There is also a dedicated privacy policy file in the repository, and a note that this project will not be adapted for internationalisation, with an apology to non-Chinese users.
Why a module like this exists at all
The reason to use this module rather than a general icon pack is that it changes what the system itself draws. A themed icon application replaces the icon you see in the app drawer or on the home screen, whereas this module restores the small monochrome symbol in the notification shade, which is the part of the interface MIUI stopped rendering. That distinction matters for anyone who cares about visual consistency of the status bar, and it explains why the module needs a system-level hook at all: there is no application-level API for a third party to reinstate a vendor's own notification icon rendering. The framework used underneath is YukiHook, which the README credits as the powering library. The cost of that choice is the constraint set described earlier, since an Xposed hook is only as stable as the framework it runs on and the system version it targets. And the reason the module may not be needed on a future device is that the vendor could restore the feature themselves, which is exactly the outcome the module's own existence argues against.
Where this module is the wrong choice
The wrong cases are numerous and the author names most of them. If your phone runs a third-party MIUI package, the module may not work and the developer explicitly declines to fix problems there. If you are on a stock Android device, or on a Samsung, ColorOS or another vendor's skin, there is nothing to restore and the module does nothing. If you are below Android 9 or on an MIUI build older than the recommended 12.5 of 2021-5-18, you risk a module that does not take effect or that renders icons as black and white blocks. If you cannot install LSPosed, and EdXposed is going away, you cannot run the module at all. And if you are the kind of user who wants a maintained module that tracks new system releases, the announced retirement points you at the successor project instead. A further practical limit is that this is a narrow fix for one visual detail, not a notification framework, and it will not change notification content, actions or behaviour.
Editorial conclusion
Adopt MIUINativeNotifyIcon if you run a stock MIUI or HyperOS phone and want small monochrome notification icons back, and be prepared to move when the successor project lands. Skip it if you use a third-party MIUI build, since the author states problems on unofficial ROMs are not their responsibility, and skip it if you are below Android 9. Before installing, check that you have the latest LSPosed with the System UI scope set, since older LSPosed versions are the most common reason the hook silently does nothing.
Frequently asked questions
What does the MIUINativeNotifyIcon module do?
It restores the native notification bar icon that the MIUI development team abandoned. The README states it supports MIUI 11 to 14 and HyperOS 1.0 to 4.0, on stock MIUI builds only, with a minimum of Android 9.
Which framework does MIUINativeNotifyIcon require?
LSPosed only, with the scope set to the system interface. EdXposed is marked as support that will stop at any time, and the README asks that you keep LSPosed on the latest version, since older versions can stop the hook taking effect.
Where should I download MIUINativeNotifyIcon from?
Only from the channels listed in the README: GitHub Releases and the Xposed-Modules-Repo project for stable versions, and GitHub Actions CI or the Telegram CI channel for automated test builds. The module identifier in the Xposed-Modules-Repo is com.fankes.miui.notify.
Is MIUINativeNotifyIcon still being developed?
The author has announced that the MIUI and ColorOS modules will be merged and decoupled into a new project, and that maintenance of this project will end once the new one is ready, with users advised to move to it. The last push to the repository was on 2026-10-20.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/fankes-miuinativenotifyicon)Was this useful?