2016-08-20 18 views
0

まず携帯電話にアプリを持っていて、このアプリがプレイストアのアップデートを持っていると、グーグルはパッケージ全体ではなくコードの一部のみを返しますパッケージ全体のサイズである8mgの代わりにmg)。私は調査し、アンドロイド側で、Google Playがローカルアプリを抽出し、プレイストアからダウンロードしたアップデートファイルをマージして新しいAPKを生成し、その後アップデートとともに新しいAPKをインストールすることを調べました。プレイストアには新しいapkに署名するためのapkキーストアはありませんが、apkは正常にインストールされます。 今、自分のサーバーから更新されたapkをダウンロードするアプリケーションがあります。サーバーは2つのapk間の変更を検出し、行われた変更のみを返します。今、アンドロイド側で私はローカルapkを抽出し、更新プログラムとマージし、新しいAPK(プレイストアのような)を生成するために、私の実行中のアプリケーションにしたい。また、それは新しいAPKに署名する必要がありますが、それは私のキーストアをユーザー側のファイルに入れてはいけません。 私は最近、Windowsでapkファイルを解凍し、別のapkからいくつかのファイルを追加しました。両方のAPKが署名されています。その新しいapkを私の電話に入れました。アンドロイドはアプリをインストールできず、「アプリはインストールできません」と表示します。 どうすればいいですか?apkを抽出してアップデートにマージし、新しいapkをインストール

答えて

0

アプリはAPKを変更できません。 apkファイルはユーザsystemのためにのみ書き込み可能です。したがって、ルートになっていないデバイスの通常のアプリケーションでは、自分自身または他のapkを更新または変更することはできません。

唯一の方法は、sdcardのapkに保存し、アプリのサイドロードをトリガーしてユーザーがインストールを選択できるようにすることです。しかし、 "不明なソースからアプリケーションをインストールする"(デフォルトでは無効になっている)のためにデバイスをアクティブにする必要があるAFAIR。

署名:APK署名は、含まれるすべてのファイルのハッシュとAPKとそのテキストファイルの署名を含むテキストファイルで構成されます。

したがって、2つのAPKがある場合:1つの古いAPKと1つの新しいAPKの両方が正しく署名されており、古いものと新しいものの間の変更(ハッシュとその署名付きのテキストファイルを含む)を抽出し、古いAPKに変更すると、「更新された古いAPK」はビットごとには同じではなく、同じ内容になります。したがって、署名は再び有効になります。

関連する問題