不明なインストールエラーコード-505に対処するにはどうすればよいですか?


9

Nexus 7を持っていますが、Android 5にアップデートされました。

システムのアップグレード後、子供がプレイするゲームの2つのアプリで問題が発生します。Dumb Ways to DieとVVVVVV。アップグレード後はどちらにもアイコンがありましたが、クリックすると「アプリがインストールされていません」というポップアップが表示されました。それらをインストールしようとします。ダウンロードは問題ありません。インストールが始まります。そしてエラーメッセージ:

アプリケーションのインストール中の不明なエラーコード:「-505」

両方のアプリでまったく同じエラー。無駄にデバイスを再起動しました。

私は次に何をすべきかわからない。この問題を解決する方法について、親切な人からアドバイスをいただけますか。

回答:


10

TL; DR

この問題は、アプリが既存の権限をエラーメッセージとともに再宣言しようとすると発生しますINSTALL_FAILED_DUPLICATE_PERMISSION。これは主に、Adobe AIR(パッケージの接頭辞がcom.air)に基づくアプリに影響しました。主な原因は、アプリケーションに署名するために使用される証明書の署名を検証するときロリポップ5.0で異なるコード実装です。ソリューションについては、「ソリューション」の部分にスキップしてください。

更新:GoogleはLollipop 5.0.1でこの問題を修正しました。


技術的な詳細

以下からの抜粋のAndroid Lの開発者プレビューの問題追跡からリンクされているAOSPの問題追跡上のエントリ

投稿#4

logcatは、インストール中に権限の再宣言との競合があることを私に知らせます(私の場合、Amazonは、すでにCamera 360が所有しているgetui.permission.GetuiServiceを再宣言しようとしています)

投稿#12のLogCat

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 Issue Trackerからの抜粋、

投稿#4

API19では、新しいX509CertImpl(encCert)が証明書をラップします(これは既に解析され、SHA1計算の準備ができています)、API 21では、証明書はバイトストリームとして転送され、再度解析され、証明書ファクトリによって処理されます。どのファクトリかは、コンテキストに依存します。私がテストしたLデバイスの場合、ファクトリはOpenSSLX509Certificateを作成します。残念ながら、opensslで問題が発生し、openssl処理中に指紋が変更される証明書が存在します。証明書を他の形式(PEMなど)に変換すると、opensslツールでもこれを再現できます。

SHA1が「encCert.getEncoded()」で直接計算される場合は、どちらの場合も正しいです。


解決

更新:2014-12-04現在、GoogleはLollipop 5.0.1でこの問題を修正しています。アプリを再インストールしようとして回避策を実行しなかった場合は、OTAの準備ができている/待機しているときにLollipop 5.0.1イメージをフラッシュできます。

投稿#20、#21

これは5.0.1で修正されたようです。

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

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

ステータス:リリース済み

コミッターのメモ

不正な形式の証明書でアプリを回復します。

Lollipopには、デコード/エンコードサイクルを通過した後に証明書を永続化する時間枠がありました。適切に作成されたOpenSSLライブラリは、デコード時には寛大でした(わずかに形式が正しくない証明書を解析できるようにしました)。

関連するlibcoreの変更(0c990ab4a90b8a5492a67b2b728ac9a4a1ccfa1b)は、元のバイトをそのまま返し、Lollipop以前のインストールとその変更後のインストールの両方を修正します。

この変更により、証明書が実質的に等しいかどうかを確認するための1回限りのチェックを実行することにより、上記の期間中にインストールされたすべてのアプリが回復されます。


他の推奨される解決策については、古いリビジョンを参照してください。


私はデビッドと同じです:デバイスからアンインストールするものは何もありません。ADBがデバイスを認識せず、再度インストールしようとすると、Google Playから-505が発生し、ローカルAPKからインストールすると説明のないエラーが発生します。ゲストへの切り替えも役に立ちません。
ローマンR.

2
まあ、私もこの問題に直面していることに気づきました。問題のあるアプリをadbでアンインストールできましたが、再インストールできませんでした。インストールするアプリにはair.com、パッケージ名としてプレフィックスが付いています。これは、Google、Adobe Air、およびアプリ開発者の間の問題のようです。それらの少なくとも1つが修正するまで、アプリをインストールすることはできません。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で修正されました。INSTALL_FAILED_CONFLICTING_PROVIDERが原因で、Marshmellowでこのエラーが発生しました。私は、デバッグビルドとリリースビルドの両方で宣言されているFacebook SDK共有ダイアログのプロバイダーを使用しているため、Google Playストアからのリリースビルドのインストールができません。あなたはあなたのadb logcatを通して正確なメッセージ閲覧を見ることができます。私の場合、プロバイダー名にmanifestPlaceholdersを使用して、デバッグビルドの<provider>の名前を変更することにしました。
Mike Lambert、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.