So I finally managed to root a Samsung J5 (Android 6.0.1) using the following approach, using as much open source related things as I could:
- Heimdall (do not run as root) (used to write overwrite the partition data)
- CF auto root (this gives you a file to extract which gives you a recovery and cache image)
- Enable OEM unlocking in developer options.
- Install SuperSU from the app store.
None of that dodgy closed source stuff required. Finally, I can move all my apps to an SD card, and my phone remains incredibly snappy and responsive (faster than a much more expensive phone). The small ‘lowish’ resolution screen means the battery lasts a lifetime. Absolutely amazing.