The ABI, being essentially an ordering of bytes at specific offsets, has no expressive capability. Tons of creativity, sure, but of the functional kind, the stuff copyright explicitly exempts.<p>Note that if only ABI compatibility was required, Google could very well have defined their own API. For instance, they could have defined an API called &quot;openFile()&quot; that compiles down to the exact byte code as &quot;new java.io.File()&quot;. But they were not after binary interoperability, they were after the Java developer base Sun had spent billions building.