[Sprint LG G4] jaysoblitzed:
Verified Downgraded from ZVA to ZV6 with full root access

LS991 Sprint Only.

QUICK GUIDE & TESTING

(Please read the entire guide before trying anything.)

I nor anyone at XDA is responsible for anything that may happen to your device.

Simply, by taking incentive to change the stock setup provided by the manufacturer for your device; you assume all responsibility for anything that happens.

download LGUP

http://xdaforums.com/g4/help/lgup-install-kdz-mm-lp-t3249803

(Thanks to shakeyabooti)

download LS991ZV6_00.zip and extract to get .tot file with winrar/7zip or any other unzipping program

http://downloads.codefi.re/autoprime/LG/LG_G4/LS991/LS991ZV6/LS991ZV6_00.zip (or google/xda search for mirrors) (Thanks to autoprime)

download LGROOT

http://xdaforums.com/android/development/guide-root-method-lg-devices-t3049772

(Thanks to Unjustified Dev)

download LG Drivers

http://xdaforums.com/android/development/guide-root-method-lg-devices-t3049772 (or google)

(Thanks to Unjustified Dev)

download rootedsystem.ls991.zip and extract to get .img file with winrar/7zip or any other unzipping program

http://xdaforums.com/sprint-g4/general/zv6-root-success-t3205963/page3

