Jump to content

LG G7 ThinQ (lg-judyln)

From postmarketOS Wiki
LG G7 ThinQ
LG G7 ThinQ
LG G7 ThinQ
Manufacturer LG
Name G7 ThinQ
Codename lg-judyln
Released 2018
Type handset
Hardware
Chipset Qualcomm Snapdragon 845 (SDM845)
CPU Octa-core (4x 2.8 GHz Kryo 385 Gold
4x 1.7 GHz Kryo 385 Silver)
GPU Adreno 630
Display 1440x3120 6.1" IPS
Storage 64/128 GB
Memory 4/6 GB
Architecture aarch64
Software
Original software Android (LG UX)
Original version
The version the device was shipped with.
8
Extended version
The most recent supported version from the manufacturer.
10
postmarketOS
Category testing
Pre-built images
Whether pre-built images are available here.
no
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
Features
Flashing
It is possible to flash the device with pmbootstrap flasher.
Works
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
SD card
Also includes other external storage cards
Works
Battery
Charging and battery level reporting works
Works
Screen
Display works. Ideally with sleep mode and brightness control.
Partial
Touchscreen
Broken
Multimedia
3D Acceleration
Broken
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
Broken
Camera Flash
Works
Connectivity
WiFi
Broken
Bluetooth
Broken
GPS
Untested
NFC
Near Field Communication
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
Partial
Sensors
Accelerometer
Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile
Broken
Magnetometer
Sensor to measure magnetism
Broken
Ambient Light
Broken
Proximity
Broken
Hall Effect
Also known as flip cover sensor
Broken
Haptics
Partial
Barometer
Sensor to measure air pressure
Broken


Contributors

Users owning this device


How to enter fastboot mode

Ensure the device is unplugged, and power it off.

While holding Volume Up, connect the device to your computer with a USB-C cable. Continue holding the button until you see the fastboot screen.

How to enter EDL mode

While the device is powered on and connected via USB, hold Volume Down + Power until the device reboots (takes about 15 seconds). As soon as the screen is blank, rapidly and repeatedly press Volume Up (whilst continuing to hold Volume Down + Power).

It's very finicky, you might need to try a couple of times to get it right. If you did it correctly the screen should stay blank and a USB device with a VID:PID of 05c6:9008 should appear on your host computer.

Bootloader Unlock

The stock bootloader for this device is quite useless. It will not allow you to flash or even boot kernels.

Luckily, it's possible to force a proper unlock of the bootloader. The steps, in brief, are:

  • Use EDL mode to backup the ABL, and then overwrite it with the LG V35 bootloader (which supports unlocking)
  • Reboot and unlock the bootloader
  • Reboot into EDL mode again and restore the LG G7 bootloader.

Download the necessary files from here https://drive.sajattack.xyz/index.php/s/kyie9FGnPmA6d6t

Note: downloading the firehose programmer and using it in the steps below will be unnecessary once this PR is merged: https://github.com/bkerler/Loaders/pull/121

These files are sourced from the following xda-developers thread, mirrored by Sajattack

https://xdaforums.com/t/guide-guide-to-unlock-bootloader-for-every-lg-sdm845-except-g710tm-with-photos.4168771/

Install https://github.com/bkerler/edl

Enter EDL mode

With the device in EDL mode, first back up your ABL:

edl --loader=prog_ufs_firehose_Sdm845_lge.elf r --memory=ufs abl_a abl_a.img edl --loader=prog_ufs_firehose_Sdm845_lge.elf r --memory=ufs abl_b abl_b.img

Next, flash V35abl.img and frp.img:

edl --loader=prog_ufs_firehose_Sdm845_lge.elf w --memory=ufs abl_a V35abl.img edl --loader=prog_ufs_firehose_Sdm845_lge.elf w --memory=ufs abl_b V35abl.img

edl --loader=prog_ufs_firehose_Sdm845_lge.elf w --memory=ufs frp frp.img

Then, reboot to fastboot mode and run

fastboot oem unlock

Lastly, restore your backed up ABL by returning to EDL mode and running:

edl --loader=prog_ufs_firehose_Sdm845_lge.elf w --memory=ufs abl_a abl_a.img edl --loader=prog_ufs_firehose_Sdm845_lge.elf w --memory=ufs abl_b abl_b.img

Optionally, backup and erase laf_a if it's preventing you from getting into fastboot mode, (Sajattack had trouble with that, but isn't sure if it's required)

Exit EDL mode with the edl reset command or by holding Volume Down + Power until the device reboots

Installation

See LG_V35_ThinQ_(lg-judyp)#Installation.

Alternatively, you can flash to the userdata partition but WARNING: this will erase your user data and likely make any Android installation installed on the other slot unusable. This will probably boot/run faster and you won't need to use an SD card, but on the other hand if you do this it will be harder to make changes to the root filesystem whenever pmos won't boot.


You will likely have to use EDL to flash `boot.img` as fastboot does not seem to flash or boot (At least on my device)

$ # boot into fastboot mode
$ fastboot erase dtbo_b # or dtbo_a if you are using slot A but it probably matters little since we are about to overwrite userdata
$ pmbootstrap init
$ pmbootstrap install
$ # At this point you may want to edit your kernel config.  
$ # At the time of writing the "ipa" module (QCOM_IPA; Device Drivers -> Network device support -> Qualcomm IPA support) would crash my G7
$ pmbootstrap kconfig edit linux-postmarketos-qcom-sdm845 # optional
$ pmbootstrap build --force linux-postmarketos-qcom-sdm845 # only if you changed the config
$ pmbootstrap flasher flash_rootfs --partition userdata
$ pmbootstrap flasher flash_kernel --partition boot_b # or boot_a if you are using slot A
$ fastboot --set-active=b
$ fastboot reboot

Support status

GPU

GPU is not working likely due to the lack of a display panel driver, Basic framebuffer works though.

Hacking

UART is accessible with a standard USB Cereal adapter. (UART RX is SBU1 and UART TX is SBU2 of the USB-C port).

https://github.com/oxda/usb-cereal

https://wiki.postmarketos.org/wiki/Serial_debugging#USB-C_based_cables

See also

External Links