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
Category testing
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.
yes
Unixbench score
Unixbench Whetstone/Dhrystone score. See Unixbench.
9626.6
Device package device-motorola-dubai
Kernel package linux-postmarketos-qcom-sc7280
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Partial
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.
Broken
Camera
Partial
Camera Flash
Works
Connectivity
WiFi
Partial
Bluetooth
Works
GPS
Works
NFC
Near Field Communication
Broken
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
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.
Broken
Mainline
Whether latest upstream versions of U-Boot are not broken and it is possible to use them.
Broken
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.
Broken
Display
Broken
Buttons
Whether it is possible to navigate in boot menu or grub with volume and power buttons.
Broken

Contributors

Users owning this device

How to enter flash mode

  • Turn off the device.
  • Press and hold Power+Volume Down.
  • Release the buttons when the fastboot menu shows.

Installation

Note The U-Boot UFS issue has been solved, it was just the power not being on after all (but with an extra bug in regulators). We also need the correct LUN to be selected then. Hopefully soon, all of this will be "flash U-Boot, then flash userdata via U-Boot".

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

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.

Flash the kernel directly into the boot partition:

$ pmbootstrap flasher flash_kernel

To flash the rootfs, we have to get slightly creative, because you can't flash to the userdata partition. There are two ways you can flash the rootfs:

Fastbootd Method

If you have LineageOS recovery present in any of the slots, you can also boot that and flash the rootfs from the LineageOS Fastbootd screen. First, switch to the slot where LineageOS is installed.

$ fastboot --set-active=b #or a

Start LineageOS Recovery with:

$ fastboot reboot recovery

Click on Advanced and then Enter fastboot. With fastbootd logo visible run:

$ pmbootstrap flasher flash_rootfs

Once the rootfs is flashed, don't forget to switch back to the slot where postmarketOS is installed.

$ fastboot --set-active=a # or b

Now reboot the phone and enjoy!

Netcat Method

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

Known issues

Bad responsiveness

The latest sc7280-mainline/linux kernel causes a lot of errors, which might slow down the phone.

The fix was already merged in the sc7280-7.1.y branch but is not included yet in the linux-postmarketos-qcom-sc7280 package.

You can install draft MR !9119 to solve the issue.

Missing audio support

Audio support is not packaged yet.

  • Multimedia audio requires the HiFi UCM profile
  • Phone call audio requires kernel patches and the VoiceCall profile.

You can get multimedia audio support (no phone calls) by installing draft MR !9346.

WiFi 5GHz not working

5GHz WiFi support requires a calibration file that should be upstreamed to ath11k-firmware.

The file has been sent to the ath11k mailing list, but has not been picked up.

Modem not working

The modem needs write access to the files stored in the persist android partition.

The issue is documented in tqftpserv issues 33 and 41.

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. Driver in progress but it is a C-PHY one, so upstreaming would depend on support for that landing first
Samsung S5KJN1 + AK7375 VCM Y Ultrawide. Driver available upstream already, yay!
GalaxyCore GC02M1B Y "Depth", just monochrome but not IR/UV sensitive. WIP but already working driver written by Lona.
OmniVision OV32B40 N Front. Needs a driver, some cursed reference available. Driver in progress but it is a C-PHY one, so upstreaming would depend on support for that landing first
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

Hardware Debugging/Recovery

EDL

You can follow this guide to unbrick the phone via EDL using the Motorola Unbrick Tool on Windows.

The phone can enter EDL mode automatically if it gets bricked. In this case you should see a USB device with PID 9008.

If the phone were not to enter EDL mode, your last option could be disassembling and using the EDL test point. Reach out for help in the #sc7280-mainline:postmarketos.org Matrix channel for advice.

From this XDA thread, we have a confirmed tested EDL point (below an RF shield):

EDL test point


See also