sharedUserId:应用程序已经上市时可以安全更改吗?

对于我们的应用程序的下一个版本,我想更改sharedUserId,因为我们现在使用内部控制仪表板应用程序,必须写入其他应用程序的设置文件。

但由于该应用程序已经安装在许多手机上,这会是一个问题吗? 我在模拟器上运行了一些testing,并且在设备日志中看到* .bak版本的首选项文件无法写入。 不知道这是多么的重要。 奇怪的是,即使shared_prefs文件夹是使用另一个Linux用户ID创build的,安全设置似乎仍然有效。

有没有人尝试过吗?

Solutions Collecting From Web of "sharedUserId:应用程序已经上市时可以安全更改吗?"

再回答我自己的问题:

不,这是不安全的。 由于通过Android Market更新应用程序不会删除数据库和首选项文件,因此新版本将无法读取或写入这些文件(因为它们是在不同的Linux用户标识下创build的),并且应用程序在更新后会崩溃。 你将不得不要求你的用户完全卸载并重新安装应用程序,这当然不build议。

作为一般规则,我从这里得出结论:每当你开始开发一个新的应用程序,一定要设置一个手动的android:processandroid:sharedUserId属性! 如果你不需要它,它不会受到伤害,但它可以让你完全控制哪些应用程序可以访问这个应用程序的私人资源。

目前没有任何解决scheme,但主要注册的问题可能会让Google来解决这个问题:

http://code.google.com/p/android/issues/detail?id=1227

http://code.google.com/p/android/issues/detail?id=14074