Google Kamera ve Kaydediciye güncellemeleri bu nedenle yükleyememenizin nedeni budur

click fraud protection

Google Kamera veya Kaydedici uygulamalarına bir güncelleme yüklerken "doğrulama başarısız oldu" hatasıyla karşılaştıysanız nedenini öğrenmek için bunu okuyun.

Google Ekim ayında Pixel 5'i piyasaya sürdüğünde, yeni uygulamalarını elimize almanın heyecanını yaşadık. (Telefonun kendisi oldukça havalı) Pixel 5'in piyasaya sürülmesiyle birlikte yeni sürümleri de geldi. Google Kamera Ve Google Kaydedici toplulukla paylaştığımız uygulamalar. Ancak eski Pixel cihazlarının pek çok kullanıcısı güncellemeleri dışarıdan yüklemeye çalıştığında bir hatayla karşılaştılar (yukarıda gösterilmiştir). Tuhaf bir şekilde, herkesin güncellemeleri yüklemeyle ilgili sorunları yoktu. Bazıları bunları sorunsuz bir şekilde kurmayı başardı, bazıları ise yeni sürümleri yükleyebilmek için fabrika ayarlarına sıfırlamak zorunda kaldı. Bu sorunun rastgele görünen doğası nedeniyle, birçok kişi bunu bir hataya bağladı. Artık bu sorunun bir hatadan değil, Google'ın Android 11'de dışarıdan yükleme güncellemelerini engellemek için yeni bir API kullanmasından kaynaklandığından oldukça eminiz.

Android 11 çalıştıran bir Pixel cihaza Google Kamera 8.0 veya sonraki sürümünü ya da Google Recorder 2.0 veya sonraki sürümünü yan yüklemeye çalışırsanız doğrulamanın başarılı olamadığını belirten bir hata mesajı görürsünüz. APK'yı bir kabuk komutu kullanarak dışarıdan yüklemeye çalışsanız bile, kurulum hatasının daha spesifik bir nedenini bulamazsınız. Size verilecek kurulum dönüş kodu: "INSTALL_FAILED_VERIFICATION_FAILURE", maalesef doğrulamanın neden başarılı olmadığını size söylemiyor. Logcat'i inceleyerek doğrulamanın neden başarısız olduğunu tam olarak öğrenebiliriz:

AppIntegrityManagerServiceImpl: Integritycheckofcom.google.android.GoogleCameraresult: DENYdueto[Rule: (PACKAGE_NAME EQ com.google.android.GoogleCamera) AND (VERSION_CODE GTE 32045130) AND (APP_CERTIFICATE EQ F0FD6C5B410F25CB25C3B53346C8972FAE30F8EE7411DF910480AD6B2D60DB83) AND NOT (INSTALLER_NAME EQ com.android.vending), DENY]

Bu mesaja göre, "INSTALLER_NAME", Google Play Store'un paket adı olan "com.android.vending" ile eşleşmediğinden, Google Kamera kurulumunun bütünlük kontrolü başarısız oldu. (Google Kamera 8.0'ı APKMirror Installer uygulamasını kullanarak yüklemeye çalışıyordum, ne olursa olsun.) Bu mesaj sistem günlüğüne "AppIntegrityManagerServiceImplAndroid'in yeni "Uygulama Bütünlüğü" özelliğinin bir parçası olan ". AOSP'deki koda göre Uygulama Bütünlüğü, paket yöneticisinin mevcut APK imza doğrulamasının üstüne ek bir kontrol katmanı sağlayacak şekilde tasarlanmıştır. Uygulama Bütünlüğü API'si bir dizi Tüzük Kuruluma izin verilip verilmeyeceğine veya reddedileceğine karar vermek için. Kurallar, Google Play Hizmetleri olduğuna inandığımız bir sistem uygulaması tarafından sağlanır ve bir dosyada saklanan.

Ayrıca Uygulama Bütünlüğü ayrıca arar başka bir sınıf denir SourceStampVerifier Manifest'in meta verilerine bir "kaynak damgası" katıştırılmışsa. Örneğin, Google Kamera uygulamasının Manifest dosyasındaki "kaynak damgası" olduğuna inandığımız şey şu:

