同じアプリの場合、私は持っています:
- アプリストアからのAPK、
- 同じバージョンのソースコードであると主張されているもの。かなり通常のGradleビルドスクリプトと構造を使用します。
APKがそのソースコードから本当にビルドされたかどうかを確認したいと思います。
それを確認するには?
ノート:
- APKは難読化されていません。
- 私は誰かの署名を信頼する理由はありません。私はソースコードのみを信頼しています。
- 私はすでに自分用にアプリを作成しましたが、APKが正常であったかどうかを知りたいです。
- Linuxコマンドラインツールが望ましいですが、どのツールでも問題ありません。
@Izzy:「同じライブラリバージョン」:APIバージョンはGradleスクリプトのマニフェストとライブラリバージョンに記述されているため、その部分は問題ないはずです。無視できるファイル/フォルダーのリストは、すばらしい答えになります(実際のコマンドラインのボーナス)。
—
Nicolas Raoul
現在は外出中の自宅のコンピューターを使用している場合は、そうすることができます。しかし、それが「名誉ある答え」になるためには、まず自分で試してみる必要があります:)忘れてしまった場合(他の誰も私の前にそれをしなかった場合)は、遠慮なく別のping(チャットなど)を送ってください。 8..10h :)
—
イジー
@Izzy
—
グリモア
diff
メソッドはすっきりしているように見えますが、アプリストアの担当者がAPKをコンパイル中に難読化した場合はどうなりますか?
.apk
です。両方のファイルをリバースエンジニアリングしてから、結果のディレクトリに対してdiffを実行します。その場合、違いのみが署名になります(明白な理由で一致することはできません)。考えてみてください。単に.apk
ファイルを解凍し、バイナリdiffを実行するだけで同じことができます。もちろん両方とも、最初にコンパイルするときに同じライブラリバージョンなどを使用する必要があります:)