You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过ADB Shell获取应用列表后,如何校验签名并验证应用是否为原版?

检查安卓应用签名并验证原版性的方法

一、获取已安装应用的签名信息

你已经通过pm list packages拿到了所有包名,接下来针对目标包名执行以下操作:

  1. 获取应用APK路径
    执行命令:

    adb shell pm path <目标包名>
    

    示例输出:package:/data/app/com.google.android.gms-2/base.apk

  2. 提取签名指纹(两种方式)

    • 方式1:直接通过ADB Shell读取(无需拉取APK)
      执行命令提取签名哈希:

      adb shell dumpsys package <目标包名> | grep -E "Signing Fingerprints|signingKey"
      

      输出会直接显示应用的SHA1/SHA256签名指纹。

    • 方式2:拉取APK后用keytool提取(需JDK环境)
      先把APK拉到本地:

      adb pull /data/app/com.google.android.gms-2/base.apk
      

      再用JDK的keytool命令提取签名:

      keytool -printcert -jarfile base.apk
      

      输出中的SHA1或SHA256字段就是签名指纹。

二、获取官方渠道的原版签名

  • 自有应用:直接查看你上传到Google Play Console时使用的发布密钥指纹,执行命令:

    keytool -list -v -keystore <你的发布密钥库文件>
    

    注意:如果开启了Google Play App Signing,要对比的是Play Console中显示的发布密钥指纹,而非你本地的上传密钥。

  • 第三方应用:从Google Play下载原版APK,用上述同样的方法提取其签名指纹,作为对比基准。

三、判断应用是否被篡改

  • 若本地应用的签名指纹与官方渠道的指纹完全一致,说明是原版未篡改的应用;
  • 若指纹不一致,要么是安装了非官方渠道的修改版,要么是应用被恶意篡改过。

内容的提问来源于stack exchange,提问作者Kezern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:39:25