MIUI ROM - A Complete Guide


fusingblackrose

Members
Nov 28, 2010
520
55
***MIUI - A Complete Guide***
Pronounced: My UI


MIUI: What is it?​

MIUI is a custom ROM made for selected Android devices. Developed in China, it is a very tightly kept, closed-source project that, with the help of the leading developers on this website, has managed not only to receive a copy of, but also translate the entire thing into a fully english counterpart, and even gone so far as porting from one device to a total list. As time past, the list grew, and the ROM has evolved significantly, from going to a custom ROM to a developed, fully synchronized beautiful Operating System for your device. Whether it be the Nexus S, Motorola Milestone, or HTC Evo 4G, MIUI is one of the fastest, most stable ROMs out there.

Important Things to Know about MIUI

4G: Currently there is no 4G/Wimax support for MIUI. Please check back to the forum for updates on this.

Gingerbread (2.3+): Recently, MIUI has switched to Gingerbread, Android's most recent software update for most android devices. Most of the devices on MIUI don't officially run Gingerbread, but the Devs have managed to get most of the phones on here to run it.

App Drawer: The most noticable thing you'll come to notice when you first switch to MIUI is that there is no app drawer. Why? Probably because the developers felt the need to remove it because of it's lack of function. The implementation of one will probably not happen, but this can be worked around by downloading a different launcher or using the built in "folders."

MIUI and "Orchis": There are recent system updates to MIUI, dealing with the general "Orchis" theme. Personally, this "System Theme" really tied together MIUI as a whole, putting together the same general colors, and changing most of the standard MIUI apps to suit the theme. There are two types of this, the "Light" Orchis (As seen near the end of Froyo (2.2+) development) and the "Dark" Orchis (Redesigning the Gingerbread (2.3+) development). Most people on here have no problem with the Light-to-Dark switch, but a new controversy has arisen, claiming that it is too "iPhone-like."

and, last but not least, the forum.

