Not saying this would be easy but another approach would be to use references to the colors instead of the actual colors. Other color related APIs would have to be updated to accept the references or, if you wanted to add more flexibility, compound color manipulation operations. It would be the responsibility of the renderer, which I am assuming is protected as I am not familiar at all with android, to compute the final color and not reveal it to the app.
It wouldn’t be a perfect replacement for actual color values but it would give more flexibility while not revealing the value.
Android's theming system does not have the ability to dynamically re-set <color> IDs. And, assuming they managed to do so and keep the reference unaccessible to users (because then you could just do context.getColor(android.R.color.material_you_color_primary) to resolve it), you can still access it through reflection.
It wouldn’t be a perfect replacement for actual color values but it would give more flexibility while not revealing the value.