ฉันจะจัดการกับรหัสข้อผิดพลาดการติดตั้งที่ไม่รู้จัก -505 ได้อย่างไร


9

ฉันมี Nexus 7 และเพิ่งได้รับการอัพเดตเป็น Android 5

สองแอพให้ปัญหากับฉันหลังจากการอัพเกรดระบบเกมที่ลูก ๆ ของฉันเล่น Dumb Ways to Die และ VVVVVV ทั้งคู่มีไอคอนหลังจากการอัพเกรด แต่เมื่อคลิกที่ป๊อปอัพปรากฏว่า "ไม่ได้ติดตั้งแอป" ฉันพยายามติดตั้ง การดาวน์โหลดไม่เป็นไร การติดตั้งจะเริ่มขึ้น แล้วข้อความแสดงข้อผิดพลาด:

รหัสข้อผิดพลาดที่ไม่รู้จักในระหว่างการติดตั้งแอปพลิเคชัน: "-505"

ข้อผิดพลาดเดียวกันที่แน่นอนสำหรับทั้งสองแอพ ฉันรีสตาร์ทอุปกรณ์เพื่อประโยชน์

ฉันไม่รู้ว่าจะทำอย่างไรต่อไป โปรดจิตวิญญาณที่ใจดีได้โปรดให้คำแนะนำกับฉันว่าฉันจะแก้ไขปัญหานี้ได้อย่างไร

คำตอบ:


10

TL; DR

ปัญหานี้เกิดขึ้นเมื่อแอปพยายามที่จะ INSTALL_FAILED_DUPLICATE_PERMISSIONre-ประกาศสิทธิ์ที่มีอยู่ด้วยข้อผิดพลาด ส่วนใหญ่ได้รับผลกระทบแอพที่ใช้ Adobe AIR (ส่วนนำหน้าของแพ็คเกจด้วยcom.air) สาเหตุหลักคือการดำเนินงานที่แตกต่างกันในรหัสอมยิ้ม 5.0 เมื่อตรวจสอบลายเซ็นของใบรับรองที่ใช้ในการลงชื่อเข้าใช้แอป สำหรับวิธีการแก้ปัญหาเพียงแค่ข้ามส่วน "โซลูชัน"

อัปเดต : Google ได้แก้ไขปัญหานี้ใน Lollipop 5.0.1


รายละเอียดทางเทคนิค

ข้อความที่ตัดตอนมาจากAndroid Developer L ปัญหาดูตัวอย่างติดตามซึ่งจะเชื่อมโยงจากรายการใน AOSP ติดตามปัญหา ,

โพสต์ # 4 :

logcat บอกฉันว่ามีข้อขัดแย้งกับสิทธิ์การเผยแพร่ซ้ำระหว่างการติดตั้ง (ในกรณีของฉัน Amazon กำลังพยายามเรียกใช้ getui.permission.GetuiService อีกครั้งซึ่งเป็นเจ้าของโดย Camera 360)

LogCat ของโพสต์ # 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

ข้อความที่ตัดตอนมาจากAOSP ติดตามปัญหา ,

โพสต์ # 4

ใน API19 X509CertImpl ใหม่ (encCert) จะห่อใบรับรอง (ซึ่งถูกวิเคราะห์แล้วและพร้อมสำหรับการคำนวณ SHA1) ในขณะที่ใน API 21 ใบรับรองจะถูกส่งต่อเป็นสตรีมไบต์แยกวิเคราะห์อีกครั้งและประมวลผลโดยโรงงานใบรับรอง โรงงานใดที่ขึ้นอยู่กับบริบท ในกรณีของอุปกรณ์ L ที่ฉันทดสอบโรงงานจะสร้างใบรับรอง OpenSSLX509 น่าเสียดายที่มีบางสิ่งในใบรับรองของเราที่ openssl มีปัญหาและการเปลี่ยนลายนิ้วมือในระหว่างการประมวลผล openssl ฉันสามารถทำซ้ำสิ่งนี้ด้วยเครื่องมือ openssl เมื่อฉันแปลงใบรับรองของเราเป็นรูปแบบอื่น (เช่น PEM)

หาก SHA1 จะถูกคำนวณโดยตรงใน 'encCert.getEncoded ()' มันจะถูกต้องในทั้งสองกรณี


สารละลาย

อัปเดต : ตั้งแต่วันที่ 2014-12-04 Google ได้แก้ไขปัญหานี้ใน Lollipop 5.0.1 สำหรับผู้ที่ไม่มีวิธีแก้ปัญหาใด ๆ ที่พยายามติดตั้งแอพใหม่คุณสามารถแฟลช Lollipop 5.0.1 อิมเมจเมื่อพร้อม / รอ OTA

