The second is not so much a problem with Android but the horrible intersection for OEMs with no reason to support old devices, Linux baking drivers into the kernel, and hardware manufacturers releasing closed source blobs instead of OSS drivers.
Newer versions of Android have done a lot to decouple the device tree from the rest of the OS so you can update without OEM involvement.
Google also moved a lot of functionality into Google Play Services that updates over the air (but that's a negative for some people)
Newer versions of Android have done a lot to decouple the device tree from the rest of the OS so you can update without OEM involvement.
Google also moved a lot of functionality into Google Play Services that updates over the air (but that's a negative for some people)