3

我有一个付费的 android 应用程序,它使用 google LVL 代码对用户进行身份验证。

一家公司想付钱给我,以便他们的应用程序可以包含我的应用程序的免费版本。但是,我不确定如何以一种不会导致我的应用程序容易被盗版的方式来实现这一点。以下是我正在考虑的一些实现选项,但它们似乎都不是特别好的想法。有什么建议么?

  1. 我向他们提供了一个不使用 LVL 代码的 apk。然后他们可以将我的 apk 与他们的应用程序打包在一起,并使用 ACTION_VIEW 意图安装它。这似乎是个坏主意,因为我认为某些 rouge 用户提取我的不安全 apk 并分发它并不是特别困难。

  2. 也许我可以构建一个版本来检查他们的应用程序是否已安装,如果是,它会查询他们的应用程序以获取某种解锁代码。只有当此解锁代码成功时,应用程序才会运行。我对此的主要担忧是我不知道“查询另一个应用程序”是否可以完成解锁代码。

4

2 回答 2

0

这绝对是可以实现的。如前所述,查询应用程序的一种方法是使用内容提供程序。如果您担心安全性,您可以引入额外的权限,这两个应用程序必须拥有访问提供程序的权限。尽管由于怀疑两个应用程序具有相同的签名,所以它不会那么有效。

另一种方法是,如果他们有您可以绑定并请求代码或任何其他身份验证的服务。在这种情况下,他们的服务还可以通过查询您的应用程序 userId 并通过 PackageManager 检查签名来验证您的应用程序的有效性。

可悲的是,无论如何要防止盗版您的应用程序几乎是不可能的。即使使用 LVL ......因为所有这些都可以被反编译并最终被破坏。但至少你可以让攻击者的生活更加艰难。

于 2012-04-26T14:57:40.837 回答
0

对于您要执行的操作,我将从您的项目中创建一个 jar 并将其标记为库项目。这样,您可以将您的应用程序提供给您的客户,但他们将无法看到您编写的实际代码。使用这种方法,他们将能够直接调用任何方法,这比与 apk 交互更容易。

于 2012-04-26T14:57:46.920 回答