miuiandroid.com: The (english) MIUI forum is the reflection of the parent forum, MIUI.com, or MIUI.cn (it's the same website). Here (yes, right here) is where you will find all you need to get you up and running on MIUI, including top-story news, ROM Development, and even themes and skins!

Well, that's MIUI in a nutshell. Overall, this has got to be the BEST ROM you could ever get out there. But it's not all a one-man show. All thanks go to the MIUI Devs here, over in China, and all the people who strive to make this better. In this ROM Guide, you will find all you need to get you up and running in the world of MIUI.
 
Great info! Thanks for doing this, fusingblackrose. I would just clarify that ROM does stand for Read Only Memory, but in the context of android/rooting a ROM consists of prepacked system binaries that can be flashed onto a device. And .tgz is Tar GZip, a compressed tar file. A few others i can think of:
Amon_RA: A recovery software similar to ClockWorkMod. Used to flash roms, clear cache, create or restore nandroid backups

AOSP: Android Open Source Project. The open source version of android roms such as Cyanogen and MIUI are based on

PRL: Preferred Roaming List. on CDMA networks, this is a list maintained on the phone that dictates roaming towers to use when the carrier's towers are out of range

ADB Android Debugging Bridge. It is used to connect to your phone and access its shell, push or retrieve files from the phone, and more Part of the android SDK

SDK Software Development Kit. A grouping of tools used to develop and test applications for a given platform, such as android

Dalvik/Dalvik cache Dalvik is the virtual machine on top of witch android applications run. It takes the .dex files and executes them. The dalvik cache holds the .dex files contained in the APKs that make up an android application

Admins, this should be a sticky! :D
 
I'd add that "Root" is being used because of the Linux kernel, where "Root" is always a preset user with administrator rights.
 
Gonna update this soon to span not only commonly used words, but also give a general sense of what to/not to expect in MIUI.
 
You should probably add .mtz to that list, which I guess maybe stands for MIUI Theme Zip.

It's the files used for custom MIUI themes.
 
Common Terms
ADK: Android Development Kit, What people use to develop anything for the droid such as ROM's

Baseband: In communications and signal processing, the baseband describes signals and systems whose range of the frequencies measured from close to 0 hertz to a cut-off frequency, a maximum bandwidth or highest signal frequency; it is sometimes used to describe frequencies starting close to zero

Boot Loader: State in which the droid can be flashed from RSD with an appropriate .sdk file that reprograms the phone into a specific ROM or update. This is typically a last resort when the recovery screen cannot be reached to make a much simpler and less risky solution

Boot Loop: simply means something is preventing the phone from completeting it's boot cycle and is stuck between the boot animation and the unlock screen, creating a looped animation. This is often fixed by either reloading a Nandroid, or Reflashing a rom from the Boot Loader.

Brick/Bricked: Jargon for a completely unrecoverable device, (no more than a brick or paperweight)

Bug/Software Bug: an Error or flaw in software that produces a failure or enexpected/unwanted result. Typically created from incorrect code, this is why some ROMs are better and smoother running than others because certain developers have taken the time to input "perfect" code

Busybox: BusyBox is a single multicall binary that packages the functionality of most widely used standard Unix tools, BusyBox provides a fairly complete environment for any small or embedded system.

ClockworkMod: A recovery program that is often used to apply updates, ROMs, or create a back up or restore a backup file

De-odex: Apk files have respective odexes that devs use to supposedly save space. Deodexing means you convert it back to a .dex file and put it back inside the apk. This allows you to easily replace files (not having to worry about odexes), but the main point was to deodex services.jar so that you can change all text to different colors (such as the clock color to white) and to deodex services.jar, you need to deodex everything.

Dev/Developer: An individual that creates, or allters a file in such a manner as to advance the program

Flash/Flash Memory: a program technology that can be electrically erased and reprogrammed

Kernel: The govenor of the CPU usage and Battery output, one can upload certain Kernels to achieve greater performance speed of their device at the cost of some battery life

Root: Common word associated with giving a user "super user" access to their phones programming and other various aspects that would normaly not be possible, also known as "Jailbroken" for iPhone's

Nandroid/Nandroid Backup: A file typically created in the custom recovery program, such as SPRecovery, that is a carbon copy of whatever state your phone is in before a drastic change is made. the file then can be moved onto or off of the SD card for later use in case something should go wrong in the ROM or Update, or a Boot Loop occurs

OS: Operating system, I.E. Windows Vista or MAC or ANDROID

Overclocking: Speeding up the CPU past the factory presets to achieve a faster and more responsive device

ROM: Read Only Memory, a program used to make changes to anything from the look of the home screen, to icons to custom boot animation

RSD/RSD lite: Remote Software Download, Motorola's tool in flashing virtualy any type of program, (so long as its in .sbf form) to the Android OS

Shell or SSH: secure shell or ssh is a network protocol that allows data to be exchanged using a secure channel between two networked devices

SPR/SPRecovery: A recovery program that is often used to apply updates, ROMs, or create a back up or restore a backup file

Stock: Simply means an un altered state, such as when you first purchase your phone, or when you do a factory reset to "go back to stock 2.1"

SU: "Super user", or root permissions

Theme: A set of icons, backgrounds and app trays that change the ascthetics of the overall look of the droid and its applications

TUN/TAP: Refers to a network TUNnel, opperates within layer 3 packets, or ip packets. Packets sent by a system via a TUN/TAP device are delivered to a user-space program that attaches itself to the device. A user space program may also pass packets into a TUN/TAP device. In this case TUN/TAP device delivers (or "injects") these packets to the operating system's network stack thus emulating their reception from an external source.

Underclocking: Slowing down the CPU mainly to limit battery usage

.sbf: Summation Briefcase File

.apk or APK's: An .apk file extension denotes an Android Package (APK) file, an .apk file can be opened and inspected using common archive tools

.mtz: MIUI Theme Zip. This is the new theme format when installing themes on MIUI.

.tar: Similar to a zip file, a tar file archives multiple files into one file

.tgz: TGZ files are commonly used as install packages for Slackware Linux.

All credit go to Sam Fisher over at www.droidforums.net for this wonderful terminology list. Additions were made, but he has come up with most of these.

The Battery and Kernels
One of the most troubling things to deal with when flashing and rooting are kernels, and some of the terms that go with it.

So, what is a kernel? To put it as simply as I can think of, a kernel is what the phone manages its power from. it controls the power and battery on your phone. (Technically, I didn't think of that, so, props go to John T over at Yahoo Answers...gotta love Yahoo.)

Now that we have that covered, another area that needs being talked about is the various types of kernels. Found below are some of the major acronyms and their definition in the kernel world.

BFS - Brain f**k Scheduler (This deals with the app currently in the foreground.)

CFS - Completely Fair Scheduler (Unlike BFS, this deals with the entire system as a whole.)

SBC - Superior Battery Charging (Obvious definition, this deals with the rapid charging of a battery, and limit in other areas, such as longevity.)

NoSBC - No Superior Battery Charging (Opposite of SBC, this deals with longevity of a battery, while limiting fast and speeding charging techniques.)

HAVS - Hybrid Adaptive Voltage Scaling (This type of scaling changes the current draw needed for the current.)

NoHAVS - Static Voltage Scaling (This type of scaling keeps same current draw at all times. This, and HAVS are not seen often.)

These have to do with the Kernel, or the governor of the phone's operating system - battery life, processing, speed, etc. Developers of kernels use their knowledge to give the users of their kernels exactly what they want in their phone. Here are some of the most widely used kernels today:

Kernels (Lists and links will be updated upon request!)
  • Savaged-Zen
  • Tiamat
 
Flash Flash Flashing!

This section will deal mostly with flashing, or installing pre-bundled software onto you phone, including mods, language packs, and roms themselves.

First and foremost, the one thing you're going to hear from now on is the Nandroid concept (refer to the definition above). Basically, this is the first thing you should do before flashing anything, if you're not sure of what you're flashing just yet. Once you get the pattern down, and you're not flashing like crazy, you might not have to Nandroid each time. Hell, I don't. ;)

Currently, there are a total of three options that can be done to flash (or install) MIUI to your device:
  1. Download MIUI via the Website
  2. Download MIUI via ROM Manager
  3. Download MIUI via Updater (you must be on MIUI previously before using the Updater app!)

1.Downloading and installing MIUI via the website

For downloading via the website:

  1. Backup all data that is needed (phone logs, SMS, MMS, etc) using your favorite backup app
  2. Go to roms.miui.us
  3. Find your selected phone, and follow the prompts to download the ROM to your computer.
  4. Place the file in the SD card.
    - This can be done via FTP (File Transfer Protocol) or USB Connect.
    - Usually, it is placed in the root of the SD, for ease of access.
    - Make sure the file is for your phone, and that you do not unzip it, or it won't install. :p
  5. Boot into recovery by powering down your phone, and holding down the volume down button + the power key.
  6. Once in recovery, you must wipe your phone.
    - my suggestion, if coming from another rom, is to wipe these things:
    /data: this is where all your data is stored. SMS, Contacts, etc.
    /system: this is where the actual ROM is installed to.
    /cache: cache is like...cache. Lol
    dalvik-cache: ^^ :)
    - In most recoveries, you'll have to look around for the advanced wiping features. I'll add specific locations soon.
  7. After wiping what needs to be wiped, choose "install zip from SD card", or "flash zip from SD card", or whatever the option is.
  8. Let the installer unpack MIUI and put the files in place. Please leave your phone alone. It may not be as bad as messing up a radio install (more on that later) but it could still be dangerous to the phone.
  9. Reboot your phone.
  10. Congratulations, you now are running a fresh, new copy of MIUI!
    Additional steps:
  11. Download the backup App you used to back up your stuff and restore your data.
  12. Install any themes or mods you'd like (this is just like flashing a ZIP, except the only thing you need to wipe is cache!)


2.Downloading and installing MIUI via Rom Manager

For downloading via Rom Manager:

  1. Backup all data that is needed (phone logs, SMS, MMS, etc) using your favorite backup app
  2. If you haven't, go to the Market and install Rom Manager (free!)
  3. Select "Download ROM"
  4. Leave your phone while the download is being done.
    - This'll take from fifteen minutes to an hour depending on your wireless speeds and such.
    - You can use your phone while the download is going, or not, your choice really.
  5. Once completed, you will receive a notification. Click it.
  6. A dialogue box will pop up. There are three options:
    - "Back up existing ROM" will provide an entire back up the phone. Note that this is different than backing up your data.
    - "Wipe Data/Factory Reset" will delete all files from the /data partition in your phone. SMS, Contacts, stuff like that.
    - "Wipe Cache/Dalvik Cache" will do just that. :)
  7. After selecting your options, you will be asked if you can boot into recovery. Click "yes", and if ROM Manager asks for Root Permissions, click "Allow"
  8. The phone will automatically boot into recovery and install the ROM Please leave your phone alone. It may not be as bad as messing up a radio install (more on that later) but it could still be dangerous to the phone. Oh, if you are running Amon_Ra or TeamWin, you may need to install the zip manually by locating it at /clockwork/roms.miui.us.
  9. If your phone does not automatically reboot, reboot your phone manually.
  10. Congratulations, you now are running a fresh, new copy of MIUI!
    Additional steps:
  11. Download the backup App you used to back up your stuff and restore your data.
  12. Install any themes or mods you'd like (this is just like flashing a ZIP, except the only thing you need to wipe is cache!)

