META-INF/
META-INF/MANIFEST.MF
com/
com/android/
com/android/apksig/
com/android/apksig/DefaultApkSignerEngine.classDefaultApkSignerEngine.java
package com.android.apksig
public com.android.apksig.DefaultApkSignerEngine extends java.lang.Object implements com.android.apksig.ApkSignerEngine {
private final boolean mV1SigningEnabled
private final boolean mV2SigningEnabled
private final boolean mOtherSignersSignaturesPreserved
private final String mCreatedBy
private final java.util.List mV1SignerConfigs
private final com.android.apksig.internal.apk.v1.DigestAlgorithm mV1ContentDigestAlgorithm
private final java.util.List mV2SignerConfigs
private boolean mClosed
private boolean mV1SignaturePending
private final java.util.Set mSignatureExpectedOutputJarEntryNames
private final java.util.Map mOutputJarEntryDigestRequests
private final java.util.Map mOutputJarEntryDigests
private final java.util.Map mEmittedSignatureJarEntryData
private final java.util.Map mOutputSignatureJarEntryDataRequests
private com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest mInputJarManifestEntryDataRequest
private com.android.apksig.DefaultApkSignerEngine$OutputJarSignatureRequestImpl mAddV1SignatureRequest
private boolean mV2SignaturePending
private com.android.apksig.DefaultApkSignerEngine$OutputApkSigningBlockRequestImpl mAddV2SignatureRequest
private void (java.util.List, int, boolean, boolean, boolean, java.lang.String) throws java.security.InvalidKeyException
String v1SignerName
Integer indexOfOtherSignerWithSameName
com.android.apksig.internal.apk.v1.DigestAlgorithm v1SignatureDigestAlgorithm
com.android.apksig.internal.apk.v1.V1SchemeSigner$SignerConfig v1SignerConfig
com.android.apksig.internal.apk.v2.V2SchemeSigner$SignerConfig v2SignerConfig
com.android.apksig.DefaultApkSignerEngine$SignerConfig signerConfig
java.util.List certificates
java.security.PublicKey publicKey
int i
java.util.List signerConfigs
int minSdkVersion
boolean v1SigningEnabled
boolean v2SigningEnabled
boolean otherSignersSignaturesPreserved
String createdBy
java.util.Map v1SignerNameToSignerIndex
com.android.apksig.internal.apk.v1.DigestAlgorithm v1ContentDigestAlgorithm
public void inputApkSigningBlock (com.android.apksig.util.DataSource)
com.android.apksig.util.DataSource apkSigningBlock
public com.android.apksig.ApkSignerEngine$InputJarEntryInstructions inputJarEntry (java.lang.String)
String entryName
com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy outputPolicy
public com.android.apksig.ApkSignerEngine$InspectJarEntryRequest outputJarEntry (java.lang.String)
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataDigestRequest dataDigestRequest
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest dataRequest
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest dataRequest
String entryName
public com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy inputJarEntryRemoved (java.lang.String)
String entryName
public void outputJarEntryRemoved (java.lang.String)
String entryName
public com.android.apksig.ApkSignerEngine$OutputJarSignatureRequest outputJarEntries () throws com.android.apksig.apk.ApkFormatException java.security.InvalidKeyException java.security.SignatureException java.security.NoSuchAlgorithmException
String entryName
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataDigestRequest digestRequest
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest dataRequest
java.util.List signatureZipEntries
java.security.cert.CertificateException e
java.util.List signatureZipEntries
java.security.cert.CertificateException e
String entryName
byte[] expectedData
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest actualDataRequest
byte[] actualData
java.util.Map$Entry expectedOutputEntry
com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile newManifest
byte[] emittedSignatureManifest
String entryName
byte[] entryData
com.android.apksig.internal.util.Pair entry
java.util.List apkSigningSchemeIds
byte[] inputJarManifest
java.util.List signatureZipEntries
java.util.List sigEntries
public com.android.apksig.ApkSignerEngine$OutputApkSigningBlockRequest outputZipSections (com.android.apksig.util.DataSource, com.android.apksig.util.DataSource, com.android.apksig.util.DataSource) throws java.io.IOException java.security.InvalidKeyException java.security.SignatureException java.security.NoSuchAlgorithmException
com.android.apksig.util.DataSource zipEntries
com.android.apksig.util.DataSource zipCentralDirectory
com.android.apksig.util.DataSource zipEocd
byte[] apkSigningBlock
public void outputDone ()
public void close ()
private void invalidateV1Signature ()
private void invalidateV2Signature ()
private void checkNotClosed ()
private void checkV1SigningDoneIfEnabled ()
String entryName
byte[] expectedData
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest actualDataRequest
byte[] actualData
java.util.Map$Entry expectedOutputEntry
private void checkV2SigningDoneIfEnabled ()
private com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy getInputJarEntryOutputPolicy (java.lang.String)
String entryName
void (java.util.List, int, boolean, boolean, boolean, java.lang.String, com.android.apksig.DefaultApkSignerEngine$1) throws java.security.InvalidKeyException
java.util.List x0
int x1
boolean x2
boolean x3
boolean x4
String x5
com.android.apksig.DefaultApkSignerEngine$1 x6
}
com/android/apksig/ApkSignerEngine$InspectJarEntryRequest.classApkSignerEngine.java
package com.android.apksig
public abstract com.android.apksig.ApkSignerEngine$InspectJarEntryRequest extends java.lang.Object {
public abstract com.android.apksig.util.DataSink getDataSink ()
public abstract void done ()
public abstract java.lang.String getEntryName ()
}
com/android/apksig/ApkSigner$1.classApkSigner.java
package com.android.apksig
com.android.apksig.ApkSigner$1 extends java.lang.Object {
static final int[] $SwitchMap$com$android$apksig$ApkSignerEngine$InputJarEntryInstructions$OutputPolicy
static void ()
}
com/android/apksig/ApkVerifier$1.classApkVerifier.java
package com.android.apksig
com.android.apksig.ApkVerifier$1 extends java.lang.Object {
}
com/android/apksig/DefaultApkSignerEngine$OutputApkSigningBlockRequestImpl.classDefaultApkSignerEngine.java
package com.android.apksig
com.android.apksig.DefaultApkSignerEngine$OutputApkSigningBlockRequestImpl extends java.lang.Object implements com.android.apksig.ApkSignerEngine$OutputApkSigningBlockRequest {
private final byte[] mApkSigningBlock
private volatile boolean mDone
private void (byte[])
byte[] apkSigingBlock
public byte[] getApkSigningBlock ()
public void done ()
private boolean isDone ()
void (byte[], com.android.apksig.DefaultApkSignerEngine$1)
byte[] x0
com.android.apksig.DefaultApkSignerEngine$1 x1
static boolean access$900 (com.android.apksig.DefaultApkSignerEngine$OutputApkSigningBlockRequestImpl)
com.android.apksig.DefaultApkSignerEngine$OutputApkSigningBlockRequestImpl x0
}
com/android/apksig/ApkSignerEngine$OutputJarSignatureRequest.classApkSignerEngine.java
package com.android.apksig
public abstract com.android.apksig.ApkSignerEngine$OutputJarSignatureRequest extends java.lang.Object {
public abstract java.util.List getAdditionalJarEntries ()
public abstract void done ()
}
com/android/apksig/ApkSignerEngine$InputJarEntryInstructions$OutputPolicy.classApkSignerEngine.java
package com.android.apksig
public final com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy extends java.lang.Enum {
public static final com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy SKIP
public static final com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy OUTPUT
public static final com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy OUTPUT_BY_ENGINE
private static final com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy[] $VALUES
public static com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy[] values ()
public static com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy valueOf (java.lang.String)
String name
private void (java.lang.String, int)
static void ()
}
com/android/apksig/ApkVerifier$Issue.classApkVerifier.java
package com.android.apksig
public final com.android.apksig.ApkVerifier$Issue extends java.lang.Enum {
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_SIGNATURES
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_SIGNED_ZIP_ENTRIES
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_DUPLICATE_ZIP_ENTRY
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_DUPLICATE_MANIFEST_SECTION
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_UNNNAMED_MANIFEST_SECTION
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_UNNNAMED_SIG_FILE_SECTION
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_MANIFEST
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MISSING_ZIP_ENTRY_REFERENCED_IN_MANIFEST
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_ZIP_ENTRY_DIGEST_IN_MANIFEST
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_ZIP_ENTRY_DIGEST_IN_SIG_FILE
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_ZIP_ENTRY_NOT_SIGNED
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_ZIP_ENTRY_SIGNERS_MISMATCH
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_ZIP_ENTRY_DIGEST_DID_NOT_VERIFY
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MANIFEST_MAIN_SECTION_DIGEST_DID_NOT_VERIFY
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MANIFEST_SECTION_DIGEST_DID_NOT_VERIFY
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_MANIFEST_DIGEST_IN_SIG_FILE
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_APK_SIG_STRIP_PROTECTION
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MISSING_FILE
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_VERIFY_EXCEPTION
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_UNSUPPORTED_SIG_ALG
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_PARSE_EXCEPTION
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MALFORMED_CERTIFICATE
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_DID_NOT_VERIFY
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_NO_SIGNERS
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_DUPLICATE_SIG_FILE_SECTION
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MISSING_VERSION_ATTR_IN_SIG_FILE
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_UNKNOWN_APK_SIG_SCHEME_ID
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MISSING_APK_SIG_REFERENCED
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_UNPROTECTED_ZIP_ENTRY
public static final com.android.apksig.ApkVerifier$Issue JAR_SIG_MISSING
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MISSING
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MALFORMED_SIGNERS
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MALFORMED_SIGNER
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MALFORMED_PUBLIC_KEY
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MALFORMED_CERTIFICATE
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MALFORMED_SIGNATURE
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MALFORMED_DIGEST
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_MALFORMED_ADDITIONAL_ATTRIBUTE
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_NO_SIGNERS
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_UNKNOWN_SIG_ALGORITHM
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_UNKNOWN_ADDITIONAL_ATTRIBUTE
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_VERIFY_EXCEPTION
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_DID_NOT_VERIFY
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_NO_SIGNATURES
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_NO_SUPPORTED_SIGNATURES
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_NO_CERTIFICATES
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_PUBLIC_KEY_MISMATCH_BETWEEN_CERTIFICATE_AND_SIGNATURES_RECORD
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_SIG_ALG_MISMATCH_BETWEEN_SIGNATURES_AND_DIGESTS_RECORDS
public static final com.android.apksig.ApkVerifier$Issue V2_SIG_APK_DIGEST_DID_NOT_VERIFY
public static final com.android.apksig.ApkVerifier$Issue APK_SIG_BLOCK_UNKNOWN_ENTRY_ID
private final String mFormat
private static final com.android.apksig.ApkVerifier$Issue[] $VALUES
public static com.android.apksig.ApkVerifier$Issue[] values ()
public static com.android.apksig.ApkVerifier$Issue valueOf (java.lang.String)
String name
private void (java.lang.String, int, java.lang.String)
String format
private java.lang.String getFormat ()
static java.lang.String access$900 (com.android.apksig.ApkVerifier$Issue)
com.android.apksig.ApkVerifier$Issue x0
static void ()
}
com/android/apksig/DefaultApkSignerEngine$Builder.classDefaultApkSignerEngine.java
package com.android.apksig
public com.android.apksig.DefaultApkSignerEngine$Builder extends java.lang.Object {
private final java.util.List mSignerConfigs
private final int mMinSdkVersion
private boolean mV1SigningEnabled
private boolean mV2SigningEnabled
private boolean mOtherSignersSignaturesPreserved
private String mCreatedBy
public void (java.util.List, int)
java.util.List signerConfigs
int minSdkVersion
public com.android.apksig.DefaultApkSignerEngine build () throws java.security.InvalidKeyException
public com.android.apksig.DefaultApkSignerEngine$Builder setV1SigningEnabled (boolean)
boolean enabled
public com.android.apksig.DefaultApkSignerEngine$Builder setV2SigningEnabled (boolean)
boolean enabled
public com.android.apksig.DefaultApkSignerEngine$Builder setOtherSignersSignaturesPreserved (boolean)
boolean preserved
public com.android.apksig.DefaultApkSignerEngine$Builder setCreatedBy (java.lang.String)
String createdBy
}
com/android/apksig/ApkVerifier$Result$V2SchemeSignerInfo.classApkVerifier.java
package com.android.apksig
public com.android.apksig.ApkVerifier$Result$V2SchemeSignerInfo extends java.lang.Object {
private final int mIndex
private final java.util.List mCerts
private final java.util.List mErrors
private final java.util.List mWarnings
private void (com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo result
public int getIndex ()
public java.security.cert.X509Certificate getCertificate ()
public java.util.List getCertificates ()
private transient void addError (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
public boolean containsErrors ()
public java.util.List getErrors ()
public java.util.List getWarnings ()
static void access$400 (com.android.apksig.ApkVerifier$Result$V2SchemeSignerInfo, com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Result$V2SchemeSignerInfo x0
com.android.apksig.ApkVerifier$Issue x1
Object[] x2
void (com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo, com.android.apksig.ApkVerifier$1)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo x0
com.android.apksig.ApkVerifier$1 x1
}
com/android/apksig/ApkVerifier$Builder.classApkVerifier.java
package com.android.apksig
public com.android.apksig.ApkVerifier$Builder extends java.lang.Object {
private final java.io.File mApkFile
private final com.android.apksig.util.DataSource mApkDataSource
private Integer mMinSdkVersion
private int mMaxSdkVersion
public void (java.io.File)
java.io.File apk
public void (com.android.apksig.util.DataSource)
com.android.apksig.util.DataSource apk
public com.android.apksig.ApkVerifier$Builder setMinCheckedPlatformVersion (int)
int minSdkVersion
public com.android.apksig.ApkVerifier$Builder setMaxCheckedPlatformVersion (int)
int maxSdkVersion
public com.android.apksig.ApkVerifier build ()
}
com/android/apksig/ApkSigner$SignerConfig.classApkSigner.java
package com.android.apksig
public com.android.apksig.ApkSigner$SignerConfig extends java.lang.Object {
private final String mName
private final java.security.PrivateKey mPrivateKey
private final java.util.List mCertificates
private void (java.lang.String, java.security.PrivateKey, java.util.List)
String name
java.security.PrivateKey privateKey
java.util.List certificates
public java.lang.String getName ()
public java.security.PrivateKey getPrivateKey ()
public java.util.List getCertificates ()
void (java.lang.String, java.security.PrivateKey, java.util.List, com.android.apksig.ApkSigner$1)
String x0
java.security.PrivateKey x1
java.util.List x2
com.android.apksig.ApkSigner$1 x3
}
com/android/apksig/ApkVerifier$ByteArray.classApkVerifier.java
package com.android.apksig
com.android.apksig.ApkVerifier$ByteArray extends java.lang.Object {
private final byte[] mArray
private final int mHashCode
private void (byte[])
byte[] arr
public int hashCode ()
public boolean equals (java.lang.Object)
Object obj
com.android.apksig.ApkVerifier$ByteArray other
void (byte[], com.android.apksig.ApkVerifier$1)
byte[] x0
com.android.apksig.ApkVerifier$1 x1
}
com/android/apksig/ApkSigner$Builder.classApkSigner.java
package com.android.apksig
public com.android.apksig.ApkSigner$Builder extends java.lang.Object {
private final java.util.List mSignerConfigs
private boolean mV1SigningEnabled
private boolean mV2SigningEnabled
private boolean mOtherSignersSignaturesPreserved
private String mCreatedBy
private Integer mMinSdkVersion
private final com.android.apksig.ApkSignerEngine mSignerEngine
private java.io.File mInputApkFile
private com.android.apksig.util.DataSource mInputApkDataSource
private java.io.File mOutputApkFile
private com.android.apksig.util.DataSink mOutputApkDataSink
private com.android.apksig.util.DataSource mOutputApkDataSource
public void (java.util.List)
java.util.List signerConfigs
public void (com.android.apksig.ApkSignerEngine)
com.android.apksig.ApkSignerEngine signerEngine
public com.android.apksig.ApkSigner$Builder setInputApk (java.io.File)
java.io.File inputApk
public com.android.apksig.ApkSigner$Builder setInputApk (com.android.apksig.util.DataSource)
com.android.apksig.util.DataSource inputApk
public com.android.apksig.ApkSigner$Builder setOutputApk (java.io.File)
java.io.File outputApk
public com.android.apksig.ApkSigner$Builder setOutputApk (com.android.apksig.util.ReadableDataSink)
com.android.apksig.util.ReadableDataSink outputApk
public com.android.apksig.ApkSigner$Builder setOutputApk (com.android.apksig.util.DataSink, com.android.apksig.util.DataSource)
com.android.apksig.util.DataSink outputApkOut
com.android.apksig.util.DataSource outputApkIn
public com.android.apksig.ApkSigner$Builder setMinSdkVersion (int)
int minSdkVersion
public com.android.apksig.ApkSigner$Builder setV1SigningEnabled (boolean)
boolean enabled
public com.android.apksig.ApkSigner$Builder setV2SigningEnabled (boolean)
boolean enabled
public com.android.apksig.ApkSigner$Builder setOtherSignersSignaturesPreserved (boolean)
boolean preserved
public com.android.apksig.ApkSigner$Builder setCreatedBy (java.lang.String)
String createdBy
private void checkInitializedWithoutEngine ()
public com.android.apksig.ApkSigner build ()
}
com/android/apksig/DefaultApkSignerEngine$1.classDefaultApkSignerEngine.java
package com.android.apksig
com.android.apksig.DefaultApkSignerEngine$1 extends java.lang.Object {
static final int[] $SwitchMap$com$android$apksig$ApkSignerEngine$InputJarEntryInstructions$OutputPolicy
static void ()
}
com/android/apksig/ApkSignerEngine$InputJarEntryInstructions.classApkSignerEngine.java
package com.android.apksig
public com.android.apksig.ApkSignerEngine$InputJarEntryInstructions extends java.lang.Object {
private final com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy mOutputPolicy
private final com.android.apksig.ApkSignerEngine$InspectJarEntryRequest mInspectJarEntryRequest
public void (com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy)
com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy outputPolicy
public void (com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy, com.android.apksig.ApkSignerEngine$InspectJarEntryRequest)
com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy outputPolicy
com.android.apksig.ApkSignerEngine$InspectJarEntryRequest inspectJarEntryRequest
public com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy getOutputPolicy ()
public com.android.apksig.ApkSignerEngine$InspectJarEntryRequest getInspectJarEntryRequest ()
}
com/android/apksig/ApkSignerEngine$OutputJarSignatureRequest$JarEntry.classApkSignerEngine.java
package com.android.apksig
public com.android.apksig.ApkSignerEngine$OutputJarSignatureRequest$JarEntry extends java.lang.Object {
private final String mName
private final byte[] mData
public void (java.lang.String, byte[])
String name
byte[] data
public java.lang.String getName ()
public byte[] getData ()
}
com/android/apksig/apk/
com/android/apksig/apk/AndroidBinXmlParser$1.classAndroidBinXmlParser.java
package com.android.apksig.apk
com.android.apksig.apk.AndroidBinXmlParser$1 extends java.lang.Object {
}
com/android/apksig/apk/AndroidBinXmlParser$Attribute.classAndroidBinXmlParser.java
package com.android.apksig.apk
com.android.apksig.apk.AndroidBinXmlParser$Attribute extends java.lang.Object {
private static final int TYPE_REFERENCE
private static final int TYPE_STRING
private static final int TYPE_INT_DEC
private static final int TYPE_INT_HEX
private static final int TYPE_INT_BOOLEAN
private final long mNameId
private final int mValueType
private final int mValueData
private final com.android.apksig.apk.AndroidBinXmlParser$StringPool mStringPool
private final com.android.apksig.apk.AndroidBinXmlParser$ResourceMap mResourceMap
private void (long, int, int, com.android.apksig.apk.AndroidBinXmlParser$StringPool, com.android.apksig.apk.AndroidBinXmlParser$ResourceMap)
long nameId
int valueType
int valueData
com.android.apksig.apk.AndroidBinXmlParser$StringPool stringPool
com.android.apksig.apk.AndroidBinXmlParser$ResourceMap resourceMap
public int getNameResourceId ()
public int getValueType ()
public int getIntValue () throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
public boolean getBooleanValue () throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
public java.lang.String getStringValue () throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
void (long, int, int, com.android.apksig.apk.AndroidBinXmlParser$StringPool, com.android.apksig.apk.AndroidBinXmlParser$ResourceMap, com.android.apksig.apk.AndroidBinXmlParser$1)
long x0
int x1
int x2
com.android.apksig.apk.AndroidBinXmlParser$StringPool x3
com.android.apksig.apk.AndroidBinXmlParser$ResourceMap x4
com.android.apksig.apk.AndroidBinXmlParser$1 x5
}
com/android/apksig/apk/AndroidBinXmlParser.classAndroidBinXmlParser.java
package com.android.apksig.apk
com.android.apksig.apk.AndroidBinXmlParser extends java.lang.Object {
public static final int EVENT_START_DOCUMENT
public static final int EVENT_END_DOCUMENT
public static final int EVENT_START_ELEMENT
public static final int EVENT_END_ELEMENT
public static final int VALUE_TYPE_UNSUPPORTED
public static final int VALUE_TYPE_STRING
public static final int VALUE_TYPE_INT
public static final int VALUE_TYPE_REFERENCE
public static final int VALUE_TYPE_BOOLEAN
private static final long NO_NAMESPACE
private final java.nio.ByteBuffer mXml
private com.android.apksig.apk.AndroidBinXmlParser$StringPool mStringPool
private com.android.apksig.apk.AndroidBinXmlParser$ResourceMap mResourceMap
private int mDepth
private int mCurrentEvent
private String mCurrentElementName
private String mCurrentElementNamespace
private int mCurrentElementAttributeCount
private java.util.List mCurrentElementAttributes
private java.nio.ByteBuffer mCurrentElementAttributesContents
private int mCurrentElementAttrSizeBytes
public void (java.nio.ByteBuffer) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
com.android.apksig.apk.AndroidBinXmlParser$Chunk chunk
java.nio.ByteBuffer xml
com.android.apksig.apk.AndroidBinXmlParser$Chunk resXmlChunk
public int getDepth ()
public int getEventType ()
public java.lang.String getName ()
public java.lang.String getNamespace ()
public int getAttributeCount ()
public int getAttributeNameResourceId (int) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
int index
public int getAttributeValueType (int) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
int index
int type
public int getAttributeIntValue (int) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
int index
public boolean getAttributeBooleanValue (int) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
int index
public java.lang.String getAttributeStringValue (int) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
int index
private com.android.apksig.apk.AndroidBinXmlParser$Attribute getAttribute (int)
int index
public int next () throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
java.nio.ByteBuffer contents
long nsId
long nameId
int attrStartOffset
int attrSizeBytes
int attrCount
long attrEndOffset
java.nio.ByteBuffer contents
long nsId
long nameId
com.android.apksig.apk.AndroidBinXmlParser$Chunk chunk
private void parseCurrentElementAttributesIfNotParsed ()
int startPosition
java.nio.ByteBuffer attr
long nsId
long nameId
int valueType
long valueData
int i
private static java.nio.ByteBuffer sliceFromTo (java.nio.ByteBuffer, long, long)
java.nio.ByteBuffer source
long start
long end
int capacity
private static java.nio.ByteBuffer sliceFromTo (java.nio.ByteBuffer, int, int)
java.nio.ByteBuffer result
java.nio.ByteBuffer source
int start
int end
int capacity
int originalLimit
int originalPosition
private static int getUnsignedInt8 (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
private static int getUnsignedInt16 (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
private static long getUnsignedInt32 (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
private static long getUnsignedInt32 (java.nio.ByteBuffer, int)
java.nio.ByteBuffer buffer
int position
static int access$100 (java.nio.ByteBuffer)
java.nio.ByteBuffer x0
static long access$200 (java.nio.ByteBuffer)
java.nio.ByteBuffer x0
static java.nio.ByteBuffer access$300 (java.nio.ByteBuffer, int, int)
java.nio.ByteBuffer x0
int x1
int x2
static java.nio.ByteBuffer access$400 (java.nio.ByteBuffer, long, long)
java.nio.ByteBuffer x0
long x1
long x2
static long access$500 (java.nio.ByteBuffer, int)
java.nio.ByteBuffer x0
int x1
static int access$600 (java.nio.ByteBuffer)
java.nio.ByteBuffer x0
}
com/android/apksig/apk/ApkUtils$CodenamesLazyInitializer.classApkUtils.java
package com.android.apksig.apk
com.android.apksig.apk.ApkUtils$CodenamesLazyInitializer extends java.lang.Object {
private static final com.android.apksig.internal.util.Pair[] SORTED_CODENAMES_FIRST_CHAR_TO_API_LEVEL
private static final java.util.Comparator CODENAME_FIRST_CHAR_COMPARATOR
private void ()
static com.android.apksig.internal.util.Pair[] access$100 ()
static java.util.Comparator access$200 ()
static void ()
}
com/android/apksig/apk/AndroidBinXmlParser$StringPool.classAndroidBinXmlParser.java
package com.android.apksig.apk
com.android.apksig.apk.AndroidBinXmlParser$StringPool extends java.lang.Object {
private static final int FLAG_UTF8
private final java.nio.ByteBuffer mChunkContents
private final java.nio.ByteBuffer mStringsSection
private final int mStringCount
private final boolean mUtf8Encoded
private final java.util.Map mCachedStrings
public void (com.android.apksig.apk.AndroidBinXmlParser$Chunk) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
int stringsSectionEndOffsetInContents
int stringsSectionStartOffsetInContents
int stringsSectionEndOffsetInContents
com.android.apksig.apk.AndroidBinXmlParser$Chunk chunk
java.nio.ByteBuffer header
int headerSizeBytes
long stringCount
long styleCount
long flags
long stringsStartOffset
long stylesStartOffset
java.nio.ByteBuffer contents
public java.lang.String getString (long) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
long index
int idx
String result
long offsetInStringsSection
private static java.lang.String getLengthPrefixedUtf16EncodedString (java.nio.ByteBuffer) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
byte[] arr
int arrOffset
java.io.UnsupportedEncodingException e
java.nio.ByteBuffer encoded
int lengthChars
int lengthBytes
byte[] arr
int arrOffset
private static java.lang.String getLengthPrefixedUtf8EncodedString (java.nio.ByteBuffer) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
byte[] arr
int arrOffset
java.io.UnsupportedEncodingException e
java.nio.ByteBuffer encoded
int lengthBytes
byte[] arr
int arrOffset
}
com/android/apksig/apk/ApkFormatException.classApkFormatException.java
package com.android.apksig.apk
public com.android.apksig.apk.ApkFormatException extends java.lang.Exception {
private static final long serialVersionUID
public void (java.lang.String)
String message
public void (java.lang.String, java.lang.Throwable)
String message
Throwable cause
}
com/android/apksig/apk/MinSdkVersionException.classMinSdkVersionException.java
package com.android.apksig.apk
public com.android.apksig.apk.MinSdkVersionException extends com.android.apksig.apk.ApkFormatException {
private static final long serialVersionUID
public void (java.lang.String)
String message
public void (java.lang.String, java.lang.Throwable)
String message
Throwable cause
}
com/android/apksig/apk/ApkUtils$1.classApkUtils.java
package com.android.apksig.apk
com.android.apksig.apk.ApkUtils$1 extends java.lang.Object {
}
com/android/apksig/apk/AndroidBinXmlParser$ResourceMap.classAndroidBinXmlParser.java
package com.android.apksig.apk
com.android.apksig.apk.AndroidBinXmlParser$ResourceMap extends java.lang.Object {
private final java.nio.ByteBuffer mChunkContents
private final int mEntryCount
public void (com.android.apksig.apk.AndroidBinXmlParser$Chunk) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
com.android.apksig.apk.AndroidBinXmlParser$Chunk chunk
public int getResourceId (long)
long index
int idx
}
com/android/apksig/apk/AndroidBinXmlParser$Chunk.classAndroidBinXmlParser.java
package com.android.apksig.apk
com.android.apksig.apk.AndroidBinXmlParser$Chunk extends java.lang.Object {
public static final int TYPE_STRING_POOL
public static final int TYPE_RES_XML
public static final int RES_XML_TYPE_START_ELEMENT
public static final int RES_XML_TYPE_END_ELEMENT
public static final int RES_XML_TYPE_RESOURCE_MAP
static final int HEADER_MIN_SIZE_BYTES
private final int mType
private final java.nio.ByteBuffer mHeader
private final java.nio.ByteBuffer mContents
public void (int, java.nio.ByteBuffer, java.nio.ByteBuffer)
int type
java.nio.ByteBuffer header
java.nio.ByteBuffer contents
public java.nio.ByteBuffer getContents ()
java.nio.ByteBuffer result
public java.nio.ByteBuffer getHeader ()
java.nio.ByteBuffer result
public int getType ()
public static com.android.apksig.apk.AndroidBinXmlParser$Chunk get (java.nio.ByteBuffer) throws com.android.apksig.apk.AndroidBinXmlParser$XmlParserException
java.nio.ByteBuffer input
int originalPosition
int type
int headerSize
long chunkSize
long chunkRemaining
int contentStartPosition
long chunkEndPosition
com.android.apksig.apk.AndroidBinXmlParser$Chunk chunk
}
com/android/apksig/apk/ApkUtils.classApkUtils.java
package com.android.apksig.apk
public abstract com.android.apksig.apk.ApkUtils extends java.lang.Object {
private static final String ANDROID_MANIFEST_ZIP_ENTRY_NAME
private static final int MIN_SDK_VERSION_ATTR_ID
private void ()
public static com.android.apksig.apk.ApkUtils$ZipSections findZipSections (com.android.apksig.util.DataSource) throws java.io.IOException com.android.apksig.zip.ZipFormatException
com.android.apksig.util.DataSource apk
com.android.apksig.internal.util.Pair eocdAndOffsetInFile
java.nio.ByteBuffer eocdBuf
long eocdOffset
long cdStartOffset
long cdSizeBytes
long cdEndOffset
int cdRecordCount
public static void setZipEocdCentralDirectoryOffset (java.nio.ByteBuffer, long)
java.nio.ByteBuffer zipEndOfCentralDirectory
long offset
java.nio.ByteBuffer eocd
public static int getMinSdkVersionFromBinaryAndroidManifest (java.nio.ByteBuffer) throws com.android.apksig.apk.MinSdkVersionException
int valueType
int i
int minSdkVersion
int result
com.android.apksig.apk.AndroidBinXmlParser parser
int eventType
com.android.apksig.apk.AndroidBinXmlParser$XmlParserException e
java.nio.ByteBuffer androidManifestContents
static int getMinSdkVersionForCodename (java.lang.String) throws com.android.apksig.apk.CodenameMinSdkVersionException
com.android.apksig.internal.util.Pair newestOlderCodenameMapping
char newestOlderCodenameFirstChar
int newestOlderCodenameApiLevel
com.android.apksig.internal.util.Pair[] sortedCodenamesFirstCharToApiLevel
int searchResult
int insertionIndex
String codename
char firstChar
}
com/android/apksig/apk/ApkUtils$ZipSections.classApkUtils.java
package com.android.apksig.apk
public com.android.apksig.apk.ApkUtils$ZipSections extends java.lang.Object {
private final long mCentralDirectoryOffset
private final long mCentralDirectorySizeBytes
private final int mCentralDirectoryRecordCount
private final long mEocdOffset
private final java.nio.ByteBuffer mEocd
public void (long, long, int, long, java.nio.ByteBuffer)
long centralDirectoryOffset
long centralDirectorySizeBytes
int centralDirectoryRecordCount
long eocdOffset
java.nio.ByteBuffer eocd
public long getZipCentralDirectoryOffset ()
public long getZipCentralDirectorySizeBytes ()
public int getZipCentralDirectoryRecordCount ()
public long getZipEndOfCentralDirectoryOffset ()
public java.nio.ByteBuffer getZipEndOfCentralDirectory ()
}
com/android/apksig/apk/CodenameMinSdkVersionException.classCodenameMinSdkVersionException.java
package com.android.apksig.apk
public com.android.apksig.apk.CodenameMinSdkVersionException extends com.android.apksig.apk.MinSdkVersionException {
private static final long serialVersionUID
private final String mCodename
public void (java.lang.String, java.lang.String)
String message
String codename
public java.lang.String getCodename ()
}
com/android/apksig/apk/AndroidBinXmlParser$XmlParserException.classAndroidBinXmlParser.java
package com.android.apksig.apk
com.android.apksig.apk.AndroidBinXmlParser$XmlParserException extends java.lang.Exception {
private static final long serialVersionUID
public void (java.lang.String)
String message
public void (java.lang.String, java.lang.Throwable)
String message
Throwable cause
}
com/android/apksig/apk/ApkUtils$CodenamesLazyInitializer$ByFirstComparator.classApkUtils.java
package com.android.apksig.apk
com.android.apksig.apk.ApkUtils$CodenamesLazyInitializer$ByFirstComparator extends java.lang.Object implements java.util.Comparator {
private void ()
public int compare (com.android.apksig.internal.util.Pair, com.android.apksig.internal.util.Pair)
com.android.apksig.internal.util.Pair o1
com.android.apksig.internal.util.Pair o2
char c1
char c2
public volatile int compare (java.lang.Object, java.lang.Object)
void (com.android.apksig.apk.ApkUtils$1)
com.android.apksig.apk.ApkUtils$1 x0
}
com/android/apksig/DefaultApkSignerEngine$SignerConfig.classDefaultApkSignerEngine.java
package com.android.apksig
public com.android.apksig.DefaultApkSignerEngine$SignerConfig extends java.lang.Object {
private final String mName
private final java.security.PrivateKey mPrivateKey
private final java.util.List mCertificates
private void (java.lang.String, java.security.PrivateKey, java.util.List)
String name
java.security.PrivateKey privateKey
java.util.List certificates
public java.lang.String getName ()
public java.security.PrivateKey getPrivateKey ()
public java.util.List getCertificates ()
void (java.lang.String, java.security.PrivateKey, java.util.List, com.android.apksig.DefaultApkSignerEngine$1)
String x0
java.security.PrivateKey x1
java.util.List x2
com.android.apksig.DefaultApkSignerEngine$1 x3
}
com/android/apksig/DefaultApkSignerEngine$GetJarEntryDataDigestRequest.classDefaultApkSignerEngine.java
package com.android.apksig
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataDigestRequest extends java.lang.Object implements com.android.apksig.ApkSignerEngine$InspectJarEntryRequest {
private final String mEntryName
private final String mJcaDigestAlgorithm
private final Object mLock
private boolean mDone
private com.android.apksig.util.DataSink mDataSink
private java.security.MessageDigest mMessageDigest
private byte[] mDigest
private void (java.lang.String, java.lang.String)
String entryName
String jcaDigestAlgorithm
public java.lang.String getEntryName ()
public com.android.apksig.util.DataSink getDataSink ()
private java.security.MessageDigest getMessageDigest ()
java.security.NoSuchAlgorithmException e
public void done ()
private boolean isDone ()
private void checkNotDone () throws java.lang.IllegalStateException
private byte[] getDigest ()
void (java.lang.String, java.lang.String, com.android.apksig.DefaultApkSignerEngine$1)
String x0
String x1
com.android.apksig.DefaultApkSignerEngine$1 x2
static boolean access$300 (com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataDigestRequest)
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataDigestRequest x0
static byte[] access$400 (com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataDigestRequest)
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataDigestRequest x0
}
com/android/apksig/ApkVerifier$IssueWithParams.classApkVerifier.java
package com.android.apksig
public com.android.apksig.ApkVerifier$IssueWithParams extends java.lang.Object {
private final com.android.apksig.ApkVerifier$Issue mIssue
private final Object[] mParams
public void (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue issue
Object[] params
public com.android.apksig.ApkVerifier$Issue getIssue ()
public java.lang.Object[] getParams ()
public java.lang.String toString ()
}
com/android/apksig/ApkSignerEngine.classApkSignerEngine.java
package com.android.apksig
public abstract com.android.apksig.ApkSignerEngine extends java.lang.Object implements java.io.Closeable {
public abstract void inputApkSigningBlock (com.android.apksig.util.DataSource) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.lang.IllegalStateException
public abstract com.android.apksig.ApkSignerEngine$InputJarEntryInstructions inputJarEntry (java.lang.String) throws java.lang.IllegalStateException
public abstract com.android.apksig.ApkSignerEngine$InspectJarEntryRequest outputJarEntry (java.lang.String) throws java.lang.IllegalStateException
public abstract com.android.apksig.ApkSignerEngine$InputJarEntryInstructions$OutputPolicy inputJarEntryRemoved (java.lang.String) throws java.lang.IllegalStateException
public abstract void outputJarEntryRemoved (java.lang.String) throws java.lang.IllegalStateException
public abstract com.android.apksig.ApkSignerEngine$OutputJarSignatureRequest outputJarEntries () throws com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException java.lang.IllegalStateException
public abstract com.android.apksig.ApkSignerEngine$OutputApkSigningBlockRequest outputZipSections (com.android.apksig.util.DataSource, com.android.apksig.util.DataSource, com.android.apksig.util.DataSource) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException java.lang.IllegalStateException
public abstract void outputDone () throws java.lang.IllegalStateException
public abstract void close ()
}
com/android/apksig/DefaultApkSignerEngine$OutputJarSignatureRequestImpl.classDefaultApkSignerEngine.java
package com.android.apksig
com.android.apksig.DefaultApkSignerEngine$OutputJarSignatureRequestImpl extends java.lang.Object implements com.android.apksig.ApkSignerEngine$OutputJarSignatureRequest {
private final java.util.List mAdditionalJarEntries
private volatile boolean mDone
private void (java.util.List)
java.util.List additionalZipEntries
public java.util.List getAdditionalJarEntries ()
public void done ()
private boolean isDone ()
static boolean access$600 (com.android.apksig.DefaultApkSignerEngine$OutputJarSignatureRequestImpl)
com.android.apksig.DefaultApkSignerEngine$OutputJarSignatureRequestImpl x0
void (java.util.List, com.android.apksig.DefaultApkSignerEngine$1)
java.util.List x0
com.android.apksig.DefaultApkSignerEngine$1 x1
}
com/android/apksig/ApkSigner$SignerConfig$Builder.classApkSigner.java
package com.android.apksig
public com.android.apksig.ApkSigner$SignerConfig$Builder extends java.lang.Object {
private final String mName
private final java.security.PrivateKey mPrivateKey
private final java.util.List mCertificates
public void (java.lang.String, java.security.PrivateKey, java.util.List)
String name
java.security.PrivateKey privateKey
java.util.List certificates
public com.android.apksig.ApkSigner$SignerConfig build ()
}
com/android/apksig/zip/
com/android/apksig/zip/ZipFormatException.classZipFormatException.java
package com.android.apksig.zip
public com.android.apksig.zip.ZipFormatException extends java.lang.Exception {
private static final long serialVersionUID
public void (java.lang.String)
String message
public void (java.lang.String, java.lang.Throwable)
String message
Throwable cause
}
com/android/apksig/DefaultApkSignerEngine$GetJarEntryDataRequest.classDefaultApkSignerEngine.java
package com.android.apksig
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest extends java.lang.Object implements com.android.apksig.ApkSignerEngine$InspectJarEntryRequest {
private final String mEntryName
private final Object mLock
private boolean mDone
private com.android.apksig.util.DataSink mDataSink
private java.io.ByteArrayOutputStream mDataSinkBuf
private void (java.lang.String)
String entryName
public java.lang.String getEntryName ()
public com.android.apksig.util.DataSink getDataSink ()
public void done ()
private boolean isDone ()
private void checkNotDone () throws java.lang.IllegalStateException
private byte[] getData ()
void (java.lang.String, com.android.apksig.DefaultApkSignerEngine$1)
String x0
com.android.apksig.DefaultApkSignerEngine$1 x1
static boolean access$200 (com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest)
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest x0
static byte[] access$500 (com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest)
com.android.apksig.DefaultApkSignerEngine$GetJarEntryDataRequest x0
}
com/android/apksig/ApkSignerEngine$OutputApkSigningBlockRequest.classApkSignerEngine.java
package com.android.apksig
public abstract com.android.apksig.ApkSignerEngine$OutputApkSigningBlockRequest extends java.lang.Object {
public abstract byte[] getApkSigningBlock ()
public abstract void done ()
}
com/android/apksig/ApkVerifier.classApkVerifier.java
package com.android.apksig
public com.android.apksig.ApkVerifier extends java.lang.Object {
private static final int APK_SIGNATURE_SCHEME_V2_ID
private static final java.util.Map SUPPORTED_APK_SIG_SCHEME_NAMES
private final java.io.File mApkFile
private final com.android.apksig.util.DataSource mApkDataSource
private final Integer mMinSdkVersion
private final int mMaxSdkVersion
private void (java.io.File, com.android.apksig.util.DataSource, java.lang.Integer, int)
java.io.File apkFile
com.android.apksig.util.DataSource apkDataSource
Integer minSdkVersion
int maxSdkVersion
public com.android.apksig.ApkVerifier$Result verify () throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException java.lang.IllegalStateException
com.android.apksig.util.DataSource apk
java.io.RandomAccessFile f
com.android.apksig.util.DataSource apk
com.android.apksig.util.DataSource apk
java.io.Closeable in
private com.android.apksig.ApkVerifier$Result verify (com.android.apksig.util.DataSource) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException
com.android.apksig.apk.ApkUtils$ZipSections zipSections
com.android.apksig.zip.ZipFormatException e
int minSdkVersion
java.util.List cdRecords
com.android.apksig.apk.ApkFormatException e
java.util.List cdRecords
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result v2Result
java.util.Set foundApkSigSchemeIds
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result v1Result
java.security.cert.CertificateEncodingException e
com.android.apksig.ApkVerifier$Result$V1SchemeSignerInfo signer
java.security.cert.CertificateEncodingException e
com.android.apksig.ApkVerifier$Result$V2SchemeSignerInfo signer
com.android.apksig.ApkVerifier$Result$V1SchemeSignerInfo v1Signer
com.android.apksig.ApkVerifier$ByteArray v1Cert
int i
com.android.apksig.ApkVerifier$Result$V2SchemeSignerInfo v2Signer
com.android.apksig.ApkVerifier$ByteArray v2Cert
int i
java.util.ArrayList v1Signers
java.util.ArrayList v2Signers
java.util.ArrayList v1SignerCerts
java.util.ArrayList v2SignerCerts
com.android.apksig.ApkVerifier$Result$V2SchemeSignerInfo signerInfo
com.android.apksig.ApkVerifier$Result$V1SchemeSignerInfo signerInfo
com.android.apksig.util.DataSource apk
com.android.apksig.apk.ApkUtils$ZipSections zipSections
int minSdkVersion
int maxSdkVersion
com.android.apksig.ApkVerifier$Result result
java.util.Set foundApkSigSchemeIds
void (java.io.File, com.android.apksig.util.DataSource, java.lang.Integer, int, com.android.apksig.ApkVerifier$1)
java.io.File x0
com.android.apksig.util.DataSource x1
Integer x2
int x3
com.android.apksig.ApkVerifier$1 x4
static void ()
}
com/android/apksig/util/
com/android/apksig/util/DataSink.classDataSink.java
package com.android.apksig.util
public abstract com.android.apksig.util.DataSink extends java.lang.Object {
public abstract void consume (byte[], int, int) throws java.io.IOException
public abstract void consume (java.nio.ByteBuffer) throws java.io.IOException
}
com/android/apksig/util/ReadableDataSink.classReadableDataSink.java
package com.android.apksig.util
public abstract com.android.apksig.util.ReadableDataSink extends java.lang.Object implements com.android.apksig.util.DataSink com.android.apksig.util.DataSource {
}
com/android/apksig/util/DataSinks.classDataSinks.java
package com.android.apksig.util
public abstract com.android.apksig.util.DataSinks extends java.lang.Object {
private void ()
public static com.android.apksig.util.DataSink asDataSink (java.io.OutputStream)
java.io.OutputStream out
public static com.android.apksig.util.DataSink asDataSink (java.io.RandomAccessFile)
java.io.RandomAccessFile file
public static com.android.apksig.util.ReadableDataSink newInMemoryDataSink ()
public static com.android.apksig.util.ReadableDataSink newInMemoryDataSink (int)
int initialCapacity
}
com/android/apksig/util/DataSource.classDataSource.java
package com.android.apksig.util
public abstract com.android.apksig.util.DataSource extends java.lang.Object {
public abstract long size ()
public abstract void feed (long, long, com.android.apksig.util.DataSink) throws java.io.IOException
public abstract java.nio.ByteBuffer getByteBuffer (long, int) throws java.io.IOException
public abstract void copyTo (long, int, java.nio.ByteBuffer) throws java.io.IOException
public abstract com.android.apksig.util.DataSource slice (long, long)
}
com/android/apksig/util/DataSources.classDataSources.java
package com.android.apksig.util
public abstract com.android.apksig.util.DataSources extends java.lang.Object {
private void ()
public static com.android.apksig.util.DataSource asDataSource (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
public static com.android.apksig.util.DataSource asDataSource (java.io.RandomAccessFile)
java.io.RandomAccessFile file
public static com.android.apksig.util.DataSource asDataSource (java.io.RandomAccessFile, long, long)
java.io.RandomAccessFile file
long offset
long size
}
com/android/apksig/DefaultApkSignerEngine$SignerConfig$Builder.classDefaultApkSignerEngine.java
package com.android.apksig
public com.android.apksig.DefaultApkSignerEngine$SignerConfig$Builder extends java.lang.Object {
private final String mName
private final java.security.PrivateKey mPrivateKey
private final java.util.List mCertificates
public void (java.lang.String, java.security.PrivateKey, java.util.List)
String name
java.security.PrivateKey privateKey
java.util.List certificates
public com.android.apksig.DefaultApkSignerEngine$SignerConfig build ()
}
com/android/apksig/internal/
com/android/apksig/internal/apk/
com/android/apksig/internal/apk/v1/
com/android/apksig/internal/apk/v1/V1SchemeSigner.classV1SchemeSigner.java
package com.android.apksig.internal.apk.v1
public abstract com.android.apksig.internal.apk.v1.V1SchemeSigner extends java.lang.Object {
public static final String MANIFEST_ENTRY_NAME
private static final java.util.jar.Attributes$Name ATTRIBUTE_NAME_CREATED_BY
private static final String ATTRIBUTE_VALUE_MANIFEST_VERSION
private static final String ATTRIBUTE_VALUE_SIGNATURE_VERSION
static final String SF_ATTRIBUTE_NAME_ANDROID_APK_SIGNED_NAME_STR
private static final java.util.jar.Attributes$Name SF_ATTRIBUTE_NAME_ANDROID_APK_SIGNED_NAME
private static final sun.security.x509.AlgorithmId OID_DIGEST_SHA1
private static final sun.security.x509.AlgorithmId OID_DIGEST_SHA256
private void ()
public static com.android.apksig.internal.apk.v1.DigestAlgorithm getSuggestedSignatureDigestAlgorithm (java.security.PublicKey, int) throws java.security.InvalidKeyException
java.security.PublicKey signingKey
int minSdkVersion
String keyAlgorithm
public static java.lang.String getSafeSignerName (java.lang.String)
char c
int i
String name
StringBuilder result
char[] nameCharsUpperCase
private static java.security.MessageDigest getMessageDigestInstance (com.android.apksig.internal.apk.v1.DigestAlgorithm) throws java.security.NoSuchAlgorithmException
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
String jcaAlgorithm
public static java.lang.String getJcaMessageDigestAlgorithm (com.android.apksig.internal.apk.v1.DigestAlgorithm)
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
public static boolean isJarEntryDigestNeededInManifest (java.lang.String)
String entryName
String fileNameLowerCase
public static java.util.List sign (java.util.List, com.android.apksig.internal.apk.v1.DigestAlgorithm, java.util.Map, java.util.List, byte[], java.lang.String) throws java.security.NoSuchAlgorithmException com.android.apksig.apk.ApkFormatException java.security.InvalidKeyException java.security.cert.CertificateException java.security.SignatureException
java.util.List signerConfigs
com.android.apksig.internal.apk.v1.DigestAlgorithm jarEntryDigestAlgorithm
java.util.Map jarEntryDigests
java.util.List apkSigningSchemeIds
byte[] sourceManifestBytes
String createdBy
com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile manifest
public static java.util.List signManifest (java.util.List, com.android.apksig.internal.apk.v1.DigestAlgorithm, java.util.List, java.lang.String, com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile) throws java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.cert.CertificateException java.security.SignatureException
byte[] signatureBlock
java.security.InvalidKeyException e
java.security.cert.CertificateException e
java.security.SignatureException e
String signerName
byte[] signatureBlock
java.security.PublicKey publicKey
String signatureBlockFileName
com.android.apksig.internal.apk.v1.V1SchemeSigner$SignerConfig signerConfig
java.util.List signerConfigs
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
java.util.List apkSigningSchemeIds
String createdBy
com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile manifest
java.util.List signatureJarEntries
byte[] sfBytes
public static java.util.Set getOutputEntryNames (java.util.List)
String signerName
java.security.PublicKey publicKey
String signatureBlockFileName
com.android.apksig.internal.apk.v1.V1SchemeSigner$SignerConfig signerConfig
java.util.List signerConfigs
java.util.Set result
public static com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile generateManifestFile (com.android.apksig.internal.apk.v1.DigestAlgorithm, java.util.Map, byte[]) throws com.android.apksig.apk.ApkFormatException
java.io.IOException e
java.io.IOException e
byte[] sectionBytes
java.io.IOException e
byte[] entryDigest
java.util.jar.Attributes entryAttrs
java.io.ByteArrayOutputStream sectionOut
byte[] sectionBytes
String entryName
com.android.apksig.internal.apk.v1.DigestAlgorithm jarEntryDigestAlgorithm
java.util.Map jarEntryDigests
byte[] sourceManifestBytes
java.util.jar.Manifest sourceManifest
java.io.ByteArrayOutputStream manifestOut
java.util.jar.Attributes mainAttrs
java.util.List sortedEntryNames
java.util.SortedMap invidualSectionsContents
String entryDigestAttributeName
com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile result
private static byte[] generateSignatureFile (java.util.List, com.android.apksig.internal.apk.v1.DigestAlgorithm, java.lang.String, com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile) throws java.security.NoSuchAlgorithmException
int id
StringBuilder attrValue
java.io.IOException e
java.io.IOException e
String sectionName
byte[] sectionContents
byte[] sectionDigest
java.util.jar.Attributes attrs
java.util.Map$Entry manifestSection
java.io.IOException e
java.util.List apkSignatureSchemeIds
com.android.apksig.internal.apk.v1.DigestAlgorithm manifestDigestAlgorithm
String createdBy
com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile manifest
java.util.jar.Manifest sf
java.util.jar.Attributes mainAttrs
java.security.MessageDigest md
java.io.ByteArrayOutputStream out
String entryDigestAttributeName
private static byte[] generateSignatureBlock (com.android.apksig.internal.apk.v1.V1SchemeSigner$SignerConfig, byte[]) throws java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.cert.CertificateException java.security.SignatureException
java.security.Signature signature
byte[] signatureBytes
java.security.InvalidKeyException e
java.security.SignatureException e
java.security.Signature signature
java.security.InvalidKeyException e
java.security.SignatureException e
sun.security.x509.X500Name issuerName
java.io.IOException e
java.io.IOException e
com.android.apksig.internal.apk.v1.V1SchemeSigner$SignerConfig signerConfig
byte[] signatureFileBytes
java.util.List signerCerts
java.security.cert.X509Certificate signerCert
java.security.PublicKey signerPublicKey
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
com.android.apksig.internal.util.Pair signatureAlgs
String jcaSignatureAlgorithm
byte[] signatureBytes
sun.security.x509.X500Name issuerName
sun.security.x509.AlgorithmId digestAlgorithmId
sun.security.pkcs.SignerInfo signerInfo
sun.security.pkcs.PKCS7 pkcs7
java.io.ByteArrayOutputStream result
private static sun.security.x509.AlgorithmId getSignerInfoDigestAlgorithm (com.android.apksig.internal.apk.v1.DigestAlgorithm)
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
private static com.android.apksig.internal.util.Pair getSignerInfoSignatureAlgorithm (java.security.PublicKey, com.android.apksig.internal.apk.v1.DigestAlgorithm) throws java.security.InvalidKeyException
String digestPrefixForSigAlg
String digestPrefixForSigAlg
sun.security.x509.AlgorithmId sigAlgId
sun.security.x509.AlgorithmId sigAlgId
sun.security.x509.AlgorithmId sigAlgId
java.security.PublicKey publicKey
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
String keyAlgorithm
String digestPrefixForSigAlg
private static sun.security.x509.AlgorithmId getSupportedAlgorithmId (java.lang.String)
java.security.NoSuchAlgorithmException e
String oid
private static java.lang.String getEntryDigestAttributeName (com.android.apksig.internal.apk.v1.DigestAlgorithm)
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
private static java.lang.String getManifestDigestAttributeName (com.android.apksig.internal.apk.v1.DigestAlgorithm)
com.android.apksig.internal.apk.v1.DigestAlgorithm digestAlgorithm
static void ()
}
com/android/apksig/internal/apk/v1/V1SchemeVerifier$1.classV1SchemeVerifier.java
package com.android.apksig.internal.apk.v1
com.android.apksig.internal.apk.v1.V1SchemeVerifier$1 extends java.lang.Object {
}
com/android/apksig/internal/apk/v1/DigestAlgorithm$StrengthComparator.classDigestAlgorithm.java
package com.android.apksig.internal.apk.v1
com.android.apksig.internal.apk.v1.DigestAlgorithm$StrengthComparator extends java.lang.Object implements java.util.Comparator {
private void ()
public int compare (com.android.apksig.internal.apk.v1.DigestAlgorithm, com.android.apksig.internal.apk.v1.DigestAlgorithm)
com.android.apksig.internal.apk.v1.DigestAlgorithm a1
com.android.apksig.internal.apk.v1.DigestAlgorithm a2
public volatile int compare (java.lang.Object, java.lang.Object)
void (com.android.apksig.internal.apk.v1.DigestAlgorithm$1)
com.android.apksig.internal.apk.v1.DigestAlgorithm$1 x0
}
com/android/apksig/internal/apk/v1/DigestAlgorithm$1.classDigestAlgorithm.java
package com.android.apksig.internal.apk.v1
com.android.apksig.internal.apk.v1.DigestAlgorithm$1 extends java.lang.Object {
static final int[] $SwitchMap$com$android$apksig$internal$apk$v1$DigestAlgorithm
static void ()
}
com/android/apksig/internal/apk/v1/V1SchemeVerifier$Result.classV1SchemeVerifier.java
package com.android.apksig.internal.apk.v1
public com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result extends java.lang.Object {
public boolean verified
public final java.util.List signers
public final java.util.List ignoredSigners
private final java.util.List mWarnings
private final java.util.List mErrors
public void ()
private boolean containsErrors ()
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo signer
private transient void addError (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
private transient void addWarning (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
public java.util.List getErrors ()
public java.util.List getWarnings ()
static boolean access$000 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result x0
static void access$200 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result, com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result x0
com.android.apksig.ApkVerifier$Issue x1
Object[] x2
static void access$300 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result, com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result x0
com.android.apksig.ApkVerifier$Issue x1
Object[] x2
}
com/android/apksig/internal/apk/v1/V1SchemeVerifier$NamedDigest.classV1SchemeVerifier.java
package com.android.apksig.internal.apk.v1
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest extends java.lang.Object {
private final String jcaDigestAlgorithm
private final byte[] digest
private void (java.lang.String, byte[])
String jcaDigestAlgorithm
byte[] digest
static java.lang.String access$1100 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest x0
static byte[] access$1300 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest x0
void (java.lang.String, byte[], com.android.apksig.internal.apk.v1.V1SchemeVerifier$1)
String x0
byte[] x1
com.android.apksig.internal.apk.v1.V1SchemeVerifier$1 x2
}
com/android/apksig/internal/apk/v1/V1SchemeSigner$1.classV1SchemeSigner.java
package com.android.apksig.internal.apk.v1
com.android.apksig.internal.apk.v1.V1SchemeSigner$1 extends java.lang.Object {
static final int[] $SwitchMap$com$android$apksig$internal$apk$v1$DigestAlgorithm
static void ()
}
com/android/apksig/internal/apk/v1/V1SchemeVerifier$Signer.classV1SchemeVerifier.java
package com.android.apksig.internal.apk.v1
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer extends java.lang.Object {
private final String mName
private final com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo mResult
private final com.android.apksig.internal.zip.CentralDirectoryRecord mSignatureFileEntry
private final com.android.apksig.internal.zip.CentralDirectoryRecord mSignatureBlockEntry
private boolean mIgnored
private byte[] mSigFileBytes
private java.util.Set mSigFileEntryNames
private static final String OID_DIGEST_MD5
private static final String OID_DIGEST_SHA1
private static final String OID_DIGEST_SHA224
private static final String OID_DIGEST_SHA256
private static final String OID_DIGEST_SHA384
private static final String OID_DIGEST_SHA512
private static final String OID_SIG_RSA
private static final String OID_SIG_MD5_WITH_RSA
private static final String OID_SIG_SHA1_WITH_RSA
private static final String OID_SIG_SHA224_WITH_RSA
private static final String OID_SIG_SHA256_WITH_RSA
private static final String OID_SIG_SHA384_WITH_RSA
private static final String OID_SIG_SHA512_WITH_RSA
private static final String OID_SIG_DSA
private static final String OID_SIG_SHA1_WITH_DSA
private static final String OID_SIG_SHA224_WITH_DSA
private static final String OID_SIG_SHA256_WITH_DSA
private static final String OID_SIG_EC_PUBLIC_KEY
private static final String OID_SIG_SHA1_WITH_ECDSA
private static final String OID_SIG_SHA224_WITH_ECDSA
private static final String OID_SIG_SHA256_WITH_ECDSA
private static final String OID_SIG_SHA384_WITH_ECDSA
private static final String OID_SIG_SHA512_WITH_ECDSA
private static final java.util.Map SUPPORTED_SIG_ALG_OIDS
private void (java.lang.String, com.android.apksig.internal.zip.CentralDirectoryRecord, com.android.apksig.internal.zip.CentralDirectoryRecord, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo)
String name
com.android.apksig.internal.zip.CentralDirectoryRecord sigBlockEntry
com.android.apksig.internal.zip.CentralDirectoryRecord sigFileEntry
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo result
public java.lang.String getName ()
public java.lang.String getSignatureFileEntryName ()
public java.lang.String getSignatureBlockEntryName ()
void setIgnored ()
public boolean isIgnored ()
public java.util.Set getSigFileEntryNames ()
public com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo getResult ()
public void verifySigBlockAgainstSigFile (com.android.apksig.util.DataSource, long, int, int) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException
byte[] sigBlockBytes
com.android.apksig.zip.ZipFormatException e
com.android.apksig.zip.ZipFormatException e
sun.security.pkcs.PKCS7 sigBlock
java.io.IOException e
java.security.SignatureException e
sun.security.pkcs.SignerInfo unverifiedSignerInfo
String digestAlgorithmOid
String signatureAlgorithmOid
com.android.apksig.internal.util.InclusiveIntRange desiredApiLevels
java.util.List apiLevelsWhereDigestAndSigAlgorithmSupported
java.util.List apiLevelsWhereDigestAlgorithmNotSupported
int i
java.util.List certChain
java.io.IOException e
com.android.apksig.util.DataSource apk
long cdStartOffset
int minSdkVersion
int maxSdkVersion
byte[] sigBlockBytes
sun.security.pkcs.PKCS7 sigBlock
sun.security.pkcs.SignerInfo[] unverifiedSignerInfos
sun.security.pkcs.SignerInfo verifiedSignerInfo
java.util.List certChain
private static transient void addSupportedSigAlg (java.lang.String, java.lang.String, com.android.apksig.internal.util.InclusiveIntRange[])
String digestAlgorithmOid
String signatureAlgorithmOid
com.android.apksig.internal.util.InclusiveIntRange[] supportedApiLevels
private java.util.List getSigAlgSupportedApiLevels (java.lang.String, java.lang.String)
String digestAlgorithmOid
String signatureAlgorithmOid
java.util.List result
public void verifySigFileAgainstManifest (byte[], com.android.apksig.internal.jar.ManifestParser$Section, java.util.Map, java.util.Map, java.util.Set, int, int) throws java.security.NoSuchAlgorithmException
String entryName
com.android.apksig.internal.jar.ManifestParser$Section manifestSection
com.android.apksig.internal.jar.ManifestParser$Section sfSection
byte[] manifestBytes
com.android.apksig.internal.jar.ManifestParser$Section manifestMainSection
java.util.Map entryNameToManifestSection
java.util.Map supportedApkSigSchemeNames
java.util.Set foundApkSigSchemeIds
int minSdkVersion
int maxSdkVersion
com.android.apksig.internal.jar.ManifestParser sf
com.android.apksig.internal.jar.ManifestParser$Section sfMainSection
boolean createdBySigntool
String createdBy
boolean manifestDigestVerified
java.util.List sfSections
java.util.Set sfEntryNames
int sfSectionNumber
private boolean verifyManifestDigest (com.android.apksig.internal.jar.ManifestParser$Section, boolean, byte[], int, int) throws java.security.NoSuchAlgorithmException
String jcaDigestAlgorithm
byte[] actual
byte[] expected
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest expectedDigest
com.android.apksig.internal.jar.ManifestParser$Section sfMainSection
boolean createdBySigntool
byte[] manifestBytes
int minSdkVersion
int maxSdkVersion
java.util.Collection expectedDigests
boolean digestFound
boolean verified
private void verifyManifestMainSectionDigest (com.android.apksig.internal.jar.ManifestParser$Section, com.android.apksig.internal.jar.ManifestParser$Section, byte[], int, int) throws java.security.NoSuchAlgorithmException
String jcaDigestAlgorithm
byte[] actual
byte[] expected
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest expectedDigest
com.android.apksig.internal.jar.ManifestParser$Section sfMainSection
com.android.apksig.internal.jar.ManifestParser$Section manifestMainSection
byte[] manifestBytes
int minSdkVersion
int maxSdkVersion
java.util.Collection expectedDigests
private void verifyManifestIndividualSectionDigest (com.android.apksig.internal.jar.ManifestParser$Section, boolean, com.android.apksig.internal.jar.ManifestParser$Section, byte[], int, int) throws java.security.NoSuchAlgorithmException
int sectionEndIndex
String jcaDigestAlgorithm
byte[] actual
byte[] expected
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest expectedDigest
com.android.apksig.internal.jar.ManifestParser$Section sfIndividualSection
boolean createdBySigntool
com.android.apksig.internal.jar.ManifestParser$Section manifestIndividualSection
byte[] manifestBytes
int minSdkVersion
int maxSdkVersion
String entryName
java.util.Collection expectedDigests
int sectionStartIndex
int sectionSizeBytes
private void checkForStrippedApkSignatures (com.android.apksig.internal.jar.ManifestParser$Section, java.util.Map, java.util.Set)
int id
Exception ignored
String idText
int id
String apkSigSchemeName
int id
com.android.apksig.internal.jar.ManifestParser$Section sfMainSection
java.util.Map supportedApkSigSchemeNames
java.util.Set foundApkSigSchemeIds
String signedWithApkSchemes
java.util.Set supportedApkSigSchemeIds
java.util.Set supportedExpectedApkSigSchemeIds
java.util.StringTokenizer tokenizer
void (java.lang.String, com.android.apksig.internal.zip.CentralDirectoryRecord, com.android.apksig.internal.zip.CentralDirectoryRecord, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo, com.android.apksig.internal.apk.v1.V1SchemeVerifier$1)
String x0
com.android.apksig.internal.zip.CentralDirectoryRecord x1
com.android.apksig.internal.zip.CentralDirectoryRecord x2
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo x3
com.android.apksig.internal.apk.v1.V1SchemeVerifier$1 x4
static void ()
}
com/android/apksig/internal/apk/v1/V1SchemeSigner$OutputManifestFile.classV1SchemeSigner.java
package com.android.apksig.internal.apk.v1
public com.android.apksig.internal.apk.v1.V1SchemeSigner$OutputManifestFile extends java.lang.Object {
public byte[] contents
public java.util.SortedMap individualSectionsContents
public java.util.jar.Attributes mainSectionAttributes
public void ()
}
com/android/apksig/internal/apk/v1/V1SchemeVerifier$Signers.classV1SchemeVerifier.java
package com.android.apksig.internal.apk.v1
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signers extends java.lang.Object {
private void ()
private static void verify (com.android.apksig.util.DataSource, long, java.util.List, java.util.Set, java.util.Map, java.util.Set, int, int, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result) throws com.android.apksig.apk.ApkFormatException java.io.IOException java.security.NoSuchAlgorithmException
String entryName
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
byte[] manifestBytes
com.android.apksig.zip.ZipFormatException e
String entryName
com.android.apksig.internal.jar.ManifestParser$Section manifestSection
String sigBlockEntryName
int extensionDelimiterIndex
String sigFileEntryName
com.android.apksig.internal.zip.CentralDirectoryRecord sigFileEntry
String signerName
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo signerInfo
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer signer
com.android.apksig.internal.zip.CentralDirectoryRecord sigBlockEntry
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer signer
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer signer
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer signer
String entryName
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer signer
com.android.apksig.util.DataSource apk
long cdStartOffset
java.util.List cdRecords
java.util.Set cdEntryNames
java.util.Map supportedApkSigSchemeNames
java.util.Set foundApkSigSchemeIds
int minSdkVersion
int maxSdkVersion
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result result
com.android.apksig.internal.zip.CentralDirectoryRecord manifestEntry
java.util.Map sigFileEntries
java.util.List sigBlockEntries
byte[] manifestBytes
java.util.Map entryNameToManifestSection
com.android.apksig.internal.jar.ManifestParser manifest
com.android.apksig.internal.jar.ManifestParser$Section manifestMainSection
java.util.List manifestIndividualSections
int manifestSectionNumber
java.util.List signers
java.util.List remainingSigners
java.util.Set apkSigners
java.util.Set signatureEntryNames
static void access$100 (com.android.apksig.util.DataSource, long, java.util.List, java.util.Set, java.util.Map, java.util.Set, int, int, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result) throws com.android.apksig.apk.ApkFormatException java.io.IOException java.security.NoSuchAlgorithmException
com.android.apksig.util.DataSource x0
long x1
java.util.List x2
java.util.Set x3
java.util.Map x4
java.util.Set x5
int x6
int x7
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result x8
}
com/android/apksig/internal/apk/v1/V1SchemeVerifier$Result$SignerInfo.classV1SchemeVerifier.java
package com.android.apksig.internal.apk.v1
public com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo extends java.lang.Object {
public final String name
public final String signatureFileName
public final String signatureBlockFileName
public final java.util.List certChain
private final java.util.List mWarnings
private final java.util.List mErrors
private void (java.lang.String, java.lang.String, java.lang.String)
String name
String signatureBlockFileName
String signatureFileName
private boolean containsErrors ()
private transient void addError (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
private transient void addWarning (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
public java.util.List getErrors ()
public java.util.List getWarnings ()
void (java.lang.String, java.lang.String, java.lang.String, com.android.apksig.internal.apk.v1.V1SchemeVerifier$1)
String x0
String x1
String x2
com.android.apksig.internal.apk.v1.V1SchemeVerifier$1 x3
static boolean access$600 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo x0
static void access$800 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo, com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo x0
com.android.apksig.ApkVerifier$Issue x1
Object[] x2
static void access$1000 (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo, com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo x0
com.android.apksig.ApkVerifier$Issue x1
Object[] x2
}
com/android/apksig/internal/apk/v1/V1SchemeVerifier.classV1SchemeVerifier.java
package com.android.apksig.internal.apk.v1
public abstract com.android.apksig.internal.apk.v1.V1SchemeVerifier extends java.lang.Object {
private static final String MANIFEST_ENTRY_NAME
private static final String[] JB_MR2_AND_NEWER_DIGEST_ALGS
private static final java.util.Map UPPER_CASE_JCA_DIGEST_ALG_TO_CANONICAL
private static final java.util.Map MIN_SDK_VESION_FROM_WHICH_DIGEST_SUPPORTED_IN_MANIFEST
private void ()
public static com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result verify (com.android.apksig.util.DataSource, com.android.apksig.apk.ApkUtils$ZipSections, java.util.Map, java.util.Set, int, int) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException
com.android.apksig.util.DataSource apk
com.android.apksig.apk.ApkUtils$ZipSections apkSections
java.util.Map supportedApkSigSchemeNames
java.util.Set foundApkSigSchemeIds
int minSdkVersion
int maxSdkVersion
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result result
java.util.List cdRecords
java.util.Set cdEntryNames
private static java.util.Set checkForDuplicateEntries (java.util.List, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result)
String entryName
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
java.util.List cdRecords
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result result
java.util.Set cdEntryNames
java.util.Set duplicateCdEntryNames
private static java.util.Collection getDigestsToVerify (com.android.apksig.internal.jar.ManifestParser$Section, java.lang.String, int, int)
String alg
String attrName
String digestBase64
String algs
java.util.StringTokenizer tokens
String attrName
String digestBase64
byte[] digest
byte[] digestInResult
String alg
com.android.apksig.internal.jar.ManifestParser$Section section
String digestAttrSuffix
int minSdkVersion
int maxSdkVersion
java.util.Base64$Decoder base64Decoder
java.util.List result
private static java.lang.String getCanonicalJcaMessageDigestAlgorithm (java.lang.String)
String algorithm
public static int getMinSdkVersionFromWhichSupportedInManifestOrSignatureFile (java.lang.String)
String jcaAlgorithmName
Integer result
private static java.lang.String getJarDigestAttributeName (java.lang.String, java.lang.String)
String jcaDigestAlgorithm
String attrNameSuffix
private static byte[] getDigest (java.util.Collection, java.lang.String)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest digest
java.util.Collection digests
String jcaDigestAlgorithm
public static java.util.List parseZipCentralDirectory (com.android.apksig.util.DataSource, com.android.apksig.apk.ApkUtils$ZipSections) throws java.io.IOException com.android.apksig.apk.ApkFormatException
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
com.android.apksig.zip.ZipFormatException e
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
int offsetInsideCd
String entryName
int i
com.android.apksig.util.DataSource apk
com.android.apksig.apk.ApkUtils$ZipSections apkSections
long cdSizeBytes
long cdOffset
java.nio.ByteBuffer cd
int expectedCdRecordCount
java.util.List cdRecords
private static boolean isJarEntryDigestNeededInManifest (java.lang.String)
String entryName
private static java.util.Set verifyJarEntriesAgainstManifestAndSigners (com.android.apksig.util.DataSource, long, java.util.Collection, java.util.Map, java.util.List, int, int, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result) throws com.android.apksig.apk.ApkFormatException java.io.IOException java.security.NoSuchAlgorithmException
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer signer
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest expectedDigest
com.android.apksig.zip.ZipFormatException e
java.io.IOException e
byte[] actualDigest
com.android.apksig.internal.apk.v1.V1SchemeVerifier$NamedDigest expectedDigest
String entryName
com.android.apksig.internal.jar.ManifestParser$Section manifestSection
java.util.List entrySigners
java.util.Collection expectedDigests
java.security.MessageDigest[] mds
int mdIndex
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
com.android.apksig.util.DataSource apk
long cdOffsetInApk
java.util.Collection cdRecords
java.util.Map entryNameToManifestSection
java.util.List signers
int minSdkVersion
int maxSdkVersion
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result result
java.util.List cdRecordsSortedByLocalFileHeaderOffset
java.util.Set manifestEntryNamesMissingFromApk
java.util.List firstSignedEntrySigners
String firstSignedEntryName
private static java.util.List getSignerNames (java.util.List)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Signer signer
java.util.List signers
java.util.List result
private static java.security.MessageDigest getMessageDigest (java.lang.String) throws java.security.NoSuchAlgorithmException
String algorithm
private static byte[] digest (java.lang.String, byte[], int, int) throws java.security.NoSuchAlgorithmException
String algorithm
byte[] data
int offset
int length
java.security.MessageDigest md
private static byte[] digest (java.lang.String, byte[]) throws java.security.NoSuchAlgorithmException
String algorithm
byte[] data
static java.util.Set access$700 (com.android.apksig.util.DataSource, long, java.util.Collection, java.util.Map, java.util.List, int, int, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result) throws com.android.apksig.apk.ApkFormatException java.io.IOException java.security.NoSuchAlgorithmException
com.android.apksig.util.DataSource x0
long x1
java.util.Collection x2
java.util.Map x3
java.util.List x4
int x5
int x6
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result x7
static java.util.Collection access$900 (com.android.apksig.internal.jar.ManifestParser$Section, java.lang.String, int, int)
com.android.apksig.internal.jar.ManifestParser$Section x0
String x1
int x2
int x3
static byte[] access$1200 (java.lang.String, byte[]) throws java.security.NoSuchAlgorithmException
String x0
byte[] x1
static byte[] access$1400 (java.lang.String, byte[], int, int) throws java.security.NoSuchAlgorithmException
String x0
byte[] x1
int x2
int x3
static void ()
}
com/android/apksig/internal/apk/v1/V1SchemeSigner$SignerConfig.classV1SchemeSigner.java
package com.android.apksig.internal.apk.v1
public com.android.apksig.internal.apk.v1.V1SchemeSigner$SignerConfig extends java.lang.Object {
public String name
public java.security.PrivateKey privateKey
public java.util.List certificates
public com.android.apksig.internal.apk.v1.DigestAlgorithm signatureDigestAlgorithm
public void ()
}
com/android/apksig/internal/apk/v1/DigestAlgorithm.classDigestAlgorithm.java
package com.android.apksig.internal.apk.v1
public final com.android.apksig.internal.apk.v1.DigestAlgorithm extends java.lang.Enum {
public static final com.android.apksig.internal.apk.v1.DigestAlgorithm SHA1
public static final com.android.apksig.internal.apk.v1.DigestAlgorithm SHA256
private final String mJcaMessageDigestAlgorithm
public static java.util.Comparator BY_STRENGTH_COMPARATOR
private static final com.android.apksig.internal.apk.v1.DigestAlgorithm[] $VALUES
public static com.android.apksig.internal.apk.v1.DigestAlgorithm[] values ()
public static com.android.apksig.internal.apk.v1.DigestAlgorithm valueOf (java.lang.String)
String name
private void (java.lang.String, int, java.lang.String)
String jcaMessageDigestAlgoritm
java.lang.String getJcaMessageDigestAlgorithm ()
static void ()
}
com/android/apksig/internal/apk/v2/
com/android/apksig/internal/apk/v2/SignatureAlgorithm.classSignatureAlgorithm.java
package com.android.apksig.internal.apk.v2
public final com.android.apksig.internal.apk.v2.SignatureAlgorithm extends java.lang.Enum {
public static final com.android.apksig.internal.apk.v2.SignatureAlgorithm RSA_PSS_WITH_SHA256
public static final com.android.apksig.internal.apk.v2.SignatureAlgorithm RSA_PSS_WITH_SHA512
public static final com.android.apksig.internal.apk.v2.SignatureAlgorithm RSA_PKCS1_V1_5_WITH_SHA256
public static final com.android.apksig.internal.apk.v2.SignatureAlgorithm RSA_PKCS1_V1_5_WITH_SHA512
public static final com.android.apksig.internal.apk.v2.SignatureAlgorithm ECDSA_WITH_SHA256
public static final com.android.apksig.internal.apk.v2.SignatureAlgorithm ECDSA_WITH_SHA512
public static final com.android.apksig.internal.apk.v2.SignatureAlgorithm DSA_WITH_SHA256
private final int mId
private final String mJcaKeyAlgorithm
private final com.android.apksig.internal.apk.v2.ContentDigestAlgorithm mContentDigestAlgorithm
private final com.android.apksig.internal.util.Pair mJcaSignatureAlgAndParams
private static final com.android.apksig.internal.apk.v2.SignatureAlgorithm[] $VALUES
public static com.android.apksig.internal.apk.v2.SignatureAlgorithm[] values ()
public static com.android.apksig.internal.apk.v2.SignatureAlgorithm valueOf (java.lang.String)
String name
private void (java.lang.String, int, int, com.android.apksig.internal.apk.v2.ContentDigestAlgorithm, java.lang.String, com.android.apksig.internal.util.Pair)
int id
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm contentDigestAlgorithm
String jcaKeyAlgorithm
com.android.apksig.internal.util.Pair jcaSignatureAlgAndParams
int getId ()
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm getContentDigestAlgorithm ()
java.lang.String getJcaKeyAlgorithm ()
com.android.apksig.internal.util.Pair getJcaSignatureAlgorithmAndParams ()
static com.android.apksig.internal.apk.v2.SignatureAlgorithm findById (int)
com.android.apksig.internal.apk.v2.SignatureAlgorithm alg
int id
static void ()
}
com/android/apksig/internal/apk/v2/V2SchemeSigner$V2SignatureSchemeBlock$Signer.classV2SchemeSigner.java
package com.android.apksig.internal.apk.v2
final com.android.apksig.internal.apk.v2.V2SchemeSigner$V2SignatureSchemeBlock$Signer extends java.lang.Object {
public byte[] signedData
public java.util.List signatures
public byte[] publicKey
private void ()
void (com.android.apksig.internal.apk.v2.V2SchemeSigner$1)
com.android.apksig.internal.apk.v2.V2SchemeSigner$1 x0
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
public abstract com.android.apksig.internal.apk.v2.V2SchemeVerifier extends java.lang.Object {
private static final long APK_SIG_BLOCK_MAGIC_HI
private static final long APK_SIG_BLOCK_MAGIC_LO
private static final int APK_SIG_BLOCK_MIN_SIZE
private static final int APK_SIGNATURE_SCHEME_V2_BLOCK_ID
private static final char[] HEX_DIGITS
private void ()
public static com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result verify (com.android.apksig.util.DataSource, com.android.apksig.apk.ApkUtils$ZipSections) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureNotFoundException
com.android.apksig.util.DataSource apk
com.android.apksig.apk.ApkUtils$ZipSections zipSections
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result result
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo signatureInfo
com.android.apksig.util.DataSource beforeApkSigningBlock
com.android.apksig.util.DataSource centralDir
java.nio.ByteBuffer eocd
private static void verify (com.android.apksig.util.DataSource, java.nio.ByteBuffer, com.android.apksig.util.DataSource, java.nio.ByteBuffer, com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException
com.android.apksig.util.DataSource beforeApkSigningBlock
java.nio.ByteBuffer apkSignatureSchemeV2Block
com.android.apksig.util.DataSource centralDir
java.nio.ByteBuffer eocd
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result result
java.util.Set contentDigestsToVerify
private static void parseSigners (java.nio.ByteBuffer, java.util.Set, com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result) throws com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException
java.nio.ByteBuffer signers
com.android.apksig.apk.ApkFormatException e
java.security.cert.CertificateFactory certFactory
java.security.cert.CertificateException e
java.nio.ByteBuffer signer
Exception e
int signerIndex
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo signerInfo
java.nio.ByteBuffer apkSignatureSchemeV2Block
java.util.Set contentDigestsToVerify
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result result
java.nio.ByteBuffer signers
java.security.cert.CertificateFactory certFactory
int signerCount
private static void parseSigner (java.nio.ByteBuffer, java.security.cert.CertificateFactory, com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo, java.util.Set) throws com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException
java.nio.ByteBuffer signature
int sigAlgorithmId
byte[] sigBytes
com.android.apksig.internal.apk.v2.SignatureAlgorithm signatureAlgorithm
Exception e
java.security.PublicKey publicKey
Exception e
java.security.Signature sig
byte[] sigBytes
java.security.GeneralSecurityException e
com.android.apksig.internal.apk.v2.SignatureAlgorithm signatureAlgorithm
String jcaSignatureAlgorithm
java.security.spec.AlgorithmParameterSpec jcaSignatureAlgorithmParams
String keyAlgorithm
java.security.PublicKey publicKey
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SupportedSignature signature
java.security.cert.X509Certificate certificate
java.security.cert.CertificateException e
byte[] encodedCert
java.security.cert.X509Certificate certificate
java.nio.ByteBuffer digest
int sigAlgorithmId
byte[] digestBytes
Exception e
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo$Signature signature
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo$ContentDigest digest
java.nio.ByteBuffer attribute
int id
byte[] value
Exception e
java.nio.ByteBuffer signerBlock
java.security.cert.CertificateFactory certFactory
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo result
java.util.Set contentDigestsToVerify
java.nio.ByteBuffer signedData
byte[] signedDataBytes
java.nio.ByteBuffer signatures
byte[] publicKeyBytes
int signatureCount
java.util.List supportedSignatures
java.util.List signaturesToVerify
java.nio.ByteBuffer digests
java.nio.ByteBuffer certificates
java.nio.ByteBuffer additionalAttributes
int certificateIndex
java.security.cert.X509Certificate mainCertificate
byte[] certificatePublicKeyBytes
int digestCount
java.util.List sigAlgsFromSignaturesRecord
java.util.List sigAlgsFromDigestsRecord
int additionalAttributeCount
private static java.util.List getSignaturesToVerify (java.util.List)
com.android.apksig.internal.apk.v2.SignatureAlgorithm sigAlgorithm
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SupportedSignature sig
java.util.List signatures
com.android.apksig.internal.apk.v2.SignatureAlgorithm bestSigAlgorithm
byte[] bestSigAlgorithmSignatureBytes
private static int compareSignatureAlgorithm (com.android.apksig.internal.apk.v2.SignatureAlgorithm, com.android.apksig.internal.apk.v2.SignatureAlgorithm)
com.android.apksig.internal.apk.v2.SignatureAlgorithm alg1
com.android.apksig.internal.apk.v2.SignatureAlgorithm alg2
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm digestAlg1
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm digestAlg2
private static int compareContentDigestAlgorithm (com.android.apksig.internal.apk.v2.ContentDigestAlgorithm, com.android.apksig.internal.apk.v2.ContentDigestAlgorithm)
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm alg1
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm alg2
private static void verifyIntegrity (com.android.apksig.util.DataSource, com.android.apksig.util.DataSource, java.nio.ByteBuffer, java.util.Set, com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result) throws java.io.IOException java.security.NoSuchAlgorithmException
java.util.Map actualContentDigests
java.security.DigestException e
com.android.apksig.internal.apk.v2.SignatureAlgorithm signatureAlgorithm
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm contentDigestAlgorithm
byte[] expectedDigest
byte[] actualDigest
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo$ContentDigest expected
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo signerInfo
com.android.apksig.util.DataSource beforeApkSigningBlock
com.android.apksig.util.DataSource centralDir
java.nio.ByteBuffer eocd
java.util.Set contentDigestAlgorithms
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result result
java.nio.ByteBuffer modifiedEocd
java.util.Map actualContentDigests
private static com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo findSignature (com.android.apksig.util.DataSource, com.android.apksig.apk.ApkUtils$ZipSections, com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result) throws java.io.IOException com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureNotFoundException
com.android.apksig.util.DataSource apk
com.android.apksig.apk.ApkUtils$ZipSections zipSections
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result result
java.nio.ByteBuffer eocd
com.android.apksig.internal.util.Pair apkSigningBlockAndOffset
com.android.apksig.util.DataSource apkSigningBlock
long apkSigningBlockOffset
java.nio.ByteBuffer apkSigningBlockBuf
java.nio.ByteBuffer apkSignatureSchemeV2Block
public static com.android.apksig.internal.util.Pair findApkSigningBlock (com.android.apksig.util.DataSource, com.android.apksig.apk.ApkUtils$ZipSections) throws java.io.IOException com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureNotFoundException
com.android.apksig.util.DataSource apk
com.android.apksig.apk.ApkUtils$ZipSections zipSections
long centralDirStartOffset
long centralDirEndOffset
long eocdStartOffset
java.nio.ByteBuffer footer
long apkSigBlockSizeInFooter
int totalSize
long apkSigBlockOffset
java.nio.ByteBuffer apkSigBlock
long apkSigBlockSizeInHeader
private static java.nio.ByteBuffer findApkSignatureSchemeV2Block (java.nio.ByteBuffer, com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result) throws com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureNotFoundException
long lenLong
int len
int nextEntryPos
int id
java.nio.ByteBuffer apkSigningBlock
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result result
java.nio.ByteBuffer pairs
int entryCount
private static void checkByteOrderLittleEndian (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
private static java.nio.ByteBuffer sliceFromTo (java.nio.ByteBuffer, int, int)
java.nio.ByteBuffer result
java.nio.ByteBuffer source
int start
int end
int capacity
int originalLimit
int originalPosition
private static java.nio.ByteBuffer getByteBuffer (java.nio.ByteBuffer, int) throws java.nio.BufferUnderflowException
java.nio.ByteBuffer result
java.nio.ByteBuffer source
int size
int originalLimit
int position
int limit
private static java.nio.ByteBuffer getLengthPrefixedSlice (java.nio.ByteBuffer) throws com.android.apksig.apk.ApkFormatException
java.nio.ByteBuffer source
int len
private static byte[] readLengthPrefixedByteArray (java.nio.ByteBuffer) throws com.android.apksig.apk.ApkFormatException
java.nio.ByteBuffer buf
int len
byte[] result
private static java.lang.String toHex (byte[])
int hi
int lo
int i
byte[] value
StringBuilder sb
int len
static void ()
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$Result$SignerInfo$Signature.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
public com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo$Signature extends java.lang.Object {
private final int mAlgorithmId
private final byte[] mValue
public void (int, byte[])
int algorithmId
byte[] value
public int getAlgorithmId ()
public byte[] getValue ()
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$Result$SignerInfo$AdditionalAttribute.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
public com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo$AdditionalAttribute extends java.lang.Object {
private final int mId
private final byte[] mValue
public void (int, byte[])
int id
byte[] value
public int getId ()
public byte[] getValue ()
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$1.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
com.android.apksig.internal.apk.v2.V2SchemeVerifier$1 extends java.lang.Object {
static final int[] $SwitchMap$com$android$apksig$internal$apk$v2$ContentDigestAlgorithm
static void ()
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$GuaranteedEncodedFormX509Certificate.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
com.android.apksig.internal.apk.v2.V2SchemeVerifier$GuaranteedEncodedFormX509Certificate extends com.android.apksig.internal.util.DelegatingX509Certificate {
private byte[] mEncodedForm
public void (java.security.cert.X509Certificate, byte[])
java.security.cert.X509Certificate wrapped
byte[] encodedForm
public byte[] getEncoded () throws java.security.cert.CertificateEncodingException
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$Result$SignerInfo$ContentDigest.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
public com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo$ContentDigest extends java.lang.Object {
private final int mSignatureAlgorithmId
private final byte[] mValue
public void (int, byte[])
int signatureAlgorithmId
byte[] value
public int getSignatureAlgorithmId ()
public byte[] getValue ()
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$SignatureNotFoundException.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
public com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureNotFoundException extends java.lang.Exception {
private static final long serialVersionUID
public void (java.lang.String)
String message
public void (java.lang.String, java.lang.Throwable)
String message
Throwable cause
}
com/android/apksig/internal/apk/v2/V2SchemeSigner$SignerConfig.classV2SchemeSigner.java
package com.android.apksig.internal.apk.v2
public com.android.apksig.internal.apk.v2.V2SchemeSigner$SignerConfig extends java.lang.Object {
public java.security.PrivateKey privateKey
public java.util.List certificates
public java.util.List signatureAlgorithms
public void ()
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$Result$SignerInfo.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
public com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo extends java.lang.Object {
public int index
public java.util.List certs
public java.util.List contentDigests
public java.util.Map verifiedContentDigests
public java.util.List signatures
public java.util.Map verifiedSignatures
public java.util.List additionalAttributes
public byte[] signedData
private final java.util.List mWarnings
private final java.util.List mErrors
public void ()
public transient void addError (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
public transient void addWarning (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
public boolean containsErrors ()
public java.util.List getErrors ()
public java.util.List getWarnings ()
}
com/android/apksig/internal/apk/v2/V2SchemeSigner$V2SignatureSchemeBlock.classV2SchemeSigner.java
package com.android.apksig.internal.apk.v2
final com.android.apksig.internal.apk.v2.V2SchemeSigner$V2SignatureSchemeBlock extends java.lang.Object {
private void ()
}
com/android/apksig/internal/apk/v2/V2SchemeSigner.classV2SchemeSigner.java
package com.android.apksig.internal.apk.v2
public abstract com.android.apksig.internal.apk.v2.V2SchemeSigner extends java.lang.Object {
private static final int CONTENT_DIGESTED_CHUNK_MAX_SIZE_BYTES
private static final byte[] APK_SIGNING_BLOCK_MAGIC
private static final int APK_SIGNATURE_SCHEME_V2_BLOCK_ID
private void ()
public static java.util.List getSuggestedSignatureAlgorithms (java.security.PublicKey, int) throws java.security.InvalidKeyException
int modulusLengthBits
int keySizeBits
java.security.PublicKey signingKey
int minSdkVersion
String keyAlgorithm
public static byte[] generateApkSigningBlock (com.android.apksig.util.DataSource, com.android.apksig.util.DataSource, com.android.apksig.util.DataSource, java.util.List) throws java.io.IOException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException
com.android.apksig.internal.apk.v2.SignatureAlgorithm signatureAlgorithm
com.android.apksig.internal.apk.v2.V2SchemeSigner$SignerConfig signerConfig
java.util.Map contentDigests
java.io.IOException e
java.security.DigestException e
com.android.apksig.util.DataSource beforeCentralDir
com.android.apksig.util.DataSource centralDir
com.android.apksig.util.DataSource eocd
java.util.List signerConfigs
java.util.Set contentDigestAlgorithms
long centralDirOffsetForDigesting
java.nio.ByteBuffer eocdBuf
java.util.Map contentDigests
static java.util.Map computeContentDigests (java.util.Set, com.android.apksig.util.DataSource[]) throws java.io.IOException java.security.NoSuchAlgorithmException java.security.DigestException
com.android.apksig.util.DataSource input
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm digestAlgorithm
int digestOutputSizeBytes
byte[] concatenationOfChunkCountAndChunkDigests
String jcaAlgorithm
int i
int i
java.io.IOException e
java.security.MessageDigest md
byte[] concatenationOfChunkCountAndChunkDigests
int expectedDigestSizeBytes
int actualDigestSizeBytes
int i
int chunkSize
long inputOffset
long inputRemaining
com.android.apksig.util.DataSource input
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm digestAlgorithm
byte[] concatenationOfChunkCountAndChunkDigests
java.security.MessageDigest md
byte[] digest
int i
java.util.Set digestAlgorithms
com.android.apksig.util.DataSource[] contents
long chunkCountLong
int chunkCount
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm[] digestAlgorithmsArray
java.security.MessageDigest[] mds
byte[][] digestsOfChunks
int[] digestOutputSizes
com.android.apksig.internal.util.MessageDigestSink mdSink
byte[] chunkContentPrefix
int chunkIndex
java.util.Map result
private static final long getChunkCount (long, int)
long inputSize
int chunkSize
private static void setUnsignedInt32LittleEndian (int, byte[], int)
int value
byte[] result
int offset
private static byte[] generateApkSigningBlock (java.util.List, java.util.Map) throws java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException
java.util.List signerConfigs
java.util.Map contentDigests
byte[] apkSignatureSchemeV2Block
private static byte[] generateApkSigningBlock (byte[])
byte[] apkSignatureSchemeV2Block
int resultSize
java.nio.ByteBuffer result
long blockSizeFieldValue
long pairSizeFieldValue
private static byte[] generateApkSignatureSchemeV2Block (java.util.List, java.util.Map) throws java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException
byte[] signerBlock
java.security.InvalidKeyException e
java.security.SignatureException e
byte[] signerBlock
com.android.apksig.internal.apk.v2.V2SchemeSigner$SignerConfig signerConfig
java.util.List signerConfigs
java.util.Map contentDigests
java.util.List signerBlocks
int signerNumber
private static byte[] generateSignerBlock (com.android.apksig.internal.apk.v2.V2SchemeSigner$SignerConfig, java.util.Map) throws java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException
java.security.cert.CertificateEncodingException e
com.android.apksig.internal.apk.v2.ContentDigestAlgorithm contentDigestAlgorithm
byte[] contentDigest
com.android.apksig.internal.apk.v2.SignatureAlgorithm signatureAlgorithm
java.security.Signature signature
byte[] signatureBytes
java.security.InvalidKeyException e
java.security.GeneralSecurityException e
java.security.Signature signature
java.security.InvalidKeyException e
java.security.GeneralSecurityException e
com.android.apksig.internal.util.Pair sigAlgAndParams
String jcaSignatureAlgorithm
java.security.spec.AlgorithmParameterSpec jcaSignatureAlgorithmParams
byte[] signatureBytes
com.android.apksig.internal.apk.v2.SignatureAlgorithm signatureAlgorithm
com.android.apksig.internal.apk.v2.V2SchemeSigner$SignerConfig signerConfig
java.util.Map contentDigests
java.security.PublicKey publicKey
byte[] encodedPublicKey
com.android.apksig.internal.apk.v2.V2SchemeSigner$V2SignatureSchemeBlock$SignedData signedData
java.util.List digests
com.android.apksig.internal.apk.v2.V2SchemeSigner$V2SignatureSchemeBlock$Signer signer
private static byte[] encodePublicKey (java.security.PublicKey) throws java.security.InvalidKeyException java.security.NoSuchAlgorithmException
java.security.spec.InvalidKeySpecException e
java.security.PublicKey publicKey
byte[] encodedPublicKey
private static java.util.List encodeCertificates (java.util.List) throws java.security.cert.CertificateEncodingException
java.security.cert.X509Certificate certificate
java.util.List certificates
java.util.List result
private static byte[] encodeAsSequenceOfLengthPrefixedElements (java.util.List)
java.util.List sequence
private static byte[] encodeAsSequenceOfLengthPrefixedElements (byte[][])
byte[] element
byte[] element
byte[][] sequence
int payloadSize
java.nio.ByteBuffer result
private static byte[] encodeAsSequenceOfLengthPrefixedPairsOfIntAndLengthPrefixedBytes (java.util.List)
com.android.apksig.internal.util.Pair element
byte[] second
com.android.apksig.internal.util.Pair element
java.util.List sequence
int resultSize
java.nio.ByteBuffer result
static void ()
}
com/android/apksig/internal/apk/v2/ContentDigestAlgorithm.classContentDigestAlgorithm.java
package com.android.apksig.internal.apk.v2
public final com.android.apksig.internal.apk.v2.ContentDigestAlgorithm extends java.lang.Enum {
public static final com.android.apksig.internal.apk.v2.ContentDigestAlgorithm CHUNKED_SHA256
public static final com.android.apksig.internal.apk.v2.ContentDigestAlgorithm CHUNKED_SHA512
private final String mJcaMessageDigestAlgorithm
private final int mChunkDigestOutputSizeBytes
private static final com.android.apksig.internal.apk.v2.ContentDigestAlgorithm[] $VALUES
public static com.android.apksig.internal.apk.v2.ContentDigestAlgorithm[] values ()
public static com.android.apksig.internal.apk.v2.ContentDigestAlgorithm valueOf (java.lang.String)
String name
private void (java.lang.String, int, java.lang.String, int)
String jcaMessageDigestAlgorithm
int chunkDigestOutputSizeBytes
java.lang.String getJcaMessageDigestAlgorithm ()
int getChunkDigestOutputSizeBytes ()
static void ()
}
com/android/apksig/internal/apk/v2/V2SchemeSigner$V2SignatureSchemeBlock$SignedData.classV2SchemeSigner.java
package com.android.apksig.internal.apk.v2
final com.android.apksig.internal.apk.v2.V2SchemeSigner$V2SignatureSchemeBlock$SignedData extends java.lang.Object {
public java.util.List digests
public java.util.List certificates
private void ()
void (com.android.apksig.internal.apk.v2.V2SchemeSigner$1)
com.android.apksig.internal.apk.v2.V2SchemeSigner$1 x0
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$SignatureInfo.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo extends java.lang.Object {
private final java.nio.ByteBuffer signatureBlock
private final long apkSigningBlockOffset
private final long centralDirOffset
private final long eocdOffset
private final java.nio.ByteBuffer eocd
private void (java.nio.ByteBuffer, long, long, long, java.nio.ByteBuffer)
java.nio.ByteBuffer signatureBlock
long apkSigningBlockOffset
long centralDirOffset
long eocdOffset
java.nio.ByteBuffer eocd
static long access$000 (com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo x0
static long access$100 (com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo x0
static long access$200 (com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo x0
static java.nio.ByteBuffer access$300 (com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo x0
static java.nio.ByteBuffer access$400 (com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SignatureInfo x0
void (java.nio.ByteBuffer, long, long, long, java.nio.ByteBuffer, com.android.apksig.internal.apk.v2.V2SchemeVerifier$1)
java.nio.ByteBuffer x0
long x1
long x2
long x3
java.nio.ByteBuffer x4
com.android.apksig.internal.apk.v2.V2SchemeVerifier$1 x5
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$Result.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
public com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result extends java.lang.Object {
public boolean verified
public final java.util.List signers
private final java.util.List mWarnings
private final java.util.List mErrors
public void ()
public boolean containsErrors ()
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo signer
public transient void addError (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
public transient void addWarning (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
public java.util.List getErrors ()
public java.util.List getWarnings ()
}
com/android/apksig/internal/apk/v2/V2SchemeSigner$1.classV2SchemeSigner.java
package com.android.apksig.internal.apk.v2
com.android.apksig.internal.apk.v2.V2SchemeSigner$1 extends java.lang.Object {
}
com/android/apksig/internal/apk/v2/V2SchemeVerifier$SupportedSignature.classV2SchemeVerifier.java
package com.android.apksig.internal.apk.v2
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SupportedSignature extends java.lang.Object {
private final com.android.apksig.internal.apk.v2.SignatureAlgorithm algorithm
private final byte[] signature
private void (com.android.apksig.internal.apk.v2.SignatureAlgorithm, byte[])
com.android.apksig.internal.apk.v2.SignatureAlgorithm algorithm
byte[] signature
void (com.android.apksig.internal.apk.v2.SignatureAlgorithm, byte[], com.android.apksig.internal.apk.v2.V2SchemeVerifier$1)
com.android.apksig.internal.apk.v2.SignatureAlgorithm x0
byte[] x1
com.android.apksig.internal.apk.v2.V2SchemeVerifier$1 x2
static com.android.apksig.internal.apk.v2.SignatureAlgorithm access$600 (com.android.apksig.internal.apk.v2.V2SchemeVerifier$SupportedSignature)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SupportedSignature x0
static byte[] access$700 (com.android.apksig.internal.apk.v2.V2SchemeVerifier$SupportedSignature)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$SupportedSignature x0
}
com/android/apksig/internal/zip/
com/android/apksig/internal/zip/EocdRecord.classEocdRecord.java
package com.android.apksig.internal.zip
public com.android.apksig.internal.zip.EocdRecord extends java.lang.Object {
private static final int CD_RECORD_COUNT_ON_DISK_OFFSET
private static final int CD_RECORD_COUNT_TOTAL_OFFSET
private static final int CD_SIZE_OFFSET
private static final int CD_OFFSET_OFFSET
public void ()
public static java.nio.ByteBuffer createWithModifiedCentralDirectoryInfo (java.nio.ByteBuffer, int, long, long)
java.nio.ByteBuffer original
int centralDirectoryRecordCount
long centralDirectorySizeBytes
long centralDirectoryOffset
java.nio.ByteBuffer result
}
com/android/apksig/internal/zip/CentralDirectoryRecord.classCentralDirectoryRecord.java
package com.android.apksig.internal.zip
public com.android.apksig.internal.zip.CentralDirectoryRecord extends java.lang.Object {
public static final java.util.Comparator BY_LOCAL_FILE_HEADER_OFFSET_COMPARATOR
private static final int RECORD_SIGNATURE
private static final int HEADER_SIZE_BYTES
private static final int LAST_MODIFICATION_TIME_OFFSET
private static final int LOCAL_FILE_HEADER_OFFSET_OFFSET
private static final int NAME_OFFSET
private final java.nio.ByteBuffer mData
private final int mLastModificationTime
private final int mLastModificationDate
private final long mCrc32
private final long mCompressedSize
private final long mUncompressedSize
private final long mLocalFileHeaderOffset
private final String mName
private final int mNameSizeBytes
private void (java.nio.ByteBuffer, int, int, long, long, long, long, java.lang.String, int)
java.nio.ByteBuffer data
int lastModificationTime
int lastModificationDate
long crc32
long compressedSize
long uncompressedSize
long localFileHeaderOffset
String name
int nameSizeBytes
public int getSize ()
public java.lang.String getName ()
public int getNameSizeBytes ()
public int getLastModificationTime ()
public int getLastModificationDate ()
public long getCrc32 ()
public long getCompressedSize ()
public long getUncompressedSize ()
public long getLocalFileHeaderOffset ()
public static com.android.apksig.internal.zip.CentralDirectoryRecord getRecord (java.nio.ByteBuffer) throws com.android.apksig.zip.ZipFormatException
java.nio.ByteBuffer recordBuf
java.nio.ByteBuffer buf
int originalPosition
int recordSignature
int lastModificationTime
int lastModificationDate
long crc32
long compressedSize
long uncompressedSize
int nameSize
int extraSize
int commentSize
long localFileHeaderOffset
int recordSize
String name
int originalLimit
int recordEndInBuf
java.nio.ByteBuffer recordBuf
public void copyTo (java.nio.ByteBuffer)
java.nio.ByteBuffer output
public com.android.apksig.internal.zip.CentralDirectoryRecord createWithModifiedLocalFileHeaderOffset (long)
long localFileHeaderOffset
java.nio.ByteBuffer result
public static com.android.apksig.internal.zip.CentralDirectoryRecord createWithDeflateCompressedData (java.lang.String, int, int, long, long, long, long)
String name
int lastModifiedTime
int lastModifiedDate
long crc32
long compressedSize
long uncompressedSize
long localFileHeaderOffset
byte[] nameBytes
int recordSize
java.nio.ByteBuffer result
static java.lang.String getName (java.nio.ByteBuffer, int, int)
byte[] nameBytes
int nameBytesOffset
int originalPosition
java.nio.ByteBuffer record
int position
int nameLengthBytes
byte[] nameBytes
int nameBytesOffset
static void ()
}
com/android/apksig/internal/zip/CentralDirectoryRecord$ByLocalFileHeaderOffsetComparator.classCentralDirectoryRecord.java
package com.android.apksig.internal.zip
com.android.apksig.internal.zip.CentralDirectoryRecord$ByLocalFileHeaderOffsetComparator extends java.lang.Object implements java.util.Comparator {
private void ()
public int compare (com.android.apksig.internal.zip.CentralDirectoryRecord, com.android.apksig.internal.zip.CentralDirectoryRecord)
com.android.apksig.internal.zip.CentralDirectoryRecord r1
com.android.apksig.internal.zip.CentralDirectoryRecord r2
long offset1
long offset2
public volatile int compare (java.lang.Object, java.lang.Object)
void (com.android.apksig.internal.zip.CentralDirectoryRecord$1)
com.android.apksig.internal.zip.CentralDirectoryRecord$1 x0
}
com/android/apksig/internal/zip/CentralDirectoryRecord$1.classCentralDirectoryRecord.java
package com.android.apksig.internal.zip
com.android.apksig.internal.zip.CentralDirectoryRecord$1 extends java.lang.Object {
}
com/android/apksig/internal/zip/LocalFileRecord$1.classLocalFileRecord.java
package com.android.apksig.internal.zip
com.android.apksig.internal.zip.LocalFileRecord$1 extends java.lang.Object {
}
com/android/apksig/internal/zip/LocalFileRecord$InflateSinkAdapter.classLocalFileRecord.java
package com.android.apksig.internal.zip
com.android.apksig.internal.zip.LocalFileRecord$InflateSinkAdapter extends java.lang.Object implements com.android.apksig.util.DataSink java.io.Closeable {
private final com.android.apksig.util.DataSink mDelegate
private java.util.zip.Inflater mInflater
private byte[] mOutputBuffer
private byte[] mInputBuffer
private long mOutputByteCount
private boolean mClosed
private void (com.android.apksig.util.DataSink)
com.android.apksig.util.DataSink delegate
public void consume (byte[], int, int) throws java.io.IOException
int outputChunkSize
java.util.zip.DataFormatException e
int outputChunkSize
byte[] buf
int offset
int length
public void consume (java.nio.ByteBuffer) throws java.io.IOException
int chunkSize
java.nio.ByteBuffer buf
public long getOutputByteCount ()
public void close () throws java.io.IOException
private void checkNotClosed ()
void (com.android.apksig.util.DataSink, com.android.apksig.internal.zip.LocalFileRecord$1)
com.android.apksig.util.DataSink x0
com.android.apksig.internal.zip.LocalFileRecord$1 x1
}
com/android/apksig/internal/zip/LocalFileRecord.classLocalFileRecord.java
package com.android.apksig.internal.zip
public com.android.apksig.internal.zip.LocalFileRecord extends java.lang.Object {
private static final int RECORD_SIGNATURE
private static final int HEADER_SIZE_BYTES
private static final int GP_FLAGS_OFFSET
private static final int COMPRESSION_METHOD_OFFSET
private static final int CRC32_OFFSET
private static final int COMPRESSED_SIZE_OFFSET
private static final int UNCOMPRESSED_SIZE_OFFSET
private static final int NAME_LENGTH_OFFSET
private static final int EXTRA_LENGTH_OFFSET
private static final int NAME_OFFSET
private static final int DATA_DESCRIPTOR_SIZE_BYTES_WITHOUT_SIGNATURE
private static final int DATA_DESCRIPTOR_SIGNATURE
private final String mName
private final int mNameSizeBytes
private final java.nio.ByteBuffer mExtra
private final long mStartOffsetInArchive
private final long mSize
private final int mDataStartOffset
private final long mDataSize
private final boolean mDataCompressed
private final long mUncompressedDataSize
private static final java.nio.ByteBuffer EMPTY_BYTE_BUFFER
private void (java.lang.String, int, java.nio.ByteBuffer, long, long, int, long, boolean, long)
String name
int nameSizeBytes
java.nio.ByteBuffer extra
long startOffsetInArchive
long size
int dataStartOffset
long dataSize
boolean dataCompressed
long uncompressedDataSize
public java.lang.String getName ()
public java.nio.ByteBuffer getExtra ()
public int getExtraFieldStartOffsetInsideRecord ()
public long getStartOffsetInArchive ()
public int getDataStartOffsetInRecord ()
public long getSize ()
public boolean isDataCompressed ()
public static com.android.apksig.internal.zip.LocalFileRecord getRecord (com.android.apksig.util.DataSource, com.android.apksig.internal.zip.CentralDirectoryRecord, long) throws com.android.apksig.zip.ZipFormatException java.io.IOException
com.android.apksig.util.DataSource apk
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
long cdStartOffset
private static com.android.apksig.internal.zip.LocalFileRecord getRecord (com.android.apksig.util.DataSource, com.android.apksig.internal.zip.CentralDirectoryRecord, long, boolean, boolean) throws com.android.apksig.zip.ZipFormatException java.io.IOException
java.nio.ByteBuffer header
java.io.IOException e
long crc32
long compressedSize
long uncompressedSize
boolean compressed
boolean compressed
long dataSize
long dataDescriptorEndOffset
java.nio.ByteBuffer dataDescriptorPotentialSig
com.android.apksig.util.DataSource apk
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
long cdStartOffset
boolean extraFieldContentsNeeded
boolean dataDescriptorIncluded
String entryName
int cdRecordEntryNameSizeBytes
int headerSizeWithName
long headerStartOffset
long headerEndOffset
java.nio.ByteBuffer header
int recordSignature
short gpFlags
boolean dataDescriptorUsed
long uncompressedDataCrc32FromCdRecord
long compressedDataSizeFromCdRecord
long uncompressedDataSizeFromCdRecord
int nameLength
String name
int extraLength
short compressionMethod
boolean compressed
long dataStartOffset
long dataSize
long dataEndOffset
java.nio.ByteBuffer extra
long recordEndOffset
long recordSize
int dataStartOffsetInRecord
public long outputRecord (com.android.apksig.util.DataSource, com.android.apksig.util.DataSink) throws java.io.IOException
com.android.apksig.util.DataSource sourceApk
com.android.apksig.util.DataSink output
long size
public long outputRecordWithModifiedExtra (com.android.apksig.util.DataSource, java.nio.ByteBuffer, com.android.apksig.util.DataSink) throws java.io.IOException
com.android.apksig.util.DataSource sourceApk
java.nio.ByteBuffer extra
com.android.apksig.util.DataSink output
long recordStartOffsetInSource
int extraStartOffsetInRecord
int extraSizeBytes
int headerSize
java.nio.ByteBuffer header
long outputByteCount
long remainingRecordSize
public static long outputRecordWithDeflateCompressedData (java.lang.String, int, int, byte[], long, long, com.android.apksig.util.DataSink) throws java.io.IOException
String name
int lastModifiedTime
int lastModifiedDate
byte[] compressedData
long crc32
long uncompressedSize
com.android.apksig.util.DataSink output
byte[] nameBytes
int recordSize
java.nio.ByteBuffer result
long outputByteCount
public void outputUncompressedData (com.android.apksig.util.DataSource, com.android.apksig.util.DataSink) throws java.io.IOException com.android.apksig.zip.ZipFormatException
long actualUncompressedSize
com.android.apksig.internal.zip.LocalFileRecord$InflateSinkAdapter inflateAdapter
java.io.IOException e
java.io.IOException e
com.android.apksig.util.DataSource lfhSection
com.android.apksig.util.DataSink sink
long dataStartOffsetInArchive
public static void outputUncompressedData (com.android.apksig.util.DataSource, com.android.apksig.internal.zip.CentralDirectoryRecord, long, com.android.apksig.util.DataSink) throws com.android.apksig.zip.ZipFormatException java.io.IOException
com.android.apksig.util.DataSource source
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
long cdStartOffsetInArchive
com.android.apksig.util.DataSink sink
com.android.apksig.internal.zip.LocalFileRecord lfhRecord
public static byte[] getUncompressedData (com.android.apksig.util.DataSource, com.android.apksig.internal.zip.CentralDirectoryRecord, long) throws com.android.apksig.zip.ZipFormatException java.io.IOException
com.android.apksig.util.DataSource source
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
long cdStartOffsetInArchive
byte[] result
java.nio.ByteBuffer resultBuf
com.android.apksig.internal.util.ByteBufferSink resultSink
static void ()
}
com/android/apksig/internal/zip/ZipUtils.classZipUtils.java
package com.android.apksig.internal.zip
public abstract com.android.apksig.internal.zip.ZipUtils extends java.lang.Object {
public static final short COMPRESSION_METHOD_STORED
public static final short COMPRESSION_METHOD_DEFLATED
public static final short GP_FLAG_DATA_DESCRIPTOR_USED
public static final short GP_FLAG_EFS
private static final int ZIP_EOCD_REC_MIN_SIZE
private static final int ZIP_EOCD_REC_SIG
private static final int ZIP_EOCD_CENTRAL_DIR_TOTAL_RECORD_COUNT_OFFSET
private static final int ZIP_EOCD_CENTRAL_DIR_SIZE_FIELD_OFFSET
private static final int ZIP_EOCD_CENTRAL_DIR_OFFSET_FIELD_OFFSET
private static final int ZIP_EOCD_COMMENT_LENGTH_FIELD_OFFSET
private static final int UINT16_MAX_VALUE
private void ()
public static void setZipEocdCentralDirectoryOffset (java.nio.ByteBuffer, long)
java.nio.ByteBuffer zipEndOfCentralDirectory
long offset
public static long getZipEocdCentralDirectoryOffset (java.nio.ByteBuffer)
java.nio.ByteBuffer zipEndOfCentralDirectory
public static long getZipEocdCentralDirectorySizeBytes (java.nio.ByteBuffer)
java.nio.ByteBuffer zipEndOfCentralDirectory
public static int getZipEocdCentralDirectoryTotalRecordCount (java.nio.ByteBuffer)
java.nio.ByteBuffer zipEndOfCentralDirectory
public static com.android.apksig.internal.util.Pair findZipEndOfCentralDirectoryRecord (com.android.apksig.util.DataSource) throws java.io.IOException
com.android.apksig.util.DataSource zip
long fileSize
com.android.apksig.internal.util.Pair result
private static com.android.apksig.internal.util.Pair findZipEndOfCentralDirectoryRecord (com.android.apksig.util.DataSource, int) throws java.io.IOException
com.android.apksig.util.DataSource zip
int maxCommentSize
long fileSize
int maxEocdSize
long bufOffsetInFile
java.nio.ByteBuffer buf
int eocdOffsetInBuf
java.nio.ByteBuffer eocd
private static int findZipEndOfCentralDirectoryRecord (java.nio.ByteBuffer)
int actualCommentLength
int eocdStartPos
int expectedCommentLength
java.nio.ByteBuffer zipContents
int archiveSize
int maxCommentLength
int eocdWithEmptyCommentStartPosition
static void assertByteOrderLittleEndian (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
public static int getUnsignedInt16 (java.nio.ByteBuffer, int)
java.nio.ByteBuffer buffer
int offset
public static int getUnsignedInt16 (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
static void setUnsignedInt16 (java.nio.ByteBuffer, int, int)
java.nio.ByteBuffer buffer
int offset
int value
static void setUnsignedInt32 (java.nio.ByteBuffer, int, long)
java.nio.ByteBuffer buffer
int offset
long value
public static void putUnsignedInt16 (java.nio.ByteBuffer, int)
java.nio.ByteBuffer buffer
int value
static long getUnsignedInt32 (java.nio.ByteBuffer, int)
java.nio.ByteBuffer buffer
int offset
static long getUnsignedInt32 (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
static void putUnsignedInt32 (java.nio.ByteBuffer, long)
java.nio.ByteBuffer buffer
long value
public static com.android.apksig.internal.zip.ZipUtils$DeflateResult deflate (java.nio.ByteBuffer)
byte[] inputBuf
int inputOffset
int chunkSize
java.nio.ByteBuffer input
byte[] inputBuf
int inputOffset
int inputLength
java.util.zip.CRC32 crc32
long crc32Value
java.io.ByteArrayOutputStream out
java.util.zip.Deflater deflater
byte[] buf
}
com/android/apksig/internal/zip/ZipUtils$DeflateResult.classZipUtils.java
package com.android.apksig.internal.zip
public com.android.apksig.internal.zip.ZipUtils$DeflateResult extends java.lang.Object {
public final int inputSizeBytes
public final long inputCrc32
public final byte[] output
public void (int, long, byte[])
int inputSizeBytes
long inputCrc32
byte[] output
}
com/android/apksig/internal/jar/
com/android/apksig/internal/jar/SignatureFileWriter.classSignatureFileWriter.java
package com.android.apksig.internal.jar
public abstract com.android.apksig.internal.jar.SignatureFileWriter extends java.lang.Object {
private void ()
public static void writeMainSection (java.io.OutputStream, java.util.jar.Attributes) throws java.io.IOException
java.util.SortedMap namedAttributes
java.io.OutputStream out
java.util.jar.Attributes attributes
String signatureVersion
public static void writeIndividualSection (java.io.OutputStream, java.lang.String, java.util.jar.Attributes) throws java.io.IOException
java.io.OutputStream out
String name
java.util.jar.Attributes attributes
public static void writeSectionDelimiter (java.io.OutputStream) throws java.io.IOException
java.io.OutputStream out
}
com/android/apksig/internal/jar/ManifestParser$Section.classManifestParser.java
package com.android.apksig.internal.jar
public com.android.apksig.internal.jar.ManifestParser$Section extends java.lang.Object {
private final int mStartOffset
private final int mSizeBytes
private final String mName
private final java.util.List mAttributes
public void (int, int, java.util.List)
com.android.apksig.internal.jar.ManifestParser$Attribute firstAttr
int startOffset
int sizeBytes
java.util.List attrs
String sectionName
public java.lang.String getName ()
public int getStartOffset ()
public int getSizeBytes ()
public java.util.List getAttributes ()
public java.lang.String getAttributeValue (java.util.jar.Attributes$Name)
java.util.jar.Attributes$Name name
public java.lang.String getAttributeValue (java.lang.String)
com.android.apksig.internal.jar.ManifestParser$Attribute attr
String name
}
com/android/apksig/internal/jar/ManifestParser$Attribute.classManifestParser.java
package com.android.apksig.internal.jar
public com.android.apksig.internal.jar.ManifestParser$Attribute extends java.lang.Object {
private final String mName
private final String mValue
public void (java.lang.String, java.lang.String)
String name
String value
public java.lang.String getName ()
public java.lang.String getValue ()
}
com/android/apksig/internal/jar/ManifestParser.classManifestParser.java
package com.android.apksig.internal.jar
public com.android.apksig.internal.jar.ManifestParser extends java.lang.Object {
private final byte[] mManifest
private int mOffset
private int mEndOffset
private byte[] mBufferedLine
private static final byte[] EMPTY_BYTE_ARRAY
public void (byte[])
byte[] data
public void (byte[], int, int)
byte[] data
int offset
int length
public java.util.List readAllSections ()
java.util.List sections
com.android.apksig.internal.jar.ManifestParser$Section section
public com.android.apksig.internal.jar.ManifestParser$Section readSection ()
int sectionStartOffset
String attr
java.util.List attrs
int sectionEndOffset
int sectionSizeBytes
private static com.android.apksig.internal.jar.ManifestParser$Attribute parseAttr (java.lang.String)
String attr
int delimiterIndex
private java.lang.String readAttribute ()
byte[] bytes
private byte[] readAttributeBytes ()
byte[] result
byte[] result
byte[] attrLine
byte[] result
byte[] line
byte[] attrLine
private static byte[] concat (byte[], byte[], int, int)
byte[] arr1
byte[] arr2
int offset2
int length2
byte[] result
private byte[] readLine ()
int nextIndex
byte b
int i
int startOffset
int newlineStartOffset
int newlineEndOffset
static void ()
}
com/android/apksig/internal/jar/ManifestWriter.classManifestWriter.java
package com.android.apksig.internal.jar
public abstract com.android.apksig.internal.jar.ManifestWriter extends java.lang.Object {
private static final byte[] CRLF
private static final int MAX_LINE_LENGTH
private void ()
public static void writeMainSection (java.io.OutputStream, java.util.jar.Attributes) throws java.io.IOException
java.util.SortedMap namedAttributes
java.io.OutputStream out
java.util.jar.Attributes attributes
String manifestVersion
public static void writeIndividualSection (java.io.OutputStream, java.lang.String, java.util.jar.Attributes) throws java.io.IOException
java.io.OutputStream out
String name
java.util.jar.Attributes attributes
static void writeSectionDelimiter (java.io.OutputStream) throws java.io.IOException
java.io.OutputStream out
static void writeAttribute (java.io.OutputStream, java.util.jar.Attributes$Name, java.lang.String) throws java.io.IOException
java.io.OutputStream out
java.util.jar.Attributes$Name name
String value
private static void writeAttribute (java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException
java.io.OutputStream out
String name
String value
private static void writeLine (java.io.OutputStream, java.lang.String) throws java.io.IOException
int chunkLength
int chunkLength
java.io.OutputStream out
String line
byte[] lineBytes
int offset
int remaining
boolean firstLine
static java.util.SortedMap getAttributesSortedByName (java.util.jar.Attributes)
String attrName
String attrValue
java.util.Map$Entry attribute
java.util.jar.Attributes attributes
java.util.Set attributesEntries
java.util.SortedMap namedAttributes
static void writeAttributes (java.io.OutputStream, java.util.SortedMap) throws java.io.IOException
String attrName
String attrValue
java.util.Map$Entry attribute
java.io.OutputStream out
java.util.SortedMap attributesSortedByName
static void ()
}
com/android/apksig/internal/util/
com/android/apksig/internal/util/OutputStreamDataSink.classOutputStreamDataSink.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.OutputStreamDataSink extends java.lang.Object implements com.android.apksig.util.DataSink {
private static final int MAX_READ_CHUNK_SIZE
private final java.io.OutputStream mOut
public void (java.io.OutputStream)
java.io.OutputStream out
public java.io.OutputStream getOutputStream ()
public void consume (byte[], int, int) throws java.io.IOException
byte[] buf
int offset
int length
public void consume (java.nio.ByteBuffer) throws java.io.IOException
int chunkSize
byte[] tmp
java.nio.ByteBuffer buf
}
com/android/apksig/internal/util/ByteBufferSink.classByteBufferSink.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.ByteBufferSink extends java.lang.Object implements com.android.apksig.util.DataSink {
private final java.nio.ByteBuffer mBuffer
public void (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
public void consume (byte[], int, int) throws java.io.IOException
java.nio.BufferOverflowException e
byte[] buf
int offset
int length
public void consume (java.nio.ByteBuffer) throws java.io.IOException
java.nio.BufferOverflowException e
java.nio.ByteBuffer buf
int length
}
com/android/apksig/internal/util/RandomAccessFileDataSource.classRandomAccessFileDataSource.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.RandomAccessFileDataSource extends java.lang.Object implements com.android.apksig.util.DataSource {
private static final int MAX_READ_CHUNK_SIZE
private final java.io.RandomAccessFile mFile
private final long mOffset
private final long mSize
public void (java.io.RandomAccessFile)
java.io.RandomAccessFile file
public void (java.io.RandomAccessFile, long, long)
java.io.RandomAccessFile file
long offset
long size
public long size ()
java.io.IOException e
public com.android.apksig.internal.util.RandomAccessFileDataSource slice (long, long)
long offset
long size
long sourceSize
public void feed (long, long, com.android.apksig.util.DataSink) throws java.io.IOException
int chunkSize
long offset
long size
com.android.apksig.util.DataSink sink
long sourceSize
long chunkOffsetInFile
long remaining
byte[] buf
public void copyTo (long, int, java.nio.ByteBuffer) throws java.io.IOException
int chunkSize
int chunkSize
java.nio.channels.FileChannel fileChannel
long offset
int size
java.nio.ByteBuffer dest
long sourceSize
long offsetInFile
int remaining
int prevLimit
public java.nio.ByteBuffer getByteBuffer (long, int) throws java.io.IOException
long offset
int size
java.nio.ByteBuffer result
private static void checkChunkValid (long, long, long)
long offset
long size
long sourceSize
long endOffset
public volatile com.android.apksig.util.DataSource slice (long, long)
}
com/android/apksig/internal/util/ByteArrayDataSink$SliceDataSource.classByteArrayDataSink.java
package com.android.apksig.internal.util
com.android.apksig.internal.util.ByteArrayDataSink$SliceDataSource extends java.lang.Object implements com.android.apksig.util.DataSource {
private final int mOffset
private final int mSize
final com.android.apksig.internal.util.ByteArrayDataSink this$0
private void (com.android.apksig.internal.util.ByteArrayDataSink, int, int)
int offset
int size
public long size ()
public void feed (long, long, com.android.apksig.util.DataSink) throws java.io.IOException
long offset
long size
com.android.apksig.util.DataSink sink
public java.nio.ByteBuffer getByteBuffer (long, int) throws java.io.IOException
long offset
int size
public void copyTo (long, int, java.nio.ByteBuffer) throws java.io.IOException
long offset
int size
java.nio.ByteBuffer dest
public com.android.apksig.util.DataSource slice (long, long)
long offset
long size
private void checkChunkValid (long, long)
long offset
long size
long endOffset
void (com.android.apksig.internal.util.ByteArrayDataSink, int, int, com.android.apksig.internal.util.ByteArrayDataSink$1)
com.android.apksig.internal.util.ByteArrayDataSink x0
int x1
int x2
com.android.apksig.internal.util.ByteArrayDataSink$1 x3
}
com/android/apksig/internal/util/InclusiveIntRange.classInclusiveIntRange.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.InclusiveIntRange extends java.lang.Object {
private final int min
private final int max
private void (int, int)
int min
int max
public int getMin ()
public int getMax ()
public static com.android.apksig.internal.util.InclusiveIntRange fromTo (int, int)
int min
int max
public static com.android.apksig.internal.util.InclusiveIntRange from (int)
int min
public java.util.List getValuesNotIn (java.util.List)
int rangeMax
int rangeMin
com.android.apksig.internal.util.InclusiveIntRange range
java.util.List sortedNonOverlappingRanges
int testValue
java.util.List result
public java.lang.String toString ()
}
com/android/apksig/internal/util/ByteArrayDataSink.classByteArrayDataSink.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.ByteArrayDataSink extends java.lang.Object implements com.android.apksig.util.ReadableDataSink {
private static final int MAX_READ_CHUNK_SIZE
private byte[] mArray
private int mSize
public void ()
public void (int)
int initialCapacity
public void consume (byte[], int, int) throws java.io.IOException
byte[] buf
int offset
int length
public void consume (java.nio.ByteBuffer) throws java.io.IOException
int chunkSize
java.nio.ByteBuffer buf
byte[] tmp
private void ensureAvailable (int) throws java.io.IOException
int minAvailable
long minCapacity
int doubleCurrentSize
int newSize
public long size ()
public java.nio.ByteBuffer getByteBuffer (long, int)
long offset
int size
public void feed (long, long, com.android.apksig.util.DataSink) throws java.io.IOException
long offset
long size
com.android.apksig.util.DataSink sink
public void copyTo (long, int, java.nio.ByteBuffer) throws java.io.IOException
long offset
int size
java.nio.ByteBuffer dest
private void checkChunkValid (long, long)
long offset
long size
long endOffset
public com.android.apksig.util.DataSource slice (long, long)
long offset
long size
static byte[] access$100 (com.android.apksig.internal.util.ByteArrayDataSink)
com.android.apksig.internal.util.ByteArrayDataSink x0
}
com/android/apksig/internal/util/MessageDigestSink.classMessageDigestSink.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.MessageDigestSink extends java.lang.Object implements com.android.apksig.util.DataSink {
private final java.security.MessageDigest[] mMessageDigests
public void (java.security.MessageDigest[])
java.security.MessageDigest[] digests
public void consume (byte[], int, int)
java.security.MessageDigest md
byte[] buf
int offset
int length
public void consume (java.nio.ByteBuffer)
java.security.MessageDigest md
java.nio.ByteBuffer buf
int originalPosition
}
com/android/apksig/internal/util/ByteArrayDataSink$1.classByteArrayDataSink.java
package com.android.apksig.internal.util
com.android.apksig.internal.util.ByteArrayDataSink$1 extends java.lang.Object {
}
com/android/apksig/internal/util/DelegatingX509Certificate.classDelegatingX509Certificate.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.DelegatingX509Certificate extends java.security.cert.X509Certificate {
private final java.security.cert.X509Certificate mDelegate
public void (java.security.cert.X509Certificate)
java.security.cert.X509Certificate delegate
public java.util.Set getCriticalExtensionOIDs ()
public byte[] getExtensionValue (java.lang.String)
String oid
public java.util.Set getNonCriticalExtensionOIDs ()
public boolean hasUnsupportedCriticalExtension ()
public void checkValidity () throws java.security.cert.CertificateExpiredException java.security.cert.CertificateNotYetValidException
public void checkValidity (java.util.Date) throws java.security.cert.CertificateExpiredException java.security.cert.CertificateNotYetValidException
java.util.Date date
public int getVersion ()
public java.math.BigInteger getSerialNumber ()
public java.security.Principal getIssuerDN ()
public java.security.Principal getSubjectDN ()
public java.util.Date getNotBefore ()
public java.util.Date getNotAfter ()
public byte[] getTBSCertificate () throws java.security.cert.CertificateEncodingException
public byte[] getSignature ()
public java.lang.String getSigAlgName ()
public java.lang.String getSigAlgOID ()
public byte[] getSigAlgParams ()
public boolean[] getIssuerUniqueID ()
public boolean[] getSubjectUniqueID ()
public boolean[] getKeyUsage ()
public int getBasicConstraints ()
public byte[] getEncoded () throws java.security.cert.CertificateEncodingException
public void verify (java.security.PublicKey) throws java.security.cert.CertificateException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.NoSuchProviderException java.security.SignatureException
java.security.PublicKey key
public void verify (java.security.PublicKey, java.lang.String) throws java.security.cert.CertificateException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.NoSuchProviderException java.security.SignatureException
java.security.PublicKey key
String sigProvider
public java.lang.String toString ()
public java.security.PublicKey getPublicKey ()
public javax.security.auth.x500.X500Principal getIssuerX500Principal ()
public javax.security.auth.x500.X500Principal getSubjectX500Principal ()
public java.util.List getExtendedKeyUsage () throws java.security.cert.CertificateParsingException
public java.util.Collection getSubjectAlternativeNames () throws java.security.cert.CertificateParsingException
public java.util.Collection getIssuerAlternativeNames () throws java.security.cert.CertificateParsingException
public void verify (java.security.PublicKey, java.security.Provider) throws java.security.cert.CertificateException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException
java.security.PublicKey key
java.security.Provider sigProvider
}
com/android/apksig/internal/util/Pair.classPair.java
package com.android.apksig.internal.util
public final com.android.apksig.internal.util.Pair extends java.lang.Object {
private final Object mFirst
private final Object mSecond
private void (java.lang.Object, java.lang.Object)
Object first
Object second
public static com.android.apksig.internal.util.Pair of (java.lang.Object, java.lang.Object)
Object first
Object second
public java.lang.Object getFirst ()
public java.lang.Object getSecond ()
public int hashCode ()
int prime
int result
public boolean equals (java.lang.Object)
Object obj
com.android.apksig.internal.util.Pair other
}
com/android/apksig/internal/util/AndroidSdkVersion.classAndroidSdkVersion.java
package com.android.apksig.internal.util
public abstract com.android.apksig.internal.util.AndroidSdkVersion extends java.lang.Object {
public static final int GINGERBREAD
public static final int JELLY_BEAN_MR2
public static final int LOLLIPOP
public static final int N
private void ()
}
com/android/apksig/internal/util/ByteBufferDataSource.classByteBufferDataSource.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.ByteBufferDataSource extends java.lang.Object implements com.android.apksig.util.DataSource {
private final java.nio.ByteBuffer mBuffer
private final int mSize
public void (java.nio.ByteBuffer)
java.nio.ByteBuffer buffer
private void (java.nio.ByteBuffer, boolean)
java.nio.ByteBuffer buffer
boolean sliceRequired
public long size ()
public java.nio.ByteBuffer getByteBuffer (long, int)
long offset
int size
int chunkPosition
int chunkLimit
public void copyTo (long, int, java.nio.ByteBuffer)
long offset
int size
java.nio.ByteBuffer dest
public void feed (long, long, com.android.apksig.util.DataSink) throws java.io.IOException
long offset
long size
com.android.apksig.util.DataSink sink
public com.android.apksig.internal.util.ByteBufferDataSource slice (long, long)
long offset
long size
private void checkChunkValid (long, long)
long offset
long size
long endOffset
public volatile com.android.apksig.util.DataSource slice (long, long)
}
com/android/apksig/internal/util/RandomAccessFileDataSink.classRandomAccessFileDataSink.java
package com.android.apksig.internal.util
public com.android.apksig.internal.util.RandomAccessFileDataSink extends java.lang.Object implements com.android.apksig.util.DataSink {
private final java.io.RandomAccessFile mFile
private final java.nio.channels.FileChannel mFileChannel
private long mPosition
public void (java.io.RandomAccessFile)
java.io.RandomAccessFile file
public void (java.io.RandomAccessFile, long)
java.io.RandomAccessFile file
long startPosition
public void consume (byte[], int, int) throws java.io.IOException
byte[] buf
int offset
int length
public void consume (java.nio.ByteBuffer) throws java.io.IOException
java.nio.ByteBuffer buf
int length
}
com/android/apksig/ApkSigner.classApkSigner.java
package com.android.apksig
public com.android.apksig.ApkSigner extends java.lang.Object {
private static final short ALIGNMENT_ZIP_EXTRA_DATA_FIELD_HEADER_ID
private static final short ALIGNMENT_ZIP_EXTRA_DATA_FIELD_MIN_SIZE_BYTES
private static final String ANDROID_MANIFEST_ZIP_ENTRY_NAME
private final java.util.List mSignerConfigs
private final Integer mMinSdkVersion
private final boolean mV1SigningEnabled
private final boolean mV2SigningEnabled
private final boolean mOtherSignersSignaturesPreserved
private final String mCreatedBy
private final com.android.apksig.ApkSignerEngine mSignerEngine
private final java.io.File mInputApkFile
private final com.android.apksig.util.DataSource mInputApkDataSource
private final java.io.File mOutputApkFile
private final com.android.apksig.util.DataSink mOutputApkDataSink
private final com.android.apksig.util.DataSource mOutputApkDataSource
private void (java.util.List, java.lang.Integer, boolean, boolean, boolean, java.lang.String, com.android.apksig.ApkSignerEngine, java.io.File, com.android.apksig.util.DataSource, java.io.File, com.android.apksig.util.DataSink, com.android.apksig.util.DataSource)
java.util.List signerConfigs
Integer minSdkVersion
boolean v1SigningEnabled
boolean v2SigningEnabled
boolean otherSignersSignaturesPreserved
String createdBy
com.android.apksig.ApkSignerEngine signerEngine
java.io.File inputApkFile
com.android.apksig.util.DataSource inputApkDataSource
java.io.File outputApkFile
com.android.apksig.util.DataSink outputApkDataSink
com.android.apksig.util.DataSource outputApkDataSource
public void sign () throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException java.lang.IllegalStateException
com.android.apksig.util.DataSource inputApk
java.io.RandomAccessFile inputFile
com.android.apksig.util.DataSource inputApk
com.android.apksig.util.DataSink outputApkOut
com.android.apksig.util.DataSource outputApkIn
java.io.RandomAccessFile outputFile
com.android.apksig.util.DataSink outputApkOut
com.android.apksig.util.DataSource outputApkIn
com.android.apksig.util.DataSink outputApkOut
com.android.apksig.util.DataSource outputApkIn
java.io.Closeable out
com.android.apksig.util.DataSource inputApk
java.io.Closeable in
com.android.apksig.util.DataSource inputApk
private void sign (com.android.apksig.util.DataSource, com.android.apksig.util.DataSink, com.android.apksig.util.DataSource) throws java.io.IOException com.android.apksig.apk.ApkFormatException java.security.NoSuchAlgorithmException java.security.InvalidKeyException java.security.SignatureException
com.android.apksig.apk.ApkUtils$ZipSections inputZipSections
com.android.apksig.zip.ZipFormatException e
com.android.apksig.internal.util.Pair apkSigningBlockAndOffset
com.android.apksig.ApkSignerEngine signerEngine
int minSdkVersion
com.android.apksig.ApkSigner$SignerConfig signerConfig
int minSdkVersion
java.util.List engineSignerConfigs
boolean shouldOutput
boolean shouldOutput
long chunkSize
com.android.apksig.internal.zip.LocalFileRecord inputLocalFileRecord
com.android.apksig.zip.ZipFormatException e
com.android.apksig.internal.zip.CentralDirectoryRecord outputCdRecord
int lastModifiedDate
int lastModifiedTime
long outputLocalFileHeaderOffset
long outputLocalFileRecordSize
com.android.apksig.internal.zip.CentralDirectoryRecord outputCdRecord
String entryName
com.android.apksig.ApkSignerEngine$InputJarEntryInstructions entryInstructions
boolean shouldOutput
long inputLocalFileHeaderStartOffset
com.android.apksig.internal.zip.LocalFileRecord inputLocalFileRecord
com.android.apksig.ApkSignerEngine$InspectJarEntryRequest inspectEntryRequest
com.android.apksig.internal.zip.CentralDirectoryRecord inputCdRecord
long chunkSize
String entryName
com.android.apksig.internal.zip.CentralDirectoryRecord outputCdRecord
com.android.apksig.internal.zip.CentralDirectoryRecord inputCdRecord
String entryName
byte[] uncompressedData
com.android.apksig.internal.zip.ZipUtils$DeflateResult deflateResult
byte[] compressedData
long uncompressedDataCrc32
com.android.apksig.ApkSignerEngine$InspectJarEntryRequest inspectEntryRequest
long localFileHeaderOffset
com.android.apksig.ApkSignerEngine$OutputJarSignatureRequest$JarEntry entry
com.android.apksig.internal.zip.CentralDirectoryRecord record
com.android.apksig.internal.zip.CentralDirectoryRecord record
byte[] outputApkSigningBlock
com.android.apksig.util.DataSource inputApk
com.android.apksig.util.DataSink outputApkOut
com.android.apksig.util.DataSource outputApkIn
com.android.apksig.apk.ApkUtils$ZipSections inputZipSections
long inputApkSigningBlockOffset
com.android.apksig.util.DataSource inputApkSigningBlock
com.android.apksig.util.DataSource inputApkLfhSection
java.nio.ByteBuffer inputCd
java.util.List inputCdRecords
com.android.apksig.ApkSignerEngine signerEngine
java.util.List inputCdRecordsSortedByLfhOffset
int lastModifiedDateForNewEntries
int lastModifiedTimeForNewEntries
long inputOffset
long outputOffset
java.util.Map outputCdRecordsByName
long inputLfhSectionSize
java.util.List outputCdRecords
com.android.apksig.ApkSignerEngine$OutputJarSignatureRequest outputJarSignatureRequest
long outputCentralDirSizeBytes
java.nio.ByteBuffer outputCentralDir
com.android.apksig.util.DataSource outputCentralDirDataSource
long outputCentralDirStartOffset
int outputCentralDirRecordCount
java.nio.ByteBuffer outputEocd
com.android.apksig.ApkSignerEngine$OutputApkSigningBlockRequest outputApkSigingBlockRequest
private static void fulfillInspectInputJarEntryRequest (com.android.apksig.util.DataSource, com.android.apksig.internal.zip.LocalFileRecord, com.android.apksig.ApkSignerEngine$InspectJarEntryRequest) throws java.io.IOException com.android.apksig.apk.ApkFormatException
com.android.apksig.zip.ZipFormatException e
com.android.apksig.util.DataSource lfhSection
com.android.apksig.internal.zip.LocalFileRecord localFileRecord
com.android.apksig.ApkSignerEngine$InspectJarEntryRequest inspectEntryRequest
private static long outputInputJarEntryLfhRecordPreservingDataAlignment (com.android.apksig.util.DataSource, com.android.apksig.internal.zip.LocalFileRecord, com.android.apksig.util.DataSink, long) throws java.io.IOException
com.android.apksig.util.DataSource inputLfhSection
com.android.apksig.internal.zip.LocalFileRecord inputRecord
com.android.apksig.util.DataSink outputLfhSection
long outputOffset
long inputOffset
int dataAlignmentMultiple
long inputDataStartOffset
java.nio.ByteBuffer aligningExtra
private static int getInputJarEntryDataAlignmentMultiple (com.android.apksig.internal.zip.LocalFileRecord)
short headerId
int dataSize
com.android.apksig.internal.zip.LocalFileRecord entry
java.nio.ByteBuffer extra
private static java.nio.ByteBuffer createExtraFieldToAlignData (java.nio.ByteBuffer, long, int)
short headerId
int dataSize
int originalLimit
java.nio.ByteBuffer original
long extraStartOffset
int dataAlignmentMultiple
java.nio.ByteBuffer result
long dataMinStartOffset
int paddingSizeBytes
private static java.nio.ByteBuffer getZipCentralDirectory (com.android.apksig.util.DataSource, com.android.apksig.apk.ApkUtils$ZipSections) throws java.io.IOException com.android.apksig.apk.ApkFormatException
com.android.apksig.util.DataSource apk
com.android.apksig.apk.ApkUtils$ZipSections apkSections
long cdSizeBytes
long cdOffset
java.nio.ByteBuffer cd
private static java.util.List parseZipCentralDirectory (java.nio.ByteBuffer, com.android.apksig.apk.ApkUtils$ZipSections) throws com.android.apksig.apk.ApkFormatException
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
com.android.apksig.zip.ZipFormatException e
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
int offsetInsideCd
String entryName
int i
java.nio.ByteBuffer cd
com.android.apksig.apk.ApkUtils$ZipSections apkSections
long cdOffset
int expectedCdRecordCount
java.util.List cdRecords
java.util.Set entryNames
static int getMinSdkVersionFromApk (java.util.List, com.android.apksig.util.DataSource) throws java.io.IOException com.android.apksig.apk.MinSdkVersionException
com.android.apksig.internal.zip.CentralDirectoryRecord cdRecord
byte[] androidManifest
com.android.apksig.zip.ZipFormatException e
java.util.List cdRecords
com.android.apksig.util.DataSource lhfSection
com.android.apksig.internal.zip.CentralDirectoryRecord androidManifestCdRecord
byte[] androidManifest
void (java.util.List, java.lang.Integer, boolean, boolean, boolean, java.lang.String, com.android.apksig.ApkSignerEngine, java.io.File, com.android.apksig.util.DataSource, java.io.File, com.android.apksig.util.DataSink, com.android.apksig.util.DataSource, com.android.apksig.ApkSigner$1)
java.util.List x0
Integer x1
boolean x2
boolean x3
boolean x4
String x5
com.android.apksig.ApkSignerEngine x6
java.io.File x7
com.android.apksig.util.DataSource x8
java.io.File x9
com.android.apksig.util.DataSink x10
com.android.apksig.util.DataSource x11
com.android.apksig.ApkSigner$1 x12
}
com/android/apksig/ApkVerifier$Result$V1SchemeSignerInfo.classApkVerifier.java
package com.android.apksig
public com.android.apksig.ApkVerifier$Result$V1SchemeSignerInfo extends java.lang.Object {
private final String mName
private final java.util.List mCertChain
private final String mSignatureBlockFileName
private final String mSignatureFileName
private final java.util.List mErrors
private final java.util.List mWarnings
private void (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo result
public java.lang.String getName ()
public java.lang.String getSignatureBlockFileName ()
public java.lang.String getSignatureFileName ()
public java.security.cert.X509Certificate getCertificate ()
public java.util.List getCertificateChain ()
public boolean containsErrors ()
public java.util.List getErrors ()
public java.util.List getWarnings ()
private transient void addError (com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Issue msg
Object[] parameters
static void access$300 (com.android.apksig.ApkVerifier$Result$V1SchemeSignerInfo, com.android.apksig.ApkVerifier$Issue, java.lang.Object[])
com.android.apksig.ApkVerifier$Result$V1SchemeSignerInfo x0
com.android.apksig.ApkVerifier$Issue x1
Object[] x2
void (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo, com.android.apksig.ApkVerifier$1)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo x0
com.android.apksig.ApkVerifier$1 x1
}
com/android/apksig/ApkVerifier$Result.classApkVerifier.java
package com.android.apksig
public com.android.apksig.ApkVerifier$Result extends java.lang.Object {
private final java.util.List mErrors
private final java.util.List mWarnings
private final java.util.List mSignerCerts
private final java.util.List mV1SchemeSigners
private final java.util.List mV1SchemeIgnoredSigners
private final java.util.List mV2SchemeSigners
private boolean mVerified
private boolean mVerifiedUsingV1Scheme
private boolean mVerifiedUsingV2Scheme
public void ()
public boolean isVerified ()
private void setVerified ()
public boolean isVerifiedUsingV1Scheme ()
public boolean isVerifiedUsingV2Scheme ()
public java.util.List getSignerCertificates ()
private void addSignerCertificate (java.security.cert.X509Certificate)
java.security.cert.X509Certificate cert
public java.util.List getV1SchemeSigners ()
public java.util.List getV1SchemeIgnoredSigners ()
public java.util.List getV2SchemeSigners ()
public java.util.List getErrors ()
public java.util.List getWarnings ()
private void mergeFrom (com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result)
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo signer
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result$SignerInfo signer
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result source
private void mergeFrom (com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result)
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result$SignerInfo signer
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result source
public boolean containsErrors ()
com.android.apksig.ApkVerifier$Result$V1SchemeSignerInfo signer
com.android.apksig.ApkVerifier$Result$V2SchemeSignerInfo signer
static void access$000 (com.android.apksig.ApkVerifier$Result, com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result)
com.android.apksig.ApkVerifier$Result x0
com.android.apksig.internal.apk.v2.V2SchemeVerifier$Result x1
static void access$100 (com.android.apksig.ApkVerifier$Result, com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result)
com.android.apksig.ApkVerifier$Result x0
com.android.apksig.internal.apk.v1.V1SchemeVerifier$Result x1
static void access$500 (com.android.apksig.ApkVerifier$Result)
com.android.apksig.ApkVerifier$Result x0
static void access$600 (com.android.apksig.ApkVerifier$Result, java.security.cert.X509Certificate)
com.android.apksig.ApkVerifier$Result x0
java.security.cert.X509Certificate x1
}