Bilinmeyen kurulum hata kodu -505 ile nasıl başa çıkabilirim?


9

Bir Nexus 7 cihazım var ve Android 5'e güncellendi.

Sistem yükseltmesinden sonra iki uygulama, çocuklarımın oynadığı oyunlar bana sıkıntı veriyor. Ölmek için Aptalca Yollar ve VVVVVV. Her ikisinin de yükseltme işleminden sonra simgeleri vardı, ancak tıklandığında "Uygulama yüklü değil" diyen bir açılır pencere belirdi. Onları kurmaya çalışıyorum. İndirme gayet iyi. Kurulum başlar. Ve sonra bir hata mesajı:

Uygulama yüklemesi sırasında bilinmeyen hata kodu: "-505"

Her iki uygulama için de aynı hata. Cihazı boşuna yeniden başlattım.

Bundan sonra ne yapacağım hakkında hiçbir fikrim yok. Lütfen bir tür ruh bana bu sorunu nasıl çözebileceğim konusunda tavsiyede bulunabilir mi?

Yanıtlar:


10

TL; DR

Bu sorun, bir uygulama hata iletisiyle var olan bir izni yeniden bildirmeye çalıştığında oluşur INSTALL_FAILED_DUPLICATE_PERMISSION. Esas olarak Adobe AIR (paket öneki ile com.air) tabanlı uygulamaları etkiledi . Ana nedeni , bir sertifikanın imzası bir uygulamayı imzalamak için kullanılan kullanıldığını doğrulamak zaman Lollipop 5.0 farklı kod uygulamasıdır. Çözüm için "Çözüm" bölümüne atlamanız yeterlidir.

Güncelleme : Google, Lollipop 5.0.1'de bu sorunu çözdü.


Teknik detaylar

AOSP sorun izleyicisindeki bir girişten bağlanan Android L Geliştirici Önizleme sorun izleyicisinden alıntılar ,

Gönderi # 4 :

