Fairphone Open [1] for FP2 is based on Android but completely open source. You can run it with GCM (which isn't open source) or without. You can run LineageOS (with or without microG), and there are unofficial ports of Ubuntu Touch and SailfishOS. The phone is also modular though the hardware is slightly out of date for 2018 standards.
[1] https://code.fairphone.com/projects/fairphone-2-official-rel...