Начиная с новой предварительной версии ADT (версия 21) , у них есть новое предупреждение lint, в котором говорится следующее о файле манифеста (в теге приложения):
Должен явно установить для android: allowBackup значение true или false (по умолчанию это true, что может иметь некоторые последствия для безопасности данных приложения)
На официальном сайте они написали:
Пара новых проверок: вы должны явно решить, позволяет ли ваше приложение создавать резервные копии, и проверить метку. Есть новый флаг командной строки для установки пути к библиотеке. Много улучшений в инкрементальном анализе ворса при редактировании.
Что это за предупреждение? Что такое функция резервного копирования и как ее использовать?
Кроме того, почему предупреждение говорит мне, что оно имеет последствия для безопасности? Каковы недостатки и преимущества отключения этой функции?
Для манифеста есть две концепции резервного копирования:
- «android: allowBackup » позволяет выполнять резервное копирование и восстановление через adb, как показано здесь :
Разрешить ли приложению участвовать в инфраструктуре резервного копирования и восстановления. Если для этого атрибута задано значение false, резервное копирование или восстановление приложения никогда не будет выполняться, даже если выполняется резервное копирование всей системы, в противном случае все данные приложения будут сохранены через adb. Значение по умолчанию для этого атрибута - true.
Это считается проблемой безопасности, потому что люди могут сделать резервную копию вашего приложения через ADB, а затем получить личные данные вашего приложения на свой ПК.
Тем не менее, я думаю, что это не проблема, так как большинство пользователей не знают, что такое adb, и если они знают, они также будут знать, как получить root права на устройство. Функции ADB будут работать только в том случае, если на устройстве включена функция отладки, и для этого требуется, чтобы пользователь включил ее.
Таким образом, будут затронуты только пользователи, которые подключают свои устройства к ПК и включают функцию отладки. Если на их ПК установлено вредоносное приложение, использующее инструменты ADB, это может быть проблематично, поскольку приложение может считывать данные частного хранилища.
Я думаю, что Google должен просто добавить функцию, которая по умолчанию отключена, в категорию разработчиков, чтобы разрешить резервное копирование и восстановление приложений через ADB.
- «android: backupAgent » позволяет использовать функцию резервного копирования и восстановления в облаке, как показано здесь и здесь :
Имя класса, который реализует агент резервного копирования приложения, подкласс BackupAgent. Значением атрибута должно быть полное имя класса (например, «com.example.project.MyBackupAgent»). Однако для краткости, если первый символ имени является точкой (например, «.MyBackupAgent»), он добавляется к имени пакета, указанному в элементе. Там нет по умолчанию. Имя должно быть указано.
Это не проблема безопасности.