The page you are currently viewing(post #869) is my original IOroot post.
IOroot for LG G Flex thread can be found here.
Current Version - IOroot25

As of IOroot 25... Most LG 4.4.2 devices can be rooted. G2, G Pro, G Pro 2, G Pad. Exceptions so far: TMO D801 G2 and G Pro 2 D838... no way to enter stock recovery menu on those two devices.. yet.

As of IOroot21... EFS backup has been added to the root script. EFS is backed up after fully rooting.. the last step in the script.
EFS is backed up into the ioroot folder on your computer. If running ioroot on mac.. it'll be in the ioroot/mac folder.
This will hopefully reduce future issues where EFS is corrupted and the user never made a backup of EFS.
Store backed up EFS partitions somewhere safe.
If using IOroot25 to root 4.4.2... EFS will NOT be backed up with the script. If using it to root 4.2.2 it will still backup EFS.
To backup the EFS manually use the code below. It will save your two EFS partitions to the root of internal sd.

adb shell
dd if=/dev/block/platform/msm_sdcc.1/by-name/modemst1 of=/sdcard/modemst1.img
dd if=/dev/block/platform/msm_sdcc.1/by-name/modemst2 of=/sdcard/modemst2.img

Confirm your device is supported below.

Download latest IOroot zip and extract it. Set phone in USB Debugging mode.

Set USB mode to Charging only(this may vary based on model).
Verizon users need to set USB connection to "Ethernet" mode.

Confirm device is detected in ADB using "adb devices" command.
Be sure to accept the RSA prompt on your phone.. and check the "always" box as well.

Run script and follow the onscreen instructions.

If the script is stick at "waiting for device".. turn your phone screen on and unlock it.. make sure ADB has the proper permission and that the ADB RSA prompt isn't sitting on the YES/NO screen. Check the "always remember" box when you accept it!!!

Windows: Download and install proper ADB driver. Double-click on root.bat
Linux: cd into IOroot folder -> chmod +x -> ./
Mac: cd into /IOroot/mac folder -> chmod +x -> ./

Windows Drivers:
Verizon Drivers - HERE
Drivers for everyone else - HERE

Device Model and Firmware Supported:

LG Optimus G - All

LG G2:
D800 - All
D801 - TMO*, CLR, WND, VTR [Still no solution for TMO 4.4.2 KK. Need method into stock recovery interface or a way to force install]
D802 - All
D803 - All
D805 - All
D806 - All
F320K - Shipping ROM and all 4.4.2
F320L - Shipping ROM and all 4.4.2
F320S - Shipping ROM and all 4.4.2
Sprint LS980 - All
Verizon VS980 - All

LG G Flex:
F340 series - All
AT&T D950 - All
D955 series - All
D958 series - All
D959 series - All
Sprint LS995 - All

G Pro
240K/L/S - 4.4.2 Only

G Pro 2
F350K/L/S - All
D838 - All

Not Working?

Make sure to read all of the scripts on-screen text or you may miss something. Hitting a button when it's not time to do so or not reading everything on screen can cause problems. Make sure the phone is unlocked with the screen on whenever possible as well.

If the scripts fail for you check out the manual directions further down the page. The manual method is only a few ADB commands and can help if I've messed up in the scripts somewhere... or if the scripts just don't seem to be working for you. Taking it one step at a time manually almost always results in success.

Still not working?
I need the output from the 4 ADB commands below along with IOroot version and if it was on Windows/Linux/Mac. Any errors you come across would help as well...
adb shell "getprop ro.product.model"
adb shell "getprop"
adb shell "getprop ro.lge.swversion"
adb shell "getprop"

What's Next?
Confirm full root with rootchecker. ( @joeykrim )
Support a great dev by buying the Pro version.

If you only did the "temp root/adb only root" then you can confirm root by opening adb shell and seeing # instead of $.

For custom recovery(TWRP/CWM) run FreeGee ( @Shelnutt2 )
Check out the FreeGee donate version if you want to support a great dev.

Manual Root Method(scroll to bottom for manual 4.4.2 method):

Download and extract the latest
Enable USB Debugging. VZW users must also enable ethernet mode. 
Open terminal/command prompt. windows/linux users: cd into /ioroot folder. mac users cd into /ioroot/mac
(windows users can hold shift key, right click in ioroot folder. Select "open command window" option.

copy/paste commands below.. hitting enter/return after each line. 
Linux/Mac users may have to enter ./ before adb on each line. 
Example: ./adb push g2_security /sdcard/g2_security

1: adb devices
(make sure it sees your device; if "offline" turn on phone/unlock and accept RSA key prompt)
2: Choose next line based on model and firmware version:
AT&T D80010d (Shipping ROM): adb push g2_security /sdcard/g2_security
AT&T D80010o (OTA): adb push ytiruces_1a_att /sdcard/ytiruces_1a
AT&T D80010q (OTA): adb push ytiruces_1a_att /sdcard/ytiruces_1a
Bell D803 (Shipping ROM): adb push ytiruces_1a_d803 /sdcard/ytiruces_1a
KT F320k (Shipping ROM): adb push g2_security /sdcard/g2_security
KT F320K20a/20f (KitKat): adb push ytiruces_1a_kk /mnt/shell/emulated/0/ytiruces_1a
LGU F320L (Shipping ROM): adb push g2_security /sdcard/g2_security
LGU F320L20b/20e (KitKat): adb push ytiruces_1a_kk /mnt/shell/emulated/0/ytiruces_1a
D802 (4.2.2): adb push g2_security /sdcard/g2_security
D805 (4.2.2): adb push g2_security /sdcard/g2_security
D806 (4.2.2): adb push g2_security /sdcard/g2_security
OPEN D802 (Shipping ROM): adb push g2_security /sdcard/g2_security
Rogers D803 (Shipping ROM): adb push ytiruces_1a_d803 /sdcard/ytiruces_1a
SCA D802 (Shipping ROM): adb push g2_security /sdcard/g2_security
SCA D805 (Shipping ROM): adb push g2_security /sdcard/g2_security
Singtel D802 (Shipping ROM): adb push g2_security /sdcard/g2_security
SKT F320S (Shipping ROM): adb push g2_security /sdcard/g2_security
SKT F320S20a/20g (KitKat): adb push ytiruces_1a_kk /mnt/shell/emulated/0/ytiruces_1a
Sprint LS980ZV7 (Shipping ROM): adb push g2_security_spr /sdcard/g2_security
Sprint LS980ZV8 (OTA): adb push g2_security_spr /sdcard/g2_security
Sprint LS980ZVA (OTA): adb push ytiruces_1a_ls980 /sdcard/ytiruces_1a
T-Mobile D80110c (Shipping ROM): adb push g2_security /sdcard/g2_security
T-Mobile D80110g (OTA): adb push ytiruces_1a_tmo /sdcard/ytiruces_1a
Telus D803 (Shipping ROM): adb push ytiruces_1a_d803 /sdcard/ytiruces_1a
Verizon VS98010B (Shipping ROM): adb push g2_security_vzw /sdcard/g2_security
Verizon VS98011A/12B (OTA): adb push ytiruces_1a_vzw /sdcard/ytiruces_1a
Videotron D801 (4.2.2): adb push ytiruces_1a_d803 /sdcard/ytiruces_1a
Vodafone D802 (Shipping ROM): adb push g2_security /sdcard/g2_security
Wind D801 (4.2.2): adb push ytiruces_1a_d803 /sdcard/ytiruces_1a

F340-Series (4.2.2): adb push ytiruces_1a_F340JB /sdcard/ytiruces_1a
D950 (4.2.2): adb push ytiruces_1a_kk /sdcard/ytiruces_1a
D955-Series (4.2.2): adb push ytiruces_1a_kk /sdcard/ytiruces_1a
D956-Series (4.2.2): adb push ytiruces_1a_kk /sdcard/ytiruces_1a
D958-Series (4.2.2): adb push ytiruces_1a_kk /sdcard/ytiruces_1a
D959 (4.2.2): adb push ytiruces_sumtz /sdcard/ytiruces_sumtz

F350K/L/S (4.4.2): adb push ytiruces_1a_kk /sdcard/ytiruces_1a

This next depends on your computer/phone model...

USB Connection Mode needs to be toggled.
Ways to do this are listed below...

a. Unplug usb cable from phone then re-plug.
b. Toggle USB mode from Charge to MTP back to Charge
c. Toggle USB mode from Ethernet to MTP back to Ethernet (VZW users)

3: adb shell
(you should now see a # instead of a $. # = root)
4: exit
5: adb shell "mount -o remount,rw /system"
6: adb push su /system/xbin/su
7: adb push su /system/xbin/daemonsu
8: adb push /system/etc/
9: adb shell "chown 0.0 /system/xbin/su;chmod 06755 /system/xbin/su"
10: adb shell "chown 0.0 /system/xbin/daemonsu;chmod 06755 /system/xbin/daemonsu"
11: adb shell "chown 0.2000 /system/etc/;chmod 755 /system/etc/"
12: adb shell "sync;mount -o remount,ro /system"
13: adb install Superuser.apk


Confirm root with rootchecker. (joeykrim)

Run FreeGee (shelnutt) to install custom recovery- TWRP/CWM. 

4.4.2 method:

Download and extract the latest
Enable USB Debugging. VZW users must also enable ethernet mode. 
Open terminal/command prompt. windows/linux users: cd into /ioroot folder. mac users cd into /ioroot/mac
(windows users can hold shift key, right click in ioroot folder. Select "open command window" option.

1. adb devices
2. adb reboot recovery
(when booted in recovery, select: 'apply update from adb' with power button)
3. adb sideload

reboot when zip finishes flashing. done.

IOroot25 Download: HERE

v25 - Added root for 4.4.2 devices. Now works on most LG 4.4.2 devices. Thanks to @jarari2 for the idea to go through stock recovery.
v24: added support for G2 D800 10q, G Flex D956 and G Pro 2 F350K/L/S(thanks to @hkfriends for confirming ioroot method still works)
v23: added support for AT&T G Flex D950 10c.
v22: added support for TMO D959 G Flex. Tweaked scripts EFS backup... hopefully no more errors.
v21: added support for Sprint LS980ZVA update. Added EFS backup support.
v20: added support for all D802/D805/D806. Updated all scripts. Added LG Optimus G and LG G Flex support. SuperSu now installed in /system.
v19: added support for MORE F320 4.4 firmware. Added Singtel D802 support. Linux/Mac script fixes.
v18: added support for MORE F320 4.4 firmware. Added Vodafone(VDF) carrier(should work with at least Shipping ROM). Tweaked scripts.
v17: added F320* 4.4 KitKat root. Added SuperSu.4.4 users must reboot after running root script(mac/linux)
v16: added TMO 10g root and "SCA" root(D802/D805)
v15: added ATT 10o root.
v12: added Verizon 12B root.
v11: added linux support and Sprint LS980 root(both thanks to @Shelnutt2)

y u no hit thanks button?