diff options
author | 2018-02-07 21:03:32 +0000 | |
---|---|---|
committer | 2018-02-07 21:03:32 +0000 | |
commit | 0589371900a47b70dd5851c9792ffdbdd781c96c (patch) | |
tree | 7feb40b8d9fbff875d6034d7da0c8b5b9364d77e | |
parent | c9bb8570260c0ca194883a98d270b8a7595646b0 (diff) | |
parent | 050b79975b1a8031acbab61cdd2b2c220efc4217 (diff) |
Merge "PackageInfo: add Parcel read/write for cert history."
-rw-r--r-- | core/java/android/content/pm/PackageInfo.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/content/pm/PackageInfo.java b/core/java/android/content/pm/PackageInfo.java index 09a46b8acf4b..0342c93bb34f 100644 --- a/core/java/android/content/pm/PackageInfo.java +++ b/core/java/android/content/pm/PackageInfo.java @@ -468,6 +468,18 @@ public class PackageInfo implements Parcelable { dest.writeBoolean(mOverlayIsStatic); dest.writeInt(compileSdkVersion); dest.writeString(compileSdkVersionCodename); + writeSigningCertificateHistoryToParcel(dest, parcelableFlags); + } + + private void writeSigningCertificateHistoryToParcel(Parcel dest, int parcelableFlags) { + if (signingCertificateHistory != null) { + dest.writeInt(signingCertificateHistory.length); + for (int i = 0; i < signingCertificateHistory.length; i++) { + dest.writeTypedArray(signingCertificateHistory[i], parcelableFlags); + } + } else { + dest.writeInt(-1); + } } public static final Parcelable.Creator<PackageInfo> CREATOR @@ -523,6 +535,7 @@ public class PackageInfo implements Parcelable { mOverlayIsStatic = source.readBoolean(); compileSdkVersion = source.readInt(); compileSdkVersionCodename = source.readString(); + readSigningCertificateHistoryFromParcel(source); // The component lists were flattened with the redundant ApplicationInfo // instances omitted. Distribute the canonical one here as appropriate. @@ -534,6 +547,16 @@ public class PackageInfo implements Parcelable { } } + private void readSigningCertificateHistoryFromParcel(Parcel source) { + int len = source.readInt(); + if (len != -1) { + signingCertificateHistory = new Signature[len][]; + for (int i = 0; i < len; i++) { + signingCertificateHistory[i] = source.createTypedArray(Signature.CREATOR); + } + } + } + private void propagateApplicationInfo(ApplicationInfo appInfo, ComponentInfo[] components) { if (components != null) { for (ComponentInfo ci : components) { |