Motorola Moto G13 / G23 (motorola-penangf)
This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories. This means that it cannot be selected in pmbootstrap. Status: Mainlining in progress. Boots to initramfs with mainline kernel. |
![]() | |
Manufacturer | Motorola |
---|---|
Name |
G13 G23 |
Codename | motorola-penangf |
Released | 2023 |
Type | handset |
Hardware | |
Chipset | MediaTek Helio G85 (MT6769Z) |
CPU |
Octa-core (2x2.0 GHz Cortex-A75 6x1.8 GHz Cortex-A55) |
GPU | Mali-G52 MC2 |
Display | 720 x 1600 IPS LCD 90Hz |
Storage | 64 GB / 128 GB |
Memory | 4 GB / 8GB RAM |
Architecture | aarch64 |
Software | |
Original software The software and version the device was shipped with. |
Android 13 |
Extended version The most recent supported version from the manufacturer. |
Android |
postmarketOS | |
Category | testing |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
Flashing It is possible to flash the device with pmbootstrap flasher . |
Untested
|
---|---|
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 Charging and battery level reporting works |
Broken
|
Screen Display works. Ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Broken
|
Multimedia | |
3D Acceleration |
Untested
|
Audio Audio playback, microphone, headset and buttons. |
Broken
|
Camera |
Broken
|
Connectivity | |
WiFi |
Broken
|
Bluetooth |
Broken
|
GPS |
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 |
Untested
|
Users owning this device
How to enter flash mode
- Boot menu: Hold and until you see a boot menu.
- Fastboot mode: Enter the boot menu, select fastboot with and enter with .
- Recovery mode: Enter the boot menu, select recovery with and enter with .
Unlocking the bootloader
WARNING: THIS DEVICE USES ARB, SO IT IS STRONGLY ADVISED TO FLASH THE STOCK FIRMWARE WITH SP FLASH TOOL BEFORE UNLOCKING THE BOOTLOADER, OR YOU MIGHT RISK A HARD BRICK IF ANDROID 13 IS STILL PRESENT IN ONE OF YOUR SLOTS |
This device uses the seccfg
lock state to manage bootloader unlocking, and there are multiple methods to achieve this.
The official method involves enabling the "OEM Unlocking toggle" in Developer Settings and generating an unlock code. You can use this website to generate the code and check its guide to install it and unlock the bootloader.
Alternatively, you can unlock the bootloader by exploiting carbonara, a MediaTek DA1 vulnerability that allows you to boot an unsigned DA2. This lets you modify the seccfg
partition and unlock the bootloader. A work-in-progress tool is currently being developed for this method.
NOTE: After unlocking, it is strongly recommended to flash kaeru to replace the broken stock bootloader, which has bugs and flashing limitations. |
Installation
To prepare the device for booting mainline, you need to erase the vendor_boot
partition:
$ fastboot erase vendor_boot
If using the stock bootloader, you will also have to flash a minimal DTBO for the mainline kernel to boot:
$ fastboot flash dtbo minimal-dtbo.img
Lastly, build a v2 boot image and flash the result to the boot
partition:
$ fastboot flash boot boot.img
UART
UART access is available through the pads exposed next to the battery connector. However to UART has been intentionally restricted as part of "perceived security" measures by default.

To enable UART, it is necessary to remove the protective metal shield and solder 1K resistors to the UART lines to restore the functionality of the test points.
NOTE: Alternatively, a tiny tin bridge can be used, which will function the same as 1K resistors. |

The first boot stage, BROM, will output startup logs at 115200
baud rate. After the BROM stage, the baud rate will change to 921600
and will remain at that speed until the phone is fully booted (as soon as the phone reaches the lock screen / home screen UART logs will stop).
WARNING: By default, UART logs aren't complete. To get full logs, you have to hold both volume keys while booting the phone. If you don't, you'll be greeted with a Log Turned Off. message. |
Other notes
USBDL in BROM has been disabled on this device by the OEM, which means you won’t be able to access it. As a result, you should never attempt to modify or erase the Preloader partition.
Corrupting the Preloader will lead to a hard brick, and the only way to recover from this is by directly reflashing the eMMC, a process commonly referred to as JTAG. For more information, refer to the f**ymoto guide on the subject.
Downstream Kernel
The downstream kernel is currently completely broken.
We are waiting for the full working sources, functional modules, and proper build instructions to be provided.
Please, track any updates in this issue in the kernel-mtk repository from Motorola.