<meta-dataandroid: name="com.android.stamp.source"android: value="https://play.google.com/store"/>

Anlayabildiğimiz kadarıyla kaynak damgası, paket yükleyicisinin imzasını doğrulamak için kullanılıyor. Yani örneğin, AppIntegrity'yi kuruluma izin vermesi için kandıramazsınız. Play Store'u taklit etti yükleyici olarak.

Bunun ötesinde, Google'ın, Google Kamera ve Google Kaydedici uygulamalarına dışarıdan yükleme güncellemelerini engellemek için AppIntegrity'yi ve ilgili API'leri nasıl kullandığını tam olarak bulamadık. Google Play Hizmetleri APK'sının hızlı bir incelemesi, bu API'leri kullandığını ancak kodun her şeyi gerçekten anlamayacak kadar karmaşık olduğunu ortaya koyuyor. Hatta bütünlük kurallarının saklandığı dizini bile bulduk - /data/system/integrity_rules - ancak yalnızca serileştirilmiş veriler içerdiğinden pek işe yaramadı. Ayrıca bütünlük doğrulamasını devre dışı bırakmanın bir yolunu da bulamadık (bu, bir ayarı değiştirme), ancak bazılarında fabrika ayarlarına sıfırlamanın işe yaramasının nedeninin, Google Play Hizmetlerinin kurulumu engellemek için kural kümesini başlatma şansına sahip olmaması olduğuna inanıyoruz. Logcat mesajı ve bu yeni API'lerin Android 11'de tanıtılması, bunun bir hata değil, tamamen tasarımdan kaynaklandığını kuvvetle öne sürüyor.

Google, bu API'lerin kullanımına ilişkin kamuya açık bir yorumda bulunmadı (ya da böyle bir yorum yapmasını beklemiyoruz) ve yorum için ulaşıldığında da yanıt vermedi. Bununla birlikte, yandan yüklenen güncellemeleri neden engellediklerine dair birkaç teorimiz var. Birincisi, insanları cihazlarına uygulamanın yanlış sürümünü yüklemekten koruyor olabilirler. Google, uygulamalarının belirli sürümlerini belirli Pixel cihazlarına sunar. Örneğin, Cihaz Kişiselleştirme Hizmetleri uygulamasının çeşitli sürümleri çevrimiçi olarak bulunabilir. Hepsi Pixel cihazlarına yüklenebiliyor olsa da, bir noktada bu mümkündü. Canlı Altyazı özelliğini kaybedin Daha eski bir Pixel cihazı için oluşturulmuş bir sürümü indirerek Pixel 4'te. Başka bir neden, Google'ın SourceStampVerifier sınıfında açıkladığı gibi "yetkisiz dağıtıma ilişkin uygulamaların izlenebilirliğini artırmak" olabilir.

Şu ana kadar uygulama paketi biçimini kullanan Google uygulamalarından yalnızca birkaçı (Google Kamera ve Google Kaydedici gibi) kullanıma sunuldu. Play Store dışı yüklemeleri engelliyor ancak şirketin bu davranışı diğer uygulamalarına da yayıp yaymayacağını bilmiyoruz hepsi AAB formatına geçtikten sonra. Ayrıca uygulama paketlerine geçişin Uygulama Bütünlüğü'nü uygulamayı gerektirip gerektirmediğini de değerlendirdik ancak Google'ın zaten bir çözümü var kullanıcılar gerekli tüm bölmelere sahip olmayan bir uygulamayı yüklemeye çalıştıklarında bu durumu ele almak için. Durum ne olursa olsun, Google'ın uygulamalarının dışarıdan yüklenmesini engelleme niyetinde olduğunu düşünmüyoruz, ancak bu araçlar kesinlikle buna izin veriyor.

Bu makaledeki yardımlarından dolayı vvb2060, aviraxp ve Quinny899 geliştiricilerine teşekkür ederiz.bize kullanma lisansı sağladığı için PNF Yazılımına teşekkür ederiz JEB Kod ÇözücüAndroid uygulamaları için profesyonel düzeyde bir tersine mühendislik aracıdır.