[Miscellaneous Android Development] c0mpl3xy:
First, you’ll need ADB and fastboot, which can be downloaded here. To set up ADB, go to Settings/About Phone/Software Info and tap on build number until you get a toast notification saying “You are now a developer!” You will now have a new category in Settings called Developer Options. Go into developer options and enable USB debugging and OEM Unlock. You won't be able to turn it on if your phone is plugged in to your PC. Once you've turned it on, go to your PC, open Terminal or Command Prompt and type “adb devices”. Then plug in your phone and hit enter. You'll get a prompt on your phone to “Allow connections to this PC?”. Check Always allow and Allow. Now run “adb devices” again. Your device should now appear in Terminal.

If you have a SD card, download the latest zips from here and here onto your​ SD card. It'll save you a step later on.

Then you'll need to reboot to fastboot by holding down VOL- and plugging in USB while power is off. Alternatively​, you can type “adb reboot bootloader” in Terminal or Command Prompt.

Next, you'll need to unlock the bootloader. Bootloader unlocking​ will factory reset your phone! Once you're in fastboot, run “fastboot oem unlock” in Terminal or Command Prompt. Now the bootloader is unlocked.

Now it's time to flash TWRP, a custom recovery for Android. It's going to be the way you install custom ROMs and add-ons. Download TWRP here. Once you've extracted​ the recovery.img, run this command: “fastboot flash recovery path/to/recovery.img”. Once the file has flashed, disconnect the USB cable and battery. The next step is important! You're going to need to boot into TWRP for the first time. With the phone off, hold down VOL- and press power until the phone vibrates and the LG logo appears. While still holding down VOL-, release and immediately press and hold power. You should now be at a white screen that says “Reset all data and restore to factory settings?” Use the volume and power keys to select yes and yes again. If you've installed​ TWRP successfully​, it won't actually factory reset your phone. Now you should see the TWRP screen. If you don't see the TWRP screen and instead see a floating ring that says “Erasing”, don't worry. Let if complete and try flashing TWRP in fastboot again.

In TWRP, you'll be greeted by a screen that says “Swipe to allow modifications?” Swipe it, then go to the Wipe tab. Go to Wipe, then Format Data, then type yes, then go to the Reboot tab and select Recovery to reboot into TWRP again. If you're prompted to install the TWRP app, don't bother.

Once you've rebooted into TWRP again, it's time to disable encryption​ and root the phone. Download the latest zips here and here. Skip downloading them if you already put them on your SD card earlier. On your PC, push the files to your phone using the command “adb push path/to/file.zip /sdcard/”. You can drag and drop the file into Terminal or Command Prompt to copy file path. Then go to the Install tab in TWRP and select the no-verity-opt-encrypt.zip, tap Add more zips, then add the root zip, then swipe to flash. Let the zips flash, then tap the Reboot System button when it's done. Your phone will take a little longer to boot and might reboot a couple times.

Once you're back in the OS, go through the setup wizard. Set up Magisk. If you stay on stock, you should install an app like Quick Reboot Pro from the Play Store to make it easier to reboot into recovery. Now reboot back into TWRP and go to the Backup tab. If you have a SD card, set it as the backup location. You can enable compression if you want. This will make a full system backup that you can restore from as long as you have TWRP. If the backup takes up too much space, you can put it in Google Drive or your PC later on.