【问题标题】:execute custom code on android installation在android安装上执行自定义代码
【发布时间】:2010-12-16 21:31:11
【问题描述】:

我有一个维护一些机密数据(加密)的 android 应用程序,我正在尝试处理在我的应用程序更新期间维护这些加密数据的情况。我希望我的应用程序的不同版本具有不同的加密密钥,并且我不希望应用程序的新版本包含每个先前版本的密钥。

我的想法是在应用程序安装上运行一些代码,这将允许重新加密这些数据,但我的 android 首先似乎没有提供任何方法来在应用程序安装中执行应用程序代码。其次,我无论如何也看不到新安装的应用程序版本执行之前版本的代码。

这对我来说似乎不是那么不合理,有人可以确认android不允许这样做并解释原因吗?在解决方案方面,我必须对所有应用程序使用相同的密钥,或者让我的应用程序的新版本通过其他方式重建这些数据......

[还有另一个问题有些相关(下面的链接),但情况不同,答案没有提供任何参考]

Is there a way to make my Android app run some custom code upon installation?

http://groups.google.com/group/android-framework/browse_thread/thread/0f1617d28e8ff05e

【问题讨论】:

标签: android installation


【解决方案1】:

我希望我的应用程序的不同版本具有不同的加密密钥,并且我不希望应用程序的新版本包含每个先前版本的密钥。

为什么?这不会提高您的安全性。您的加密密钥可以在相当短的时间内找到。唯一安全的加密密钥是在用户脑海中的,因为这至少需要橡胶软管或水桶才能获得,而这不容易自动化。

我的想法是在应用程序安装上运行一些代码,这将允许重新加密这些数据,但我的 android 首先似乎没有提供任何方法来在应用程序安装中执行应用程序代码。

正确。我认为您可以通过广播Intent 收到有关应用程序更新的通知,但绝对不会安装或删除。这是为了防止偷渡式间谍软件等。

其次,我无论如何都看不到新安装的应用程序版本可以执行以前版本中的代码。

当然不是。对于初学者来说,这两个版本可能没有空间。其次,由于大部分情况下它们是同一个包中的相同 Java 类,因此即使在同一个虚拟机中同时拥有两个版本也没有好办法。

这对我来说似乎不是那么不合理的事情

欢迎您发表意见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多