Google Pixel (google-pixel)

== Contributors ==
* ojbr
* steamport
=== Maintainers ===
- 
== Pixel / Pixel XL ==
The Pixel (sailfish) and Pixel XL (marlin) share identical kernel architectures. This port should work for both devices.
=== Device Owners ===
== What works ==
* Kernel compilation
* Flashing
* Booting kernel (partial boot with serial logging - panics / halts)
== What does not work ==
* SSH over USB
* Touch
* Screen
* WiFi
* Bluetooth
* Camera
* GPS
* Modem
== Development Notes ==
=== Partition Layout ===
Out of the box, the Google Pixel uses an A/B partition layout. Both slots are known working. Should you need to change slots, this can be done with:
<nowiki>#fastboot set_active a
#fastboot reboot bootloader</nowiki>
~#: fdisk -l /dev/block/sda
bootlocker_a bootlocker_b
keymaster_a keymaster_b
tz_a tz_b
rpm_a rpm_b
pmic_a pmic_b
hyp_a hyp_b
cmnlib32_a cmnlib32_b
cmnlib64_a cmnlib64_b
aboot_a aboot_b
hosd_a hosd_b
devcfg_a devcfg_b
modem_a modem_b
msadp_a msadp_b
apdp_a apdp_b
vendor_a vendor_b
system_a system_b
userdata
reserve0
== Bootloader Unlocking ==
The bootloader can be unlocked once the device has been unlocked by the cell carrier. An unlock code is usually obtained from your network provider directly, or from a third party.
Be aware, a bootloader unlock will erase all userdata. Make sure to keep a backup of any important data.
* Enter fastboot by shutting down the device, and hold volume down + power until you see the fastboot screen.
* Depending on the phone's previous sleep state, you may be alerted that a RAM dump is in progress. Ignore these, keep holding the buttons until you end up in fastboot.
The standard OEM unlock command can then be be used:
<nowiki>#fastboot oem unlock</nowiki>
At this point, you should be ready to test pmOS deployments.
=== Backup with TWRP ===
Take precaution, and keep backups if this is your primary device.
* Download the latest TWRP (both img and zip)
* From the TWRP directory, run the fastboot command: #fastboot boot <nowiki><your-twrp.img></nowiki>
* At this point, TWRP will load
* Take your backup, note this does not include the user data directory. You need to copy that over with MTP as well.
== Installation ==
=== Boot Only ===
The device is capable of sideloading a boot.img over USB with fastboot. The standard command in pmOS works:
<nowiki>
# pmbootstrap flasher boot
</nowiki>
=== Flashing ===
<nowiki>
# fastboot set_active a
# fastboot reboot bootloader
# pmbootstrap flasher flash_rootfs
# pmbootstrap flasher flash_kernel
# fastboot reboot
</nowiki>
== Debugging ==
=== Kernel Logging via Serial ===
It is possible to debug the Pixel/Pixel XL with a standard Nexus Serial debug cable. This must be enabled in fastboot first:
# fastboot oem uart enable
The baud rate is 115200.
== Troubleshooting ==
==== Unable to mount rootfs ====
When running from a vendor kernel, Android is configured to skip loading with an initramfs. For postmarketOS to boot, the offending change would have to be removed with a patch.
Without the patch, the rootfs will fail to mount:
[ 14.025620] No filesystem could mount root, tried: ext3 ext2 ext4 vfat msdos fuseblk
[ 14.033436] c2 1 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(253,0)
==== Firmware image not available ====
Proprietary vendor drivers are missing, and will need to be built into the resulting boot image.
[TP]: [ERR]:fwu_start_reflash: Firmware image synaptics_bl71.img not available
== See also ==
* TBC