Motorola Edge 30 (motorola-dubai)
|
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 |
|
| Kernel package |
|
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
|
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
|
| This device is based on the Snapdragon 778G+. See the SoC page for common tips, guides and troubleshooting steps |
Contributors
Users owning this device
- Account1009 (Notes: postmarketOS)
- Coolirisme (Notes: Tianma Panel)
- Fizzo (Notes: CSOT panel)
- Hitsuthar
- Lona (Notes: One with CSOT panel)
- Mbohun (Notes: CSOT panel)
- ValPackett (Notes: (Tianma panel) Daily driver and dev platform at the same time)
How to enter flash mode
- Turn off the device.
- Press and hold +.
- Release the buttons when the fastboot menu shows.
Installation
| 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 when Linux is starting to boot (i.e. on the "press 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):
