Google Pixel 3a (google-sargo)

From postmarketOS
Google Pixel 3a
Google Pixel 3a
Google Pixel 3a
Manufacturer Google
Name Pixel 3a
Codename google-sargo
Released 2019
Category testing
Pre-built images no
Original software Android
Original version 9
Hardware
Chipset Qualcomm Snapdragon 670 (SDM670)
CPU Octa-core (2x2.0 GHz 360 Gold & 6x1.7 GHz Kryo 360 Silver)
GPU Adreno 615
Display 1080x2220 OLED
Storage 64 GB
Memory 4 GB
Architecture AArch64
Type handset
Unixbench Whet/Dhry score 4417.7
Features
USB Networking
Works
Flashing
Works
Touchscreen
Works
Display
Partial
WiFi
Partial
FDE
Works
Mainline
Works
Battery
Partial
3D Acceleration
Works
Audio
Partial
Bluetooth
Works
Camera
Broken
GPS
Mobile data
Works
Internal storage
Works
SMS
Works
Calls
Partial
USB OTG
Broken
NFC
Partial
Sensors
Accelerometer
Broken
Magnetometer
Broken
Ambient Light
Broken
Proximity
Broken
Hall Effect
Barometer
Broken
Power Sensor
Misc
Built-in DVB
Camera Flash
Works
Keyboard
Touchpad
USB-A
HDMI/DP
Ir TX
Ir RX
Stylus
Memory Card
Haptics
Works
Ethernet
FOSS bootloader


Contributors

Maintainer(s)

Users owning this device


Entering Fastboot

Hold Volume Down and Power until device loads into Fastboot

Fastboot commands

Might be convenient for dual boot

  • fastboot getvar current-slot
  • fastboot set_active a and fastboot set_active b

Installation

You can follow a relatively typical installation using pmbootstrap as documented here (there are no pre-built images) or using the device-specific Installation guide. This section documents some quirks in installation.

Flashing

Flashing the rootfs to the system partition on Android 10 or later may result in an error:

$ pmbootstrap flasher flash_rootfs --partition system_b
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

Flashing to system is no longer the default behaviour of pmbootstrap, but you will encounter this if you choose not to overwrite userdata. You can either flash to the "physical", GPT-based system partition:

$ pmbootstrap export
$ fastboot flash --force system_b /tmp/postmarketOS-export/google-sargo.img

or the dynamic partition:

$ fastboot set_active a
$ fastboot reboot fastboot # this will change the UI shown on the device
$ pmbootstrap flasher flash_rootfs --partition system_b

For more information, see Android dynamic partitions.

DTBO

Thanks to a hack in the kernel fork, you do not need to erase the DTBO partition. Keeping the DTBO comes with a side effect. Instead of seeing "Google Pixel 3a" as the machine name, you might see something like "Google Inc. MSM sdm670 S4 PVT v1.0".

If you don't like this side effect, erasing the DTBO is simple and normal for most mainline device ports:

$ fastboot erase dtbo


Features

Battery

Support for charging was developed by the SDM845 mainlining community, with no thermals and only 1 A. There was passive cooling logic but it has been removed due to being faulty.

If you wish to run resource-intensive programs for long periods of time, you can manually monitor the battery temperature and adjust the charging current as appropriate.

Temperature in tenths of a degree Celsius (example: 22.5 degrees):

$ cat /sys/class/power_supply/qcom-battery/temp
225

Charging current limit in microamps (further limited by the driver to 1A):

$ cat /sys/class/power_supply/pm660-charger/current_max
1500000

Set the current limit:

# tee /sys/class/power_supply/pm660-charger/current_max
500000
500000

Display

The panel works. Note that some XL devices may have an unsupported panel, the Tianma NT37700F.

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.

Fingerprint sensor

This device has the FPC1020 fingerprint sensor which is accessible through the QSEECOM interface. A driver for FPC1020 is being worked on here but can only work by interacting directly with the fingerprint sensor.

Full-disk encryption

Full-disk encryption works without 3D acceleration.

NFC

NFC card detection works. Nothing else was tested. The embedded secure element seems to have no driver support.

WiFi

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.

Calls

It is possible to initiate calls and hear them 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:

$ amixer -c 0 cset name='Digital RX1 Digital Volume' 23%
$ amixer -c 0 cset name='Digital RX2 Digital Volume' 23%
# alsactl store # Make this configuration persist across reboots

Camera

Taking pictures with Megapixels using the front camera is not supported yet, but the kernel already has support for the hardware.

Audio

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. The built-in microphone does not work yet.

Thermals

The CPU throttles at high temperatures. The Pixel 3a and Pixel 3a XL share thermal profiles. Throttling on the GPU has not been tested yet.

Trusted Platform Module

The Pixel 3a's TPM, the Titan M, controls verified boot and is capable of performing cryptographic operations. It is currently not supported.

See also