Profil hâlâ listede, sertifika hâlâ yüklü görünüyor ve bağlan düğmesi yalnızca Keystore hatası diyen bir mesajla başarısız oluyor, başka bir şey yok. Uygulama depolamasını temizlemeden veya telefonu teslim etmeden önce hangi anahtar işleminin başarısız olduğunu belirleyin. Üç sonuç aynı iletişim kutusunu üretir ve üç farklı eyleme yanıt verir — yalnızca biri yıkıcıdır. Karşılaştırma on dakikaya değer, çünkü yanlış dal sizi korumaya çalıştığınız kimlikten eder.

Tek bir iletişim kutusunun arkasındaki üç arıza

Birincisi kimlik doğrulama. Anahtar var ve geçerli, ancak kullanımı kullanıcının varlığını kanıtlamasını gerektirir — cihaz kilidini açma, biyometri veya iş profili sorgusu. Kilit zaman aşımı, kayıtlı biyometri veya profil durumu yakın zamanda değiştiyse, anahtarın kendisi tamamen sağlamken anahtar kullanımı başarısız olabilir.

İkincisi kalıcı geçersiz kılma. Bazı anahtar malzemesi, kilitleme yöntemi sıfırlandığında veya biyometrik kayıt değiştiğinde platform ilkesi tarafından geçersiz kılınır, çünkü onu koruyan bağ artık geçerli değildir. Anahtar onarılamaz ve yeniden denemek bir kurtarma planı değildir; kimlik, onu veren kayıt süreci aracılığıyla değiştirilmelidir.

Üçüncüsü bir sağlayıcı arızası: keystore hizmeti işlemi şu anda tamamlayamadı. Bazen yeniden denemeye değer sınıf budur ve tek sınıf.

FailureWhat it meansWhat recovers itWhat does not
User not authenticatedKey needs a presence checkSupported unlock or authorization flowA VPN account password reset
Key permanently invalidatedBinding is gone; key unusableReplacement enrollment for that identityRetrying, rebooting, reinstalling the client
Transient provider errorService could not complete nowThe provider's documented retry pathClearing app data

Üçünden ikisinin yıkıcı olmadığını ve birinin cihaz düzeyinde hiçbir çözümü olmadığını unutmayın. Hiçbiri telefonu silmekle çözülmez; iletişim kutusu onlara başka bir şey sunmadığı için insanların ilk yaptığı adım budur.

Yeniden kayıt ile veri temizleme

Bu ikisi dışarıdan benzer görünür ve değildir. Yeniden kayıt, veren sistemden yeni bir kimlik ister — bu cihaza bağlı taze bir sertifika veya anahtar — ve eskisini emekliye ayırır. Veri temizleme, uygulamanın depolanan durumunu siler; bu, anahtarı silmeden anahtara olan başvuruyu kaldırabilir veya anahtarı silip onu yeniden oluşturma yetkisi olmadan sizi bırakabilir.

Ayrım önemlidir çünkü dışa aktarılamayan anahtarlar tasarım gereği taşınabilir değildir. Mevcut donanım veya sağlayıcı tarafından desteklenen cihazın keystore'unda yaşarlar ve bir yedeğin yakalayıp geri yüklemenin geri getirdiği bir şey değildir. Dağıtımın kimliği dışa aktarılamayan bir anahtarsa, kurtarma olarak yeniden kaydı planlayın ve o kaydı elde etmek için onaylı bir yolunuz olduğunu önceden doğrulayın — bazı kuruluşlar bunun için özel ağ erişimi gerektirir, ki bu tam olarak bozuk VPN'in sağladığı şeydi.

Yani sıra şöyle: desteklenen kimlik doğrulama yolunu deneyin, ardından anahtarın kalıcı olarak geçersiz olup olmadığını belirleyin ve kimliği yalnızca öyleyse değiştirin. Depolamayı temizlemek en sonda gelir, neyin yeniden oluşturulacağını bildikten sonra, kolay olduğu için ilk değil.

Yalnızca yeniden denenebilir olanı yeniden deneyin

