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()); }
result.mergeFrom(v2Result); } catch (V2SchemeVerifier.SignatureNotFoundException ignored) {} if (result.containsErrors()) { return result; result.mergeFrom(v1Result); if (result.containsErrors()) { return result; if (result.containsErrors()) { return result;
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(); } }