This does seem like a wall of text, but if you follow it through step by step, you can easily do it. Thanks to user /u/Hathalud for the rooted spoofing guide. For the unrooted guide read here https://www.reddit.com/r/PokemonGoSpoofing/comments/9kzcfg/tutorial_android_unrooted_spoofing_android_6/ What does this tutorial cover? How to get **[Fake GPS Joystick & Routes Go by Incorporated Apps](https://play.google.com/store/apps/details?id=com.incorporateapps.fakegps_route)** working in Expert Mode using Magisk and a few other tools. Other aspects of using Fake GPS Joystick and Routes is beyond the scope of this tutorial. **Updated 7-16-2018** --- Corrected fudged permissions code --- Added to the FAQ a few more common questions **Updated 7-17-2018** --- Removed G-Play Services downgrade as it's not needed. **Updated 7-19-2018** --- Answer for "Can this be done with just root?" added to FAQ **Updated 7-31-2018** Added catch-all beyond scope Q&A to FAQ **Updated 9-5-2018** Added better help in FAQ section for passing SafetyNet Check and for the Celebi update root issue. **Requirements?** Having an unlocked Android version 4.0 or higher device with a custom recovery already installed. **What does that mean? Will you tell me how to unlock my device and install a custom recovery?** Short answer is: No. There are too many different devices that need different bits of code that are specific to just those devices. You will need to search on XDA for your exact model of device and research how to do that on your own. There’s just too many variables involved otherwise. If you can’t find directions and support on how to do this with your EXACT device, I strongly recommend you to not pursue this any further. I will tell you this though. If your device is not already unlocked, YOU WILL WIPE THE DEVICE in the process of unlocking it. This is a security precaution designed into Android as a safety measure against Identity Theft and the like. There is no way around this aspect of things. If you already have your device unlocked or are willing to wipe everything from the device just to get expert mode enabled, this FAQ-Tutorial is for you after you’ve done that. If you aren’t willing to wipe the device to unlock it, halt, cease and desist in pursuing this idea. There is no way around this. Period. **Is it worth unlocking and everything just for Expert Mode?** In my personal opinion it’s worth doing on a **secondary device** that is not the phone I expect to use day in and day out. A lot can go wrong if you’re not careful unlocking your device. You can render the device you choose a fancy and expensive brick. Using the wrong custom recovery that does not match your EXACT device can and will brick your device. You have been warned. I am not liable for your foolishness should you proceed anyways. Hence, I don't suggest you use your phone. That said, you have to be the gauge of your own desires and risks… In my personal opinion Expert Mode on this app is by far the best way to spoof your location. Unlike other methods it works really well, you don’t have to put up with the wait-dialogue screen popping up every five seconds and so on. **What’s the downside to doing this?** Besides losing your data and all your apps from your device if you haven’t already unlocked it? The tech support for Incorporated Apps is kinda crappy and when Google makes an update that breaks things, it’s hard to figure out what all needs to be done to fix it. This FAQ-Tutorial hopes to address just a little of that. Do you recommend a way of spoofing without root/Magisk? In my limited experience of those methods, I didn’t didn’t find anything that worked well enough to meet my standards. Others might tell you differently. You can do it with regular root access, without Magisk and Systemizer, but I think this is easier. **Can you tell me how to do this with just Root access?** Not really. If you got root access you probably have a custom recovery installed, but not everyone does. And with a custom recovery you can probably install Magisk. Magisk is vital to getting this working. Magisk doesn't compromise the system in a way that causes the SafetyNet test of the system integrity to fail (usually). Pokemon Go uses the SafetyNet check to ensure that the device is not rooted. If your device is rooted the traditional way, Pokemon Go won't let you login to it. And to the best of my knowledge, as of the writing of this document and it's handful of updates, there are no other "systemless" root methods that are not Magisk. With just traditional root you would have to uninstall Root for the SafetyNet check to pass when PoGo starts, which means that you could never update Fake GPS & Routes without rerooting your device. If you left it rooted and started PoGo, you won't be able to login to the game. **I followed all the steps of your tutorial and it’s still not working! HALP!** Please go over each and every step in full and make sure you’re not missing something small and easy to gloss over. I’m writing this out of the kindness of my heart, not to give you technical support eternally. Additionally I’ve done my absolute best to cover every aspect of this process to the best of my knowledge and experience… I can’t know everything that could go wrong. Feel free to ask for help and maybe some other kind soul will be helpful. **One of the other apps you recommended isn’t working right! HALP!** Sorry about that. The quick remedy is to find another app if it’s not Magisk or Systemizer. If it is Magisk or Systemizer, I suggest you seek help on the associated forums for that app/module. The XDA forum for Magisk is https://forum.xda-developers.com/apps/magisk The XDA thread for Systemizer is https://forum.xda-developers.com/apps/magisk/module-terminal-app-systemizer-ui-t3585851 I'm not able to pass the SafetyNet Check! HALP PLEASE! Make sure you are running the latest Magisk. Google and Niantic are always looking for ways to catch people using root access. As of writing this bit (9-5-18) Magisk had to change how it did things to pass the SafetyNet check once more. If that doesn't help though the following link can help you out tremendously. You also have to hide Magisk Manager in Magisk Manager settings and restart. https://www.didgeridoohan.com/magisk/MagiskHide **PoGo is not working after the Celebi Quest update!** Update Magisk to the latest version and delete all Magisk and su (SuperSU and the like) related folders from your internal storage. You might also need to uninstall old Su/Root apps like SuperSU. Should I turn on the Disable Fused Locations setting? I have it on and it works fine for me. Others say that it crashes their phone or causes other issues. All I can say is try it and see what happens. **I'm getting error 12! HALP!** Try rebooting after expert mode is enabled. It takes one reboot to kick in. If that doesn't work, set Location services to Device Only/GPS only and reboot. **For Location Accuracy should it be Device Only or High Accuracy?** I recommend Device Only/GPS only. Why would you want conflicting data to be taken into account for your spoofed location? High accuracy will lead to rubberbanding and needs to be disabled with expert mode. **How can I update FakeGPS once I have it working?** That's the other nice aspect of Systemizer, there is a revert feature that is just as simple to revert it back to a user app, at which point one should update the app to the latest and greatest app and then use Systemizer to convert it back to a system app again. Don't forget to reboot. **How can I keep Google Play Store from updating Fake GPS?** Disable automatic updates just for Fake GPS from within the G-Play Store. **What settings do I use?** You'll have to play with it and find the answers to that yourself. The goal of this was so that you have Expert Mode enabled. Update intervals and other aspects are something that you will need to experiment with and try as they can be hardware and software dependent, not to mention a lot easier to figure out than enabling Expert Mode. Good luck. **How is it that you feel comfortable writing it?** I spent 3 days doing all of this from scratch, flashing a custom rom and everything just to get it working again after the recent G-Play Services update broke things… Several days of doing this process repeatedly with different roms and different versions of G-Play Services because it still wasn’t working right… Stupid updated user app being installed behind my back… kicks things **This is a really long tutorial… Like, how is this easy? ** Using the Systemizer module in Magisk makes moving the app to the privileged system app directory a beautiful and easy thing without needing to install other apps that might move the app to the wrong directory or having to manually move all the pieces yourself…. IE Systemizer simplifies this process. Also, I never promised that this would be easy as a whole. **Now for the tutorial** From this point forward I will assume that you already have your device unlocked, have a custom recovery installed (TeamWin or Clockwork Mod) and that you already know how to reboot into recovery mode. If you already have Magisk or one of the other apps needed for this, I assume you’re smart enough to keep up with me and skip steps where needed. 1. Install Fake GPS and Routes by Incorporated Apps and then immediately disable auto updates https://play.google.com/store/apps/details?id=com.incorporateapps.fakegps_route 2. Install a file manager that supports root access and file editing. I suggest usingES File Explorer https://play.google.com/store/apps/details?id=com.estrongs.android.pop orRom Toolbox https://play.google.com/store/apps/details?id=com.jrummy.liberty.toolbox 3. Install a Terminal emulator for Android. Any terminal emulator will do. Some ROMs have one already installed on them, but need to be enabled. I recommend https://play.google.com/store/apps/details?id=jackpal.androidterm 4. Download Magisk to your phone. There are two parts to Magisk. Magisk and Magisk Manager. Magisk is the core part that actually gives you root access and the Magisk Manager is the part that is the interface inside of Android that allows you to use it. https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445 5. Reboot into recovery and flash/install Magisk to your phone. If you have any trouble flashing Magisk, you can find support at https://forum.xda-developers.com/apps/magisk. 6. Reboot your phone. 7. Open Magisk Manager and go to Settings - select Hide Magisk Manager. This will rename the Magisk Manager and requires restart. 8. Check if you pass SafetyNet with an app called SafetyNet Helper https://play.google.com/store/apps/details?id=com.scottyab.safetynet.sample 9. Tap the three lines in the upper left hand corner of Magisk Manager and then tap Downloads 10. Search for “Systemizer” sans parentheses, install it and then reboot your device. 11. After the device has booted up, open the terminal emulator and type “su” at the prompt. A dialogue box should pop up asking to grant your terminal app root access if you have never done this before. 12. Type “systemize” and press ENTER at the prompt. Then input “1” and press ENTER to use the “Systemize Installed Apps (Listed)” feature. 13. Go through the list and find the number that corresponds to “FakeGPS Route” and then input that number and press ENTER. 14. Systemizer will ask where to move the app. Choose the option corresponding to moving the app to "/system/priv-app" and press ENTER 15. After it has moved the app, it will ask if you want to do anything else. Press “n” and press ENTER. 16. Reboot your device. 17. Android Oreo (Version 8+) and higher require the next set of steps. If you're running on Android Nougat/ 7 or lower you can skip to step 29. Or if expert mode is available after moving the app to system/priv-app without changing the permissions, don't change xml files. After the device has booted back up, go to your root file manage of choice, grant it root permissions and then browse to “/etc/permissions/” 18. Edit the file that corresponds to “privapp-permissions-DEVICE_NAME.xml” Where DEVICE_NAME corresponds to the code/model name of your device or edit “privapp-permissions-platform.xml” if it exists. 19. Copy and paste the following into the bottom of the file (second to last line, press ENTER a few times if you need to): <privapp-permissions package="com.incorporateapps.fakegps_route"><permission name="android.permission.INSTALL_LOCATION_PROVIDER"/> <permission name="android.permission.UPDATE_APP_OPS_STATS"/> <permission name="android.permission.WRITE_SECURE_SETTINGS"/> <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/> <permission name="android.permission.ACCESS_MOCK_LOCATION"/> </privapp-permissions> 20. Make sure that beneath the lines pasted is the “</permissions>” tag and not above it. If you do not have the “</permissions>” tag as the very last line and it appears in the file ONLY ONCE, you’re gonna break things. Please be EXACT about this. 21. Save your changes and exit the file. 22. The Systemizer should have created a file called “privapp-permissions-com.incorporateapps.fakegps_route.xml” If it did not, use your file manager to create a new file and name it EXACTLY that. 23. Open “privapp-permissions-com.incorporateapps.fakegps_route.xml” to edit it. 24. If Systemizer did create the file it will have a lot of text in it already. Simply delete this content. If you had to create the file, just move on to the next step. 25. Copy and paste the following into the file: <?xml version="1.0" encoding="utf-8"?> <permissions> <privapp-permissions package="com.incorporateapps.fakegps_route"> <permission name="android.permission.INSTALL_LOCATION_PROVIDER"/> <permission name="android.permission.UPDATE_APP_OPS_STATS"/> <permission name="android.permission.WRITE_SECURE_SETTINGS"/> <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/> <permission name="android.permission.ACCESS_MOCK_LOCATION"/> </privapp-permissions> </permissions> 26. Save and close the file. We’re almost done! 27. Make sure the file permissions on both of these files is 644, Owner: Read Write, Group: Read and Others: Read or -rw-r-r-- You might need to use a different root file manager to change these permissions. Rom Toolbox gave me an error once and ES File Explorer delivered that time. 28. Reboot your device and wait for it to finish booting. 29. Open Fake GPS and see if you have the option to enable Expert Mode. If you do not, then while you weren’t looking a new copy of the app was installed by the Play Store as a user app and that’s interfering right now. Uninstall it and come back to here. You should see Expert Mode now. 30. Enable Expert Mode. 31. Install Pokemon Go if you haven’t already. 32. Go into Magisk Manager, tap the three lines and select Magisk Hide 33. Search for Pokemon Go and tick the box. 34. Go back to Magisk Manager/Settings and select "Magisk Manager hide". Press the back button twice and then reboot. 35. Go back into Magisk and make sure that the box is still ticked for Pokemon Go. I’ve seen it not save a few times. Confirm that safety net passes with the helper app. 36. Go into your internal storage and delete any Magisk, TWRP, busybox or Su/SuperSU files or folders, because PoGo will look for those and not load, regardless of the permissions you granted to the game. 37. Using App Ops you can disable PoGo's access to the file system and the Start on Boot just to be extra cautious. PoGo is scanning the system now. 38. Spoof to your heart’s content, within reason of course and respecting the cool downs. I suggest to wait the actual travel distance times between spoofing jumps!