如何保护与其他人共享的.apk文件?

时间:2011-10-10 19:24:14

标签: android security apk

所以我遇到了问题,我们希望能够在我们的网站和Android市场上销售我们的Android应用程序。如果我们只是将.apk文件粘贴在我们的网站上并让人们在付费后下载它,我们如何阻止他们将htat .apk文件提供给朋友?我整个上午一直在寻找解决方案。我只是希望能够保护我们的应用程序不被安装在多个设备上。

所以,如果你得到它,将它安装在你的手机上,然后交给朋友,它会阻止他/她并显示一些错误。

3 个答案:

答案 0 :(得分:3)

第一个想法:在您的网站上提供基于IMEI加密的解锁代码。 当人们在您的网站上购买应用时,他们必须在应用启动时输入代码。该应用程序会将未加密的号码与手机IMEI进行比较。

因此,如果有IMEI B的人A与使用IMEI C的人共享应用程序,该应用程序将无法运行。

编辑:阅读此精彩帖子以获取Android设备的唯一编号:Is there a unique Android device ID?

您也可以尝试

Settings.Secure#ANDROID_ID将Android ID作为唯一 64位十六进制字符串返回。

import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID); 

但有时会知道它为空,它被记录为“可以在恢复出厂设置时更改”。使用风险自负,可以在root手机上轻松更改。

最弱的部分现在是市场,这很容易分享和复制。

答案 1 :(得分:1)

这是各种软件的问题,而不仅仅是.apk文件。

这个问题没有最终的解决方案,只有黑客和变通方法才能在不同设备上使用该软件。

如果你只是在网上放一个.apk文件,你没有“谁买软件”的内部概念。使应用程序仅在某些手机上运行的唯一方法是将授权手机列表捆绑到应用程序中。

如果您不这样做,那么您可能要求应用程序与集中式Web服务通信,该服务根据授权设备列表审核电话ID,允许应用程序在这种情况下运行(这是FlexLM模型)。

网上有大量关于如何保护您的应用程序的文档,关于如何保护您的应用程序的信息量可能只有10倍。

如果您的单位销售量很低,那么授权设备的库存是一种合理的方法,但如果您销售的应用程序副本少于几个,那么网络服务方法就更有意义了。

答案 2 :(得分:1)

你不能阻止你的apk被共享。但是您可以查看google licensing service。此服务基本上查询谷歌游戏商店,并查明用户是否实际购买了该应用程序。这主要是为付费应用程序设计的,但您也可以在免费应用程序中使用它。