【问题标题】:How to protect .apk file being shared with other people?如何保护与他人共享的.apk 文件?
【发布时间】:2011-10-10 19:24:14
【问题描述】:

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

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

【问题讨论】:

  • 如果我有 2 部 Android 手机怎么办?
  • 这与 sencha-touch 和 phonegap 有什么关系?
  • @Ilya139 我在我的应用程序中使用 PhoneGap 和 Sencha-Touch...
  • Sencha-Touch 和 PhoneGap 在这方面并不能真正帮助您。您必须在 android 级别上执行此操作。检查这个:developer.android.com/guide/publishing/licensing.html

标签: android security apk


【解决方案1】:

第一个想法:在您的网站上提供基于 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); 

但有时它被认为是空的,它被记录为“可以在恢复出厂设置时更改”。使用风险自负,并且可以在有根手机上轻松更改。

现在最薄弱的部分将是市场,它真的很容易分享和复制。

【讨论】:

  • JFYI:谷歌最近推出了新的保护方案,似乎将应用程序绑定到设备,并不时在线检查有效性。不过,这要求设备至少每周上线一次。
  • 有些人可能会质疑为什么应用需要读取手机身份。特别是如果读取状态和身份的权限是分开的
  • 你能再解释一下“IMEI”方法吗?或指向某个地方的链接?
  • IMEI 是所有手机的唯一号码:android-coding.blogspot.com/2011/06/… 这里还有一个很好的答案来获得设备的唯一 ID:stackoverflow.com/questions/2785485/…
【解决方案2】:

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

这个问题没有最终的解决方案,只有一些技巧和变通方法使软件难以在不同的设备上使用。

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

如果您不这样做,例如,您可能会要求应用程序与一个集中的网络服务通信,该服务根据授权设备列表审查手机 ID,从而允许应用程序在这种情况下运行(这是 FlexLM 模型)。

网络上有大量关于如何保护您的应用程序的文档,关于如何使保护消失的信息量可能是该文档的 10 倍。

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

【讨论】:

    【解决方案3】:

    您无法阻止您的 apk 被共享。但是,您可以查看google licensing service。该服务基本上是查询 google play store 并查明用户是否真的购买了该应用程序。这主要用于付费应用程序,但您也可以在免费应用程序中使用它。

    【讨论】:

      猜你喜欢
      • 2022-08-22
      • 1970-01-01
      • 2016-06-15
      • 2022-08-11
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 2011-06-07
      • 2019-04-30
      相关资源
      最近更新 更多