Google Pixel 3a (google-sargo)
Google Pixel 3a
|Chipset||Qualcomm Snapdragon 670 (SDM670)|
|CPU||Octa-core (2x2.0 GHz 360 Gold & 6x1.7 GHz Kryo 360 Silver)|
|Unixbench Whet/Dhry score||4417.7|
- Flamingradian (non-XL devices)
Users owning this device
- Anoraktrend (Notes: Broken Screen)
- Anthony (Notes: GrapheneOS)
- Bapt17 (Notes: Daily driver)
- BlackEyedSquid (Notes: Bootloader unlocked, Google Edition)
- Cralex (Notes: Running Android)
- Earboxer (Notes: VZW OEM-locked and stuck on Android 12)
- Eriki73 (Notes: cracked screen)
- Flamingradian (Notes: PVT 1.0, daily driver + mainlining target)
- Froggo (Notes: 4+64GB, Verizon OEM Locked)
- Humanleftswatch (Notes: Daily driver, running LineageOS-microg)
- Ignapk (Notes: Daily driver)
- Joshaspinall (Notes: Currently running Lineage Android)
- Linmob (Notes: 64 GB, runs Ubuntu Touch)
- Mint (Notes: Screen shade)
- Syboxez (Notes: Currently broken)
- Vipaol (Notes: Daily driver, LOS for microG)
Holdand until device loads into Fastboot
Might be convenient for dual boot
fastboot getvar current-slot
fastboot set_active aand
fastboot set_active b
You can follow a relatively typical installation using pmbootstrap as documented here (there are no pre-built images). There are a few things to keep in mind.
The modem firmware is based on the last Android/LineageOS update installed on your device's slot with postmarketOS. Before flashing, consider updating your firmware with the latest OTA image (Note: the official OTA images apply to the slot opposite to the one used to apply them).
If your device has Android 10 or later, you might get the following error when flashing the rootfs:
$ pmbootstrap flasher flash_rootfs Sending sparse 'system_b' 1/5 (261014 KB) OKAY [ 9.129s] Writing 'system_b' FAILED (remote: 'Partition should be flashed in fastbootd') fastboot: error: Command failed
This error occurs because Android 10 introduced dynamic partitions. There are different ways to flash the rootfs (see Different options of installation). Flashing to dynamic partitions via fastbootd is supported.
Thanks to a hack in the kernel fork, you do not need to erase the DTBO partition. Keeping the DTBO comes with a few side effects. Instead of seeing "Google Pixel 3a" as the machine name, you might see something like "Google Inc. MSM sdm670 S4 PVT v1.0". You may also see a dmesg error complaining about a ramoops reserved memory region.
If you don't like these side effects, erasing the DTBO is simple:
$ fastboot erase dtbo
The total charge may be incorrectly reported on the Pixel 3a XL.
Support for charging was developed by the SDM845 mainlining community, with no thermals and only 1 A.
The panel works. Note that XL devices have 2 different, unsupported panels.
The full panel driver is loaded late in the boot process so that unl0kr and osk-sdl work. This makes pbsplash small and makes it disappear.
This device has the FPC1020 fingerprint sensor. A driver is being worked on here but doesn't seem to be ready yet.
The Pixel 3a doesn't use SPMI haptics. Instead, it uses the TI DRV2624. The driver included in the SoC kernel works with fftest, but there is no feedbackd support.
Full-disk encryption works without 3D acceleration.
NFC card detection works. Nothing else was tested. The embedded secure element seems to have no driver support.
You don't get the same MAC address as on Android, even though it is possible to detect the MAC address that Android uses (somewhere in /sys/firmware/devicetree/base/chosen/cdt/cdb2/wlan_mac1). Instead, it is generated with the serial number.
WiFi hotspots are on the same interface as the one used to connect to WiFi, so a hotspot cannot be set up over a WiFi connection, unlike on Android.
WoWLAN does not seem to work.
It is possible to initiate calls. There is an active merge request (pmaports!4412) that will enable calls to be heard on the 3.5 mm jack, but not on speakers.
The "Voice calls" use case should be selected in the settings to hear calls.
Warning: Call audio may be loud. Call audio goes directly from the modem to the ADSP via proprietary firmware, so volume cannot be applied in software. Volume can be controlled by hardware, but it is not hooked up to the normal volume controls. Please change the hardware volume if you wish to hear calls at a reasonable level:
$ alsactl -c 0 cset name='Digital RX1 Digital Volume' 23% $ alsactl -c 0 cset name='Digital RX2 Digital Volume' 23% $ alsactl -c 0 store # Make this configuration persist across reboots
You can get audio over Bluetooth, on the built-in speakers, and on the 3.5 mm headphone jack. The built-in speakers and headphone jack only support 16-bit audio.
From the command line, the flashlight can be turned on:
$ echo 255 | sudo tee /sys/class/leds/led-0/brightness
$ echo 0 | sudo tee /sys/class/leds/led-0/brightness
There is currently not enough information in the devicetree to control flashlight from the Phosh quick settings.