Added in API level 28

SigningInfo


class SigningInfo : Parcelable
kotlin.Any
   ↳ android.content.pm.SigningInfo

Information pertaining to the signing certificates used to sign a package.

Summary

Constants
static Int

JAR signing (v1 scheme).

static Int

APK signature scheme v2.

static Int

APK signature scheme v3.

static Int

APK signature scheme v4.

Inherited constants
Public constructors

SigningInfo(schemeVersion: Int, apkContentsSigners: MutableCollection<Signature!>?, publicKeys: MutableCollection<PublicKey!>?, signingCertificateHistory: MutableCollection<Signature!>?)

Creates a new instance of information used to sign the APK.

Public methods
Int

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

Array<Signature!>!

Returns the signing certificates used to sign the APK contents of this application.

MutableCollection<PublicKey!>

Returns the public keys for the signing certificates.

Int

Returns the version of signing schema used to sign the APK.

Array<Signature!>!

Returns the signing certificates this package has proven it is authorized to use.

Boolean

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

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

Returns true if the signing certificates in this and other match exactly.

Unit
writeToParcel(dest: Parcel, parcelableFlags: Int)

Flatten this object in to a Parcel.

Properties
static Parcelable.Creator<SigningInfo!>

Constants

VERSION_JAR

Added in API level 36
static val VERSION_JAR: Int

JAR signing (v1 scheme). See https://source.android.com/docs/security/features/apksigning#v1.

Value: 1

VERSION_SIGNING_BLOCK_V2

Added in API level 36
static val VERSION_SIGNING_BLOCK_V2: Int

APK signature scheme v2. See https://source.android.com/docs/security/features/apksigning/v2.

Value: 2

VERSION_SIGNING_BLOCK_V3

Added in API level 36
static val VERSION_SIGNING_BLOCK_V3: Int

APK signature scheme v3. See https://source.android.com/docs/security/features/apksigning/v3.

Value: 3

VERSION_SIGNING_BLOCK_V4

Added in API level 36
static val VERSION_SIGNING_BLOCK_V4: Int

APK signature scheme v4. See https://source.android.com/docs/security/features/apksigning/v4.

Value: 4

Public constructors

SigningInfo

Added in API level 28
SigningInfo()

SigningInfo

Added in API level 28
SigningInfo(orig: SigningInfo!)

SigningInfo

Added in API level 35
SigningInfo(
    schemeVersion: Int,
    apkContentsSigners: MutableCollection<Signature!>?,
    publicKeys: MutableCollection<PublicKey!>?,
    signingCertificateHistory: MutableCollection<Signature!>?)

Creates a new instance of information used to sign the APK.

Parameters
schemeVersion Int: version of signing schema.
Value is one of the following:
    apkContentsSigners MutableCollection<Signature!>?: signing certificates.
    This value may be null.
    publicKeys MutableCollection<PublicKey!>?: for the signing certificates.
    This value may be null.
    signingCertificateHistory MutableCollection<Signature!>?: All signing certificates the package has proven it is authorized to use.
    This value may be null.

    See Also

      Public methods

      describeContents

      Added in API level 28
      fun describeContents(): Int

      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.

      Return
      Int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.
      Value is either 0 or

      getApkContentsSigners

      Added in API level 28
      fun getApkContentsSigners(): Array<Signature!>!

      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. This method should not be used unless hasMultipleSigners() returns true, indicating that getSigningCertificateHistory() cannot be used, otherwise getSigningCertificateHistory() should be preferred.

      getPublicKeys

      Added in API level 35
      fun getPublicKeys(): MutableCollection<PublicKey!>

      Returns the public keys for the signing certificates.

      Return
      MutableCollection<PublicKey!> This value cannot be null.

      getSchemeVersion

      Added in API level 35
      fun getSchemeVersion(): Int

      Returns the version of signing schema used to sign the APK.

      Return
      Int Value is one of the following:

        See Also

          getSigningCertificateHistory

          Added in API level 28
          fun getSigningCertificateHistory(): Array<Signature!>!

          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(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. This method returns null if the package is signed by multiple signing certificates, as opposed to being signed by one current signer and also providing the history of past signing certificates. 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.

          hasMultipleSigners

          Added in API level 28
          fun hasMultipleSigners(): Boolean

          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.

          hasPastSigningCertificates

          Added in API level 28
          fun hasPastSigningCertificates(): Boolean

          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.

          signersMatchExactly

          Added in API level 36
          fun signersMatchExactly(other: SigningInfo): Boolean

          Returns true if the signing certificates in this and other match exactly.

          Parameters
          other SigningInfo: This value cannot be null.

          writeToParcel

          Added in API level 28
          fun writeToParcel(
              dest: Parcel,
              parcelableFlags: Int
          ): Unit

          Flatten this object in to a Parcel.

          Parameters
          dest Parcel: The Parcel in which the object should be written.
          This value cannot be null.
          flags Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.
          Value is either 0 or a combination of the following:

          Properties

          CREATOR

          Added in API level 28
          static val CREATOR: Parcelable.Creator<SigningInfo!>