After so many attempts at learning how to flash my Xiaomi android devices on Mac OS X, I finally succeeded. It's pretty easy but you have to be a bit tech savvy to apply it to most android devices out there.
Download and extract MAC OS X Android ADB Fastboot Drivers.
Open the extracted folder and then drag and drop ADB-Install-Mac.sh into the Terminal window. Enter your password and the android fastboot drivers for Mac OS X will be automatically installed.
Extract the fastboot files for your android device and pay attention to the flash_all.bat or flash_all_except_data_storage.bat file. For this tutorial, I'll be flashing the Redmi Note 2. These files contain commands for the files that need to be flashed.
As shown in the image above, the files that need to be flashed are system.img, cache.img, userdata.img, recovery.img, boot.img, secro.img, lk.bin and logo.bin.
Look for these files in the images folder and transfer them to the Mac folder of the Mac OS X ADB Drivers you extracted.
Go back to terminal and navigate to the Mac folder shown below. You might want to check out this guide on navigating folders via Terminal: Master the command line: Navigating files and folders.
Once you're in the Mac folder, copy and paste the following commands one by one to begin the flashing process. Paste one, hit the enter key, watch it install and when it's done, copy and paste in the next line etc,
./fastboot_Mac flash system system.img
./fastboot_Mac flash cache cache.img
./fastboot_Mac flash userdata userdata.img
./fastboot_Mac flash recovery recovery.img
./fastboot_Mac flash boot boot.img
./fastboot_Mac flash secro secro.img
./fastboot_Mac flash lk lk.bin
./fastboot_Mac flash logo logo.bin
The last command will reboot your device and you're good to go.
NOTE: The above commands were derived from the flash_all.bat or flash_all_except_data_storage.bat file so it might vary depending on what device you're trying to flash.
If you run into problems, feel free to leave a comment and also don't forget to let me know if it works for you or not.
UPDATE 19th February 2016: Here's an even faster way to go about it. Once you're done setting up, instead of running the above commands one by one, you could run them all at once by doing this.
Run chmod +x ./*.sh then ./flash_all.sh or ./flash_all_except_data_storage.sh
NOTE: It is expected that ./flash_all.sh will wipe the entire device while ./flash_all_except_data_storage.sh will leave your data intact during the flashing process. Either way just create a backup to be on the safe side. Also I haven't tested this on my Xiaomi device yet.