Jump to content

Motorola Edge 30 (motorola-dubai)

From postmarketOS Wiki
Motorola Edge 30
fastfetch #shotonpostmarketos
fastfetch #shotonpostmarketos
Manufacturer Motorola
Name Edge 30
Codename motorola-dubai
Model XT2203-1
Released 2022
Type handset
Hardware
Chipset Qualcomm Snapdragon 778G+ (SM7325-AE)
Display 1080x2400 AMOLED 144Hz 6.55"
Storage 128/256 GB
Memory 8 GB
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
Android 12
Extended version
The most recent supported version from the manufacturer.
Android 14
FOSS bootloader partial
postmarketOS
Pre-built images
Whether pre-built images are available from the postmarketOS Installation page.
no
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
no
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Works
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
Internal storage
eMMC, SD cards, UFS...
Works
Battery
Whether charging and battery level reporting work.
Works
Screen
Whether the display works; ideally with sleep mode and brightness control.
Works
Touchscreen
Works
Multimedia
3D Acceleration
Works
Audio
Audio playback, microphone, headset and buttons.
Partial
Camera
Partial
Camera Flash
Works
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Works
NFC
Near Field Communication
Broken
Modem
Calls
Partial
SMS
Works
Mobile data
Works
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Untested
USB OTG
USB On-The-Go or USB-C Role switching.
Works
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Works
Magnetometer
Sensor to measure the Earth's magnetism
Works
Ambient Light
Measures the light level; used for automatic screen dimming in many interfaces.
Works
Proximity
Works
Haptics
Broken
U-Boot
Primary Bootloader
Whether it is possible to replace stock bootloader with U-Boot.
Broken
Secondary Bootloader
Whether it is possible to chainload U-Boot from stock bootloader.
Works
Mainline
Whether latest upstream versions of U-Boot are not broken and it is possible to use them.
Works
Internal Storage
Whether it is possible to boot from internal storage (e.g. eMMC or UFS).
Broken
USB Host
Whether it is possible to boot from a USB storage or connect a keyboard.
Untested
USB Peripheral
Whether it is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.
Works
Display
Works
Buttons
Whether it is possible to navigate in boot menu or grub with volume and power buttons.
Partial


Contributors

Users owning this device


How to enter flash mode

  • Turn off the device.
  • Press and hold the power button and volume down button.
  • Release the buttons when the fastboot menu shows.

Installation

Warning: NOT YET. There are no packages yet!!

To prepare the current slot for running mainline, we need to erase Android-specific DTB Overlays and disable AVB.

For the latter, it should be enough to:

pmbootstrap flasher flash_vbmeta

Optionally (?) instead, you can make an image that avoids the rollback warning when flashing:

avbtool make_vbmeta_image --flags 2 --padding_size 8192 --rollback_index 32 --output blank.vbmeta.img
fastboot flash vbmeta blank.vbmeta.img

Now for the former… You can't just fastboot erase dtbo because of Motorola's creative decisions :) Instead, create a blank file and flash it:

dd if=/dev/zero of=blank.dtbo.img bs=25165824 count=1
fastboot flash dtbo blank.dtbo.img

With these preparations, we can now proceed with installing postmarketOS.

Eventually, U-Boot shall be used as an intermediate bootloader. However for now, unfortunately, it is useless because its UFS support is somehow broken specifically on this SoC specifically with UFS 3.x (this also affects e.g. the Nothing Phone 1 (nothing-spacewar). So we have to flash the kernel directly into the boot partition:

pmbootstrap flasher flash_kernel

And now flash the rootfs to the userdata partit-Permission denied! Apparently userdata is the opposite of dtbo: you can only erase it but not flash it. Now we have to get very slightly creative.

Since we have the boot.img running, we can just use the debug shell to flash the rootfs. Connect the USB cable, hold Volume Down when Linux is starting to boot (i.e. on the "press Power to pause" screen) or wait for the root mount to fail.

In one terminal, connect to the debug shell and set up netcat on the phone to receive the image:

telnet 172.16.42.1
nc -l -p 6969 </dev/null >/dev/disk/by-partlabel/userdata

In another terminal (i.e. from your local machine) send the image (in this example using pv for a progress bar:

pv -p - <~/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/motorola-dubai.img | nc 172.16.42.1 6969

Now reboot on the phone and enjoy! :D

Table of hardware

Component Model Status Notes
SoC Qualcomm Snapdragon 778G+ (SM7325-AE) Y Well supported upstream
Main PMIC Qualcomm PM7325 Y
Storage Micron MT128GAXAT2U3165 Y UFS 3.1, works in Linux but not in U-Boot
Display CSOT or Tianma with Novatek NT37701 controller Y DSC, command mode, 48/60/90/120/144Hz modes, built-in brightness. Driver is WIP.
Touch controller Goodix GT9916 Y SPI interface
Wi-Fi/BT Qualcomm WCN6750 Y Only 2.4GHz connects, TODO: check calibration files
USB Type-C Qualcomm PM7250B Y Dual role, USB2 only (via pmic-glink)
Haptics Awinic AW86224 N Datasheet exists, basically same family as aw86927 (which has an upstream driver) minus some registers
Camera flash Qualcomm PM7350C Y Two of them, even! Both white, no amber.
Battery Qualcomm PM.. one of them Y ADSP battmgr, it just works, profile/calibration already loaded
Speaker amp Awinic AW88261 Y Both top and bottom speakers use these amps. On the senary MI2S.
Headset/Mic amp Qualcomm WCD9375 P Onboard mics work (top and bottom), USB-C analog pending (need driver changes)
USB-C analog audio OnSemi FSA4480 P Need to route audio to it from the WCD
Camera PMIC Will Semicon WL2864C Y Driver copied from downstream, will clean up and submit
Camera OmniVision OV50A N Main. Needs a driver, some cursed reference available
Smasnug S5KJN1 + AK7375 VCM Y Ultrawide. Driver available upstream already, yay!
GalaxyCore GC02M1B N Depth. Useless, not even worth bothering with unless for a lo-fi mode
OmniVision OV32B40 N Front. Needs a driver, some cursed reference available
Accelerometer/Gyroscope (IMU) InvenSense ICM-42602 Y Sensor hub support works
Magnetometer MEMSIC MMC5603NJ Y
Light/Proximity Sensor (ALS/PS) Sensortek STK33562 Y
Cap.Touch/SAR Sensor Semtech SX9375IULTRT N
Fingerprint sensor N
NFC STMicroelectronics ST21NFCJ N Driver exists upstream but no one used it ever?? TODO

See also