2011-01-24 34 views
2

我们被要求为具有现有网站和现有用户的公司创建Android上的瘦客户端。在APK文件中嵌入登录详细信息,对于每个用户(或其他选项)都有所不同

他们想发送一个MMS给他们的用户,给每个用户自己的下载URL。该URL将指向专门为该用户创建的Android apk文件,该文件将包含该用户的登录信息和密码。

即APK文件将嵌入登录细节。

这将在J2ME中完成,方法是将信息存储在JDK文件中。

我可以在How to update resources file in apk上看到一个类似的问题 - 但没有完全解答。

所以:

  1. 有存储的“资产”中的APK文件,这将是一个文本文件的方式,并通过解压缩,编辑,重新拉上apk文件易于编辑? (看起来像回答是否)

  2. 你知道任何类似的问题,或者曾在类似的应用程序?

  3. 有没有关于如何最好地完成这个应用程序的建议?任何形式的客户信息嵌入自动化水平将是有趣的...

  4. 最好的选择是设置应用程序与Ant脚本构建,并让客户端实际定制的源代码和构建每个用户有新的应用程序? (这具有客户端获取源代码,我们宁愿没有CON)

我已经扫描APK标签的问题,并似乎无法找到解决这个。

非常感谢, 理查德

+4

从安全的角度来看,这听起来很可疑。彩信可以被拦截。密码应该可以改变。资源可以被读取:丢失的设备会损害该用户的密码。也许你应该试图找出他们想要达到的目标:大概是为他们的最终用户提供一个无障碍的认证过程?登录可以抵御什么样的威胁,以什么价值? –

+0

......并且从可扩展性的角度来看可能会增加。您需要更改资源并使用SDK工具链重新包装apk并签名。这既是一种安全风险(在面向服务器的网络上拥有私钥),还有可扩展性风险(重载压缩和签名活动)。如果用户数量足够小,这是可行的,我授予你,但它看起来像很多工作和风险的收益相对较小。 –

+0

谢谢,Pontus - 这就是我一直对客户说的话(有一个可扩展性问题,他们需要他们自己的私钥,这不是安全的)。然而,它仍然是他们期望的解决方案 - 尽管信息相当私密并且有价值。 (我只能努力尝试,但如果我想为工作获得报酬,我必须交付他们的产品) –

回答

1

我想你可以把它放到APK(或更换一个虚拟文件存在),如果你使用的资源文件夹了。

您可以获得通过文件名中的数据,而不是资源-ID很容易: getResources().getAssets().open(fileName)

问候, 奥利弗

+0

谢谢,奥利弗,我希望这会是一件非常简单的事情,我只是错过了 - 当然,我所有的谷歌正在寻找关于“资源”而不是资产的信息。 –

+0

我可以在不重建整个应用程序的情况下更改此文件吗?我想要有应用程序使用的APK文件和txt。 Txt文件需要更改,无需重建应用程序,并在apk文件中的设备上安装。我可以做到吗? – Piotr

+1

@Piotr:你不需要重建整个应用程序,只需修改每个用户的apk文件内容并用密钥重新签名即可。详细信息已经在问题链接http://stackoverflow.com/a/4944708/586722 – Oliver

1

如果绝对是这样,考虑分配2周的APK,一个用应用程序和另一个包含手机特定信息的文件。用相同的密钥对它们进行签名,安排它们到share a UID,应用程序将能够像读取文件一样读取文件。

这样做的其余部分可能属于一个注释,不是这个答案,但我看到很多的问题,你被要求做什么:

  • 用于几乎所有其他应用程序进行标准的行为有需要时请求登录和密码,然后记住它。
  • 如果用户在您的客户的网站上更改密码,他必须为他的设备获取新的APK,而不必重新进行身份验证。
  • 对应用程序的任何更改都需要为每个用户生成并安装一个新的APK,用于
  • 它只需要一些不知情的用户与他人分享他独特的APK,并且您的整个安全模型都会在管道下面完成。
  • 不太重要,但仍然重要:如果您的客户能够从他们存储的内容重新构建明文密码,我质疑他们的安全方案。
+0

谢谢,Birfl的解决方案 - 应用程序之间的信息共享在不久的将来即将到来。关于您的意见,请参阅我对上述Pontus的回复 - 我以前的工作都是关于非常安全的系统,这不是让我的客户登录的首选方式。 –

相关问题