Loading api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -5625,7 +5625,7 @@ package android.webkit { field public final java.lang.String description; field public final boolean isFallback; field public final java.lang.String packageName; field public final java.lang.String[] signatures; field public final android.content.pm.Signature[] signatures; } public final class WebViewUpdateService { Loading core/java/android/webkit/WebViewProviderInfo.java +13 −6 Original line number Diff line number Diff line Loading @@ -17,10 +17,10 @@ package android.webkit; import android.annotation.SystemApi; import android.content.pm.Signature; import android.os.Parcel; import android.os.Parcelable; import java.util.Arrays; import android.util.Base64; /** * @hide Loading @@ -34,7 +34,14 @@ public final class WebViewProviderInfo implements Parcelable { this.description = description; this.availableByDefault = availableByDefault; this.isFallback = isFallback; this.signatures = signatures; if (signatures == null) { this.signatures = new Signature[0]; } else { this.signatures = new Signature[signatures.length]; for (int n = 0; n < signatures.length; n++) { this.signatures[n] = new Signature(Base64.decode(signatures[n], Base64.DEFAULT)); } } } // aidl stuff Loading @@ -54,7 +61,7 @@ public final class WebViewProviderInfo implements Parcelable { description = in.readString(); availableByDefault = (in.readInt() > 0); isFallback = (in.readInt() > 0); signatures = in.createStringArray(); signatures = in.createTypedArray(Signature.CREATOR); } @Override Loading @@ -68,7 +75,7 @@ public final class WebViewProviderInfo implements Parcelable { out.writeString(description); out.writeInt(availableByDefault ? 1 : 0); out.writeInt(isFallback ? 1 : 0); out.writeStringArray(signatures); out.writeTypedArray(signatures, 0); } // fields read from framework resource Loading @@ -76,5 +83,5 @@ public final class WebViewProviderInfo implements Parcelable { public final String description; public final boolean availableByDefault; public final boolean isFallback; public final String[] signatures; public final Signature[] signatures; } services/core/java/com/android/server/webkit/WebViewUpdater.java +3 −9 Original line number Diff line number Diff line Loading @@ -507,22 +507,16 @@ class WebViewUpdater { if (systemInterface.systemIsDebuggable()) { return true; } Signature[] packageSignatures; // If no signature is declared, instead check whether the package is included in the // system. if (provider.signatures == null || provider.signatures.length == 0) { return packageInfo.applicationInfo.isSystemApp(); } packageSignatures = packageInfo.signatures; if (packageSignatures.length != 1) return false; if (packageInfo.signatures.length != 1) return false; final byte[] packageSignature = packageSignatures[0].toByteArray(); // Return whether the package signature matches any of the valid signatures for (String signature : provider.signatures) { final byte[] validSignature = Base64.decode(signature, Base64.DEFAULT); if (Arrays.equals(packageSignature, validSignature)) return true; for (Signature signature : provider.signatures) { if (signature.equals(packageInfo.signatures[0])) return true; } return false; } Loading Loading
api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -5625,7 +5625,7 @@ package android.webkit { field public final java.lang.String description; field public final boolean isFallback; field public final java.lang.String packageName; field public final java.lang.String[] signatures; field public final android.content.pm.Signature[] signatures; } public final class WebViewUpdateService { Loading
core/java/android/webkit/WebViewProviderInfo.java +13 −6 Original line number Diff line number Diff line Loading @@ -17,10 +17,10 @@ package android.webkit; import android.annotation.SystemApi; import android.content.pm.Signature; import android.os.Parcel; import android.os.Parcelable; import java.util.Arrays; import android.util.Base64; /** * @hide Loading @@ -34,7 +34,14 @@ public final class WebViewProviderInfo implements Parcelable { this.description = description; this.availableByDefault = availableByDefault; this.isFallback = isFallback; this.signatures = signatures; if (signatures == null) { this.signatures = new Signature[0]; } else { this.signatures = new Signature[signatures.length]; for (int n = 0; n < signatures.length; n++) { this.signatures[n] = new Signature(Base64.decode(signatures[n], Base64.DEFAULT)); } } } // aidl stuff Loading @@ -54,7 +61,7 @@ public final class WebViewProviderInfo implements Parcelable { description = in.readString(); availableByDefault = (in.readInt() > 0); isFallback = (in.readInt() > 0); signatures = in.createStringArray(); signatures = in.createTypedArray(Signature.CREATOR); } @Override Loading @@ -68,7 +75,7 @@ public final class WebViewProviderInfo implements Parcelable { out.writeString(description); out.writeInt(availableByDefault ? 1 : 0); out.writeInt(isFallback ? 1 : 0); out.writeStringArray(signatures); out.writeTypedArray(signatures, 0); } // fields read from framework resource Loading @@ -76,5 +83,5 @@ public final class WebViewProviderInfo implements Parcelable { public final String description; public final boolean availableByDefault; public final boolean isFallback; public final String[] signatures; public final Signature[] signatures; }
services/core/java/com/android/server/webkit/WebViewUpdater.java +3 −9 Original line number Diff line number Diff line Loading @@ -507,22 +507,16 @@ class WebViewUpdater { if (systemInterface.systemIsDebuggable()) { return true; } Signature[] packageSignatures; // If no signature is declared, instead check whether the package is included in the // system. if (provider.signatures == null || provider.signatures.length == 0) { return packageInfo.applicationInfo.isSystemApp(); } packageSignatures = packageInfo.signatures; if (packageSignatures.length != 1) return false; if (packageInfo.signatures.length != 1) return false; final byte[] packageSignature = packageSignatures[0].toByteArray(); // Return whether the package signature matches any of the valid signatures for (String signature : provider.signatures) { final byte[] validSignature = Base64.decode(signature, Base64.DEFAULT); if (Arrays.equals(packageSignature, validSignature)) return true; for (Signature signature : provider.signatures) { if (signature.equals(packageInfo.signatures[0])) return true; } return false; } Loading