Stan urządzenia wskazuje, w jaki sposób można swobodnie umieścić oprogramowanie na urządzeniu i
czy weryfikacja jest wymuszana. Stany urządzeń to LOCKED
oraz
UNLOCKED
LOCKED
urządzeń nie pozwala na błyskanie nowych
na urządzeniu, podczas gdy urządzenia UNLOCKED
pozwalają
modyfikacji.
Po włączeniu urządzenia program rozruchowy najpierw sprawdza, czy urządzenie
LOCKED
lub UNLOCKED
. Jeśli urządzenie
UNLOCKED
, program rozruchowy wyświetli użytkownikowi ostrzeżenie, a następnie będzie kontynuować
uruchamia się nawet wtedy, gdy wczytany system operacyjny nie jest podpisany przez źródło zaufania.
Jeśli urządzenie to LOCKED
, program rozruchowy wykona czynności opisane w artykule
Weryfikowanie rozruchu w celu weryfikacji
za pomocą oprogramowania urządzenia. Urządzenia LOCKED
uruchamiają się tylko wtedy, gdy:
wczytany system operacyjny jest prawidłowo podpisany przez źródło zaufania. Więcej informacji:
Proces uruchamiania.
zmiany stanu urządzenia
Aby zmienić stan urządzenia, użyj
polecenie fastboot flashing [unlock | lock]
. Ochrona użytkownika
dane, wszystkie przejścia między stanami umożliwiają wyczyszczenie partycji danych i prośba o pozwolenie na
przed usunięciem danych.
Przejście z UNLOCKED
na LOCKED
jest oczekiwane, gdy
użytkownik kupuje używane urządzenie służące do programowania. W wyniku zablokowania urządzenia
użytkownik powinien mieć pewność, że jest w stanie określonym przez urządzenie
producenta, o ile nie ma ostrzeżenia. LOCKED
do
Gdy deweloper chce ją wyłączyć, następuje przejście w tryb UNLOCKED
.
weryfikacji na urządzeniu w celach programistycznych.
Źródło zaufania
Źródło zaufania to klucz kryptograficzny używany do podpisywania kopii Androida zapisanych na urządzeniu. Prywatna część korzeni zaufania jest znana tylko producenta urządzenia i służy do podpisywania wszystkich wersji Androida przeznaczonych dystrybucji danych. Publiczna część zaufania jest osadzona w urządzeniu, są przechowywane w danym miejscu, więc nie można go modyfikować (zwykle w trybie tylko do odczytu) pamięci masowej).
Podczas wczytywania Androida program rozruchowy używa źródła zaufania do weryfikacji autentyczności. Więcej informacji o tym procesie znajdziesz na stronie Weryfikacja podczas uruchamiania. Urządzenia mogą mieć wiele programów rozruchowych, więc w grę może wchodzić wiele kluczy kryptograficznych.
Konfigurowalny przez użytkownika poziom zaufania
Urządzenia mogą opcjonalnie zezwolić użytkownikowi na skonfigurowanie głównego katalogu zaufania (na potrzeby np. klucz publiczny). Urządzenia mogą używać tego ustalonego przez użytkownika źródła zaufania dla Weryfikacja podczas uruchamiania zamiast wbudowanego źródła zaufania. Dzięki temu użytkownik może: instaluj i używaj niestandardowych wersji Androida bez naruszania bezpieczeństwa i z ulepszeniami funkcji weryfikacji podczas uruchamiania.
Jeśli zaimplementowano możliwy do ustawienia przez użytkownika poziom zaufania, należy to zrobić w taki sposób, które:
- Do ustawienia/usunięcia konfigurowanego przez użytkownika poziomu głównego dla zaufania.
- Tylko użytkownik może określić główny poziom zaufania, który można ustawić przez użytkownika. Nie może musi być ustawiona fabrycznie lub w dowolnym punkcie pośrednim, zanim użytkownik otrzyma urządzenia.
- Konfigurowany przez użytkownika główny element zaufania jest przechowywany w pamięci masowej, na którą ujawniono modyfikację. Wykrywanie zmian oznacza, że można wykryć, czy Android zmodyfikowano dane, np. zostały zastąpione lub zmienione.
- Jeśli jest ustawiony główny poziom zaufania, który można ustawić przez użytkownika, urządzenie powinno zezwalać na dostęp do wersji Androida podpisanego za pomocą wbudowanego źródła zaufania lub ustawień jest podstawą zaufania do uruchomienia.
- Przy każdym uruchomieniu urządzenia z zastosowanym przez użytkownika poziomem zaufania
powinno zostać wyświetlone powiadomienie, że urządzenie wczytuje niestandardową wersję Androida. Dla:
np. ekrany ostrzegawcze, zobacz
LOCKED
urządzeń z niestandardowym zestawem kluczy.
Jednym ze sposobów wdrożenia konfigurowanego przez użytkownika źródła zaufania jest wykorzystanie
partycję, którą można flashować lub wyczyścić tylko wtedy, gdy urządzenie jest
UNLOCKED
stan. W przypadku urządzeń Google Pixel 2 stosowana jest ta metoda,
partycja wirtualna ma nazwę avb_custom_key
. Format pliku
dane w tej partycji to dane wyjściowe funkcji
avbtool extract_public_key
. Oto przykład, jak ustawić
konfigurowany przez użytkownika poziom zaufania:
avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin
Określony przez użytkownika poziom główny zaufania można usunąć, wysyłając:
fastboot erase avb_custom_key