Xiaomi Redmi MIUI-based smartphones allow deep customization, but even the thousands of themes in the official MIUI Themes store don't always meet individual preferences. Creating your own theme is a chance to stand out, adapt the design to your needs or even make money by putting it in the open, but the process requires not only creativity, but also technical knowledge, from working with graphic editors to modifying system files.
In this guide, weβll take you all the way from idea generation to final theme installation on your device, learn what tools youβll need to design icons, wallpapers and animations, how to properly package a theme into.mtz, and what hidden MIUI restrictions can block your theme when you upload it to an official store, and pay special attention to avoiding the bugs associated with the signature of themes and compatibility with different versions of firmware.
1.Preparation: What is needed to create a topic
Before you start designing, make sure you have everything you need.
- π± Xiaomi Redmi smartphone on MIUI 12 and above (for testing purposes). On older versions, some elements may have trouble displaying.
- π» Computer with Windows/macOS/Linux for graphics and theme packaging. Virtual machines are not recommended because of possible artifacts in rendering.
You will also need access to the unlocked bootloader on your Redmi if you plan to test the theme at a deep system level.Without this, some elements (such as download animations) may not apply. Official unlocking takes up to 72 hours and requires a Mi Account account to be linked.
β οΈ Warning: Installing unofficial themes on devices with a locked bootloader can result in a bootloop (loop reboot).Always test the theme on a backup device or through a Fastboot with rollback capability.
If youβre new to design, start with simple elements like wallpaper and icons. Complex animations and modifications to system fonts will require knowledge of XML and work with decompiling APK- files of MIUI.
2: Analysis of the structure of the MIUI theme: what can be changed?
The MIUI theme is a.mtz file containing resource folders, and its structure is highly regulated, and any deviation will lead to an error in installation.
| Component | Description | Difficulty of change | Skills required |
|---|---|---|---|
| Wallpapers. | Background images for desktop and lock. Supports static and live wallpaper (.gif,.mp4). | Low. | Basic skills in working with graphics |
| Icons (Icons) | Application and system utilities icons must be 192Γ192 px (MIUI 12+) or 144Γ144 px (older versions). | Medium | Vector graphics, work with layers |
| Color schemes (Colors) | The palettes for system elements: status bar, menu, notifications. Set in colors.xml. | Tall. | Knowledge of XML, understanding of color patterns |
| Animations (Animations) | The effects of transitions, downloads, unlocks..zip with frames or.json for vector animations. | Very high. | After Effects, Blender, Lottie |
| Systemic sounds (Sounds) | Melodies of notifications, alarm clocks, SMS. Format.ogg or.mp3 with a bitrate not higher than 192 kbps. | Low. | Basic audio editing skills |
The most common themes errors are resolution mismatch (like icons at 128Γ128 px instead of the required 192Γ192 px) and incorrect folder structure. Xiaomi's official documentation is closed, so focus on the disassembled themes from the MIUI Themes store.
3. Icon design: rules and tools
Icons are the face of your theme, they have to be uniform in style, but still be recognizable. MIUI imposes strict restrictions on the format:
- π Size: 192Γ192 px for MIUI 12β14, 144Γ144 px for older versions. Icons must be in.png format with a transparent background.
- π¨ Style: Minimalism (like iOS) or skeuomorphism (3D- effects) β pick one and stick to it for all icons.
- π Recognition: Avoid abstractions, for example, the Telegram icon should contain a paper airplane, and YouTube should contain a play sign.
- ποΈ Shadow and trim: Only soft shadow (blur: 2px, opacity: 20%) or thickness 1px is allowed.
To speed up the process, use templates from Figma Community or Adobe Illustrator. For example, the MIUI Icon Grid template automatically fits icons under the MIUI grid. If you draw from scratch, start with basic applications (Phone, Messages, Settings), then go to third-party ones.
π‘
Use the Photoshop or Figma Iconjar plugin to store all icons in one library and quickly replace colors or shapes for the entire collection.
Export the finished icons to your projectβs icons folder with the names corresponding to the application packages. For example, the icon for WhatsApp should be called com.whatsapp.png. For system icons, use the standard names from the MIUI documentation (for example, icon_phone.png for the Phone application).
4. Creation of wallpaper and animations: technical nuances
The wallpaper in MIUI supports several formats:
- πΌοΈ Static:.jpg or.png with a resolution of at least 1080Γ2340 px (for modern Redmi with an aspect ratio 20:9).
- π₯ Live wallpaper:.mp4 (maximum 10 seconds, bitrate 5 Mbps) or.gif (up to 15 MB).
- π Dynamic: Generative wallpaper based on time of day or weather (requires knowledge JSON).
For live wallpaper, use Adobe After Effects with the Lottie plugin to export animation to.json.This format weighs less than.mp4, and is better optimized for MIUI. Example of conversion commands:
lottie_convert.py --frame-rate 30 --scale 1.0 animation.json animation.zipUnlock and download animations are more complex. They are stored in the animations folder and require precise timing. For example, unlock animations must last exactly 1.2 seconds, otherwise the system will ignore it. Use MIUI Theme Previewer, a utility that shows how the theme will look on the device without installation.
β οΈ Warning:.zip animations should contain files named frame_001.png, frame_002.png, etc. Skipping frames or incorrect numbering will cause a theme to fail.
5. Build theme: packaging in.mtz format
When all the resources are ready, they need to be packed into.mtz, an archive that MIUI recognizes as a topic.
- Create a folder with your theme title (such as MyRedmiTheme).
- Inside it, place folders: MyRedmiTheme/ βββ icons/ # Icons βββ wallpapers/ # Wallpaper βββ animations/ # Animations βββ colors/ # Color schemes βββ preview/ # Preview for theme store
- Add a description.xml file with the theme metadata (name, version, author). Example: <theme> <name>My Redmi Theme</name> <author>YourName</author> <version>1.0</version> <compatibility>MIUI12,MIUI13,MIUI14</compatibility></theme>
- Use MIUI Theme Editor or Mtz Theme Builder for the final build. In the first case, the theme will be signed with the official Xiaomi key, which will increase the chances of publishing in the store.
If you use Mtz Theme Builder, check out Sign Theme. Without a signature, the theme will only work on devices with an unlocked bootloader. You need a Xiaomi key to sign, which is only given to trusted developers.
Icons have the right names and sizes|Wallpaper optimized for screen resolution|File. description.xml well-filled|Animations tested on the device|Theme signed (for official download)-->
The.mtz file can be installed in two ways:
- π² Local: Transfer the file to your smartphone and open through MIUI Themes β My themes β Import.
- π Through the Store: Upload the theme to the Xiaomi Theme Store platform (registration as a developer is required).
6.Testing and debugging: how to avoid mistakes
Even a perfectly assembled theme may not work because of the little things.
| Mistake. | Reason. | Decision |
|---|---|---|
| Theme corrupted | A damaged archive or incorrect folder structure. | Repackage theme with the compression option disabled (ZIP without compression). |
| Icons do not apply | Mismatch of file names with application packages. | Check the names through App Inspector (in Android Studio). |
| Animations twitch | Incorrect FPS or missed footage. | Use 30 FPS and check in MIUI Theme Previewer. |
| Theme is not set | Misconformity with MIUI. | Update the firmware or specify the correct compatibility in description.xml. |
For deep testing, use the ADB- commands, for example, to force the subject to:
adb shell am start -n com.android.themes/.activity.ThemePreviewActivity -e theme_pkg com.your.theme.packageIf the theme does not pass moderation in the official store, check:
- π Previews are unique (size 1080Γ1920 px).
- π Absence of borrowed items (e.g. icons from other topics)
- π Compatible with all devices on the list (test on Redmi Note 10, Redmi 9, POCO X3, etc.).
π‘
The official MIUI Themes store rejects themes with infringing elements (including brand logos in icons).Always create a unique design or use resources with a CC0 license.
7.Publishing and monetizing your topic
The finished topic can be published in:
- π Official Store MIUI Themes: Requires developer registration (free), but moderation takes up to 7 days. Download is available through the creators platform.
- π± Third-party platforms: XDA Developers, 4PDA, Xiaomi's customization Telegram channels. There's no moderation, but there's a smaller audience.
- π° Paid distributions: Sale via Gumroad or Patron (relevant for premium themes with unique animations).
Xiaomiβs official store offers rewards: for every 10,000 downloads, you get bonuses (from $10 to $100 depending on the theme rating), but payouts are only made to Alipay or WeChat Pay Chinese accounts. Use intermediaries to circumvent restrictions or register with the Hong Kong Mi Account.
To increase the popularity of the topic:
- πΈ Demonstration videos: Record the review on YouTube or TikTok with the hashtags #MIUI, #RedmiThemes.
- π A/B- Testing: Put out the 2 preview version and track which gets the most likes.
- π Updates: Add support for new devices regularly and fix bugs (this increases in-store rankings).
β οΈ Warning: Themes with modified system APK (e.g. modified SystemUI) will not be moderated in the official store. These topics are only distributed via XDA or Magisk modules.