1.Downloading and installing MIUI via OTA Updater

For downloading via Updater:

  1. Enter the Updater application.
  2. Press Menu - Download Latest Update
  3. Updater will bring up a notification to back up your things. The Updater app doesn't wipe data, but you may use this as a precaution.
  4. The update will automatically download, install, and reboot.


The Art of the Wipe

When dealing with wiping, there's a specific type of wipe you should use for each type of situation you come across.

  • When switching from another rom to MIUI: Wipe data/cache/dalvik. If you do not do this, you will have problems.
  • When updating from one MIUI version to another: Wipe dalvik/cache (if you want, you can wipe data as well.)
  • When upgrading android versions (2.2 to 2.3): Wipe everything. VR Superwipe should do the trick.


The main use of wiping is to reduce the amount of FCs, or Force Closes, along with other errors:

  • Bootloops: Have you wiped data? This could be the problem.
  • Flashing Error: Did you download the right ROM for your phone?
  • Force Closes: Did you wipe correctly? Be sure to wipe appropriately!
  • Status Errors: This could be because of a multiple of items: Bad zips, wrong zips for your phone, bad recovery partitions, etc. Just depends on the status.
 
Frequently Asked Questions

Q: How do I turn on 4G on this ROM?
A: There is no 4G support on this ROM. There are MULTIPLE threads on this subject, so, please, don't add to that.


