Bagaimana cara saya menangani kode kesalahan pemasangan yang tidak diketahui -505?

9

Saya memiliki Nexus 7 dan baru saja diperbarui ke Android 5.

Dua aplikasi memberi saya masalah setelah upgrade sistem, permainan yang dimainkan anak-anak saya. Cara Bisu untuk Mati dan VVVVVV. Kedua ikon ini memiliki setelah pembaruan tetapi ketika diklik muncul muncul mengatakan "Aplikasi tidak diinstal". Saya mencoba untuk menginstalnya. Pengunduhannya baik-baik saja. Instalasi dimulai. Dan kemudian pesan kesalahan:

Kode kesalahan tidak dikenal selama instalasi aplikasi: "-505"

Kesalahan yang sama persis untuk kedua aplikasi. Saya telah me-restart perangkat tidak berhasil.

Saya tidak tahu apa yang harus saya lakukan selanjutnya. Tolong bisakah seseorang yang baik hati memberi saya nasihat tentang bagaimana saya dapat memperbaiki masalah ini.

David Heffernan
sumber

Jawaban:

10

TL; DR

Masalah ini terjadi ketika aplikasi mencoba untuk mendeklarasikan ulang izin yang ada, dengan pesan kesalahan INSTALL_FAILED_DUPLICATE_PERMISSION. Ini terutama mempengaruhi aplikasi yang didasarkan pada Adobe AIR (awalan paket dengan com.air). Penyebab utama adalah implementasi kode yang berbeda di Lollipop 5.0 ketika memverifikasi tanda tangan sertifikat yang digunakan untuk menandatangani aplikasi. Untuk solusinya, langsung saja ke bagian "Solusi".

Pembaruan : Google telah memperbaiki masalah ini di Lollipop 5.0.1.


Detail Teknis

Kutipan dari pelacak masalah Pratinjau Pengembang Android L yang ditautkan dari entri pada pelacak masalah AOSP ,

Posting # 4 :

logcat memberi tahu saya ada konflik dengan izin redeclaring selama instalasi (dalam kasus saya, Amazon sedang mencoba untuk redecare getui.permission.GetuiService, yang sudah dimiliki oleh Camera 360)

LogCat Posting # 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

Kutipan dari pelacak masalah AOSP ,

Posting # 4

Di API19, X509CertImpl (encCert) baru membungkus sertifikat (yang sudah diuraikan dan siap untuk perhitungan SHA1), sementara di API 21, sertifikat diteruskan sebagai aliran byte, diurai lagi dan diproses oleh pabrik sertifikat. Pabrik yang mana, tergantung pada konteksnya. Dalam hal perangkat L yang saya uji, pabrik akan membuat Sertifikat OpenSSLX509. Sayangnya, ada sesuatu dalam sertifikat kami yang openssl bermasalah dengan dan sidik jari berubah selama pemrosesan openssl. Saya dapat mereproduksi ini juga dengan alat openssl, ketika saya mengubah sertifikat kami ke beberapa format lain (misalnya, PEM).

Jika SHA1 akan dihitung langsung di 'encCert.getEncoded ()' itu akan benar dalam kedua kasus.


Larutan

Pembaruan : Mulai 2014-12-04, Google telah memperbaiki masalah ini di Lollipop 5.0.1. Bagi mereka yang tidak melakukan solusi untuk menginstal ulang aplikasi, Anda dapat mem-flash gambar Lollipop 5.0.1 saat siap / menunggu OTA.

Posting # 20, # 21

Sepertinya ini telah diperbaiki di 5.0.1:

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

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

Status: Dirilis

Catatan Committer

Pulihkan aplikasi dengan sertifikat salah bentuk.

Ada jangka waktu di Lollipop di mana kami bertahan sertifikat setelah mereka melewati siklus decode / encode. Pustaka OpenSSL yang ditulis dengan baik adalah liberal ketika decoding (memungkinkan sertifikat sedikit cacat untuk diurai), tetapi kemudian ketat ketika encoding, memberi kami byte yang berbeda untuk secara efektif sertifikat yang sama.

Perubahan libcore terkait (0c990ab4a90b8a5492a67b2b728ac9a4a1ccfa1b) sekarang mengembalikan byte asli kata demi kata, memperbaiki kedua pra-Lollipop menginstal dan menginstal setelah perubahan itu.

Perubahan ini memulihkan semua aplikasi yang telah diinstal selama jangka waktu yang dijelaskan di atas dengan melakukan pemeriksaan satu kali untuk melihat apakah sertifikat secara efektif sama.


Silakan lihat revisi yang lebih lama untuk solusi yang disarankan lainnya.

Andrew T.
sumber
Saya memiliki yang sama dengan David: tidak ada yang dihapus dari perangkat, ADB tidak melihat perangkat saya, upaya untuk menginstal lagi menghasilkan -505 dari Google Play dan kesalahan yang tidak deskriptif ketika diinstal dari APK lokal. Beralih ke Tamu juga tidak membantu.
Roman R.
2
Yah, saya baru sadar saya menghadapi masalah ini juga. Saya berhasil mencopot pemasangan aplikasi yang bermasalah adb, tetapi saya tidak dapat menginstalnya kembali. Perhatikan bahwa aplikasi yang ingin saya instal memiliki air.comawalan sebagai nama paket. Sepertinya ini lebih merupakan masalah antara Google, Adobe Air, dan pengembang aplikasi. Sampai setidaknya salah satu dari mereka memperbaikinya, aplikasi tidak akan mungkin diinstal. Saya membintangi masalah ini untuk mendapatkan pembaruan dari Google.
Andrew T.
3
Saya mengalami kesalahan yang sama pada 5.1.1 (cyanogenmod 12.1 galaxy s3 nightly terbaru). Apakah mereka entah bagaimana memiliki kode lama, atau ini bug yang lebih baru?
Seperti
1
Saya mengalami masalah ini di Android 6.0 Marshmallow. Apakah ada solusi untuk ini, atau hanya menunggu OTA?
Ben
2
@Ben, posting ini menyebutkan masalah dengan INSTALL_FAILED_DUPLICATE_PERMISSION, yang diperbaiki dengan 5.0.1. Saya mendapatkan kesalahan ini dengan Marshmellow, karena INSTALL_FAILED_CONFLICTING_PROVIDER. Saya menggunakan penyedia dialog Facebook SDK Share, yang dideklarasikan di debug dan rilis build saya, mencegah instalasi build rilis dari Google Play Store. Anda dapat melihat pesan yang tepat meramban melalui adb logcat Anda. Dalam kasus saya, saya memilih untuk mengganti nama <provider> build debug saya melalui penggunaan manifestPlaceholder dalam nama penyedia saya.
Mike Lambert