Wie gehe ich mit dem unbekannten Installationsfehlercode -505 um?


9

Ich habe ein Nexus 7 und es wurde gerade auf Android 5 aktualisiert.

Zwei Apps bereiten mir nach dem System-Upgrade Probleme, Spiele, die meine Kinder spielen. Dumme Wege zu sterben und VVVVVV. Beide hatten nach dem Upgrade Symbole, aber beim Klicken erschien ein Popup mit der Aufschrift "App nicht installiert". Ich versuche sie zu installieren. Der Download ist in Ordnung. Die Installation beginnt. Und dann eine Fehlermeldung:

Unbekannter Fehlercode während der Anwendungsinstallation: "-505"

Der exakt gleiche Fehler für beide Apps. Ich habe das Gerät ohne Erfolg neu gestartet.

Ich habe keine Ahnung, was ich als nächstes tun soll. Könnte mir bitte eine freundliche Seele einen Rat geben, wie ich dieses Problem beheben könnte?

Antworten:


10

TL; DR

Dieses Problem tritt auf, wenn eine App versucht, eine vorhandene Berechtigung mit einer Fehlermeldung erneut zu deklarieren INSTALL_FAILED_DUPLICATE_PERMISSION. Betroffen waren hauptsächlich Apps, die auf Adobe AIR (Paketpräfix mit com.air) basieren . Die Hauptursache ist die unterschiedliche Code-Implementierung in Lollipop 5.0 beim Überprüfen der Signatur eines Zertifikats, die zum Signieren einer App verwendet wird. Fahren Sie für die Lösung einfach mit dem Teil "Lösung" fort.

Update : Google hat dieses Problem in Lollipop 5.0.1 behoben.


Technische Details

Auszüge aus dem Issue Tracker der Android L Developer Preview, die mit einem Eintrag im AOSP Issue Tracker verknüpft sind.

Beitrag Nr. 4 :

logcat teilt mir mit, dass während der Installation ein Konflikt mit dem erneuten Deklarieren von Berechtigungen vorliegt (in meinem Fall versucht Amazon, getui.permission.GetuiService, das bereits im Besitz von Camera 360 ist, neu zu deklarieren).

LogCat von Beitrag Nr. 12 :

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

Auszüge aus dem AOSP Issue Tracker ,

Beitrag # 4

In API19 umschließt das neue X509CertImpl (encCert) das Zertifikat (das bereits analysiert wurde und für die SHA1-Berechnung bereit ist), während in API 21 das Zertifikat als Bytestream weitergeleitet, erneut analysiert und von einer Zertifikatfactory verarbeitet wird. Welche Fabrik das ist, hängt vom Kontext ab. Bei den L-Geräten, auf denen ich getestet habe, erstellt die Fabrik ein OpenSSLX509-Zertifikat. Leider enthält unser Zertifikat etwas, mit dem openssl Probleme hat, und der Fingerabdruck ändert sich während der openssl-Verarbeitung. Ich kann dies auch mit dem openssl-Tool reproduzieren, wenn ich unser Zertifikat in ein anderes Format (z. B. PEM) konvertiere.

Wenn der SHA1 direkt auf 'encCert.getEncoded ()' berechnet würde, wäre dies in beiden Fällen korrekt.


Lösung

Update : Ab dem 04.12.2014 hat Google dieses Problem in Lollipop 5.0.1 behoben. Für diejenigen, die keine Problemumgehung durchgeführt haben, um die App neu zu installieren, können Sie das Lollipop 5.0.1-Image flashen, wenn es bereit ist / auf den OTA warten.

Beitrag Nr. 20, Nr. 21

Sieht so aus, als ob dies in 5.0.1 behoben wurde:

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

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

Status: Freigegeben

Anmerkung des Committers

Stellen Sie Apps mit fehlerhaften Zertifikaten wieder her.

In Lollipop gab es ein Zeitfenster, in dem wir Zertifikate beibehalten haben, nachdem sie einen Dekodierungs- / Kodierungszyklus durchlaufen hatten. Die gut geschriebene OpenSSL-Bibliothek war beim Decodieren liberal (so dass leicht fehlerhafte Zertifikate analysiert werden konnten), beim Codieren jedoch streng, sodass wir unterschiedliche Bytes für effektiv dasselbe Zertifikat erhielten.

Eine verwandte libcore-Änderung (0c990ab4a90b8a5492a67b2b728ac9a4a1ccfa1b) gibt jetzt die ursprünglichen Bytes wörtlich zurück und behebt sowohl Installationen als auch Installationen vor Lollipop nach dieser Änderung.

Durch diese Änderung werden alle Apps wiederhergestellt, die während des oben beschriebenen Zeitfensters installiert wurden, indem einmalig überprüft wird, ob die Zertifikate tatsächlich gleich sind.


Weitere Lösungsvorschläge finden Sie in der älteren Version .


Ich habe das gleiche wie David: nichts, was vom Gerät deinstalliert werden könnte, ADB sieht mein Gerät nicht, Versuche einer erneuten Installation führen zu -505 von Google Play und einem unbeschreiblichen Fehler bei der Installation von lokalem APK. Der Wechsel zu Gast ist ebenfalls nicht hilfreich.
Roman R.

2
Nun, ich habe gerade gemerkt, dass ich auch mit diesem Problem konfrontiert bin. Ich habe die problematischen Apps mit erfolgreich deinstalliert adb, konnte sie jedoch nicht neu installieren. Beachten Sie, dass die App, die ich installieren möchte, das air.comPräfix als Paketname hat. Es scheint, dass dies eher ein Problem zwischen Google, Adobe Air und den App-Entwicklern ist. Bis mindestens einer von ihnen das Problem behoben hat, kann die App nicht installiert werden. Ich habe das Problem markiert, um ein Update von Google zu erhalten.
Andrew T.

3
Ich habe den gleichen Fehler auf 5.1.1 (Cyanogenmod 12.1 Galaxy S3 letzte Nacht). Hatten sie irgendwie alten Code oder ist dies ein neuerer Fehler?
wie

1
Ich habe dieses Problem auf Android 6.0 Marshmallow. Gab es eine Lösung dafür oder warten Sie einfach auf eine OTA?
Ben

2
@Ben, in diesem Beitrag werden die Probleme mit INSTALL_FAILED_DUPLICATE_PERMISSION erwähnt, die mit 5.0.1 behoben wurden. Ich habe diesen Fehler bei Marshmellow aufgrund von INSTALL_FAILED_CONFLICTING_PROVIDER erhalten. Ich verwende den Anbieter des Facebook SDK Share-Dialogfelds, der sowohl in meinen Debug- als auch in meinen Release-Builds deklariert wurde, um die Installation des Release-Builds aus dem Google Play Store zu verhindern. Sie können die genaue Nachricht sehen, die durch Ihren adb logcat durchsucht wird. In meinem Fall habe ich mich entschieden, den <Provider> meines Debug-Builds mithilfe von manifestPlaceholders in meinem Providernamen umzubenennen.
Mike Lambert
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.