IMPORTANT NOTICE --> UNLOCKING AND ROOTING MAY VOID YOUR PHONE WARRANTY AND MAY BRICK YOUR DEVICE AS WELL. I'M NOT RESPONSIBLE FOR EITHER OF THAT.
Here is a reasonable guide to get you started on unlocking and rooting Poco F1 --> https://forum.xda-developers.com/poco-f1/how-to/xiaomi-poco-f1-unlock-bootloader-custom-t3839405
Just for the records I downloaded and installed following external packages to unlock and root my device-->
Also Dont forget to take a backup of your images from TWRP and copy them to your Host machine. It will come very handy. Believe me :)
repo init -u https://android.googlesource.com/platform/manifest -b master git clone git@github.com:pundiramit/android-local-manifests.git .repo/local_manifests repo sync -j$nproc source build/envsetup.sh lunch aosp_beryllium-userdebug make -j$nproc
Avoid a known smmu crash by turning OFF the display -->
fastboot oem select-display-panel none fastboot reboot bootloader
Flash AOSP images and reboot -->
fastboot flash system system.img fastboot flash vendor vendor.img fastboot flash userdata userdata.img fastboot flash boot boot.img fastboot reboot
adb shell
adb reboot bootloader fastboot oem select-display-panel fastboot reboot bootloader
Use standard abootimg commands to update kernel (Image.gz-dtb) in boot.img and fastboot flash the updated boot.img.
My mainline tracking kernel is hosted at -->
https://github.com/pundiramit/linux/tree/master (beryllium_defconfig).
Prepare bootable kernel image (Image.gz-dtb) by running -->
$ cat arch/arm64/boot/Image.gz arch/arm64/boot/dts/qcom/sdm845-beryllium.dtb > arch/arm64/boot/Image.gz-dtb