Xiaomi Mi box 3 (xiaomi-once)
![]() xfce4 on mi box3 | |
Manufacturer | Xiaomi |
---|---|
Name | Mi box 3 |
Codename | xiaomi-once |
Released | 20XX |
Category | testing |
Original software | Android TV |
Original version | 6.0.1 |
Extended version | 9 |
Hardware | |
Chipset | Amlogic S905X-H |
CPU | Quad-core 1.5 GHz Cortex-A53 |
GPU | Mali-450 MP3 |
Display | HDMI |
Storage | 8 GB |
Memory | 2 GB |
Architecture | aarch64 |
USB Networking | |
---|---|
Flashing |
Broken |
Touchscreen |
Unavailable |
Display | |
WiFi |
Works |
FDE | |
Mainline | |
Battery |
Unavailable |
3D Acceleration | |
Audio | |
Bluetooth | |
Camera |
Unavailable |
GPS |
Unavailable |
Mobile data |
Unavailable |
SMS |
Unavailable |
Calls |
Unavailable |
USB OTG / USB-C Role switching | |
NFC |
Unavailable |
Accelerometer |
Unavailable |
---|---|
Magnetometer |
Unavailable |
Ambient Light |
Unavailable |
Proximity |
Unavailable |
Hall Effect |
Unavailable |
Barometer |
Unavailable |
Power Sensor | |
Keyboard |
Unavailable |
---|---|
Touchpad |
Unavailable |
USB-A |
Unavailable |
HDMI/DP | |
Ir TX | |
FOSS bootloader |
Works |
Contents
Maintainer
Users owning this device
Note about the stock uboot
Android 8/7/6's uboot
It can be intercepted when it is booting.
It will load the script aml_autoscript the root of usb stick or boot recovery.img (a android recovery mode image) from the root of usb stick when the android and the recovery mode isnt bootable.
Android 9 uboot
It cant be intercepted when it is booting.
It will not load the script aml_autoscript the root of usb stick or boot recovery.img (a android recovery mode image) from the root of usb stick when the android and the recovery mode isnt bootable.
Downgrade from android 9 to 8
There are a guide for Downgrade from android 9 to 8 Downgrade from android 9 to 8 in https://forum.xda-developers.com/t/mi-box-3-mdz-16-ab-downgrade-android-9-pie-to-android-8-oreo.4194075/.Howerver the method that used in the guide may not work on some mi box 3 . If that method did not work on your Mi box 3 , then you can try the another method that made by exkc
0. Found a usb stick , plug it into a pc and Format it as fat32
1. Dowload this zip https://mega.nz/file/gh0xCCrR#ctdPivezVFNAuMLq19eOepO1LHJCfVNhowmZz7Fx87s
2. Extact update.zip and xiaomi_update from the zip file and put it as the root of usb stick
3. Extact recovery.img from update.zip and put it as the root of usb stick
4. Unplug the usb stick from PC and DO NOT PLUG IT IN TO MIX BOX 3
5. Power on the mi box and boot it into reovery mode
7. Wait util you saw the reovery mode boot up and plug into usb stick
6. Select Apply update fro EXT in the reovery mode
7. Select from udisk
8. Select update.zip
9. Wait util it has flash the zip
10. After reboot you should saw the android 8 uboot has been flashed to the mi box but the android 8 didnt flashed into the mi box and android 9 is not bootable for the uboot so the android 8 uboot will boot from the reovery.img at the root of the usb stick.
11. The recovery will started to load the file xiaomi_update when it boot. After the it has loaded file , it will started install the android 8 from the update.zip file and it will reboot few time during process(It will show you a progress bar . a text that said upgrading system and a logo via the display ) .
12. After step 11 The android 8 will started boot for it fisrt time and it will failed to boot due to the android 9 userdata isnt compatible with android 8.
13 . After failed to boot. The android 8 will reboot into a recovey menu that have text that said "Cannot load Android system. Your data may be corrupt. If you continue to get this message, you may need to perform a factory data reset and erase all user data stored on this device.".
14. Select Factory data reset from the menu.
15. Select yes from the menu.
16. Done
Installation
![]() |
WARNING: Those step wont work if you are running android 9 |
![]() |
WARNING: DO NOT PLUG multiple usb stick to the tv box when it boot. |
![]() |
WARNING: DO NOT PLUG usb stick that had pm os installed to the tv box when it boot into android because the android will destroy the file permission of the pm os that in the usb stick. |
Only installing to a usb stick works currently.
Use pmbootstrap to build your own image, like so:
$ pmbootstrap init
$ pmbootstrap install --sdcard=/dev/sdX # change 'sdX' with the path of your usb stick
After you created the image, then connect to the mi box via UART.
Next Intercept uboot from booting
Then you should get a shell from uboot.
![]() |
By default the uboot will run the command that is saved in bootcmd environment variables when it got powered on.
Therefore xiaomi have store the command for booting Android tv in the bootcmd environment variables.Those command at below will change the bootcmd environment variables to make pm os boot automatically when the box got powered up.Those command at below also will back up the stock bootcmd environment variables into bootandroid environment variables so you can still boot into android by intercepting the uboot and run this command run bootandroid |
After then , Run those command to modify the default booting behavior:
once# setenv bootandroid ${bootcmd}
once# setenv bootcmd "usb start;ext4load usb 0:1 ${loadaddr} s905_autoscript;autoscr ${loadaddr}"
once# saveenv
Next run the command reset
to reboot the mi box
Recover back to the default booting behavior
Run those command :
once# setenv bootcmd ${bootandroid}
once# setenv bootandroid
once# saveenv