sharedUserId: безопасно изменить, когда приложение уже на рынке? - PullRequest
17 голосов
/ 15 июля 2010

Для следующей версии нашего приложения я хочу изменить sharedUserId, так как теперь мы используем приложение панели управления внутреннего контроля, которое должно записывать в файлы настроек другого приложения.

Но так как приложение уже установлено намного телефонов, это будет проблемой?Я провел небольшой тест на эмуляторе, и в журналах устройств я вижу исключения, что * .bak-версии файлов предпочтений не могут быть записаны.Не уверен, насколько это важно.Любопытно, что настройки безопасности все еще работают, хотя папка shared_prefs была создана с использованием другого идентификатора пользователя Linux.

Кто-нибудь пробовал это раньше?

Ответы [ 2 ]

27 голосов
/ 13 ноября 2010

И чтобы ответить на мой собственный вопрос снова :

Нет, это не безопасно. Поскольку обновление приложения через Android Market не приведет к удалению базы данных и файлов настроек, новая версия не сможет читать или записывать эти файлы (поскольку они были созданы в другой идентификатор пользователя Linux), и приложение будет зависать после обновления. Вы должны попросить своих пользователей полностью удалить и переустановить приложение, что, безусловно, не рекомендуется.

Как правило, из этого я делаю вывод: Всякий раз, когда вы начинаете разработку нового приложения, обязательно установите ручной атрибут android:process и android:sharedUserId! Это не повредит, если вам это не нужно, но дает вам полный контроль над тем, какие приложения имеют доступ к частным ресурсам этого приложения.

2 голосов
/ 05 сентября 2012

На данный момент решения не найдено, но при участии в зарегистрированных проблемах Google может исправить это:

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

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

...