Pokemon Go doesn’t like custom Android roms, or even stock roms with root access enabled. For whatever reason Niantic think people who have custom roms or root on their Android device must obviously be cheating and there for locked out of playing the game. I’ve personally used custom roms since 2010 on various Android devices to keep them up to date with the latest Android versions and security patches, long after the manufacturer has stopped supporting the device. In addition, having got used to all the nice tweaks, customisation and privacy features custom roms offer, I’d find it hard to go back to stock Android now as its quite limited in comparison. Whatever your reasons are, this is how I have Pokemon Go working on a OnePlus 5T running LineageOS 16. The same should apply to most Android devices however. 1. First you need to install Magisk - i’d suggest reading the Magisk documentation as this will vary from device to device, so it's impossible for me to give a step by step everyone can follow here. However if you have a custom rom / recovery installed its usually a case of booting in to your recovery (TWRP is the most popular) and flashing Magisk to your custom rom. You can still install OTA updates with Magisk installed as its systemless, meaning you can also keep root when updating. Bonus! I’d also recommend making a full backup of your device first too. After you have installed Magisk, load the Magisk Manager app up and run a SafetyNet test: Most newer devices will probably fail the ctsProfile test, if you happen to pass ctsProfile and basicintegrity you can skip installing these two Magisk Plugins. Go to downloads in Magisk Manager and download the Busybox for Android NDK plugin, install this and reboot. Now do the same and download the MagiskHide Props Config plugin: Essentially MagiskHide Props Config is a script that will allow you to change your devices fingerprint to what it should be if you had no custom rom installed. Some custom roms do this automatically so this is not an issue, however LineageOS doesn't on all devices. If you don't have a terminal emulator app installed, you can enable the Terminal Emulator in the Android developer settings, or download this free Terminal Emulator from the Play Store. Type props in to the Terminal Emulator and MagiskHide Props Config should be loaded: Press 1 to edit the devices finger print: Press f to choose a certified fingerprint for your device, going through the menu's to choose one. Once applied you will need to reboot your phone: If you run another SafetyNet in Magisk and you should now pass the ctsProfile and basicintegrity checks: You now want to click on to the Magisk settings menu and "Hide Magisk Manager": If you don't hide it Pokemon Go will detect the Magisk Manager app and refuse to work. Now go to the Magisk Hide menu and ensure Pokemon Go to ticked: That's all the configuration for Magisk done, if you are using a LinageOS rom i'd suggest searching in the Settings app for Privacy Guard and enable this for Pokemon Go: This will greatly restrict what Pokemon Go can access on your phone. Finally go Settings > Apps > Pokemon Go and give the game permission to use the Camera and Location: You should also clear the storage and cache. If the game has registered you've failed any of its security checks even if you have resolved the issue it won't sign in: Its also worth mentioning if you have any files / folders called Magisk on your SD card / internal memory Pokemon Go seems to be able to detect these, so these should be deleted. After this you should be able to play Pokemon Go without issue with a custom rom flashed to your phone, or root enabled. This is essentially the process i've done for several years on various LineageOS versions, it should work great on LinageOS 16 / Android Pie anyway. Happy catching trainer!