MCPcopy Index your code
hub / github.com/bihe0832/Android-GetAPKInfo

github.com/bihe0832/Android-GetAPKInfo @V2.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release V2.0.2 ↗ · + Follow
2,692 symbols 7,382 edges 248 files 1,003 documented · 37%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AndroidGetAPKInfo

项目简介

作为基于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

目录结构

│
├── AXMLPrinter2_zixie.jar :对于官方工具AXMLPrinter2的优化,解决因为不同api下apk的AndroidMainfest编码引起的问题
│
├── AXMLPrinter2_zixie :AXMLPrinter2_zixie.jar的源码
│   │
├── CheckAndroidSignature.jar :基于官方签名相关的工具apksigner的源码改造的安卓签名校验工具
│
├── CheckAndroidSignatureByAPKSig :CheckAndroidSignature.jar的源码
│
├── GetAPKInfo.jar :一款基于Java环境的读取apk的包名、版本号、签名、是否使用V2签名,V2签名校验是否通过的工具
│
├── GetApkInfo : GetAPKInfo.jar的源码
│
├── apksig : Android SDK Build Tools中关于签名相关的工具apksigner的源码(提供了V2、V3签名以及校验的方法)
│
└── README.md

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

使用方法

AXMLPrinter2_zixie.jar

非可执行jar,主要是对官方工具AXMLPrinter2针对不同api下AndroidMainfest编码不同导致解析异常的优化,解决https://github.com/bihe0832/Android-GetAPKInfo/issues/1https://github.com/bihe0832/Android-GetAPKInfo/issues/5遇到的问题

CheckAndroidSignature.jar

➜  java -jar ./CheckAndroidSignature.jar ./YSDK_Android_1.3.1_629-debug-ysdktest-inner.apk
{"ret":0,"msg":"","isV1OK":false,"isV2":true,"isV2OK":true,"isV3":true,"isV3OK":true,"keystoreMd5":"80fa5a8552e418f6bd805c65bcddf4c8"}

GetAPKInfo.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
  使用V3签名: false
  V3签名验证通过: false
  签名验证详细信息: {"ret":0,"msg":"","isV1OK":false,"isV2":true,"isV2OK":true,"isV3":true,"isV3OK":true,"keystoreMd5":"80fa5a8552e418f6bd805c65bcddf4c8"}

GetMoreAPKInfo.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
  使用V3签名: false
  V3签名验证通过: false
  签名验证详细信息: {"ret":0,"msg":"","isV1OK":false,"isV2":true,"isV2OK":true,"isV3":true,"isV3OK":true,"keystoreMd5":"80fa5a8552e418f6bd805c65bcddf4c8"}
  使用权限列表:
      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

GetAPKInfo

近期对 GetAPKInfo 做了调整,后续将在AndroidAppFactory-Sample 中维护,这里仅提供下载链接。对于源码Github为:

https://github.com/bihe0832/AndroidAppFactory-Sample

  • 下载地址:https://cdn.bihe0832.com/app/download.html

  • UI 截图

相关文章

Extension points exported contracts — how you extend this code

BerDataValueReader (Interface)
Reader of ASN.1 Basic Encoding Rules (BER) data values. BER data value reader returns data values, one by one, from [10 …
apksig/src/main/java/com/android/apksig/internal/asn1/ber/BerDataValueReader.java
BerDataValueReader (Interface)
Reader of ASN.1 Basic Encoding Rules (BER) data values. BER data value reader returns data values, one by one, from [10 …
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/internal/asn1/ber/BerDataValueReader.java
XmlResourceParser (Interface)
@author Dmitry Skiba [13 implementers]
AXMLPrinter2_zixie/src/main/java/android/content/res/XmlResourceParser.java
DataSink (Interface)
Consumer of input data which may be provided in one go or in chunks. [22 implementers]
apksig/src/main/java/com/android/apksig/util/DataSink.java
DataSink (Interface)
Consumer of input data which may be provided in one go or in chunks. [21 implementers]
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/util/DataSink.java
AttributeSet (Interface)
@author Dmitry Skiba [1 implementers]
AXMLPrinter2_zixie/src/main/java/android/util/AttributeSet.java
DataSource (Interface)
Abstract representation of a source of data. This abstraction serves three purposes: Transparent handling o [14 implementers]
apksig/src/main/java/com/android/apksig/util/DataSource.java
DataSource (Interface)
Abstract representation of a source of data. This abstraction serves three purposes: Transparent handling o [14 implementers]
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/util/DataSource.java

Core symbols most depended-on inside this repo

size
called by 335
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/util/DataSource.java
getName
called by 211
AXMLPrinter2_zixie/src/main/java/org/xmlpull/v1/XmlSerializer.java
get
called by 162
apksig/src/main/java/com/android/apksig/internal/apk/AndroidBinXmlParser.java
isEmpty
called by 147
apksig/src/apksigner/java/com/android/apksigner/SignerParams.java
equals
called by 124
apksig/src/main/java/com/android/apksig/internal/util/Pair.java
get
called by 117
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/internal/apk/AndroidBinXmlParser.java
addSupportedSigAlg
called by 98
apksig/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java
addSupportedSigAlg
called by 98
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java

Shape

Method 2,231
Class 418
Interface 26
Enum 17

Languages

Java100%

Modules by API surface

apksig/src/main/java/com/android/apksig/DefaultApkSignerEngine.java83 symbols
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/DefaultApkSignerEngine.java83 symbols
apksig/src/test/java/com/android/apksig/ApkVerifierTest.java76 symbols
AXMLPrinter2_zixie/src/main/java/android/content/res/AXmlResourceParser.java74 symbols
apksig/src/main/java/com/android/apksig/internal/apk/ApkSigningBlockUtils.java71 symbols
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/internal/apk/ApkSigningBlockUtils.java71 symbols
apksig/src/main/java/com/android/apksig/ApkVerifier.java69 symbols
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/ApkVerifier.java69 symbols
apksig/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java67 symbols
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java67 symbols
apksig/src/main/java/com/android/apksig/SigningCertificateLineage.java59 symbols
CheckAndroidSignatureByAPKSig/src/main/java/com/android/apksig/SigningCertificateLineage.java59 symbols

For agents

$ claude mcp add Android-GetAPKInfo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page