1) No bloatware
2) Will be supported for 2+ years (security updates, OS gets upgraded, etc), strong preference for 3+ years]
3) Has a headphone jack
That's about it. It seems really hard to find a phone that satisfies these requirements, or am I just looking in all the wrong places? It doesn't need to be insanely cheap, I'll spend a few hundred bucks, I just feel like I'm getting ripped off spending $800 on a premium flagship phone when I don't really need the latest greatest thing.
I myself own a Mi5 Pro for 1-2 years now and I still love it and I am not even thinking about upgrading, this thing is perfect even nearly 2 years in.
Also, compared to iPhones these things are simply perfect looking, no camera bump and MIUI is a mix of Android and iOS, which I learned to love coming from iOS.
Plus, the developer forums are very very active, so even if you run into any issues (rooting, flashing , etc if that's yout thing), then you know you have a very supportive group of devs. Also doesn't hurt that the phones are cheaper, so the whole "what if I lose my warranty?" or "What if I drop/lose my phone?" concerns are much lesser.
It's not got the most stunning camera in the world, but having ZERO lag and a easy 1.5-2 days of charge besides all the other pros more than makes up for it!
LineageOS is not a replacement for security updates from the manufacturer because they can't patch vulnerabilities in proprietary drivers. Custom ROM's are also often riddled with issues that you may or may not have the patience to deal with, and Safetynet attestation means that you may have trouble using some apps on a modified device.
1. Nokia 7. The new Android-based HMD Global's Nokia is providing the fastest updates on the market. And the phones look really nice. Just came out so I think you'll have to wait for it or get a slightly less powerful (but also cheaper) Nokia 6. Or a Nokia 5. Or even a Nokia 3, if it's powerful enough. All of them should receive Android Oreo ([source](https://twitter.com/sarvikas/status/903867368052490240)]
2. Xiaomi Mi A1. Thanks to Android One project the phone should deliver both great stock system experience and fast updates. Unfortunately not available in every country.
3. Moto G5 plus. Stock Android and prettty good updates. But not as good as Nokia's.
4. Buy a cheap Xiaomi and install Lineage / other OS. The model I suggest is Redmi Note 4. I personally have a Redmi 4 Prime because it's smaller, but Note 4 has better ROM support.
Copperhead OS is restricted to new Nexus and Pixel devices only, sadly.
Both options are great when paired with F-Droid [3].
I'm eagerly awaiting how postmarketOS [4] develops. Still in its infancy, though. It's basically a Linux distro on top of an Android kernel, so they also need to grow an ecosystem.
If you want something with a Linux userland and quite polished, try Jolla on a Sony Xperia X [5]. Still not fully open, so I prefer the above options.
[1] https://download.lineageos.org/
Alternatively, you could perhaps buy a nexus 6P? It's on amazon.com now for about 300$.
But there are good roms available [1], and rooting is not all that hard. So that may be an approach you could try?
tl;dr: stock android with no bloatware (Nougat, though should get at least the Oreo update), fast Snapdragon 625 CPU, big screen, dual-sim, decent battery, good camera and available for ~$320 (or ~$100 less for the basic G5).
I'm about to swap my ageing Moto G2 for one.
The upgrade requirement won’t happen with Android if you want official updates
My hands are small and I use my phone with one hand most of the time. I'm still on a nexus 4 (love the size), but it's getting laggy and battery suffers (i owned this phone for 4+ years)
Can absolutely recommend the phone, but no clue how long it will be viable.
It's alright and cheap and once support runs out you can probably root and switch to cyanogenmod.
bonus: raw camera when you root (google how)