如何读取APK中的签名信息
2011-06-01 15:48
731 查看
import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; PackageManager pckMan = getPackageManager(); String issuerDN = null; String subjectDN = null; String publickey = null; boolean isSystemApp = false; List<PackageInfo> packs = pckMan.getInstalledPackages(PackageManager.GET_SIGNATURES); int count = packs.size(); for (int i = 0; i < count; i++) { isSystemApp = false; PackageInfo pi = packs.get(i); if (pi.versionName == null) continue; if ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0) { isSystemApp = true; } try { byte[] signature = pi.signatures[0].toByteArray(); String hash = md5(signature); CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate) certFactory.generateCertificate( new ByteArrayInputStream(signature)); String appname = pi.applicationInfo.loadLabel(pckMan).toString(); Log.d("TRACK", appname); issuerDN = cert.getIssuerDN().toString(); Log.d("TRACK", issuerDN); subjectDN = cert.getSubjectDN().toString(); Log.d("TRACK", subjectDN); publickey = cert.getPublicKey().toString(); Log.d("TRACK", publickey); Log.d("TRACK-HASH", hash); } catch (CertificateException e) { e.printStackTrace(); } }
相关文章推荐
- Android 如何读取未安装的APK 签名信息
- Android 如何读取APK 签名信息
- 如何获取apk的签名信息?
- 如何查看apk包的签名信息,用以验证是否签名成功
- 如何查看apk和签名文件的签名信息
- Android 读取APK签名信息
- Android如何查看APK签名信息
- 如何验证apk是否签名成功,apk比对keystore的签名信息
- Android 读取APK签名信息
- Android 读取APK签名信息
- 如何无keystore获取apk的签名信息
- android 读取apk签名信息
- 如何获取apk的签名信息?
- Android 读取APK签名信息
- Android 读取APK签名信息
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- mac 下利用AndroidStudio APK获取签名信息
- Android 获取某apk的签名信息,可用作防盗版进入。
- Android如何查看应用签名信息
- android apk签名(为什么 如何做签名)