Google がこの一部を処理します。ユーザーの各デバイスにデバイス依存キーを配信します。あなたの仕事は
1)サーバーでキーを適切に検証します
2) ユーザーがデータ ファイルをコピーできないように、サーバーからデバイス固有の認証値を返すようにしてください。
3) デバイスで、認証値を使用して物事を有効にします。
キーの検証は簡単ですが、必ずサーバー上で行ってください。問題は、デバイスの識別です。Google とそのパートナーは、その点で少しボールを落としました。Tim Bray のブログ記事がhttp://android-developers.blogspot.ca/2011/03/identifying-app-installations.htmlにあり、この問題について説明しています。彼の留保にもかかわらず、私は ANDROID_ID を使用することをお勧めします。私は彼の他の提案の安全性に疑問を持っていますが、完全な分析は行っていません. ネットワークに関連するもの (IMSI、IMEI、ESN など) には絶対に近づかないでください。また、使用されるデバイス識別子をキャッシュし、変更されないようにします。
個人的には、アプリで自分の機能のロックを解除するために必要なデータをスクランブルしています。有効なトランザクションを取得したら、デバイス ID と組み合わせてデータのロックを解除できるキーを計算します。完璧にはほど遠いですが、機能しているようです。私は自分がハッキングされることを受け入れます - 私はそれを明らかにしたくないだけです.
バージョンごとのキーが必要な場合は、RESTORE_TRANSACTIONS を実行し、バージョンが変更されるたびにサーバーで再検証する必要があります。