SigningInfo
public
final
class
SigningInfo
extends Object
implements
Parcelable
java.lang.Object | |
↳ | android.content.pm.SigningInfo |
Information pertaining to the signing certificates used to sign a package.
Summary
Constants | |
---|---|
int |
VERSION_JAR
JAR signing (v1 scheme). |
int |
VERSION_SIGNING_BLOCK_V2
APK signature scheme v2. |
int |
VERSION_SIGNING_BLOCK_V3
APK signature scheme v3. |
int |
VERSION_SIGNING_BLOCK_V4
APK signature scheme v4. |
Inherited constants |
---|
Fields | |
---|---|
public
static
final
Creator<SigningInfo> |
CREATOR
|
Public constructors | |
---|---|
SigningInfo()
|
|
SigningInfo(SigningInfo orig)
|
|
SigningInfo(int schemeVersion, Collection<Signature> apkContentsSigners, Collection<PublicKey> publicKeys, Collection<Signature> signingCertificateHistory)
Creates a new instance of information used to sign the APK. |
Public methods | |
---|---|
int
|
describeContents()
Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
Signature[]
|
getApkContentsSigners()
Returns the signing certificates used to sign the APK contents of this application. |
Collection<PublicKey>
|
getPublicKeys()
Returns the public keys for the signing certificates. |
int
|
getSchemeVersion()
Returns the version of signing schema used to sign the APK. |
Signature[]
|
getSigningCertificateHistory()
Returns the signing certificates this package has proven it is authorized to use. |
boolean
|
hasMultipleSigners()
Although relatively uncommon, packages may be signed by more than one signer, in which case their identity is viewed as being the set of all signers, not just any one. |
boolean
|
hasPastSigningCertificates()
APK Signature Scheme v3 enables packages to provide a proof-of-rotation record that the platform verifies, and uses, to allow the use of new signing certificates. |
boolean
|
signersMatchExactly(SigningInfo other)
Returns true if the signing certificates in this and other match exactly. |
void
|
writeToParcel(Parcel dest, int parcelableFlags)
Flatten this object in to a Parcel. |
Inherited methods | |
---|---|
Constants
VERSION_JAR
public static final int VERSION_JAR
JAR signing (v1 scheme). See https://source.android.com/docs/security/features/apksigning#v1.
Constant Value: 1 (0x00000001)
VERSION_SIGNING_BLOCK_V2
public static final int VERSION_SIGNING_BLOCK_V2
APK signature scheme v2. See https://source.android.com/docs/security/features/apksigning/v2.
Constant Value: 2 (0x00000002)
VERSION_SIGNING_BLOCK_V3
public static final int VERSION_SIGNING_BLOCK_V3
APK signature scheme v3. See https://source.android.com/docs/security/features/apksigning/v3.
Constant Value: 3 (0x00000003)
VERSION_SIGNING_BLOCK_V4
public static final int VERSION_SIGNING_BLOCK_V4
APK signature scheme v4. See https://source.android.com/docs/security/features/apksigning/v4.
Constant Value: 4 (0x00000004)
Fields
Public constructors
SigningInfo
public SigningInfo (int schemeVersion, Collection<Signature> apkContentsSigners, Collection<PublicKey> publicKeys, Collection<Signature> signingCertificateHistory)
Creates a new instance of information used to sign the APK.
Parameters | |
---|---|
schemeVersion |
int : version of signing schema.
Value is android.content.pm.SigningDetails.SignatureSchemeVersion.UNKNOWN, android.content.pm.SigningDetails.SignatureSchemeVersion.JAR, android.content.pm.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V2, android.content.pm.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V3, or android.content.pm.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V4 |
apkContentsSigners |
Collection : signing certificates.
This value may be null . |
publicKeys |
Collection : for the signing certificates.
This value may be null . |
signingCertificateHistory |
Collection : All signing certificates the package has proven it is
authorized to use.
This value may be null . |
See also:
Public methods
describeContents
public int describeContents ()
Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of writeToParcel(android.os.Parcel, int)
,
the return value of this method must include the
CONTENTS_FILE_DESCRIPTOR
bit.
Returns | |
---|---|
int |
a bitmask indicating the set of special object types marshaled
by this Parcelable object instance.
Value is either 0 or CONTENTS_FILE_DESCRIPTOR |
getApkContentsSigners
public Signature[] getApkContentsSigners ()
Returns the signing certificates used to sign the APK contents of this application. Not
including any past signing certificates the package proved it is authorized to use.
hasMultipleSigners()
returns true,
indicating that getSigningCertificateHistory()
cannot be used, otherwise getSigningCertificateHistory()
should be preferred.
Returns | |
---|---|
Signature[] |
getPublicKeys
public Collection<PublicKey> getPublicKeys ()
Returns the public keys for the signing certificates.
Returns | |
---|---|
Collection<PublicKey> |
This value cannot be null . |
getSchemeVersion
public int getSchemeVersion ()
Returns the version of signing schema used to sign the APK.
Returns | |
---|---|
int |
Value is android.content.pm.SigningDetails.SignatureSchemeVersion.UNKNOWN, android.content.pm.SigningDetails.SignatureSchemeVersion.JAR, android.content.pm.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V2, android.content.pm.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V3, or android.content.pm.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V4 |
See also:
getSigningCertificateHistory
public Signature[] getSigningCertificateHistory ()
Returns the signing certificates this package has proven it is authorized to use. This
includes both the signing certificate associated with the signer of the package and the past
signing certificates it included as its proof of signing certificate rotation. Signing
certificates are returned in the order of rotation with the original signing certificate at
index 0, and the current signing certificate at the last index. This method is the preferred
replacement for the GET_SIGNATURES
flag used with PackageManager.getPackageInfo(java.lang.String, int)
. When determining if a package is signed by a
desired certificate, the returned array should be checked to determine if it is one of the
entries.
hasMultipleSigners()
may be used to determine if this
package is signed by multiple signers. Packages which are signed by multiple signers
cannot change their signing certificates and their Signature
array should be
checked to make sure that every entry matches the looked-for signing certificates.
Returns | |
---|---|
Signature[] |
hasMultipleSigners
public boolean hasMultipleSigners ()
Although relatively uncommon, packages may be signed by more than one signer, in which case their identity is viewed as being the set of all signers, not just any one.
Returns | |
---|---|
boolean |
hasPastSigningCertificates
public boolean hasPastSigningCertificates ()
APK Signature Scheme v3 enables packages to provide a proof-of-rotation record that the platform verifies, and uses, to allow the use of new signing certificates. This is only available to packages that are not signed by multiple signers. In the event of a change to a new signing certificate, the package's past signing certificates are presented as well. Any check of a package's signing certificate should also include a search through its entire signing history, since it could change to a new signing certificate at any time.
Returns | |
---|---|
boolean |
signersMatchExactly
public boolean signersMatchExactly (SigningInfo other)
Returns true if the signing certificates in this and other match exactly.
Parameters | |
---|---|
other |
SigningInfo : This value cannot be null . |
Returns | |
---|---|
boolean |
writeToParcel
public void writeToParcel (Parcel dest, int parcelableFlags)
Flatten this object in to a Parcel.
Parameters | |
---|---|
dest |
Parcel : The Parcel in which the object should be written.
This value cannot be null . |
parcelableFlags |
int : Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE .
Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE , and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |