Od nowej wersji podglądu ADT (wersja 21) mają nowe ostrzeżenie o strzępach, które mówi mi następną rzecz w pliku manifestu (w znaczniku aplikacji):
Powinien jawnie ustawić Androida: allowBackup na true lub false (domyślnie jest to prawda, i może to mieć wpływ na bezpieczeństwo danych aplikacji)
Na oficjalnej stronie internetowej napisali:
Kilka nowych kontroli: musisz wyraźnie zdecydować, czy aplikacja zezwala na tworzenie kopii zapasowych i sprawdzenie etykiety. Dodano nową flagę wiersza poleceń do ustawiania ścieżki biblioteki. Wiele ulepszeń do przyrostowej analizy kłaczków podczas edycji.
Co to za ostrzeżenie? Co to jest funkcja tworzenia kopii zapasowych i jak z niej korzystać?
Ponadto, dlaczego ostrzeżenie mówi mi, że ma to wpływ na bezpieczeństwo? Jakie są wady i zalety wyłączenia tej funkcji?
Istnieją dwie koncepcje tworzenia kopii zapasowej manifestu:
- „Android: allowBackup ” pozwala na tworzenie kopii zapasowych i przywracanie za pomocą adb, jak pokazano tutaj :
Określa, czy zezwolić aplikacji na uczestnictwo w infrastrukturze tworzenia kopii zapasowych i przywracaniu. Jeśli ten atrybut ma wartość false, nie zostanie wykonana kopia zapasowa ani przywracanie aplikacji, nawet w przypadku kopii zapasowej całego systemu, która w przeciwnym razie spowodowałaby zapisanie wszystkich danych aplikacji przez adb. Domyślna wartość tego atrybutu to true.
Jest to uważane za problem z bezpieczeństwem, ponieważ ludzie mogą tworzyć kopie zapasowe aplikacji przez ADB, a następnie pobierać prywatne dane aplikacji na komputer.
Myślę jednak, że to nie problem, ponieważ większość użytkowników nie wie, co to jest adb, a jeśli to zrobi, będzie wiedziała, jak zrootować urządzenie. Funkcje ADB działałyby tylko wtedy, gdy urządzenie ma włączoną funkcję debugowania, a to wymaga włączenia przez użytkownika.
Tak więc dotyczy to tylko użytkowników, którzy podłączą swoje urządzenia do komputera i włączą funkcję debugowania. Jeśli mają na komputerze złośliwą aplikację korzystającą z narzędzi ADB, może to być problematyczne, ponieważ aplikacja może odczytać dane z prywatnego magazynu.
Myślę, że Google powinien po prostu dodać funkcję, która jest domyślnie wyłączona, w kategorii programistów, aby umożliwić tworzenie kopii zapasowych i przywracanie aplikacji przez ADB.
- „Android: backupAgent ” pozwala korzystać z funkcji tworzenia kopii zapasowych i przywracania w chmurze, jak pokazano tutaj i tutaj :
Nazwa klasy, która implementuje, jest agentem kopii zapasowej aplikacji, podklasą BackupAgent. Wartością atrybutu powinna być w pełni kwalifikowana nazwa klasy (na przykład „com.example.project.MyBackupAgent”). Jednak jako skrót, jeśli pierwszym znakiem nazwy jest kropka (na przykład „.MyBackupAgent”), jest ona dodawana do nazwy pakietu określonej w elemencie. Nie ma wartości domyślnej. Nazwę należy podać.
To nie jest problem bezpieczeństwa.
źródło
Odpowiedzi:
W przypadku tego ostrzeżenia dotyczącego kłaczków, podobnie jak dla wszystkich innych ostrzeżeń dotyczących kłaczków, zwróć uwagę, że możesz uzyskać pełniejsze wyjaśnienie niż tylko to, co jest w jednowierszowym komunikacie o błędzie; nie musisz przeszukiwać sieci, aby uzyskać więcej informacji.
Jeśli używasz kłaczków za pośrednictwem Eclipse, otwórz widok ostrzeżeń kłaczków, w którym możesz wybrać błąd kłaczków i zobaczyć dłuższe wyjaśnienie, lub wywołaj szybką poprawkę (Ctrl-1) na linii błędu, a jedną z sugestii jest „ Wyjaśnij ten problem ”, który również wyświetli pełniejsze wyjaśnienie. Jeśli nie korzystasz z Eclipse, możesz wygenerować raport HTML z lint (
lint --html <filename>
), który zawiera pełne wyjaśnienia obok ostrzeżeń lub możesz poprosić lint o wyjaśnienie konkretnego problemu. Na przykład problem związany zallowBackup
ma identyfikatorAllowBackup
(pokazany na końcu komunikatu o błędzie), więc pełniejsze wyjaśnienie to:allowBackup
Atrybut określa, czy dane aplikacja może zostać zarchiwizowane i odrestaurowany, co zostało udokumentowane tutaj .Kliknij tutaj, aby uzyskać więcej informacji
źródło
Oto, co tak naprawdę oznacza tworzenie kopii zapasowych:
~ Pobrane z http://developer.android.com/guide/topics/data/backup.html
Możesz zarejestrować się w tej usłudze tworzenia kopii zapasowych jako programista tutaj: https://developer.android.com/google/backup/signup.html
Typami danych, których kopie zapasowe można wykonać, są pliki, bazy danych, preferencje współdzielone, pamięć podręczna i biblioteka lib. Zazwyczaj są one przechowywane w katalogu /data/data/[com.myapp] urządzenia, które jest chronione przed odczytem i nie można uzyskać do niego dostępu, chyba że masz uprawnienia root.
AKTUALIZACJA : Możesz zobaczyć tę flagę na liście w dokumentacji api BackupManager : BackupManager
źródło
Nie jest to wyraźnie wspomniane, ale w oparciu o następujące dokumenty, myślę, że implikuje to, że aplikacja musi zadeklarować i wdrożyć BackupAgent, aby kopia zapasowa danych działała, nawet w przypadku, gdy parametr enableBackup ma wartość true (czyli domyślna wartość).
http://developer.android.com/reference/android/R.attr.html#allowBackup http://developer.android.com/reference/android/app/backup/BackupManager.html http://developer.android. com / guide / topics / data / backup.html
źródło
Jest to kwestia prywatności . Zaleca się, aby nie zezwalać użytkownikom na tworzenie kopii zapasowej aplikacji, która zawiera wrażliwe dane. Mając dostęp do plików kopii zapasowych (tj. Kiedy
android:allowBackup="true"
), można modyfikować / czytać zawartość aplikacji nawet na urządzeniu niezrootowanym.Rozwiązanie - użyj
android:allowBackup="false"
w pliku manifestu.Możesz przeczytać ten post, aby uzyskać więcej informacji: Hakowanie aplikacji na Androida za pomocą technik tworzenia kopii zapasowych
źródło