Android-GetAPKInfo

Introduction: 获取 Android 应用基本信息的工具集
More: Author   ReportBugs   
Tags:

项目简介

作为基于 Android 平台的渠道 SDK 的开发者或者联调同学每天都会面对大量的 apk,需要检查他们的包名(packageName)、版本(versionName\versionCode)、应用签名(Signature)等信息,尤其现在 Android 的 V2 签名认证(APK Signature Scheme v2)带来的问题更多,为了提高工作效率,整理了一个获取应用基本信息的系列工具集。

目前主干已经修改为使用 Android Studio 来构建,如果需要使用 Eclipse 来构建,请查看项目分支:

Eclipse:https://github.com/bihe0832/Android-GetAPKInfo/tree/eclipse

目录结构

├── AndroidGetSignature.apk : 一款基于 Android Studio 开发的通过包名获取 apk 签名的应用
│
├── AndroidGetSignature : AndroidGetSignature.apk 对应源码
│
├── CheckAndroidV2Signature.jar :一款基于 Java 环境的校验 APK 是否使用 Android-V2 签名,如果使用 V2,V2 校验是否通过的工具
│
├── CheckAndroidV2SignatureByAPKSig :CheckAndroidV2SignatureByAPKSig.jar 的源码
│
├── CheckAndroidV2SignatureByAPKSig.jar :基于官方签名相关的工具 apksigner 的源码改造的安卓签名校验工具
│
├── CheckAndroidV2Signature :CheckAndroidV2Signature.jar 的源码
│
├── getPackageInfo.jar :一款基于 Java 环境的读取 apk 的包名、版本号、签名、是否使用 V2 签名,V2 签名校验是否通过的工具
│
├── getMorePackageInfo.jar :getPackageInfo.jar 的升级版,增加了权限、SDK 版本的获取
│
├── GetApkInfo : getPackageInfo.jar 的源码
│
├── apksig : Android SDK Build Tools 中关于签名相关的工具 apksigner 的源码(提供了 V2 签名以及校验的方法)
│
└── README.md

备注:除了根目录,每个子项目下面都有对应功能介绍相关的 ReadMe 文件,如果想了解具体项目的详细信息,可以进入子项目查看

使用方法

这里仅列出主要操作的使用方法,详细内容请查看对应目录的 README 文件。

AndroidGetSignature.apk

安装 AndroidGetSignature.apk 后输入包名,点击获取

CheckAndroidV2Signature.jar

➜  java -jar ./CheckAndroidV2Signature.jar ./YSDK_Android_1.3.1_629-debug-ysdktest-inner.apk
{"ret":0,"msg":"ok","isV2":false,"isV2OK":false}

CheckAndroidV2Signature.jar

➜  java -jar ./CheckAndroidV2Signature.jar ./YSDK_Android_1.3.1_629-debug-ysdktest-inner.apk
{"ret":0,"msg":"","isV1OK":true,"isV2":false,"isV2OK":false,"keystoreMd5":"252e3ded833125ed3e3bb010bc24f4dc"}

getPackageInfo.jar

➜  java -jar ./getPackageInfo.jar ./YSDK_Android_1.3.1_629-debug-ysdktest-inner.apk

执行结果: 成功
应用信息:
  包名: com.huohoubrowser
  版本名: 4.0.1.8
  版本号: 4018
  签名文件 MD5: f430582429f49b685c3572ba28995e39
  V1 签名验证通过: false
  使用 V2 签名: false
  V2 签名验证通过: false
  签名验证失败原因: ERROR: JAR signer CERT.RSA: JAR signature META-INF/CERT.SF indicates the APK is signed using APK Signature Scheme v2 but no such signature was found. Signature stripped?

getMorePackageInfo.jar

➜ java -jar ./getMorePackageInfo.jar ./test.apk

执行结果: 成功
应用信息:
  包名: com.tencent.jygame
  版本名: 0.0.1.30
  版本号: 287
  签名文件 MD5: 634b6933d798de3498f20a9b02452575
  SDK 版本:
      minSdkVersion:12
      targetSdkVersion:25
  V1 签名验证通过: true
  使用 V2 签名: true
  V2 签名验证通过: true
  使用权限列表:
      android.permission.INTERNET
      android.permission.VIBRATE
      android.permission.MOUNT_UNMOUNT_FILESYSTEMS
      android.permission.WRITE_EXTERNAL_STORAGE
      android.permission.ACCESS_NETWORK_STATE
      android.permission.ACCESS_WIFI_STATE
      android.permission.READ_PHONE_STATE

相关文章

Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea