Amlogic Reference Source Code (Software) is licensed, not sold,
and that title to and ownership of the Software and any portion thereof remain with Amlogic or its licensors.

All express and implied warranties are disclaimed on behalf of Amlogic.
Liability of Amlogic and its licensors is excluded for any special, indirect, exemplary, incidental or consequential damages.

You are prohibited from
(a) copying the Software, except as reasonably necessary for internal back-up purposes,
(b) using and/or transferring the Software to any third party apart from the Android TV build release,
(c) modifying the Software,
(d) attempting to reverse engineer, decompile or disassemble any portion of the Software, or
(e) exporting the Software or any underlying technology in contravention of any applicable U.S. or foreign export laws and regulations.
