Much harder for an OS than an app. Phone makers have their own custom set of drivers for driving their unique hardware and these often have to be changed in subsequent releases to deal with changes to the hardware abstraction layer. And even for releases that don't change the exposed hardware abstraction layer it can be really difficult to know if each phone maker's drivers will deal properly with subtle changes to the underlying OS.
This is not an impossible problem to mostly-solve, but it is orders of magnitude harder than what Chrome browser has to deal with.