Jump to content

Xiaomi Mi 8 (SDM845): Difference between revisions

From postmarketOS Wiki
Kreyren (talk | contribs)
m Kreyren moved page Xiaomi Mi 8 (xiaomi-dipper) to Xiaomi Mi 8 (SDM845): Covers all devices in the family that have sdm845
Kreyren (talk | contribs)
Line 83: Line 83:


The phones appear to be nearly identical and apparently all use the same mainboard, but there are differences:
The phones appear to be nearly identical and apparently all use the same mainboard, but there are differences:
* Dipper has bigger battery and different fingerprint sensor (mounted at the back while equuelus has it under the screen)
* Dipper has bigger battery and different fingerprint sensor (mounted at the back while equuelus and ursa have it under the screen)


A special case might be with xiaomi-ursa, which is a device with transparent back that have a fake plastic components as from available information it was used only in China for early adopters as a way to develop the firmware and then ~3 months later the dipper and equuelus were released to the public with ursa having it's firmware flashed on equuelus and sold in the rest of the world as Xiaomi Mi 8 Pro with titanium transparent back.
A special case might be with xiaomi-ursa, which is a device with transparent back that have a fake plastic components as from available information it was used only in China for early adopters as a way to develop the firmware and then ~3 months later the dipper and equuelus were released to the public with ursa having it's firmware flashed on equuelus and sold in the rest of the world as Xiaomi Mi 8 Pro with titanium transparent back.

Revision as of 01:03, 22 August 2024

Note The device currently only works under outdated pmaports using linux 5.12.8 which is missing important components and is pending sdm845-mainline/linux!102 to port on Linux 6.11
Xiaomi Mi 8/
Mi 8 Pro/
Mi 8 Explorer
Mi 8
Mi 8
Manufacturer Xiaomi
Name Mi 8/
Mi 8 Pro/
Mi 8 Explorer
Codename xiaomi-dipper, xiaomi-equuleus, xiaomi-ursa
Released 2018
Type handset
Hardware
Chipset Qualcomm Snapdragon 845 (SDM845)
CPU Octa-core (4x 2.8 GHz Kryo 385 Gold & 4x 1.7 GHz Kryo 385 Silver)
GPU Adreno 630
Display Samsung EA8074 CMD TFT LCD, multitouch, 16M Colors, 1080 x 2248 AMOLED
Storage 64/128 GB
Memory 6 GB
Architecture aarch64
Software
Original software Android (MIUI)
Original version 8.0
Extended version 10 (MIUI 12)
FOSS bootloader ?
postmarketOS
Category testing
Pre-built images no
Mainline no
Features
Flashing
Works
Internal storage
Works
Screen
Broken
Touchscreen
Broken
Multimedia
Connectivity
WiFi
Works
Modem
Miscellaneous
FDE
Works
Sensors


Phone details

The relevant Mi8 family with SDM845 chips has the following devices:

  • Xiaomi Mi 8 (xiaomi-dipper)
  • Xiaomi Mi 8 Pro (xiaomi-equuelus)
  • Xiaomi Mi 8 Explorer (xiaomi-ursa)

The phones appear to be nearly identical and apparently all use the same mainboard, but there are differences:

  • Dipper has bigger battery and different fingerprint sensor (mounted at the back while equuelus and ursa have it under the screen)

A special case might be with xiaomi-ursa, which is a device with transparent back that have a fake plastic components as from available information it was used only in China for early adopters as a way to develop the firmware and then ~3 months later the dipper and equuelus were released to the public with ursa having it's firmware flashed on equuelus and sold in the rest of the world as Xiaomi Mi 8 Pro with titanium transparent back. The motherboard in ursa is not always the same and appears to be an earlier prototype which might have hidden hardware issues. Additionally the firmware for ursa is china-only and appears to have more features.

Reportedly the Xiaomi Pocophone F1 (xiaomi-beryllium) is allegedly built from ursa's designs to be very similar, but has different mainboard and devices.

Partition map

Observed to be the same on Dipper and Ursa, while probably same on Equuelus.

equuleus:/ # ls -la /dev/block/bootdevice/by-name/

