From 33825840a3156b156b1fe9e7dd5b700c4c1b7537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenzel=20P=C3=BCnter?= Date: Tue, 1 Mar 2016 10:46:05 +0100 Subject: [PATCH] Added Android Marshmallow Patch. --- patches/android_frameworks_base-M.patch | 76 +++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 patches/android_frameworks_base-M.patch diff --git a/patches/android_frameworks_base-M.patch b/patches/android_frameworks_base-M.patch new file mode 100644 index 00000000..f669d5df --- /dev/null +++ b/patches/android_frameworks_base-M.patch @@ -0,0 +1,76 @@ +diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java +index 99bd390..2ea7722 100644 +--- a/core/java/android/content/pm/PackageParser.java ++++ b/core/java/android/content/pm/PackageParser.java +@@ -578,10 +578,22 @@ public class PackageParser { + } + } + if ((flags&PackageManager.GET_SIGNATURES) != 0) { +- int N = (p.mSignatures != null) ? p.mSignatures.length : 0; +- if (N > 0) { +- pi.signatures = new Signature[N]; +- System.arraycopy(p.mSignatures, 0, pi.signatures, 0, N); ++ boolean handledFakeSignature = false; ++ try { ++ if (p.requestedPermissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE") && p.mAppMetaData != null && +p.mAppMetaData.get("fake-signature") instanceof String) { ++ pi.signatures = new Signature[] {new Signature(p.mAppMetaData.getString("fake-signature"))}; ++ handledFakeSignature = true; ++ } ++ } catch (Throwable t) { ++ //We should never die because of any failures, this is system code! ++ Log.w("PackageParser.FAKE_PACKAGE_SIGNATURE", t); ++ } ++ if (!handledFakeSignature) { ++ int N = (p.mSignatures != null) ? p.mSignatures.length : 0; ++ if (N > 0) { ++ pi.signatures = new Signature[N]; ++ System.arraycopy(p.mSignatures, 0, pi.signatures, 0, N); ++ } + } + } + return pi; +diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml +index 08bccc1..93afc86 100644 +--- a/core/res/AndroidManifest.xml ++++ b/core/res/AndroidManifest.xml +@@ -1623,6 +1623,12 @@ + android:description="@string/permdesc_getPackageSize" + android:protectionLevel="normal" /> + ++ ++ + +diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml +index 6c96f84..c391f30 100644 +--- a/core/res/res/values/config.xml ++++ b/core/res/res/values/config.xml +@@ -1176,6 +1176,8 @@ + + + com.android.location.fused ++ ++ com.google.android.gms + + + +diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml +index 8a9b9cf..d4ad231 100644 +--- a/core/res/res/values/strings.xml ++++ b/core/res/res/values/strings.xml +@@ -763,6 +763,9 @@ + + Allows the app to retrieve its code, data, and cache sizes + ++ mimic package signature ++ Allows the app to use mimic another app\'s package signature. ++ + + modify system settings +