IOroot was originally a Windows script to root the LG G2 on 4.2.2 made by IOMonster... based on the original adb backdoor found by GiantPune and later posted by jcase.
The script has grown to support various other LG devices on Android 4.0 - 4.4.2... 4.4.2 kk_root.zip by autoprime. Current IOroot25r1 by autoprime.
Supported devices include LG Optimus G, G2, G3, G Pro, G Pro 2, G Flex and G Pad just to name a few.
4.4.2 root will NOT work for you if you cannot get into the stock recovery menu w/the "adb reboot recovery" command.
Check the supported devices list below. You may have to downgrade to 4.2.2 or below and root that instead.
Or your device may not be supported at all. Again.. check the supported device list below.
Current Version - IOroot25 refresh 1y u no hit thanks button?
Download IOroot zip, extract and run script to root. ADB must be enabled (USB Debugging ON).
Click the button below for IOroot device support list, manual and automated root and other info.
Device Model and Firmware Supported List:
LG Optimus G - all 4.2.2 and 4.4.2
AT&T D800 - D80010d/D80010o/4.4.2
D801 - TMO(all 4.2.2 // No 4.4.2 support), CLR(all 4.2.2 // 4.4.2 ??), WND(all 4.2.2 // 4.4.2 ??), VTR(all 4.2.2 // 4.4.2 ??)
D802 - all 4.2.2 and 4.4.2
D803 - all
D805 - all
D806 - all
F320K - Shipping 4.2.2 ROM/F320K20a/20f // 4.4.2 ??
F320L - Shipping 4.2.2 ROM/F320L20b/20e // 4.4.2 ??
F320S - Shipping 4.2.2 ROM/F320S20a/20g // 4.4.2 ??
Sprint LS980 - All 4.2.2 and 4.4.2
Verizon VS980 - All 4.2.2 and 4.4.2
LG G Flex:
F340 series - All 4.2.2 // 4.4.2 ??
D950 - All 4.2.2 // No 4.4.2 support
D955 series - All 4.2.2
D958 series - All 4.2.2 // No 4.4.2 support
D959 - All 4.2.2 // No 4.4.2 support
LS995 - All 4.2.2 and 4.4.2
LG G Pro - All 4.4.2 Only
LG G Pro 2:
F350 series - Shipping ROM // 4.4.2 ??
D838 - Shipping ROM // 4.4.2 ??
LG G Pad - 4.4.2 Only
F400 Series - Shipping ROM
Manual Root Method:
Code:Windows Drivers: Verizon Drivers - HERE Drivers for everyone else - HERE 4.4.2 Manual Root: Download and extract the latest IOroot.zip 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 kk_root.zip reboot when zip finishes flashing. done. 4.2.2 Manual Root: Download and extract the latest IOroot.zip 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/10q: adb push ytiruces_1a_att /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(T) (4.2.2): adb push g2_security /sdcard/g2_security D803 (4.2.2): adb push ytiruces_1a_d803 /sdcard/ytiruces_1a D805 (4.2.2): adb push g2_security /sdcard/g2_security D806 (4.2.2): 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/ZV8: 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 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 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 LS995 (4.2.2): adb push ytiruces_1a_ls995 /sdcard/ytiruces_1a 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 install-recovery.sh /system/etc/install-recovery.sh 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/install-recovery.sh;chmod 755 /system/etc/install-recovery.sh" 12: adb shell "sync;mount -o remount,ro /system" 13: adb install Superuser.apk REBOOT AFTER STEP #13 v
Automated .bat/.sh Directions:
Download latest ioroot.zip. Unzip and run bat/sh. Follow the onscreen instructions.
4.4.2 is rooted through stock recovery. Once in recovery use volume keys to select "update with adb" then hit the power button... then continue with the script.
Download and install proper ADB driver. Enable USB Debugging. Double-click on root.bat
cd into /IOroot/ folder
chmod +x root.sh
cd into /IOroot/mac/ folder
chmod +x root.sh
Verizon Drivers - HERE
Drivers for everyone else - HERE
EFS is automatically backed up for all 4.2.2(and below) devices.
EFS is backed up into the ioroot folder on your computer. If running ioroot on mac.. it'll be in the ioroot/mac folder.
Store backed up EFS partitions somewhere safe.
4.4.2 devices will not have automatic EFS backup.
Use the commands below to backup EFS.
Code:adb shell su 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
If you are on 4.4.2 and cannot get into a stock recovery menu with adb reboot recovery then you CANNOT root 4.4.2 on your device.
You must downgrade to 4.2.2 with stock tot or kdz, retain root and take OTA updates to 4.4.2
downgrade to 4.2.2 and install custom recovery and manually upgrade your way to 4.4.2 by flashing a KK rom + modem.
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 ro.build.target_operator"
adb shell "getprop ro.lge.swversion"
adb shell "getprop ro.build.fingerprint"
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) on 4.2.2 and below run FreeGee ( @Shelnutt2 )
Check out the FreeGee donate version if you want to support a great dev.
For custom recovery(TWRP) on 4.4.2 run AutoRec by @Cloudyfa for a safe and easy install.
IOroot25r1 Download: HERE
v25r1: Fixed LG OG EFS backup. Added D802T 4.2.2 support. Script checks for 4.4.2 first. G3 supported.
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)