Q: How do I install this ROM?
A: I've made a complete guide on the ways to install this ROM. Check the posts above this one for more information.


Q: Where did my app drawer go?
A: MIUI does not use an app drawer. Please make use of the folders, as this issue will probably not be addressed


Q: How can I alphabetically sort my apps?
A: Within a folder, hit the "edit" icon, then choose "sort by name". As for outside folders, it is not possible.


Q: Will this ROM work on my phone?
A: Well that's a simple question, if you find your phone on the site, then it probably will work.


Q: How long will it take to port to [insert device]?
A: Please, do not ask this question. There will be no ETAs.


***ETAs on the following devices are not known:
  • HTC Evo 3D
  • HTC Sensation
  • Motorola Atrix 4G
  • Samsung Epic
  • Motorola Photon 4G
Q: How do I submit feedback to the MIUI team?
A: All feedback submissions can be addressed in the official English MIUI site, en.miui.com.


***This being said, most modifications, tips, and "wishlist" items can't be done by me or any other dev here, because MIUI is closed source. Yes, it is perfectly fine to have a wish list, and they will be noticed. But, please refrain from asking us if we can do some Rom modding implementations.

Q: Whoa! Why are all my Facebook contacts in my Contacts?
A: As of recently, I have managed to find a way to fix the Facebook contact problem:
  1. Uninstall Facebook for Android. This will remove the Facebook sync with your phone.
  2. Download and install "FriendCaster" or FriendCaster Pro from the Market.
  3. Under settings, sync your contacts with FriendCaster. I'll give detailed instructions later, but, it should be easy to find.
    That's it! Your Facebook contacts should only be showing if they are in your address book. If you want to keep Facebook:
  4. Reinstall Facebook from the Market.
  5. Choose "Don't sync with contacts" in the sync options.
  6. Press Home, go to Menu - Settings - Personal - Access Control.
  7. Hide FriendCaster from your applications.

Q: Where can I buy the Mi-One? Will it work on US carriers?
A: No, it won't. And no, they're only doing preorders now. There's only a SLIGHT chance that it will become international, due to the hefty lawsuits that it will get from Apple (obviously, since it is 60% Apple hardware). Updates will be posted on the main page.