Xiaomi Mi box 3 (xiaomi-once)

From postmarketOS
Jump to navigation Jump to search
Xiaomi Mi box 3
xfce4 on mi box3
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
Features
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
Sensors
Accelerometer
Unavailable
Magnetometer
Unavailable
Ambient Light
Unavailable
Proximity
Unavailable
Hall Effect
Unavailable
Barometer
Unavailable
Power Sensor
Misc
Keyboard
Unavailable
Touchpad
Unavailable
USB-A
Unavailable
HDMI/DP
Ir TX
FOSS bootloader
Works



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

Icon WARNING: Those step wont work if you are running android 9
Icon WARNING: DO NOT PLUG multiple usb stick to the tv box when it boot.
Icon 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.

Note 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


See Also

stock rom download

UARL