โพสต์ # 20, # 21

ดูเหมือนว่านี่จะได้รับการแก้ไขใน 5.0.1:

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

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

สถานะ: เปิดตัว

ผู้ส่งข้อความ

กู้คืนแอปด้วยใบรับรองที่มีรูปแบบไม่ถูกต้อง

มีหน้าต่างเวลาใน Lollipop ที่เรายืนยันใบรับรองหลังจากผ่านวงจรถอดรหัส / เข้ารหัส ไลบรารี OpenSSL ที่เขียนอย่างดีนั้นมีความอิสระเมื่อถอดรหัส (อนุญาตให้แยก certs ที่มีรูปแบบผิดปกติเล็กน้อย) แต่ก็เข้มงวดในการเข้ารหัสทำให้เรามีไบต์ที่แตกต่างกันสำหรับใบรับรองเดียวกัน

การเปลี่ยนแปลง libcore ที่เกี่ยวข้อง (0c990ab4a90b8a5492a67b2b728ac9a4a1ccfa1b) จะส่งคืนไบต์คำต่อคำดั้งเดิมโดยแก้ไขการติดตั้งก่อนอมยิ้มและติดตั้งหลังจากการเปลี่ยนแปลงนั้น

การเปลี่ยนแปลงนี้จะกู้คืนแอปใด ๆ ที่ติดตั้งในช่วงเวลาที่อธิบายไว้ข้างต้นโดยทำการตรวจสอบเพียงครั้งเดียวเพื่อดูว่า certs นั้นมีประสิทธิภาพเท่าเทียมกันหรือไม่


โปรดอ้างอิงการแก้ไขที่เก่ากว่าสำหรับวิธีแก้ปัญหาที่แนะนำอื่น ๆ


ฉันเหมือนกับ David: ไม่มีสิ่งใดที่จะถอนการติดตั้งจากอุปกรณ์ ADB ไม่เห็นอุปกรณ์ของฉันพยายามที่จะติดตั้งอีกครั้งส่งผลให้ -505 จาก Google Play และข้อผิดพลาดที่ไม่สามารถอธิบายได้เมื่อติดตั้งจาก APK ในเครื่อง การเปลี่ยนเป็นบุคคลทั่วไปไม่มีประโยชน์เช่นกัน
โรมันอาร์

2
ฉันเพิ่งรู้ว่าฉันประสบปัญหานี้เช่นกัน ฉันได้ถอนการติดตั้งแอปที่มีปัญหาเรียบร้อยadbแล้ว แต่ไม่สามารถติดตั้งใหม่ได้ โปรดทราบว่าแอพที่ฉันต้องการติดตั้งมีair.comคำนำหน้าเป็นชื่อแพ็คเกจ ดูเหมือนว่านี่เป็นปัญหาระหว่าง Google, Adobe Air และนักพัฒนาแอป จนกว่าจะมีอย่างน้อยหนึ่งตัวแก้ไขแอปจะไม่สามารถติดตั้งได้ ฉันติดดาวปัญหาเพื่อรับการอัปเดตจาก Google
Andrew T.

3
ฉันมีข้อผิดพลาดเดียวกันกับ 5.1.1 (cyanogenmod 12.1 galaxy s3 ล่าสุดทุกคืน) พวกเขามีรหัสเก่าหรือนี่เป็นข้อผิดพลาดล่าสุดหรือไม่
ike

1
ฉันมีปัญหานี้ใน Android 6.0 Marshmallow มีวิธีแก้ปัญหานี้หรือไม่ก็รอ OTA
เบ็น

2
@Ben โพสต์นี้กล่าวถึงปัญหากับ INSTALL_FAILED_DUPLICATE_PERMISSION ซึ่งได้รับการแก้ไขด้วย 5.0.1 ฉันพบข้อผิดพลาดกับ Marshmellow เนื่องจาก INSTALL_FAILED_CONFLICTING_PROVIDER ฉันใช้ผู้ให้บริการกล่องโต้ตอบแบ่งปัน Facebook SDK ซึ่งได้รับการประกาศทั้งในการดีบั๊กและการสร้างการวางจำหน่ายป้องกันการติดตั้งบิลด์การเผยแพร่จาก Google Play Store คุณสามารถดูข้อความที่แน่นอนเรียกดูผ่าน logcat adb ของคุณ ในกรณีของฉันฉันเลือกที่จะเปลี่ยนชื่อ <provider> โครงสร้างการดีบักผ่านการใช้ manifestPlaceholders ในชื่อผู้ให้บริการของฉัน
Mike Lambert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.