This is the purpose of the GPL and copyleft licenses: to create a commons that companies can't exploit in the manner you described. The problem with Android is that the parts that aren't the kernel are not copyleft. This allows vendors to shove stupid stuff in there and not release the code. If a chip spec uses copyleft correctly (e.g. no sacrificing to LGPL style things on the edges) this won't happen.