As a third type of exception, you may recall from the last unit that
copyright does not protect code
fragments that follow standard convention, or are constrained, or are obvious.
Examples of non-
copyrightable code include the use of standard data structures or coding decisions that are dictated by
the interfaces of other components. Such code fragments are exempted from copyright because they
are not creative or expressive.
O R A C L E V S . G O O G L E
There is a famous court case that touches on both reverse engineering and non-copyrightable coding
decisions. In 2010, Oracle sued Google claiming that Google’s Android platform
infrin
ges on Oracle’s
Java platform.
The Java platform is a big deal in the software world because it allows a program written in the Java
programming language to execute on lots of different computing platforms. That is, programmers write
a single program and the same program executes on phones and tablets and desktops, and other
platforms. Oracle owns the copyright to the Java platform.
Google wanted Java programs to execute on its
new Android platform, so Google re-
implemented some of the Java platform as part
of its Android platform. It used some of the
same Application Programming Interfaces (or
APIs for short) as the Java platform. The APIs
serve as a façade to the underlying, complicated
platform, and a Java program executes by
accessing the data and operations that are
made available on the APIs.
Figure 8:
PD10 Unit 03 Presentation 4 Slide 7

13
© University of Waterloo and others
Oracle’s lawsuit claimed, among other things, that:
1.
The Android platform copies non-literally some of the code structure of the original Java
platform and
2.
the Android platform includes exact copies of 37 original Java APIs.
With respect to Oracle’s first claim, Google has admitted to reverse engineering the relevant Java
packages, but then it created its own original implementation of those packages. This is allowed, as long
as Google re-implementations really are different from Ora
cle’s original implementations.
With respect to Oracle’s second claim, Android needs to provide the exact same AP
Is as the Java
platform for Java programs to execute on it. Moreover, Google copied only the APIs definitions that
were deemed necessary to enable interoperability between Java programs that it cared about and the
new Android platform, and nothing more.
Hence, Google admits that it is using Oracle’s IP but claims that its use is fair use, and falls under the
copyright exemptions that promote software interoperability.
P U B L I C D O M A I N
Finally, there are some works that are not copyrighted at all or that have copyrights that have expired.
These works are in what is called the
public domain
meaning that the works are available for anyone to
use - for any purpose - without consent or license and without regard to the moral rights of the author.
There are no restrictions on access, copying or derivation of any kind.

