Cihaz durumu

Cihaz durumu, yazılımın bir cihaza ne kadar özgürce yüklenebileceğini ve doğrulamanın zorunlu kılınıp kılınmadığını belirtir. Cihaz durumları LOCKED ve UNLOCKED'dir. LOCKED cihazlar, cihaza yeni yazılım yüklemenizi engellerken UNLOCKED cihazlar değişiklik yapılmasına izin verir.

Bir cihaz açıldığında önyükleme programı önce cihazın LOCKED veya UNLOCKED olup olmadığını kontrol eder. Bir cihaz UNLOCKED ise önyükleyici kullanıcıya bir uyarı gösterir ve yüklenen işletim sistemi güven kökü tarafından imzalanmamış olsa bile önyüklemeye devam eder.

Cihaz LOCKED ise önyükleyici, cihazın yazılımını doğrulamak için Başlatmayı Doğrulama bölümündeki adımları uygular. LOCKED cihazlar, yüklenen işletim sistemi güven kökü tarafından düzgün bir şekilde imzalanmışsa yalnızca açılır. Daha fazla bilgi için Açılış akışı bölümüne bakın.

Cihaz durumunu değiştirme

Bir cihazın durumunu değiştirmek için fastboot flashing [unlock | lock] komutunu kullanın. Kullanıcı verilerini korumak için tüm durum geçişlerinde veri bölümleri silinir ve veriler silinmeden önce kullanıcı onayı istenir.

Kullanıcılar kullanılmış bir geliştirme cihazı satın aldığında UNLOCKED ile LOCKED arasında geçiş yapılması beklenir. Cihaz kilitlendiğinde, uyarı olmadığı sürece kullanıcının cihazın üretici tarafından üretilmiş bir durumda olduğundan emin olması gerekir. Geliştirici, geliştirme amacıyla cihazda doğrulamayı devre dışı bırakmak istediğinde LOCKED ile UNLOCKED arasında geçiş yapılması beklenir.

Güven kökü

Güvenlik kökü, cihazda depolanan Android kopyasını imzalamak için kullanılan kriptografik anahtardır. Güven kökünün özel kısmı yalnızca cihaz üreticisi tarafından bilinir ve dağıtılmak üzere tasarlanmış her Android sürümünü imzalamak için kullanılır. Güven kökünün herkese açık kısmı cihaza yerleştirilir ve üzerinde değişiklik yapılamayacak bir yerde (genellikle salt okunur depolama birimi) saklanır.

Android'i yüklerken önyükleyici, özgünlüğü doğrulamak için güven kökünü kullanır. Bu süreç hakkında daha fazla bilgi için Başlangıcı doğrulama başlıklı makaleyi inceleyin. Cihazlarda birden fazla önyükleme yükleyici olabilir ve bu nedenle birden fazla kriptografik anahtar kullanılıyor olabilir.

Kullanıcı tarafından ayarlanabilen güven kökü

Cihazlar isteğe bağlı olarak kullanıcının güven kökünü (ör. ortak anahtar) yapılandırmasına izin verebilir. Cihazlar, yerleşik güven köküne ek olarak Doğrulanmış Başlatma için kullanıcı tarafından ayarlanabilen bu güven kökünü kullanabilir (Google Pixel cihazlar bu kökü kullanır).

Kullanıcı tarafından ayarlanabilen güven kökü uygulanıyorsa bu, aşağıdaki şekilde yapılmalıdır:

  • Kullanıcı tarafından ayarlanabilen güven kökünü ayarlamak/silmek için fiziksel onay gerekir.
  • Kullanıcı tarafından ayarlanabilen güven kökü yalnızca son kullanıcı tarafından ayarlanabilir. Fabrikada veya son kullanıcı cihazı almadan önce herhangi bir aşamada ayarlanamaz.
  • Kullanıcı tarafından ayarlanabilen güven kökü, bozulmaya karşı korumalı depolama alanında saklanır. Değişiklik algılanabilir, Android'in verilere müdahale edip etmediğini (ör. verilerin üzerine yazılmış veya değiştirilmiş olup olmadığını) algılamayı mümkün kılar.
  • Kullanıcı tarafından ayarlanabilen bir güven kökü ayarlandıysa cihaz, yerleşik güven kökü veya kullanıcı tarafından ayarlanabilen güven kökü ile imzalanan bir Android sürümünün başlatılmasına izin vermelidir.
  • Cihaz, kullanıcı tarafından ayarlanabilen güven kökü kullanılarak her başlatıldığında kullanıcıya cihazın Android'in özel bir sürümünü yüklediği bildirilmelidir. Örneğin, uyarı ekranları için LOCKED özel anahtar grubuna sahip cihazlar başlıklı makaleyi inceleyin.

Kullanıcı tarafından ayarlanabilen güven kökü uygulamanın bir yolu, yalnızca cihaz UNLOCKED durumundayken önyükleme yapılabilen veya temizlenebilen bir sanal bölüme sahip olmaktır. Google Pixel 2 cihazlarda bu yaklaşım kullanılır ve sanal bölüme avb_custom_key adı verilir. Bu bölümdeki verilerin biçimi, avbtool extract_public_key komutunun çıkışıdır. Kullanıcı tarafından ayarlanabilen güven kökünü ayarlama örneği aşağıda verilmiştir:

avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin

Kullanıcı tarafından ayarlanabilen güven kökü aşağıdaki komutlar verilerek temizlenebilir:

fastboot erase avb_custom_key