Google Pixel 3(google-blueline)

From postmarketOS
Jump to navigation Jump to search
Google Pixel 3
Google Pixel 3
Google Pixel 3
Manufacturer Google
Name Pixel 3
Codename google-blueline
Released 2018
Category testing
Original software Android 9.0
Hardware
Chipset Qualcomm SDM845 Snapdragon 845 (10 nm)
CPU Octa-core (4x2.5 GHz Kryo 385 Gold & 4x1.6 GHz Kryo 385 Silver)
GPU Adreno 630
Display 1080 x 2160 P-OLED, HDR
Storage 64GB/128GB
Memory 4GB
Architecture aarch64
Features
USB Networking
Flashing
Works
Touchscreen
Display
WiFi
Xwayland
FDE
Mainline
Partial
Battery
3D Acceleration
Accelerometer
Audio
Bluetooth
Camera
GPS
Mobile data
SMS
Calls
USB OTG
NFC



Contributors

  • hreikin

Users owning this device


How to enter flash mode

The Pixel 3, like all Google Pixel/Nexus devices, uses Fastboot as the flashing protocol.

To enter Fastboot mode, hold Volume Down while powering on the device. Let go of Volume Down when "Fastboot mode" displays on the screen.

Alternatively, if connected to a pc then you can also use adb reboot bootloader.

Installation

The steps below should allow you to flash postmarketOS to a Pixel 3 and boot to a point that telnet can be accessed.

  • Run pbootstrap init to generate the google-blueline device port
  • Delete the linux-google-blueline folder
  • Edit the APKBUILD in the device-google-blueline folder to remove the mesa-dri-gallium dependency and insert the linux-postmarketos-qcom-sdm845 and soc-qcom-sdm845 dependencies
  • Set envkernel up, clone the sdm845 mainline kernel and create a new branch for your changes
  • Copy the DTS file available in the Linaro kernel to the sdm845 mainline kernel and edit the Makefile to include it
  • Run make defconfig sdm845.config and make -j`nproc` to build the kernel. Some nodes need commenting out for make to complete successfully, the files are provided below
  • Run pmbootstrap build --envkernel linux-postmarketos-qcom-sdm845 to package it
  • Check the offsets in deviceinfo (they are the same as the op6) and add the dtb stuff for the device
  • Run abootimg -i boot.img on the boot.img from android 9 and check the offsets
  • Run pmbootstrap checksum device-google-blueline and pmbootstrap build device-google-blueline and then pmbootstrap install
  • Run abootimg -i boot.img on the boot.img generated by the install, the offsets should be the same
  • Run pmbootstrap initfs hook_add debug-shell to add the debug shell for telnet
  • Finally, flash the rootfs and kernel with pmbootstrap flasher flash_rootfs and pmbootstrap flasher flash_kernel

The phone boots and you should get the white screen with Google logo, sometimes it has a graphical glitch and others it doesn't. The SSH isn't working, it should have an IP and you can ping it but you can't connect by SSH. You can however connect to a shell with the telnet command.

$ telnet 172.16.42.1

Here are some links to the files used, scroll down for multiple files:

Status

Work is ongoing, flashing works and telnet can be accessed during boot.

See also