如何在Android设备上查看谁签名apk的人的身份?

Ale*_*nko 36 android certificate signature apk

我需要查看谁已将我安装的应用程序签名到我的设备上.这通常可以在设备上还是在PC上进行?

Chr*_*ton 56

(假设您可以获得对原始apk文件的访问权限 - 如果您知道或对其名称和位置进行有根据的猜测,您通常可以访问它,即使您无法在非根电话上列出/ data的内容)

您可以将apk作为zip文件打开,并从META-INF/CERT.RSA的二进制内容中过滤ascii文本.

或者使用实际工具,

jarsigner -verify -certs -verbose some_application.apk
Run Code Online (Sandbox Code Playgroud)

当然,验证签名者是否是他们声称的人的唯一方法是通过直接或经过验证的方式从该方获得使用相同密钥签名的其他内容,并比较签名密钥指纹 - 这就是Android本身验证应用升级的方式和应用ID共享来自与他们定位的现有APK相同的一方.

  • 如果jarsigner是用java实现的,我不会感到惊讶,所以你可以把它移植到android.但是,通过过滤掉unprintables来提取ascii文本的第一个建议可能更简单.但如果这是你的申请,那有什么意义呢?如果用户信任您的代码以提取签名者信息,那么他们可能也会信任您的屏幕.另请注意,提取签名者信息并不能证明该实体真的已签名,您必须证明所使用的证书确实是他们的. (2认同)

小智 6

apk获取证书详细信息,您可以使用以下命令

openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text