[LG K8 Guides, News, & Discussion] luthor112:
The what:

Use an ext4 partition on the external SD card as /data instead of the internal userdata partition.

Warning:

This method does not require root permissions, but does involve boot image modification and, as such, bootloader unlocking.

I only tested this successfully with the firmware K350n10e_00_0630.kdz (Android 6.0.x Marshmallow, Vodafone Hungary) from 2016-07-27.

Doing this on a newer firmware could brick your device!

If you are not willing to take the risk and/or you don't mind moving some apps by hand, you can use the the following guide instead: [GUIDE] Configure SD card as internal storage in Marshmallow on LG Spirit [H440n] by SteSko.

Slowdowns on bootup and app startup have been observed!

The why:

The LG K8 (K350n) has only 8 GB of internal storage space, which gets filled up very fast, resulting in not being to install/update apps or update the OS.

Some applications don't permit being moved to the SD card.

I only found about about SteSko's method after discovering this one, even though I have search a lot.

The how:

Obtain adb and fastboot by downloading android platform-tools.

Obtain [TOOL] KDZ and TOT Extractor from the thread by bullghost

Obtain your firmware, for example by perusing the thread [STOCK][KDZ][FIRMWARE] All models of the device LG K8 (code name: M1V) by ze7zez.

Obtain or port yourself a TWRP, for example by perusing the thread "Portable" TWRP porter [MTK] [TWRP 3.0.2 - 3.1.1] by gottlasz.

Obtain [TOOL][UTILITY] Carliv Image Kitchen for Android - unpack/repack boot-recovery by bluefirebird from the repository. Don't forget to change to the branch supporting your operating system.

Unlock your bootloader:

Open Settings -> General -> About phone -> Software info.

Keep tapping Build number until you become a developer!

Open Settings -> General -> Developer options.

Turn on USB debugging and Enable OEM unlock.

Run adb and enable access on the phone if asked:

adb devices

Reboot to bootloader/fastboot mode:

adb reboot bootloader

Check if fastboot can see your phone:

fastboot devices

Note: It's okay if the phone's name is unreadable letter soup.

Unlock your bootloader, agree on your phone when asked:

fastboot oem unlock

Warning: This will wipe your data!

Modify the boot image:

Enable USB debugging, Enable OEM unlock, reboot into bootloader just like before.

Boot the TWRP image you downloaded or ported earlier:

fastboot boot yourTWRP.img

Press Cancel when asked about the decyption key. You can allow modifications to System.

Tap Advanced -> Partition SD Card.

Select your SD card, tap OK.

Set the size for the new partition (what remains will be usable as the external SD card), switch the File System to ext4, swipe to partition.

Go back to the main menu, select Advanced -> Terminal.

List your block devices, the device we are looking for will only have two partitions. We need the second one, take note of its path.

ls /dev/block

On my phone, the new partition was located at /dev/block/mmcblk1p2.

Go back to the main menu, select Reboot -> System.

Use the KDZ extractor obtained earlier to unpack the DZ file from your KDZ file obtained earlier.

Use the KDZ extractor obtained earlier to unpack the boot image from the DZ file. (This tool can also be used to extract the recovery image for porting TWRP.)

Unpack Carliv Image Kitchen.

Copy your boot image into the boot-resources directory, change the extension from bin to img.

Use Carliv Image Kitchen to unpack the boot image. The unpacked data will appear in the boot directory.

Modify boot/ramdisk/fstab.mm1v:

Find the line dealing with /data. On my phone it was:

/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/userdata /data ext4 noatime,nosuid,nodev,noauto_da_alloc,discard wait,check,resize,forceencrypt=/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/encrypt

Change the partition to the one we just created. On my phone this resulted in:

/dev/block/mmcblk1p2 /data ext4 noatime,nosuid,nodev,noauto_da_alloc,discard wait,check,resize,forceencrypt=/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/encrypt

Save the file, then repack the boot image. You will find your modified boot image in the output directory.

Copy the image file to your SD card, we will need it.

Flash the boot image:

Reboot into bootloader just like before, boot TWRP, Cancel decryption, allow System modification.

In the main menu, tap Install.

Tap Select Storage and select your SD card.

Tap Install Image, because that's what we are going to do.

Select your boot image file.

Select the Boot partition, swipe to flash.

Wipe data and restart:

Go back to the main menu, tap Wipe.

Swipe to complete the wipe, then Reboot.

Notes:

Tested with the firmware K350n10e_00_0630.kdz (Android 6.0.x Marshmallow, Vodafone Hungary) from 2016-07-27.

Warning: Doing this on a newer firmware could brick your device! (Although it can be unbricked by flashing a new firmware in download mode using LGUP.)

This is my first thread, criticism is welcome.