SharedUserId: безопасно менять, когда приложение уже находится на рынке?

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

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

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

Ответ 1

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

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

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