Eski platform sürümleri keystore hatalarını tek bir istisnaya indirgerdi, bu yüzden bu kadar çok istemci her şeyi yeniden dener. API 33'ten itibaren istisna türü yapı taşır: sayısal bir hata, geçici arıza bayrağı ve yeniden deneme ilkesi. Bir istemci geliştiricisi için yeniden deneme ilkesi yalnızca geçicilik bayrağı doğru olduğunda anlamlıdır; kalıcı geçersiz kılmanın yeniden deneme takvimi yoktur ve onu döngüde dövmek yalnızca pili tüketir ve günlüğü doldurur.

İstemciyi yazmak yerine teşhis ediyorsanız pratik sonuç aynıdır. Her denemede aynı başarısızlıklar tek seferlik bir aksaklığı dışlar, ancak kalıcı olarak geçersiz kılınmış bir anahtarı bir süredir kullanılamayan bir sağlayıcıdan ayırmaz — bir sağlayıcı kesintisi onuncu denemede de ilkinde olduğu gibi görünür. API 33'ün yapısal alanları olmadan, tekrarı ikinci bir sinyal aramak için neden sayın — derlemeniz birini açığa çıkarıyorsa hata kodu, operatörün durumu veya aynı cihazdaki farklı bir anahtarın başarılı olması — anahtarın ölü olduğuna dair kanıt olarak değil.

Etiketi değil, neden zincirini okuyun

Uygulamalar özgün istisnayı sarar ve arayüzdeki dostça dize sıklıkla dalı belirleyen tek alanı gizler. Neden zincirini ve denemenin zaman damgasını koruyun: dış istisna genellikle işlemi adlandırır, neden ise anahtarın durumunu adlandırır.

İki başarısız uygulamanın arızalı bir telefonu kanıtladığı çıkarımına kapılmayın. Farklı anahtarlar farklı sağlayıcılar ve güvenlik düzeyleri tarafından desteklenebilir ve hâlâ çalışan bir uygulama aynı işlemi hiç yürütmüyor olabilir — imza, şifre çözme ve anahtar kanıtlama aynı hizmete farklı isteklerdir. KeyStoreException başvurusu yeni API düzeylerindeki yapısal alanları açıklar ve derlemenizin gerçekte neyi bildirebileceğini denetleyeceğiniz yerdir.

Donanım sonucunu destekleyecek şey çoğu insanın sandığından daha dardır: aynı işlem, aynı sağlayıcıda, anahtar düzeyinde değil sağlayıcı düzeyinde bir hatayla bağımsız anahtarlarda başarısız oluyor. Bu, platformun teşhisine sorulacak bir sorudur, bir cihaz partisi hakkındaki destek forumu başlığına değil.

Karar verirken ne kaydedilmeli

Android derlemesini, istemci sürümünü, seçilen profili, başarısız işlemi ve yakın zamanda bir şeyin değişip değişmediğini kaydedin — bir işletim sistemi güncellemesi, kilit ekranı değişikliği, yeni parmak izi, yeniden kayıt. Diziyi nedenin kanıtı olarak değil bağlam olarak kaydedin; anahtar arızasından önceki bir kilit değişikliği makul bir bağıntıdır, gösterim değil.

Sonra belirlediğiniz dala göre hareket edin. Geçici: kimliği koruyun, desteklenen yeniden deneme yolunu kullanın. Kimlik doğrulama gerekli: desteklenen kilit açma akışını tamamlayın ve iletişim kutusunu aşmak için devre dışı bırakmak yerine dağıtımın gerektirdiği kilit ilkesini koruyun. Kalıcı olarak geçersiz: normal kayıt yoluyla kimliği değiştirin ve emekliye ayırın.

Sunucu doğrulaması hâlâ açıkken, gerçek bir kaynağa, yeni yetkili bir bağlantıda sonucu kanıtlayarak bitirin. Yalnızca sertifika denetimleri gevşetildiğinde çalışan hiçbir şey anahtar sorununu çözmedi — onu ağ katmanına taşıdı, orada daha kötü belirtilerle ortaya çıkacak.

  • Üç dal: kimlik doğrulama gerekli, kalıcı olarak geçersiz, sağlayıcı geçici.
  • Yalnızca üçüncüsü yeniden denemekten yararlanır ve yalnızca kendi yeniden deneme ilkesine göre.
  • Yerine koyma kaydı erişimi geri getirir; veri temizleme bu seçeneği kaldırır.
  • Yeni bir bağlantı ve normal sunucu kimliği denetimleriyle doğrulayın.

İlgili makaleler