public static boolean verifyApk(File file) throws IOException { ApkVerifier verifier = new Builder(file).build(); try { Result result = verifier.verify(); return result.isVerified() && result.isVerifiedUsingV1Scheme() && result.isVerifiedUsingV2Scheme(); } catch (ApkFormatException e) { throw new IOException(e); } catch (NoSuchAlgorithmException e) { throw new IOException(e); } }
return this.content; ApkVerifier verifier = new ApkVerifier.Builder(openFile).build(); try { ApkVerifier.Result result = verifier.verify();
public void testOverrideSignature() throws IOException, ApkFormatException, NoSuchAlgorithmException { File f = newTestFile(); // don't write with APK Signature Scheme v2 Block ID 0x7109871a PackerCommon.writeString(f, "OverrideSignatureSchemeBlock", 0x7109871a); assertEquals("OverrideSignatureSchemeBlock", PackerCommon.readString(f, 0x7109871a)); ApkVerifier verifier = new Builder(f).build(); Result result = verifier.verify(); final List<IssueWithParams> errors = result.getErrors(); if (errors != null && errors.size() > 0) { for (IssueWithParams error : errors) { System.out.println("testOverrideSignature " + error); } } assertTrue(result.containsErrors()); assertFalse(result.isVerified()); assertFalse(result.isVerifiedUsingV1Scheme()); assertFalse(result.isVerifiedUsingV2Scheme()); }
ApkVerifier.Result apkVerifierResult = builder.build().verify(); boolean verified = apkVerifierResult.isVerified(); Iterator iter;
private void assertThatApksAreSigned( BuildApksResult result, ZipFile apkSetFile, X509Certificate expectedCertificate) throws Exception { for (Variant variant : result.getVariantList()) { for (ApkSet apkSet : variant.getApkSetList()) { for (ApkDescription apkDescription : apkSet.getApkDescriptionList()) { File apk = extractFromApkSetFile(apkSetFile, apkDescription.getPath(), outputDir); ApkVerifier.Result verifierResult = new ApkVerifier.Builder(apk).build().verify(); assertThat(verifierResult.isVerified()).isTrue(); assertThat(verifierResult.getSignerCertificates()).containsExactly(expectedCertificate); } } } }
public static boolean apkVerified(File f) throws ApkFormatException, NoSuchAlgorithmException, IOException { ApkVerifier verifier = new Builder(f).build(); Result result = verifier.verify(); return result.isVerified() && result.isVerifiedUsingV1Scheme() && result.isVerifiedUsingV2Scheme() && !result.containsErrors(); } }