(scroll down to parin11's post. #29 and thank you to both parin11 and mswlogo)

-install drivers

-enable oem unlock in developer settings

-plug device in as charge only, switch to mtp to verify drivers are working correctly, then disconnect

--if on mtp then switch to charge only to verify drivers are working correctly, then disconnect

-enable usb debugging

-reconnect and drivers auto install

-disconnect after 2 minutes.

--while you wait;

-for LGUP extract and install _dll version then the second msi.

-for LGROOT extract to a folder to keep things organized

-remove the back cover of your device and leave it off for access to battery pulls.

-power off device

-hold volume up key and plug in your device and keep holding the volume down key until it passes the screen that says download mode.

-open LGUP

-make sure UPGRADE is checked/has a little circle/bullet point

-click in the empty space directly to the right of where it says BIN with the checkmark

-3 dots will appear to the right of the program in the same row that says BIN; which is your browse option

-navigate to LS991ZV6_00.tot and select

-reconfirm your UPGRADE option is checked

-press start and allow the device to fully complete the process.

-your device will boot to the loading screen right before showing the android desktop and "freeze"

-In most if not all new flash scenarios; your device will not boot up until a factory restore and clear cache is done.

-To do this you must simply remove the battery and usb cable from your device AFTER it has hung on the logo for about 3 minutes / 180 seconds.

(Most new devices average a first time boot of up to 150 seconds maximum to be considered fully "loaded")

-With the battery and cable removed; hold the power and volume DOWN button together at the same time.

-insert the battery while holding these buttons together and just wait while holding them and you will see it says booting into recovery.

-once your in the recovery you use the power key to select and the volume keys to navigate.

-navigate to factory restore/reset hit the power button, navigate to "yes" out of all the "no's" and hit the power button again

-it will say its complete and either ask you to go back reboot or return to menu. RETURN TO THE MENU, do not boot up yet.

-Once returned to the main menu you will see it says clear cache. Select and press yes and now you can select reboot; or return to menu then reboot.

Your device will be on ZV6 stock and fully booted after this.

Now this is where it gets kind of odd because my device never actually loaded the rootedsystemls991.img file nor did I run a root script

when attempting to flash it with the steps listed in the other root guides BUT i followed this guide from step one to step 9 (and outlined continuing through the guide)

http://xdaforums.com/android/development/guide-root-method-lg-devices-t3049772

this allowed all the necessary rooting files to be in the places necessary to execute the root but I did one extra step

I did an adb.exe push rootedsystem.ls991.img /data/local/tmp command as well while the device was on the home screen.

This was so I could basically emulate the command listed by |Unjustified Dev| as it also states to do in the ZV5 guide.

So this is what I did,

-After my device booted up and loaded to the home screen on stock zv6, I opened the LGROOT folder

-held shift and clicked "open command prompt here"

-when cmd opened I ran the following command

adb.exe devices

This allowed me to see that my device was connected to the PC with its generated serial number.

-then i ran the following command

adb.exe push busybox /data/local/tmp/ && adb.exe push lg_root.sh /data/local/tmp && adb.exe push UPDATE-SuperSU-v2.46.zip /data/local/tmp

-After this I applied the command to push the .img file to the same location. This was the "emulated command" I spoke of.

adb.exe push rootedsystem.LS991.ZV6.img /data/local/tmp

-I then added the .img file directly to the Internal Storage / Stock Phone MTP storage

-Afterwards I simply powered off my device, removed the usb cable, held the volume up button, then plugged it back in still holding the volume button until

the text download mode was gone again; and no this is not a timing thing im just saying that again incase anyone forgot how to get into download mode. lol.

-I then ran the ports.bat file included in LGROOT to find the COM port drivers.

-Followed up with this command

Send_Command.exe \\.\COM8 (<--Replace number here with the COM port listed for the "DIAG" portion of the device.)

-Now, still in download mode I executed this command about three times with no avail.

dd if=/data/media/0/rootedsystem.LS991.ZV6.img bs=8192 seek=65536 count=557312 of=/dev/block/mmcblk0

(Which by the way I had the file in both the MTP side of root and in the data/local/tmp)

or you could change it to /data/local/tmp/ like

dd if=/data/local/tmp/rootedsystem.LS991.ZV6.img bs=8192 seek=65536 count=557312 of=/dev/block/mmcblk0

This would possibly solve the issue I was having. So you would have root now.

THIS PART REQUIRES TESTING.

BUT continue reading you'll be shocked.

sidenote:

They state that all you have to do is put the .img file into the root of your Internal Storage / Stock Phone MTP storage

and run the command in download mode but this failed when I tried to execute it.

dd if=/data/media/0/rootedsystem.LS991.ZV6.img bs=8192 seek=65536 count=557312 of=/dev/block/mmcblk0

The command above was the command they listed to be able to restore the device from stock to stock with root access. Please note I tried this command while the phone was turned on in debugging with enable oem unlock on, while in download mode and while in recovery mode all with debugging and enable oem unlock checked with either no response / device detected, or attempts causing the command prompt to show the # symbol after a few seconds of executing the line above which shouldn't happen,

since the size of the file is 4GB... The ENTIRE SYSTEM PARITION. -_-. There is a considerable amount of hangtime here is what I'm saying.

If the dd if=/data/media/0/rootedsystem.LS991.ZV6.img bs=8192 seek=65536 count=557312 of=/dev/block/mmcblk0 command worked for you then great, boot up and enjoy root! BUT.

For those who didnt have luck doing so with the command that failed me above, for some odd reason after pushing both the SuperSU bundle and the entire .img file to /data/local/tmp/ with the files in the internal storage /data/media/0/ as well

trying to only execute the command for the .img (/media/0/ not /local/tmp/) | (not the "fixed" command") and NOT for the SuperSU

eg.

-This was for the image which was the only one I used. (USED)

dd if=/data/media/0/rootedsystem.LS991.ZV6.img bs=8192 seek=65536 count=557312 of=/dev/block/mmcblk0

This was for root only which I did not touch. (NOT USED)

sh /data/local/tmp/lg_root.sh dummy 1 /data/local/tmp/UPDATE-SuperSU-v2.46.zip /data/local/tmp/busybox

-This caused the device to simply show the # sign almost immediately as I spoke of above.

-I typed in LEAVE and the device booted back up.

-The odd thing I'm speaking about is when I turned the device back on it showed that SuperSU was installed and was requesting to be "updated".

-I chose normal and it asked for a reboot. Rebooted started back up and it asked for root access when I clicked on it.

-Granted and successful.

-Went to the playstore.

-It said update next to SuperSU which was even odder.

-Clicked it and updated it and it got the latest version, asked for one more reboot, started back up, then I opened the app. Everything was normal.

-Downloaded root checker basic, titanium backup, and greenify immediately.

All passed with flying colors.

-There is an error that pops up in titanium backup regarding adding underscores or slashes into modified file directories for backup purposes assumed but

opening greenify ended up picking up this issue and requesting to fix it.

Why not right?

-Heh. It worked.

I have never experienced this type of latency within programming so this is extremely odd and without executing the SuperSU script command or,

a sucessful flash of the .img it just seems too odd, but; there you have it! All of the mods / developers working on this device I would like to hear

your insight on this.

So you have two options. Follow what I did or test the command with /data/local/tmp/ and try your luck flashing stock with root again or just run the root script on stock instead of trying to flash from stock to stock rooted.

Thank you and enjoy your root!

P.S. I didn't end up experiencing this issue since it works perfectly but in the event that SuperSU does not install after trying to flash the .img and getting

the 2 second delay with the # sign appearing immediately and rebooting after 3 attempts I would have personally tested the original adb SuperSU script command recommended for the ZV5 users

which was listed above and is

sh /data/local/tmp/lg_root.sh dummy 1 /data/local/tmp/UPDATE-SuperSU-v2.46.zip /data/local/tmp/busybox

And for the love of your device. Don't try to update your device from an older version using this method. Ayeeeyiyiy

I will re-test what I stated and make a completely organized guide and video for everyone.

I just wanted to let you all know now to assist the entire community in understanding this device's root process a little more.