防止非法拷贝 给自己的软件上把锁
下面的部分是对官方的技术文档“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
- 一加5 DOTOS-最强7.1 过渡动画 颜色引擎 智能锁核 黑域 WIFI查看
- 小米4电信4G版刷机包 MIUI7 5.8.21 隔空屏 一键屏蔽 IOS状态栏 全沉浸 桌面4x6 稳定流畅
- 天时达t6185刷机包_救砖包_官方包_天时达T6185_4.0.4_S30S_MEIBOER__B17_EMMC_FWVGA_FT5316(虎头板)
- 华为B199刷机包 基于官方B805 EMUI3.0主题 高级设置 单卡单显 省电流畅
- 联想a390刷机包_救砖包_官方包_联想A390_4.0.4_A390_S322_131217
- 三星I9500刷机包 基于国行最新固件 完整ROOT权限 深度精简 持久省电 清爽流畅
- 联想A780E刷机包 基于官方制作 UI美化版 超炫酷 V3.1发布
- Nubia Z9 Max nx512j MOS 安卓7.1.2 RC3.0 号码识别 归属地和T9 农历 应用锁 易用省电稳定
- 华为t9510e刷机包_救砖包_官方包_华为T9510E_4.0.4_华为Ascend D1四核XL固件 T9510E V100R001CHNC01B204
- 红米Note 4X高通版 Flyme 6.7.12.12R beta
热门刷机教程top10
热门ROM资讯top10
热门手机刷机包
- 中轴线 ZXG11刷机包
- 黑米 A2刷机包
- OPPO R11 Plusk刷机包
- 三星 T239刷机包
- 酷派 5108刷机包
- 摩天A8刷机包
- 三星 Galaxy Tab S2 T715C刷机包
- 金立 GN9004(E7L 移动4G版)刷机包
- 天时达 C909刷机包
- 奥克斯 V936AW刷机包
- 三星 G5108(Galaxy Core Max 双4G版)刷机包
- 酷派 5891刷机包
- 索尼 E6883(Xperia Z5 Premium 尊享版 双4G)刷机包
- 金立 C605刷机包
- 联想 A820T刷机包
- TCLZ7刷机包
- 酷派 8056刷机包
- OPPO R820刷机包
- 华为 Ascend D2(联通版)刷机包
- 三星 Galaxy Grand2 (G7108)刷机包
热门刷机包top10
- 一加5 DOTOS-最强7.1 过渡动画 颜色引擎 智能锁核 黑域 WIFI查看
- 小米4电信4G版刷机包 MIUI7 5.8.21 隔空屏 一键屏蔽 IOS状态栏 全沉浸 桌面4x6 稳定流畅
- 天时达t6185刷机包_救砖包_官方包_天时达T6185_4.0.4_S30S_MEIBOER__B17_EMMC_FWVGA_FT5316(虎头板)
- 华为B199刷机包 基于官方B805 EMUI3.0主题 高级设置 单卡单显 省电流畅
- 联想a390刷机包_救砖包_官方包_联想A390_4.0.4_A390_S322_131217
- 三星I9500刷机包 基于国行最新固件 完整ROOT权限 深度精简 持久省电 清爽流畅
- 联想A780E刷机包 基于官方制作 UI美化版 超炫酷 V3.1发布
- Nubia Z9 Max nx512j MOS 安卓7.1.2 RC3.0 号码识别 归属地和T9 农历 应用锁 易用省电稳定
- 华为t9510e刷机包_救砖包_官方包_华为T9510E_4.0.4_华为Ascend D1四核XL固件 T9510E V100R001CHNC01B204
- 红米Note 4X高通版 Flyme 6.7.12.12R beta
热门刷机教程top10
热门ROM资讯top10
热门手机刷机包
- 中轴线 ZXG11刷机包
- 黑米 A2刷机包
- OPPO R11 Plusk刷机包
- 三星 T239刷机包
- 酷派 5108刷机包
- 摩天A8刷机包
- 三星 Galaxy Tab S2 T715C刷机包
- 金立 GN9004(E7L 移动4G版)刷机包
- 天时达 C909刷机包
- 奥克斯 V936AW刷机包
- 三星 G5108(Galaxy Core Max 双4G版)刷机包
- 酷派 5891刷机包
- 索尼 E6883(Xperia Z5 Premium 尊享版 双4G)刷机包
- 金立 C605刷机包
- 联想 A820T刷机包
- TCLZ7刷机包
- 酷派 8056刷机包
- OPPO R820刷机包
- 华为 Ascend D2(联通版)刷机包
- 三星 Galaxy Grand2 (G7108)刷机包