防止非法拷贝 给自己的软件上把锁
下面的部分是对官方的技术文档“Licensing Your Applications”一些重要内容的摘要,希望有助于已经或者正在开发 Android 收费应用的开发者更清晰了解该服务并使用它来为自己的应用提供防拷贝保护。
• 要使用该许可认证服务,你必须是菜市场的注册开发者,而且你的收费应用也必须通过菜市场提供。(呵,这也是 Google 打击其它各式各样的山寨安卓市场的重要手段啊,一旦它们无法提供破解的收费应用,并因为缺少像 Google 这样的防拷贝机制,也很难吸引到收费应用的开发者进驻,只能提供一些简单的免费应用的话,对用户的吸引力自然大大减少)。
Android Market Licensing Service
• 并且运行的设备上必须安装了 Market App,因为3rd App 不能直接跟 Google 的验证服务器通信,而必须通过 Market App 进行。当然,要从菜市场购买 Apps,Market App 本来就是必不可少的。Maket App 会自动获取你的 App 的 ID 和当前用户的帐号数据并把它们打包传送到服务器上进行验证。并把验证的结果返回给你的 App。此外对 Android OS 的版本要求是1.5以上。除了以上两点,任意类型的 App 可以在任意设备上使用该服务
LVL
• Google 提供了 LVL (License Verify Library 许可验证库)来帮助你处理如何向 Market App 发起许可验证的请求,并把服务器回应的数据通过你注册的回调函数返回给你的 Activity。(LVL 可以通过 Android SDK and AVD Manager 下载)
public key
• Google 的许可验证服务器返回的验证结果是加密的,以防止第三方伪造验证结果。加密所用的公钥可以在你的注册开发者帐号管理里面申请。你需要把申请的公钥传给 LVL 相应的接口,LVL 会自动使用该公钥去解密验证结果,并把结果的明文返回给你的 Activity。
• 验证失败的情况下要如何处理,施加那些约束或者是否直接退出由开发者自行决定。你可以根据应用的类型,面向的用户等来决定。
• LVL 提供了 Policy 接口和内置的 ServerManagedPolicy 实现(Google 强烈推荐使用该内置实现)来帮助处理无法联网验证失败下的状况。ServerManagedPolicy 会缓存验证结果到本地文件,并设置一定的有效期限,这样就可以避免每次查询都需要链接服务器。
...
// Construct the LicenseChecker with a Policy.
mChecker = new LicenseChecker(
this, new ServerManagedPolicy(this,
new AESObfuscator(SALT, getPackageName(), deviceId)),
BASE64_PUBLIC_KEY // Your public licensing key.
);
...
• 被缓存到本地的验证结果可以通过LVL提供的一个Obfuscator 接口进行混淆加密,LVL 内置提供了一个 AESObfuscator 实现,AES公钥可以通过预设的种子,应用 ID和设备ID产生,要破解缓存的验证结果也将会非常困难。
• Google 建议你对你的收费应用程序也使用混淆器如 ProGuard 做代码混淆,避免被人直接破解程序(比如修改验证的代码)。
• Google 提供了完善的测试环境,允许你事先测试验证成功,验证失败等各种状况。
• 如果已经使用了该许可验证服务,在发布应用时,就不要再设置防拷贝选项(In the Publishing options section, make sure that the Copy Protection radio button selection is “Off”)。
当前在 Android 生态系统中,获得最大收益的还是设备供应商,或者电信运营商,而作为在这个系统中扮演最重要角色的开发社区,它们所能得到的回报还是十分可怜,而 Google 为开发者提供的许可验证服务将有助于改善这一点。
热门刷机包top10
- 卓普ZP500S刷机包 自由人 单核版 基于官方 ROOT权限 优化流畅
- OPPO N1移动版刷机包 乐蛙ROM第129期 新增百变主题在线刷新缓存机制
- oppoa83刷机包_救砖包_官方包_OPPOA83_7.1.1_A83_11_A.24_180809
- 小米4C刷机包 FlymeOS FOR 小米4C 4.5.4.1R 全网首发 首次公测
- 小米红米刷机包_救砖包_官方包_小米红米1(移动版)_4.2.1_JHACNBL30.0.2013022
- 小米Note刷机包 MIUI6 5.4.17开发版 新增网络助手 优化美化 省电稳定
- 努比亚Z5S mini刷机包 IOS8风格 高级设置 多功能自定义 全新功能体验 官方终结版
- 果米m5刷机包_救砖包_官方包_果米M5_4.4.0_ALPS.JB3.MP.V1.6
- 小米5X MIUI11最新开发版 蝰蛇黑域 L设置 magisk 迅雷 侧边工具 高级电源
- HTC Sensation XL Runnymede基于亚太版最近更新 美化版
热门刷机教程top10
- 华为 G7-UL20 华为Ascend G7/双4G Fastboot驱动安装说明
- 酷派大神F1如何关闭系统更新提示 大神F1系统更新关闭方法
- 华为P8青春版售价怎么样?拍照效果怎么样?好不好?
- 乐2 pro X625失败变砖开不了机了怎么办及救砖方法
- 如何关闭vivo X6Plus触屏提示音
- 三星GT-N7102 Galaxy Note2联通版ROOT教程 解锁教程
- 超简单华为T8300刷机教程详解 另附刷机包下载
- MIUI V6什么时候出? MIUI V6哪里可以下载?
- 努比亚Z11Max刷recovery教程 nubia Z11 max第三方recovery
- rom之家教你如何修改或新建接入点
热门ROM资讯top10
热门刷机包top10
- 卓普ZP500S刷机包 自由人 单核版 基于官方 ROOT权限 优化流畅
- OPPO N1移动版刷机包 乐蛙ROM第129期 新增百变主题在线刷新缓存机制
- oppoa83刷机包_救砖包_官方包_OPPOA83_7.1.1_A83_11_A.24_180809
- 小米4C刷机包 FlymeOS FOR 小米4C 4.5.4.1R 全网首发 首次公测
- 小米红米刷机包_救砖包_官方包_小米红米1(移动版)_4.2.1_JHACNBL30.0.2013022
- 小米Note刷机包 MIUI6 5.4.17开发版 新增网络助手 优化美化 省电稳定
- 努比亚Z5S mini刷机包 IOS8风格 高级设置 多功能自定义 全新功能体验 官方终结版
- 果米m5刷机包_救砖包_官方包_果米M5_4.4.0_ALPS.JB3.MP.V1.6
- 小米5X MIUI11最新开发版 蝰蛇黑域 L设置 magisk 迅雷 侧边工具 高级电源
- HTC Sensation XL Runnymede基于亚太版最近更新 美化版
热门刷机教程top10
- 华为 G7-UL20 华为Ascend G7/双4G Fastboot驱动安装说明
- 酷派大神F1如何关闭系统更新提示 大神F1系统更新关闭方法
- 华为P8青春版售价怎么样?拍照效果怎么样?好不好?
- 乐2 pro X625失败变砖开不了机了怎么办及救砖方法
- 如何关闭vivo X6Plus触屏提示音
- 三星GT-N7102 Galaxy Note2联通版ROOT教程 解锁教程
- 超简单华为T8300刷机教程详解 另附刷机包下载
- MIUI V6什么时候出? MIUI V6哪里可以下载?
- 努比亚Z11Max刷recovery教程 nubia Z11 max第三方recovery
- rom之家教你如何修改或新建接入点