如何獲得APK簽名?是否有方法檢索用于簽署APK的密鑰的簽名?我用密鑰庫的鑰匙簽了我的APK。如何以編程方式檢索它?
3 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊
final PackageManager packageManager = context.getPackageManager();final List<PackageInfo> packageList = packageManager.getInstalledPackages(PackageManager.GET_SIGNATURES);for (PackageInfo p : packageList) { final String strName = p.applicationInfo.loadLabel(packageManager).toString(); final String strVendor = p.packageName; sb.append("<br>" + strName + " / " + strVendor + "<br>"); final Signature[] arrSignatures = p.signatures; for (final Signature sig : arrSignatures) { /* * Get the X.509 certificate. */ final byte[] rawCert = sig.toByteArray(); InputStream certStream = new ByteArrayInputStream(rawCert); try { CertificateFactory certFactory = CertificateFactory.getInstance("X509"); X509Certificate x509Cert = (X509Certificate) certFactory.generateCertificate(certStream); sb.append("Certificate subject: " + x509Cert.getSubjectDN() + "<br>"); sb.append("Certificate issuer: " + x509Cert.getIssuerDN() + "<br>"); sb.append("Certificate serial number: " + x509Cert.getSerialNumber() + "<br>"); sb.append("<br>"); } catch (CertificateException e) { // e.printStackTrace(); } }}

溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊
Signature sig = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures[0];
Signature releaseSig = context.getPackageManager().getPackageArchiveInfo("/mnt/sdcard/myReleaseApk.apk", PackageManager.GET_SIGNATURES). signatures[0];
return sig.hashCode() == releaseSig.hashCode;
- 3 回答
- 0 關(guān)注
- 861 瀏覽
添加回答
舉報
0/150
提交
取消