LG G3 Europe (lg-d855)
WARNING: Installation might be currently broken. See pmaports#2335. |
LG G3 running Weston demos | |
Manufacturer | LG |
---|---|
Name | G3 (Europe) |
Codename | lg-d855 |
Released | 2014 |
Type | handset |
Hardware | |
Chipset | Qualcomm Snapdragon 801 (MSM8974AC) |
CPU | Quad-core 2.5 GHz Krait 400 |
GPU | Adreno 330 |
Display | 1440x2560 IPS |
Storage | 16/32 GB |
Memory | 2/3 GB |
Architecture | armv7 |
Software | |
Original software | Android |
Original version | 4.4.2 (Linux 3.10) |
Extended version | 11 (LineageOS 18.1) |
postmarketOS | |
Category | testing |
Pre-built images | no |
postmarketOS kernel | Linux 3.4.113-Lineage |
Flashing |
Partial |
---|---|
USB Networking |
Works |
Internal storage | |
SD card | |
Battery | |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration | |
Audio | |
Camera | |
Camera Flash | |
Connectivity | |
WiFi | |
Bluetooth | |
GPS | |
NFC | |
Modem | |
Calls | |
SMS | |
Mobile data | |
Miscellaneous | |
FDE | |
USB OTG | |
HDMI/DP | |
Sensors | |
Accelerometer | |
Magnetometer | |
Ambient Light | |
Proximity | |
Hall Effect | |
Haptics | |
Barometer | |
Contributors
- Nutcake
Fastboot
Before you can use fastboot on this device you need to remove LGs Download mode, which hides the standard fastboot mode. You can do this by zeroing out a partition called 'laf':
adb shell
su
dd if=/dev/block/platform/msm_sdcc.1/by-name/laf of=/sdcard/laf.img #backup LGs Download mode to the internal SD just in case
dd if=/dev/zero of=/dev/block/platform/msm_sdcc.1/by-name/laf #Overwrite laf with zeroes, enabling fastboot
exit
adb reboot bootloader #reboot directly to fastboot
More detailed instructions for this can be found here
Afterwards, you can boot into fastboot by following these steps:
1. Turn of phone completely 2. Hold Volume Up. 3. Plug in USB-cable while still holding Vol. Up until fastboot pops up
Signing the boot image
pmbootstrap will successfully flash rootfs and kernel, however the device will only boot if you use the
pmbootstrap flasher boot
command, as it will otherwise show this error:
ERROR : boot certification verify [630]_________________________________________ [640] [640] Secure booting Error! [640] Cause : boot certification verify [640] [640]_________________________________________
The message is shown for 3 seconds, then the screen blacks out and the LED will blink red and blue indefinitely.
This happens because the bootloader on the d855 variant of the LG G3 can not be unlocked and you have to trick the bootloader into thinking your boot image is legitimate.
To do this, you need to first export your boot.img-lg-d855:
mkdir -p /tmp/pmOS_export pmbootstrap export /tmp/pmOS_export
Then we need a tool called Open_Bump, which can sign boot images for our device. (Requires Python 2. Also works for older LG devices?):
git clone https://github.com/CyboLabs/Open_Bump cd Open_Bump python2 open_bump.py "/tmp/pmOS_export/boot.img"
This will create a signed image called boot_bumped.img
in /tmp/pmOS_export/
.
Now first flash System and kernel images using pmbootstrap and then manually flash the signed image over these:
pmbootstrap flasher flash_rootfs pmbootstrap flasher flash_kernel fastboot flash boot /tmp/pmOS_export/boot_bumped.img
lk2nd
The commands on this section don't appear to yield the expected results. |
To avoid the secure boot error and get lk2nd running, download lk2nd-msm8974.img from here and remove the "SEANDROIDENFORCE" 53 45 41 4E 44 52 4F 49 44 45 4E 46 4F 52 43 45
bytes at the end of the file with a hex editor.
Then bump lk2nd-msm8974.img with this script and flash it to the phone with the following commands:
python2 bump.py lk2nd-msm8974.img fastboot flash boot lk2nd-msm8974_bumped.img
If the bytes haven't been removed, the script will think that lk2nd has already been bumped.
Mainline kernel
List of features working on mainline kernel:
Component | Model | Status | Notes |
---|---|---|---|
SoC | Qualcomm MSM8974AC Snapdragon 801 | Y | |
USB | - | Y | Working in dual-role mode. |
HDMI (SlimPort) | Analogix ANX7812 | N | Driver available in mainline. |
eMMC | SanDisk SDIN9DW4 | Y | |
microSD | - | Y | |
Display | LG LH550QH1-SD03 | N | Connected through Dual DSI. Framebuffer location: 0x3200000 (Stride 3)
|
LCD Backlight | Ti LM3697 | N | Driver available in mainline. |
Touchscreen | Synaptics S3528A1 | Y | |
Charging IC | Ti BQ24296 | Y | LetuxOS has a driver for it. BQ24190 driver in mainline seems to work fine for now. |
Wireless Charging IC | IDT P9025A | N | |
Fuel Gauge | Maxim MAX17048 | Y | |
Buttons | - | Y | GPIO |
Gyroscope | InvenSense MPU-6515 | P | Missing mount-matrix. |
Ambient light and proximity sensor | Avago APDS-9930 | Y | |
Magnetometer | ALPS HSCDTD008A | P | Missing mount-matrix. |
Pressure Sensor | ALPS HSPPAD038A | N | |
IIRC Sensor | Maxim MAXQ616V | N | |
Hall Effect Sensor | ROHM Semiconductor BU52061NVX | Y | GPIO |
NFC | NXP PN547 | Y | |
Audio | Qualcomm WCD9320 | N | |
Speaker amplifier | Cirrus Logic CS35L32 | N | Driver available in mainline. |
Audio Jack detection IC | Maxim MAX14688 | N | |
GPU | Qualcomm Adreno 330 | N | |
WLAN | Qualcomm WCN-3680B | Y | |
Bluetooth | Qualcomm WCN-3680B | P | HCI doesn't always come up. |
Modem | - | N | Firmware doesn't load due to its weird memory region overlapping with other firmware. |
Front camera | Sony IMX208 | N | Driver available in mainline. |
Main camera | Sony IMX135 | N | |
Status LED | Citizen Electronics CL-503S RGB LED | Y | Works using PM8941 LPG. |
Dual Flash LED | LG Innotek LEYRS63A81GW00 | N | |
Panel power supply | Ti TPS65132 | N | Driver available in mainline. |
Haptics | Syncoam SM100 | Y | Works using clock based vibrator driver. |
Links
- Original Kernel Source
- Service manual (containing lots of schematics!)
- Mainline kernel fork for d855