【问题标题】:How to create copy protected apk file?如何创建受版权保护的 apk 文件?
【发布时间】:2013-01-22 00:33:56
【问题描述】:

当我将 APK 文件发送到某人的电子邮件时,他可以将文件复制一百万次并出售一百万次,但我不希望这样。

如何将保护集成到 Java 文件、manifest.xml 或其他位置,以使程序的副本不起作用?或者我可以为 APK 文件设置一个一次性密码吗?

【问题讨论】:

标签: android security apk


【解决方案1】:

你不能。没有办法做到这一点。当您通过电子邮件将 apk 发送给某人时,您必须承担不必要的分发风险。

您可以做的最好的事情是每次通过电子邮件将其发送给某人时编译一个单独的 apk,并在其中放入一个唯一的代码。当应用程序首次启动时,让它在在线服务器上注册。如果有人再次尝试注册相同的代码,那么您就知道该 apk 已发送给其他人或安装在多个设备上。在这种情况下,您的服务器可以告诉您的应用该特定代码已被使用并让它拒绝工作。

这种方法的缺点:

  1. 您需要为每封单独的电子邮件专门编译一个新的 apk
  2. 任何人都可以反编译应用程序并将代码更改为其他内容,然后重新编译并使用它。或者他们可以根据需要移除整个检查机制。

简而言之,没有万无一失的方法。

【讨论】:

  • 您可以使用 ProGuard 使您的应用程序的反编译更加困难
  • @nicopico 反编译还是很容易的。它只是更难阅读。现在你有反编译器可以在一定程度上消除混淆。
  • 你必须租一个并构建一个始终运行并完成工作的应用程序。
  • 有没有办法,如果他从apk文件安装应用程序,apk文件会自动删除。
  • @nns 您不需要构建服务器。只需租用或购买一个,然后在其上运行一个简单的网络服务
【解决方案2】:

如果您希望您的用户能够安装应用程序,您没有任何方法可以做到这一点

一种可能的解决方法是测试 DeviceID,并仅在 DeviceID 已获得授权的情况下允许应用继续运行。

显然,您必须在代码中进行管理,如果您需要授权大量设备,这可能会变得非常麻烦。另外,我不确定每台设备都有 DeviceID

查看Is there a unique Android device ID?了解更多信息

【讨论】:

    【解决方案3】:

    使用以下选项之一创建一个只需几行额外代码的自定义 APK

    如何记录应用程序的启动次数,如果超过显示一条消息并关闭它?

    或者您可以检查代码中的试用天数,在 MainActivity/Base Activity 中检查从现在起的 5 天,如果超过退出应用程序。

    您始终可以将此详细信息保存在应用的共享首选项中并与之交叉检查。

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2021-05-23
      相关资源
      最近更新 更多