logcat bana kurulum sırasında yeniden bildirme izinleriyle bir çakışma olduğunu söylüyor (benim durumumda, Amazon getui.permission.GetuiService, zaten Camera 360'a ait)

Mesaj # 12'nin LogCat'i :

10-25 08:06:37.805   749   824 W PackageManager: Package com.tencent.mm attempting to redeclare permission com.google.android.c2dm.permission.SEND already owned by com.google.android.gsf
10-25 08:06:37.926  4812  4812 D Finsky  : [1] PackageInstallerImpl.cancelSession: Canceling session 121130466 for com.tencent.mm
10-25 08:06:37.926  4812  4812 E Finsky  : [1] PackageInstallerImpl.handleCommitCallback: Error -505 while installing com.tencent.mm: INSTALL_FAILED_DUPLICATE_PERMISSION: Package com.tencent.mm attempting to redeclare permission com.google.android.c2dm.permission.SEND already owned by com.google.android.gsf
10-25 08:06:37.926  4812  4812 W Finsky  : [1] 4.installFailed: Install failure of com.tencent.mm: -505 null
10-25 08:06:37.933   749   749 D ZenLog  : intercepted: 0|com.android.vending|-973170826|null|10017,!priority
10-25 08:06:37.933   749   749 V NotificationService: pkg=com.android.vending canInterrupt=false intercept=true
10-25 08:06:37.964  4812  4812 D Finsky  : [1] InstallerTask.cancelCleanup: Cancel running installation of com.tencent.mm

AOSP sayı izleyicisinden alıntılar ,

Gönderi # 4

API19'da yeni X509CertImpl (encCert) sertifikayı (zaten ayrıştırılmış ve SHA1 hesaplaması için hazır) sararken, API 21'de sertifika bayt akışı olarak iletilir, tekrar ayrıştırılır ve bir sertifika fabrikası tarafından işlenir. Hangi fabrika, bağlama bağlıdır. Test ettiğim L cihazları için fabrika bir OpenSSLX509Sertifika oluşturur. Ne yazık ki, sertifikamızda openssl ile ilgili bir sorun var ve openssl işleme sırasında parmak izi değişiyor. Sertifikamızı başka bir formata (örneğin, PEM) dönüştürdüğümde bunu openssl aracıyla da çoğaltabilirim.

SHA1 doğrudan 'encCert.getEncoded ()' üzerinde hesaplanacaksa, her iki durumda da doğru olur.


Çözüm

Güncelleme : 2014-12-04 itibariyle Google, Lollipop 5.0.1'de bu sorunu çözdü. Uygulamayı yeniden yüklemeye çalışan herhangi bir geçici çözüm yapmayanlar için, OTA için hazır olduğunda / beklerken Lollipop 5.0.1 görüntüsünü flaş edebilirsiniz.

Mesaj # 20, # 21

Bunun 5.0.1'de giderildiği anlaşılıyor:

https://android.googlesource.com/platform/libcore/+/6632d8c9d8d1a3ac338d541676148677641bafe3

https://android.googlesource.com/platform/frameworks/base/+/32a22c44b8351c1cccd3a1f9c47a33469d9378e0

Durum: Yayınlandı

Taşıtın notu

Yanlış biçimlendirilmiş sertifikalara sahip uygulamaları kurtarın.

Lollipop'ta, bir kod çözme / kodlama döngüsünden geçtikten sonra sertifikaları devam ettirdiğimiz bir zaman penceresi vardı. İyi yazılmış OpenSSL kütüphanesi, kod çözme sırasında (biraz hatalı biçimlendirilmiş sertifikaların ayrıştırılmasına izin verirken) liberaldi, ancak kodlama sırasında katıydı ve etkili bir şekilde aynı sertifika için bize farklı baytlar verdi.

İlişkili bir libcore değişikliği (0c990ab4a90b8a5492a67b2b728ac9a4a1ccfa1b) artık orijinal bayt kelimesini döndürerek, bu değişiklikten sonra hem Lollipop öncesi kurulumları hem de kurulumları düzeltiyor.

Bu değişiklik, sunucuların etkin bir şekilde eşit olup olmadığını görmek için tek seferlik bir kontrol yaparak yukarıda açıklanan zaman aralığı boyunca yüklenmiş olan uygulamaları kurtarır.


Önerilen diğer çözümler için lütfen eski düzeltmeye bakın .


David ile aynı şeyim var: cihazdan kaldırılacak hiçbir şey yok, ADB cihazımı görmüyor, tekrar yüklemeye çalışmak Google Play'den -505 ve yerel APK'dan yüklendiğinde açıklayıcı hataya neden oluyor. Misafir'e geçmek de yardımcı olmaz.
Roman

2
Bu problemle de karşılaştığımı fark ettim. Sorunlu uygulamaları başarıyla kaldırdım adb, ancak yeniden yükleyemedim. Yüklemek istediğim uygulamanın air.compaket adı olarak öneki olduğunu unutmayın . Görünüşe göre bu daha çok Google, Adobe Air ve uygulama geliştiricileri arasında bir sorun. En az biri düzeltene kadar, uygulamanın yüklenmesi mümkün olmayacaktır. Google'dan güncelleme almak için bu konuya yıldız ekledim.
Andrew T.

3
Aynı hatayı 5.1.1'de alıyorum (en son gece siyanojenmod 12.1 galaksi s3). Bir şekilde eski kodları var mıydı, yoksa bu daha yeni bir hata mı?
ike

1
Bu sorunu Android 6.0 Marshmallow'da yaşıyorum. Bunun bir çözümü var mıydı, yoksa sadece OTA mı bekliyorsunuz?
Ben

2
@Ben, bu yayında 5.0.1 ile düzeltilen INSTALL_FAILED_DUPLICATE_PERMISSION ile ilgili sorunlardan bahsediliyor. Bu hatayı INSTALL_FAILED_CONFLICTING_PROVIDER nedeniyle Marshmellow ile aldım. Hem hata ayıklama hem de sürüm derlemelerimde bildirilen ve Google Play Store'dan sürüm derlemesinin yüklenmesini önleyen Facebook SDK Paylaşım iletişim kutusunun sağlayıcısını kullanıyorum. Tam mesajın adb logcat'inizde gezintiğini görebilirsiniz. Benim durumumda, sağlayıcı adımda manifestPlaceholders kullanarak hata ayıklama derlemimin <provider> adını değiştirmeyi seçtim.
Mike Lambert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.