14143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainpage.title=Licensing Overview
24143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainparent.title=Application Licensing
34143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainparent.link=index.html
44143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main@jd:body
54143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
64143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
74143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<div id="qv-wrapper">
84143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<div id="qv">
94143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  
104143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <h2>Quickview</h2>
114143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <ul>
124d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty    <li>Licensing allows you to verify your app was purchased from Google Play</li>
134143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main    <li>Your app maintains control of how it enforces its licensing status</li>
144d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty    <li>The service is free for all developers who publish on Google Play</li>
154143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  </ul>
164143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  
174143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <h2>In this document</h2>
184143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <ol>
194143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <li><a href="#Secure">License Responses are Secure</a></li>
204143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <li><a href="#LVL">Licensing Verification Library</a></li>
214143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <li><a href="#Reqs">Requirements and Limitations</a></li>
224143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <li><a href="#CopyProtection">Replacement for Copy Protection</a></li>
234143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</ol>
244143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  
254143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</div>
264143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</div>
274143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
284143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
294d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<p>Google Play Licensing is a network-based service that lets an application query a trusted
304d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk DoughertyGoogle Play licensing server to determine whether the application is licensed to the current
314d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertydevice user. The licensing service is based on the capability of the Google Play licensing server
324d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyto determine whether a given user is licensed to use a given application. Google Play considers a
334143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainuser to be licensed if the user is a recorded purchaser of the application.</p>
344143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
354143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>The request starts when your application makes a request to a service hosted by
364d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertythe Google Play client application. The Google Play application then sends a request to
374d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertythe licensing server and receives the result. The Google Play application sends
384143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthe result to your application, which can allow or disallow further use of the
394143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication as needed.</p>
404143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
414d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<p class="note"><strong>Note:</strong> If a paid application has been uploaded to Google Play but
424143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainsaved only as a draft application (the app is unpublished), the licensing server considers all users
434143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainto be licensed users of the application (because it's not even possible to purchase the app).
444143781cdea0741ce6e87967c4ab903288c3e4c3Scott MainThis exception is necessary in order for you to perform testing of your licensing
454143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainimplementation.</p>
464143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
474143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
484143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<div class="figure" style="width:469px">
494143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<img src="{@docRoot}images/licensing_arch.png" alt=""/>
504143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p class="img-caption"><strong>Figure 1.</strong> Your application initiates a
514d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertylicense check through the License Verification Library and the Google Play
524d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyclient, which handles communication with the Google Play server.</p>
534143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</div>
544143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
554143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
564143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>To properly identify the user and determine the license status, the licensing server requires
574d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyinformation about the application and user&mdash;your application and the Google Play client work
584d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertytogether to assemble the information and the Google Play client passes it to the server. </p>
594143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
604143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>To help you add licensing to your application, the Android SDK provides a downloadable set of
61a7b1b8c78c27964b3cbf0a9643ba74b980eecd3dScott Mainlibrary sources that you can include in your application project: the Google Market
62a7b1b8c78c27964b3cbf0a9643ba74b980eecd3dScott MainLicensing package. The License Verification Library (LVL) is a library you can add to your
63a7b1b8c78c27964b3cbf0a9643ba74b980eecd3dScott Mainapplication that
644d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyhandles all of the licensing-related communication with the Google Play licensing service. With
654143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthe LVL added to your application, your application can determine its licensing status for the
664143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maincurrent user by simply calling a method and implementing a callback that receives the status
674143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainresponse.</p>
684143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
694143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>Your application does not query the licensing server
704d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertydirectly, but instead calls the Google Play client over remote IPC to
714143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maininitiate a license request. In the license request:</p>
724143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
734143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<ul>
744143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<li>Your application provides: its package name, a nonce that is later used to
754143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainvalidate any response from the server, and a callback over which the
764143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainresponse can be returned asynchronously.</li>
774d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<li>The Google Play client collects the necessary information about the user and the device,
784143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainsuch as the device's primary Google account username, IMSI, and other
794143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maininformation. It then sends the license check request to the server on behalf of
804143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainyour application.</li>
814d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<li>The Google Play server evaluates the request using all available information, attempting
824143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainto establish the user's identity to a sufficient level of confidence. The server
834143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthen checks the user identity against purchase records for your application and
844d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyreturns a license response, which the Google Play client returns to your
854143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication over the IPC callback.</li>
864143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</ul>
874143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
884143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>You can choose when, and how often, you want your application to check its
894143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainlicense and you have full control over how it handles the response, verifies the
904143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainsigned response data, and enforces access controls.</p>
914143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
924143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>Notice that during a license check, your application does not manage any
934143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainnetwork connections or use any licensing related APIs in the Android platform.</p>
944143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
954143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
964143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
974143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
984143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<h2 id="Secure">License Responses are Secure</h2>
994143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1004143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>To ensure the integrity of each license query, the server signs the license
1014d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyresponse data using an RSA key pair that is shared exclusively between the Google Play
1024143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainserver and you.</p>
1034143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1044143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>The licensing service generates a single licensing key pair for each
1054143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainpublisher account and exposes the public key in your account's profile page. You must copy the
1064143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainpublic key from the web site and embed it in your application source code. The server retains the
1074143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainprivate key internally and uses it to sign license responses for the applications you
1084143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainpublish with that account.</p>
1094143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1104143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>When your application receives a signed response, it uses the embedded public
1114143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainkey to verify the data. The use of public key cryptography in the licensing
1124143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainservice makes it possible for the application to detect responses that have been
1134143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maintampered with or that are spoofed.</p>
1144143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1154143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1164143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1174143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1184143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<h2 id="LVL">Licensing Verification Library</h2>
1194143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
120a7b1b8c78c27964b3cbf0a9643ba74b980eecd3dScott Main<p>The Android SDK provides a downloadable package called the Google Market Licensing package,
1214143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainwhich includes the License Verification Library (LVL). The LVL greatly simplifies the process of
1224143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainadding licensing to your application and helps ensure a more secure, robust implementation for your
1234143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication. The LVL provides internal classes that handle most of the standard operations of a
1244d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertylicense query, such as contacting the Google Play client to initiate a license request and
1254143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainverifying and validating the responses. It also exposes interfaces that let you easily plug in your
1264143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maincustom code for defining licensing policy and managing access as needed by your application. The key
1274143781cdea0741ce6e87967c4ab903288c3e4c3Scott MainLVL interfaces are: </p>
1284143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1294143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<dl>
1304143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<dt>{@code Policy}</dt>
1314143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <dd>Your implementation determines whether to allow access to the
1324143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication, based on the license response received from the server and any
1334143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainother data available (such as from a backend server associated with your
1344143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication). The implementation can evaluate the various fields of the license
1354143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainresponse and apply other constraints, if needed. The implementation also lets
1364143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainyou manage the handling of license checks that result in errors, such as network
1374143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainerrors.</dd>
1384143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1394143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<dt>{@code LicenseCheckerCallback}</dt>
1404143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <dd>Your implementation manages access to the
1414143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication, based on the result of the {@code Policy} object's handling of the license
1424143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainresponse. Your implementation can manage access in any way needed, including
1434143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maindisplaying the license result in the UI or directing the user to purchase the
1444143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication (if not currently licensed).</dd>
1454143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</dl>
1464143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1474143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1484143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>To help you get started with a {@code Policy}, the LVL provides two fully complete
1494143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main{@code Policy} implementations that you can use without modification or adapt to your
1504143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainneeds:</p>
1514143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1524143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<dl>
1534143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<dt><a href="adding-licensing.html#ServerManagedPolicy">{@code ServerManagedPolicy}</a></dt>
1544143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <dd>A flexible {@code Policy}
1554143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthat uses settings provided by the licensing server to manage response caching
1564143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainand access to the application while the device is offline (such as when the
1574143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainuser is on an airplane). For most applications, the use of
1584143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main{@code ServerManagedPolicy} is highly recommended.</dd>
1594143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1604143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<dt><a href="adding-licensing.html#StrictPolicy">{@code StrictPolicy}</a></dt>
1614143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main  <dd>A restrictive {@code Policy} that
1624143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maindoes not cache any response data and allows the application access <em>only</em>
1634143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainwhen the server returns a licensed response.</dd>
1644143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</dl>
1654143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
166a7b1b8c78c27964b3cbf0a9643ba74b980eecd3dScott Main<p>The LVL is available as a downloadable package of the Android SDK. The
167a7b1b8c78c27964b3cbf0a9643ba74b980eecd3dScott Mainpackage includes both the LVL itself and an example application that shows how
1684143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthe library should be integrated with your application and how your application
1694143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainshould manage response data, UI interaction, and error conditions. </p>
1704143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1714143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>The LVL sources are provided as an Android <em>library project</em>, which
1724143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainmeans that you can maintain a single set of library sources and share them
1734143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainacross multiple applications. A full test environment is also available through
1744143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthe SDK, so you can develop and test the licensing implementation in your
1754143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplications before publishing them, even if you don't have access to a
1764143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainphysical device.</p>
1774143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1784143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1794143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1804143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1814143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<h2 id="Reqs">Requirements and Limitations</h2>
1824143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1834d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<p>Google Play Licensing is designed to let you apply license controls to
1844d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyapplications that you publish through Google Play. The service is not
1854143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maindesigned to let you control access to applications that are not published
1864d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertythrough Google Play or that are run on devices that do not offer the Google
1874d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk DoughertyPlay client. </p>
1884143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1894143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>Here are some points to keep in mind as you implement licensing in your
1904143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainapplication: </p>
1914143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
1924143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<ul>
1934d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<li>An application can use the service only if the Google Play client is
1944143781cdea0741ce6e87967c4ab903288c3e4c3Scott Maininstalled on its host device and the device is running Android 1.5 (API level 3)
1954143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainor higher.</li>
1964143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<li>To complete a license check, the licensing server must be accessible over
1974143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthe network. You can implement license caching behaviors to manage access to your application when
1984143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthere is no network connectivity. </li>
1994143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<li>The security of your application's licensing controls ultimately relies on
2004143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthe design of your implementation itself. The service provides the building
2014143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainblocks that let you securely check licensing, but the actual enforcement and
2024143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainhandling of the license are factors are up to you. By following the best
2034143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainpractices in the following documents, you can help ensure that your implementation will be
2044143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainsecure.</li>
2054143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<li>Adding licensing to an application does not affect the way the application
2064d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyfunctions when run on a device that does not offer Google Play.</li>
2074143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<li>You can implement licensing controls for a free app, but only if you're using the service to 
2084143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainprovide <a
2092b286bb26b95ac9d4eb35679239ea12d4f63b50bDirk Doughertyhref="{@docRoot}google/play/expansion-files.html">APK expansion files</a>.</li>
2104143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</ul>
2114143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2124143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2134143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2144143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<h2 id="CopyProtection">Replacement for Copy Protection</h2>
2154143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2164d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<p>Google Play Licensing is a flexible, secure mechanism for controlling
2174143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainaccess to your applications. It effectively replaces the Copy Protection
2184d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertymechanism offered on Google Play and gives you wider distribution
2194143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainpotential for your applications. </p>
2204143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2214143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<ul>
2224d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<li>A limitation of the legacy Copy Protection mechanism on Google Play is
2234143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthat applications using it can be installed only on compatible devices that
2244143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainprovide a secure internal storage environment. For example, a copy-protected
2254d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertyapplication cannot be downloaded from Google Play to a device that provides root
2264143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainaccess, and the application cannot be installed to a device's SD card. </li>
2274d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Dougherty<li>With Google Play licensing, you can move to a license-based model in
2284143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainwhich access is not bound to the characteristics of the host device, but to your
2294d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219Dirk Doughertypublisher account on Google Play and the licensing policy that you define.
2304143781cdea0741ce6e87967c4ab903288c3e4c3Scott MainYour application can be installed and controlled on any compatible device on
2314143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainany storage, including SD card.</li>
2324143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main</ul>
2334143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2344143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>Although no license mechanism can completely prevent all unauthorized use,
2354143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainthe licensing service lets you control access for most types of normal usage,
2364143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainacross all compatible devices, locked or unlocked, that run Android 1.5 or
2374143781cdea0741ce6e87967c4ab903288c3e4c3Scott Mainhigher version of the platform.</p>
2384143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2394143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main<p>To begin adding application licensing to your application, continue to <a
2402b286bb26b95ac9d4eb35679239ea12d4f63b50bDirk Doughertyhref="{@docRoot}google/play/licensing/setting-up.html">Setting Up for Licensing</a>.</p>
2414143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2424143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2434143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2444143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2454143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
2464143781cdea0741ce6e87967c4ab903288c3e4c3Scott Main
247