我有一个付费的Android应用程序,它使用谷歌LVL代码来验证用户。
公司希望向我付款,以便他们的申请可以包含我的申请的免费版本。但是,我不确定如何以不会导致我的应用程序的轻松盗版版本的方式完成此操作。以下是我正在考虑的一些实施选项,但它们似乎都不是特别好的想法。有什么建议吗?
我向他们发送了一个不使用LVL代码的apk。然后他们可以用我们的应用程序打包我的apk,并使用ACTION_VIEW意图安装它。这似乎是一个坏主意,因为我认为一些胭脂用户提取我的不安全的apk并分发它并不是特别困难。
也许我可以构建一个版本来检查他们的应用程序是否已安装,如果是,它会查询他们的应用程序以获取某种解锁代码。并且仅当此解锁代码成功时才会运行应用程序。我对此的主要担心是,我不知道是否可以通过“查询另一个应用程序”获取解锁代码。
答案 0 :(得分:0)
这绝对是可以实现的。如前所述,查询应用程序的一种方法是使用内容提供程序。如果您担心安全性,则可以引入两个应用程序必须保留以访问提供程序的其他权限。虽然由于怀疑这两个应用程序具有相同的签名,但它不会那么有效。
另一种方式是,如果他们有可以绑定的服务并请求代码或任何其他身份验证。在这种情况下,他们的服务也可以通过查询您的应用程序userId并通过PackageManager检查签名来验证您的应用程序有效性。
可悲的是,无论如何都不可能防止盗版你的应用程序。即使使用LVL ......因为所有这些都可以被反编译并最终被破坏。但至少你可以让攻击者更加生活。
答案 1 :(得分:0)
对于您要做的事情,我会从您的项目中创建一个jar并将其标记为库项目。这样,您可以将您的应用程序提供给您的客户,但他们将无法看到您编写的实际代码。使用这种方法,他们可以直接调用任何方法,这比与apk交互更容易。