Xiaomi Mi TV Stick (xiaomi-aquaman): Difference between revisions
Line 131: | Line 131: | ||
==Installation== | ==Installation== | ||
===Installing pmOS to your disk=== | ===Installing pmOS to your disk=== | ||
{{warning|DO NOT PLUG multiple USB stick into the stick during boot.If you do have multiple USB stick pluged in druing boot , please make sure the usb 0 in u-boot is the pm os usb stick.}} | {{warning|DO NOT PLUG multiple USB stick into the stick during boot.If you do have multiple USB stick pluged in druing boot , please make sure the usb 0 in u-boot is the pm os usb stick.}} |
Revision as of 15:46, 23 February 2025
This device is supported as part of a generic port. Refer to Amlogic Generic TV Box (amlogic-tvbox) for installation instructions and more information. |
This means that it cannot be selected in pmbootstrap.
![]() | |
Manufacturer | Xiaomi |
---|---|
Name | Mi TV Stick |
Codename | xiaomi-aquaman |
Released | 2020 |
Type | set-top box |
Hardware | |
Chipset | Amlogic S805Y |
CPU | Quad-core 1.2 GHz Cortex-A53 |
GPU | ARM Mali-450 |
Display | Up to 1080p over HDMI |
Storage | 8GB |
Memory | 1GB |
Architecture | aarch64 |
Software | |
Original software | Android (TV) |
Original version | 9 |
Extended version | 10 |
FOSS bootloader | no |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | partial |
Generic port | Amlogic Generic TV Box (amlogic-tvbox) |
USB Networking |
Broken |
---|---|
Internal storage |
No data |
SD card |
No data |
Multimedia | |
3D Acceleration |
Partial |
Audio |
Works |
Connectivity | |
WiFi |
Broken |
Bluetooth |
Broken |
Miscellaneous | |
FDE |
No data |
USB OTG |
Works |
HDMI/DP |
Works |
Sensors | |
Power Sensor |
No data |
Contributors
- exkc (initial research)
- FerassElHafidi (some more research)
- knuxify
Users owning this device
- 19atlas (Notes: 1080p green version, No go command, edited bootcmd)
- Exkc
- FerassElHafidi (Notes: Green 3rd variant. Runs Android 10.)
- Knuxify (Notes: 2x; one works (blue variant), one has random shutdowns which seem to be caused by it overheating, since it works fine with the top of the casing taken off (green variant). Both running Android 9)
- Mertoalex (Notes: family uses it, I debloated it with UAD-ng.)
How to enter bootROM USB mode
Plug an Amlogic HDMI boot dongle.
The USB mode does not seem to be password-locked, although SecureBoot is enabled.
How to enter recovery mode
On older firmware versions, you can get a shell in recovery via UART, however it is heavily restricted due to SELinux. Newer firmware versions do not expose a shell via UART. |
Hold down the OK+Back keys on the remote while booting to boot into recovery.
Alternatively,
- Plug in to PC
- Enable devloader mode in settings
- Run
adb reboot recovery
Note that OTG does not work in the recovery, unlike on the Mi Box 3.
How to enter fastboot
- Plug in to PC
- Enable devloader mode in settings
- Run
adb reboot fastboot
WiFi
There are many variants with many different WiFi chips, including ones from Amlogic (not supported in mainline) or Realtek (some are supported, others aren't).
PCB variants
There are three variants of the stick. The first one has a green PCB, and was presumably sold in 2020. The second one is recognisable because of its blue PCB, and very different layout. It has been discovered that there is a third variant, which is similar to the first one, with a green PCB, and some minor layout changes.
UART pinout is known for the first and third variant, but not for the second variant (with the blue PCB).
The third variant seems to come with Android 10 out of the box, although upgrades to Android 10 are available in some regions for the other 2 variants. All three are functionally identical (if you don't take the Wi-Fi chip into account).It seem that the third variant are manufactured in 2024 and there are sticker on the box of third variant saying it is manufactured at 2024.
-
1st variant
-
2nd variant
Identify your firmware versions
Based on what we know so , there are mainly three type of version android 10 ,newer android 9,older android 9.they all behave definitely thus we can identify the firmware by their uboot's behavior.
After running the command :
fastboot oem go 0x1000
then the device should behave as fellow :
1. Crashed and reboot (That mean you are likely on older android 9 with unlocked/locked bootloader)
2. The device responding bootloader is locked (That mean you are likely on android 10 with unlocked/locked bootloader)
3. The device didnt crash and it is still in fastboot (That you are likely on android 10 with unlocked bootloader or newer android 9 with unlocked/locked bootloader)
Installation
Installing pmOS to your disk
WARNING: DO NOT PLUG multiple USB stick into the stick during boot.If you do have multiple USB stick pluged in druing boot , please make sure the usb 0 in u-boot is the pm os usb stick. |
Use pmbootstrap to build your own image, like so:
$ pmbootstrap init
$ pmbootstrap install --sdcard=/dev/sdX # change 'sdX' with the path of your USB drive
Booting
Due to the different behavior mention above hence are different way to boot pmos on the stick.
Android 10/Older Android 9
First intercept U-Boot when it's booting. You should get a shell.
U-Boot will run commands that are saved in the bootcmd environment variable. By default bootcmd contains commands to load Android TV. |
Run these commands to modify the default boot behavior for making pmOS automatically boot when it powered on and a pm os usb stick is pluged in:
aquaman_q# setenv bootandroid "${bootcmd}"
aquaman_q# setenv bootcmd "usb start;fatload usb 0 1080000 aml_autoscript;autoscr 1080000 ;run bootandroid"
aquaman_q# saveenv
aquaman_q# reset
Run those command to reboot after you have modified the default boot behavior
aquaman_q# reset
You can still boot into android by unplugging the pmOS usb stick after you have modify the default boot behavior.
You can manually boot pmOS if you dont want to modify the default boot behavior.
Run these commands to boot pmOS:
aquaman_q# usb start
aquaman_q# ext4load usb 0:1 ${loadaddr} aml_autoscript
aquaman_q# autoscr ${loadaddr}
Newer Android 9
There are no known methods to boot pmos due to 1. the stock bootloader only can boot signed image 2. go is remove hence we cant chainload u-boot to by press that