Xiaomi Mi TV Stick (xiaomi-aquaman): Difference between revisions
Line 102: | Line 102: | ||
* Run <code>adb reboot fastboot</code> | * Run <code>adb reboot fastboot</code> | ||
== | == 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. | 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. | ||
Line 117: | Line 117: | ||
File:3rd variant.jpeg|3rd variant | File:3rd variant.jpeg|3rd variant | ||
</gallery> | </gallery> | ||
==WiFI== | |||
{| class="wikitable sortable" | |||
|+ Known WiFI Chip that used in mi stick | |||
|- | |||
! Known WifI Chip that used in Known !! Known Variants that come with that chip !! Work in pmos? | |||
| [Amlogic W155S1 || variant 1/3 || no || no | |||
|- | |||
| Realtek RTL8821CS || variant 1 || no || | |||
|- | |||
} | |||
== Identify your firmware versions == | == Identify your firmware versions == |
Revision as of 20:09, 11 March 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 and Android 10, 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. |
OTG does not work in the recovery, unlike on the Mi Box 3. |
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
How to enter fastboot
- Plug in to PC
- Enable devloader mode in settings
- Run
adb reboot fastboot
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 (top of PCB, with UART header soldered in)
-
1st variant (bottom of PCB, with UART header soldered in)
-
1st variant (bottom of PCB without metal shield + component descriptions)
-
2nd variant (top of PCB)
-
3rd variant
WiFI
}Identify your firmware versions
Based on what we know so far, multiple firmware versions emerged:
- Android 10
- Latest Android 9
- Older Android 9
We can identify the firmware by inspecting their behavior in Fastboot mode.
After running the command:
$ fastboot oem go 0x1000
The device should behave as follows, depending on the firmware:
- Crashes and reboots → you are likely on older Android 9
- Bootloader is locked (fastboot returns
FAILED (remote: 'locked device')
) → you are likely on Android 10 (with u-boot locked) - Nothing happens → you are likely on Android 10 or newer Android 9
Installation
Installing to USB
Known WifI Chip that used in Known | Known Variants that come with that chip | Work in pmos? | [Amlogic W155S1 | variant 1/3 | no | no |
---|---|---|---|---|---|---|
Realtek RTL8821CS | variant 1 | no |
WARNING: DO NOT PLUG multiple USB sticks during boot. If you do have multiple USB drives plugged in during boot, please make sure that usb 0 in u-boot is the pmOS USB stick. |
First 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
Then find the way to plug the USB stick to the micro USB port while powering the TV Stick. (You can use one of these USB OTG Charging Hubs)
Booting
Due to the different behaviour mentioned above there are different ways to boot pmOS on the stick depending on the firmware present.
Android 10/Older Android 9
Plug your UART adapter to your disassembled TV Stick.
Then interrupt U-Boot when it's booting. You should get a shell, e.g.:
U-Boot 2015.01 aquaman_q-user (Aug 01 2023 - 16:50:19), Build: jenkins-Aquaman_Q_uboot-2493
DRAM: 1 GiB
Relocation Offset is: 36e8b000
mmu cfg end: 0x40000000
mmu cfg end: 0x40000000
<...>
Hit Enter or space or Ctrl+C key to stop autoboot -- : 0
aquaman_q#
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 so that it tries to boot from a USB drive first:
aquaman_q# setenv bootandroid "${bootcmd}"
aquaman_q# setenv bootcmd "usb start;fatload usb 0 1080000 aml_autoscript;autoscr 1080000 ;run bootandroid"
Save the changes and reboot:
aquaman_q# saveenv
aquaman_q# reset
You can still boot into Android by unplugging the USB stick after you have modified the default boot behavior.
You can manually boot pmOS if you don't want to modify the default boot behavior.
Run these commands to boot pmOS:
aquaman_q# usb start
aquaman_q# fatload usb 0:1 ${loadaddr} aml_autoscript
aquaman_q# autoscr ${loadaddr}
Newer Android 9
There are no known methods to boot pmOS currently.
- The stock u-boot bootloader can only boot signed image (bootm)
- The
go
has been removed, hence we cannot chainload modern u-boot to bypass that