total 0
drwxr-xr-x 2 root root 1740 1971-01-10 22:05 .
drwxr-xr-x 3 root root 1880 1971-01-10 22:05 ..
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 ImageFv -> /dev/block/sdf4
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 abl_a -> /dev/block/sde32
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 abl_b -> /dev/block/sde33
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 aop_a -> /dev/block/sde14
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 aop_b -> /dev/block/sde15
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 apdp -> /dev/block/sde6
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk01 -> /dev/block/sda3
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk02 -> /dev/block/sda4
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk03 -> /dev/block/sda5
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk04 -> /dev/block/sda8
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk05 -> /dev/block/sda13
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk31 -> /dev/block/sdd1
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk32 -> /dev/block/sdd3
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk33 -> /dev/block/sdd5
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk41 -> /dev/block/sde3
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk42 -> /dev/block/sde9
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk43 -> /dev/block/sde16
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk44 -> /dev/block/sde17
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk45 -> /dev/block/sde25
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk46 -> /dev/block/sde29
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk47 -> /dev/block/sde38
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk48 -> /dev/block/sde40
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bk49 -> /dev/block/sde41
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk51 -> /dev/block/sdf2
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk52 -> /dev/block/sdf3
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 bk53 -> /dev/block/sdf5
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 bluetooth -> /dev/block/sde24
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 boot -> /dev/block/sde45
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 cache -> /dev/block/sda20
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 cdt -> /dev/block/sdd2
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 cmnlib64_a -> /dev/block/sde20
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 cmnlib64_b -> /dev/block/sde21
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 cmnlib_a -> /dev/block/sde18
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 cmnlib_b -> /dev/block/sde19
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 cust -> /dev/block/sda18
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 ddr -> /dev/block/sdd4
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 devcfg_a -> /dev/block/sde12
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 devcfg_b -> /dev/block/sde13
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 devinfo -> /dev/block/sda12
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 dip -> /dev/block/sde28
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 dsp -> /dev/block/sde44
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 dtbo -> /dev/block/sde37
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 frp -> /dev/block/sda7
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 fsc -> /dev/block/sdf1
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 fsg -> /dev/block/sde36
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 hyp_a -> /dev/block/sde26
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 hyp_b -> /dev/block/sde27
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 keymaster_a -> /dev/block/sde22
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 keymaster_b -> /dev/block/sde23
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 keystore -> /dev/block/sda6
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 limits -> /dev/block/sde2
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 logdump -> /dev/block/sda16
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 logfs -> /dev/block/sda10
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 logo -> /dev/block/sde43
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 minidump -> /dev/block/sda17
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 misc -> /dev/block/sda9
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 modem -> /dev/block/sde46
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 modemst1 -> /dev/block/sdf6
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 modemst2 -> /dev/block/sdf7
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 msadp -> /dev/block/sde7
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 oops -> /dev/block/sda11
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 persist -> /dev/block/sda14
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 persistbak -> /dev/block/sda15
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 qupfw_a -> /dev/block/sde4
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 qupfw_b -> /dev/block/sde5
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 recovery -> /dev/block/sda19
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 sec -> /dev/block/sde1
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 splash -> /dev/block/sde42
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 spunvm -> /dev/block/sde39
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 ssd -> /dev/block/sda2
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 sti -> /dev/block/sde30
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 storsec_a -> /dev/block/sde10
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 storsec_b -> /dev/block/sde11
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 switch -> /dev/block/sda1
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 system -> /dev/block/sde48
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 toolsfv -> /dev/block/sde31
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 tz_a -> /dev/block/sde34
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 tz_b -> /dev/block/sde35
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 userdata -> /dev/block/sda21
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 vbmeta -> /dev/block/sde8
lrwxrwxrwx 1 root root   16 1971-01-10 22:05 vendor -> /dev/block/sde47
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 xbl_a -> /dev/block/sdb2
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 xbl_b -> /dev/block/sdc2
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 xbl_config_a -> /dev/block/sdb1
lrwxrwxrwx 1 root root   15 1971-01-10 22:05 xbl_config_b -> /dev/block/sdc1

Contributors

Maintainer(s)

Users owning this device

  • Kreyren (Notes: Ursa in Mint Condition, used for developing NixOS compatibility)
  • Mertoalex (Notes: my mom's phone, Equuleus (mi 8 pro), LineageOS 22 is installed.)


How to enter flash mode

Bootloader Unlocking

Note Do NOT attempt to bypass the unlock key via MiUnlockToolv2 as Xiaomi patched the vulnerability on their servers and when attempted they might make you wait longer before it allows you to unlock. In some cases you might end up with a bricked device that can only be unlocked at Official Xiaomi Store or their Authorized Technician for a fee or ~40 EUR assuming you have a proof of purchase.

Like other Xiaomi devices, the user will have to acquire the bootloader unlock key: https://en.miui.com/unlock

The device will not unlock if the device isn't 7 days old (from the time when your device connects to internet and powered on, and linked with Mi Account)

Recovery mode

At any state of the device hold Volume Up and Power button until the recovery screen shows up.

Flashing (Download, Fastboot) mode

Same as recovery, but this time hold the Volume Down and Power keys.

Debug UART

Warning: Unknown voltage

Links

Not submitted to the main line https://gitlab.com/Akitlove