Fra*_*nez 7 security android adb
我想知道当您使用
adb shell dumpsys package com.myapp
Run Code Online (Sandbox Code Playgroud)
对于给定的已安装应用程序。
我看到两个哈希:
signatures=PackageSignatures{abcabca [xyzxyzxy]}
Run Code Online (Sandbox Code Playgroud)
第一个 (abc) 在每个安装中都不同。对于给定的 apk,第二个 (xyz) 是固定的。
另外,我想知道第二个是否与APK的公共签名有任何关系。我有几个具有相同公共签名的 apk,但第二个哈希值不同。这是正常的吗?
最新 Android 版本上的签名行如下所示:
signatures=PackageSignatures{9122424 version:2, signatures:[bbb2e2d2], past signatures:[]}
Run Code Online (Sandbox Code Playgroud)
要理解这一行,我们只需查看 AOSP 源代码:PackageSignatures.java
第一部分abcabca来自System.identityHashCode(this). 因此,它从当前PackageSignatures实例生成 Java 哈希码。由于此类只有一个字段,因此PackageParser.SigningDetails mSigningDetails;哈希码完全取决于类SigningDetails的字段:
您使用的 Android 版本似乎有点旧,因为现在第二部分是signatureSchemeVersion- 目前已知三种签名方案:V1(jarsigner)、v2 和 v3。
您感兴趣的签名是由以下代码生成的:
Integer.toHexString(mSigningDetails.signatures[i].hashCode())
Run Code Online (Sandbox Code Playgroud)
类 [ ]( https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/content/pm/Signature.javasignatures[i] )的实例在哪里
。android.content.pm.Signature
在此类中定义为由其中是一个字节数组hashCode()生成,该数组似乎包含所使用的 X.509 签名证书的编码版本。或者可以提供原料,因此很难说出具体含量。Arrays.hashCode(mSignature);mSignaturebyte[]
但根据我对您设备的理解,这部分应该直接链接到 APK 文件的签名。
| 归档时间: |
|
| 查看次数: |
915 次 |
| 最近记录: |