mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-12-25 07:29:24 -05:00
17.1: Reconcile picks
Signed-off-by: Tavi <tavi@divested.dev>
This commit is contained in:
parent
ed59b190c7
commit
3fd3dd08c1
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 8403f004112570c0974f227e79e82607e12f6c94 Mon Sep 17 00:00:00 2001
|
||||||
From: Brian Osman <brianosman@google.com>
|
From: Brian Osman <brianosman@google.com>
|
||||||
Date: Tue, 27 Aug 2024 14:22:52 -0400
|
Date: Tue, 27 Aug 2024 14:22:52 -0400
|
||||||
Subject: [PATCH] RESTRICT AUTOMERGE: Avoid potential overflow when allocating
|
Subject: [PATCH] RESTRICT AUTOMERGE: Avoid potential overflow when allocating
|
||||||
@ -25,7 +25,7 @@ Change-Id: Ia35860371d45120baca63238e77faa5c0eb25d51
|
|||||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/effects/SkEmbossMaskFilter.cpp b/src/effects/SkEmbossMaskFilter.cpp
|
diff --git a/src/effects/SkEmbossMaskFilter.cpp b/src/effects/SkEmbossMaskFilter.cpp
|
||||||
index ef26520172..94ff73e908 100644
|
index ef265201727..94ff73e9088 100644
|
||||||
--- a/src/effects/SkEmbossMaskFilter.cpp
|
--- a/src/effects/SkEmbossMaskFilter.cpp
|
||||||
+++ b/src/effects/SkEmbossMaskFilter.cpp
|
+++ b/src/effects/SkEmbossMaskFilter.cpp
|
||||||
@@ -95,11 +95,13 @@ bool SkEmbossMaskFilter::filterMask(SkMask* dst, const SkMask& src,
|
@@ -95,11 +95,13 @@ bool SkEmbossMaskFilter::filterMask(SkMask* dst, const SkMask& src,
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From c913dee38cbeaae19c5f12c37aec25654d74b671 Mon Sep 17 00:00:00 2001
|
||||||
From: Dmitry Dementyev <dementyev@google.com>
|
From: Dmitry Dementyev <dementyev@google.com>
|
||||||
Date: Thu, 11 Jul 2024 12:39:22 -0700
|
Date: Thu, 11 Jul 2024 12:39:22 -0700
|
||||||
Subject: [PATCH] Update AccountManagerService checkKeyIntent.
|
Subject: [PATCH] Update AccountManagerService checkKeyIntent.
|
||||||
@ -17,10 +17,10 @@ Change-Id: I8b23191d3d60036ca7ddf0ef7dcba6b38fb27b3c
|
|||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
||||||
index bf577735d037..e8c8b32884e9 100644
|
index bf577735d0372..e8c8b32884e96 100644
|
||||||
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
|
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
|
||||||
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
||||||
@@ -4822,6 +4822,9 @@ public class AccountManagerService
|
@@ -4822,6 +4822,9 @@ protected boolean checkKeyIntent(int authUid, Bundle bundle) {
|
||||||
if (resolveInfo == null) {
|
if (resolveInfo == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 4ffd411d62fe0a866c0ed0852260e2834c202630 Mon Sep 17 00:00:00 2001
|
||||||
From: William Loh <wloh@google.com>
|
From: William Loh <wloh@google.com>
|
||||||
Date: Mon, 3 Jun 2024 12:56:47 -0700
|
Date: Mon, 3 Jun 2024 12:56:47 -0700
|
||||||
Subject: [PATCH] Fail parseUri if end is missing
|
Subject: [PATCH] Fail parseUri if end is missing
|
||||||
@ -15,10 +15,10 @@ Change-Id: I5f619ced684ff505ce2b7408cd35dd3e9be89dea
|
|||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
|
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
|
||||||
index 72e0fa615b09..0685466bfa74 100644
|
index 72e0fa615b092..0685466bfa74e 100644
|
||||||
--- a/core/java/android/content/Intent.java
|
--- a/core/java/android/content/Intent.java
|
||||||
+++ b/core/java/android/content/Intent.java
|
+++ b/core/java/android/content/Intent.java
|
||||||
@@ -6708,6 +6708,9 @@ public class Intent implements Parcelable, Cloneable {
|
@@ -6708,6 +6708,9 @@ public static Intent parseUri(String uri, @UriFlags int flags) throws URISyntaxE
|
||||||
int eq = uri.indexOf('=', i);
|
int eq = uri.indexOf('=', i);
|
||||||
if (eq < 0) eq = i-1;
|
if (eq < 0) eq = i-1;
|
||||||
int semi = uri.indexOf(';', i);
|
int semi = uri.indexOf(';', i);
|
@ -1,8 +1,8 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From d336d741ce6aa201cb81de38153bb367921fdf9d Mon Sep 17 00:00:00 2001
|
||||||
From: Sumedh Sen <sumedhsen@google.com>
|
From: Sumedh Sen <sumedhsen@google.com>
|
||||||
Date: Wed, 17 Jul 2024 01:00:55 +0000
|
Date: Wed, 17 Jul 2024 01:00:55 +0000
|
||||||
Subject: [PATCH] Check whether installerPackageName contains only valid
|
Subject: [PATCH] [RESTRICT AUTOMERGE] Check whether installerPackageName
|
||||||
characters
|
contains only valid characters
|
||||||
|
|
||||||
Bug: 341256391
|
Bug: 341256391
|
||||||
Bug: 307532206
|
Bug: 307532206
|
||||||
@ -15,10 +15,10 @@ Change-Id: I74a172c617d6f5b13f0708092156b657b73b5891
|
|||||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
|
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
|
||||||
index 8715b183d142..6c77a9575dcb 100644
|
index 8715b183d142b..6c77a9575dcb5 100644
|
||||||
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
|
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
|
||||||
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
|
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
|
||||||
@@ -549,12 +549,17 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
|
@@ -549,12 +549,17 @@ private int createSessionInternal(SessionParams params, String installerPackageN
|
||||||
params.appLabel = TextUtils.trimToSize(params.appLabel,
|
params.appLabel = TextUtils.trimToSize(params.appLabel,
|
||||||
PackageItemInfo.MAX_SAFE_LABEL_LENGTH);
|
PackageItemInfo.MAX_SAFE_LABEL_LENGTH);
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 90f15826f146b6487064f3a680f129ea50c32f71 Mon Sep 17 00:00:00 2001
|
||||||
From: Dmitry Dementyev <dementyev@google.com>
|
From: Dmitry Dementyev <dementyev@google.com>
|
||||||
Date: Tue, 2 Jul 2024 11:02:07 -0700
|
Date: Tue, 2 Jul 2024 11:02:07 -0700
|
||||||
Subject: [PATCH] Remove authenticator data if it was disabled.
|
Subject: [PATCH] Remove authenticator data if it was disabled.
|
||||||
@ -15,10 +15,10 @@ Change-Id: I36bd6bf101da03c9c30a6d3c0080b801e7898bc6
|
|||||||
1 file changed, 4 insertions(+)
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
||||||
index e8c8b32884e9..f99e82f74f6e 100644
|
index e8c8b32884e96..f99e82f74f6eb 100644
|
||||||
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
|
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
|
||||||
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
|
||||||
@@ -1165,6 +1165,10 @@ public class AccountManagerService
|
@@ -1165,6 +1165,10 @@ private void validateAccountsInternal(
|
||||||
obsoleteAuthType.add(type);
|
obsoleteAuthType.add(type);
|
||||||
// And delete it from the TABLE_META
|
// And delete it from the TABLE_META
|
||||||
accountsDb.deleteMetaByAuthTypeAndUid(type, uid);
|
accountsDb.deleteMetaByAuthTypeAndUid(type, uid);
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 52ea93cd8fc8e703ecbad0efef526cd3a7f17617 Mon Sep 17 00:00:00 2001
|
||||||
From: Jean-Michel Trivi <jmtrivi@google.com>
|
From: Jean-Michel Trivi <jmtrivi@google.com>
|
||||||
Date: Mon, 24 Jun 2024 17:29:14 -0700
|
Date: Mon, 24 Jun 2024 17:29:14 -0700
|
||||||
Subject: [PATCH] RingtoneManager: allow video ringtone URI
|
Subject: [PATCH] RingtoneManager: allow video ringtone URI
|
||||||
@ -17,10 +17,10 @@ Change-Id: Iac9f27f14bae29e0fabc31e05da2357f6f4f16c7
|
|||||||
2 files changed, 13 insertions(+), 6 deletions(-)
|
2 files changed, 13 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java
|
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java
|
||||||
index ad4751165d30..ea1cddca99d1 100644
|
index ad4751165d306..ea1cddca99d16 100644
|
||||||
--- a/media/java/android/media/RingtoneManager.java
|
--- a/media/java/android/media/RingtoneManager.java
|
||||||
+++ b/media/java/android/media/RingtoneManager.java
|
+++ b/media/java/android/media/RingtoneManager.java
|
||||||
@@ -824,9 +824,13 @@ public class RingtoneManager {
|
@@ -824,9 +824,13 @@ public static void setActualDefaultRingtoneUri(Context context, int type, Uri ri
|
||||||
+ " ignored: failure to find mimeType (no access from this context?)");
|
+ " ignored: failure to find mimeType (no access from this context?)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -37,10 +37,10 @@ index ad4751165d30..ea1cddca99d1 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
||||||
index 7cb41275984e..02165eb8a213 100644
|
index 7cb41275984e4..02165eb8a2137 100644
|
||||||
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
||||||
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
||||||
@@ -1734,7 +1734,7 @@ public class SettingsProvider extends ContentProvider {
|
@@ -1734,7 +1734,7 @@ private boolean mutateSystemSetting(String name, String value, int runAsUserId,
|
||||||
cacheName = Settings.System.ALARM_ALERT_CACHE;
|
cacheName = Settings.System.ALARM_ALERT_CACHE;
|
||||||
}
|
}
|
||||||
if (cacheName != null) {
|
if (cacheName != null) {
|
||||||
@ -49,7 +49,7 @@ index 7cb41275984e..02165eb8a213 100644
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final File cacheFile = new File(
|
final File cacheFile = new File(
|
||||||
@@ -1769,7 +1769,7 @@ public class SettingsProvider extends ContentProvider {
|
@@ -1769,7 +1769,7 @@ owningUserId, name, value, null, false, getCallingPackage(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ index 7cb41275984e..02165eb8a213 100644
|
|||||||
if (uri != null) {
|
if (uri != null) {
|
||||||
Uri audioUri = Uri.parse(uri);
|
Uri audioUri = Uri.parse(uri);
|
||||||
if (Settings.AUTHORITY.equals(
|
if (Settings.AUTHORITY.equals(
|
||||||
@@ -1787,10 +1787,13 @@ public class SettingsProvider extends ContentProvider {
|
@@ -1787,10 +1787,13 @@ private boolean isValidAudioUri(String name, String uri) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!(mimeType.startsWith("audio/") || mimeType.equals("application/ogg")
|
if (!(mimeType.startsWith("audio/") || mimeType.equals("application/ogg")
|
144
Patches/LineageOS-17.1/android_frameworks_base/410987.patch
Normal file
144
Patches/LineageOS-17.1/android_frameworks_base/410987.patch
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
From 0fd389af4bbeff48cfb1faff5a31803f55003514 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ioana Alexandru <aioana@google.com>
|
||||||
|
Date: Wed, 31 Jul 2024 13:46:30 +0000
|
||||||
|
Subject: [PATCH] Check more URIs in notifications
|
||||||
|
|
||||||
|
Bug: 281044385
|
||||||
|
Test: presubmit + tested in current release
|
||||||
|
|
||||||
|
(cherry picked from commit f47b41a138ebd60f7b518fb6a9d8aa8230488422,
|
||||||
|
includes changes from commit 57bf60dd7b6a0a0e9785231f8ec25a458fedde64
|
||||||
|
and commit 47fa2f79584b0a4e9ca7e9c6b237c4e5cf699032)
|
||||||
|
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e6ed8a4bef3ec5a2517fc80ac88e2fc09b67c226)
|
||||||
|
Merged-In: I1ce6bebd9452466d005505dc5b99a0fdc0e05e80
|
||||||
|
Change-Id: I1ce6bebd9452466d005505dc5b99a0fdc0e05e80
|
||||||
|
---
|
||||||
|
core/java/android/app/Notification.java | 34 +++++++++++------------
|
||||||
|
core/java/android/app/Person.java | 17 ++++++++++++
|
||||||
|
core/java/android/widget/RemoteViews.java | 7 +++++
|
||||||
|
3 files changed, 41 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
|
||||||
|
index e7f226d091d6d..61a355ddbc77d 100644
|
||||||
|
--- a/core/java/android/app/Notification.java
|
||||||
|
+++ b/core/java/android/app/Notification.java
|
||||||
|
@@ -2486,29 +2486,22 @@ public void visitUris(@NonNull Consumer<Uri> visitor) {
|
||||||
|
ArrayList<Person> people = extras.getParcelableArrayList(EXTRA_PEOPLE_LIST);
|
||||||
|
if (people != null && !people.isEmpty()) {
|
||||||
|
for (Person p : people) {
|
||||||
|
- if (p.getIconUri() != null) {
|
||||||
|
- visitor.accept(p.getIconUri());
|
||||||
|
- }
|
||||||
|
+ p.visitUris(visitor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extras for MessagingStyle. We visit them even if not isStyle(MessagingStyle), since
|
||||||
|
// Notification Listeners might use directly (without the isStyle check).
|
||||||
|
final Person person = extras.getParcelable(EXTRA_MESSAGING_PERSON);
|
||||||
|
- if (person != null && person.getIconUri() != null) {
|
||||||
|
- visitor.accept(person.getIconUri());
|
||||||
|
+ if (person != null) {
|
||||||
|
+ person.visitUris(visitor);
|
||||||
|
}
|
||||||
|
|
||||||
|
final Parcelable[] messages = extras.getParcelableArray(EXTRA_MESSAGES);
|
||||||
|
if (!ArrayUtils.isEmpty(messages)) {
|
||||||
|
for (MessagingStyle.Message message : MessagingStyle.Message
|
||||||
|
.getMessagesFromBundleArray(messages)) {
|
||||||
|
- visitor.accept(message.getDataUri());
|
||||||
|
-
|
||||||
|
- Person senderPerson = message.getSenderPerson();
|
||||||
|
- if (senderPerson != null && senderPerson.getIconUri() != null) {
|
||||||
|
- visitor.accept(senderPerson.getIconUri());
|
||||||
|
- }
|
||||||
|
+ message.visitUris(visitor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2516,12 +2509,7 @@ public void visitUris(@NonNull Consumer<Uri> visitor) {
|
||||||
|
if (!ArrayUtils.isEmpty(historic)) {
|
||||||
|
for (MessagingStyle.Message message : MessagingStyle.Message
|
||||||
|
.getMessagesFromBundleArray(historic)) {
|
||||||
|
- visitor.accept(message.getDataUri());
|
||||||
|
-
|
||||||
|
- Person senderPerson = message.getSenderPerson();
|
||||||
|
- if (senderPerson != null && senderPerson.getIconUri() != null) {
|
||||||
|
- visitor.accept(senderPerson.getIconUri());
|
||||||
|
- }
|
||||||
|
+ message.visitUris(visitor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -7779,6 +7767,18 @@ static Bundle[] getBundleArrayForMessages(List<Message> messages) {
|
||||||
|
return bundles;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * See {@link Notification#visitUris(Consumer)}.
|
||||||
|
+ *
|
||||||
|
+ * @hide
|
||||||
|
+ */
|
||||||
|
+ public void visitUris(@NonNull Consumer<Uri> visitor) {
|
||||||
|
+ visitor.accept(getDataUri());
|
||||||
|
+ if (mSender != null) {
|
||||||
|
+ mSender.visitUris(visitor);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* @return A list of messages read from the bundles.
|
||||||
|
*
|
||||||
|
diff --git a/core/java/android/app/Person.java b/core/java/android/app/Person.java
|
||||||
|
index b5820ba70020c..f6b9054ef0cc5 100644
|
||||||
|
--- a/core/java/android/app/Person.java
|
||||||
|
+++ b/core/java/android/app/Person.java
|
||||||
|
@@ -24,6 +24,7 @@
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
+import java.util.function.Consumer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides an immutable reference to an entity that appears repeatedly on different surfaces of the
|
||||||
|
@@ -176,6 +177,22 @@ public void writeToParcel(Parcel dest, @WriteFlags int flags) {
|
||||||
|
dest.writeBoolean(mIsBot);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * Note all {@link Uri} that are referenced internally, with the expectation that Uri permission
|
||||||
|
+ * grants will need to be issued to ensure the recipient of this object is able to render its
|
||||||
|
+ * contents.
|
||||||
|
+ * See b/281044385 for more context and examples about what happens when this isn't done
|
||||||
|
+ * correctly.
|
||||||
|
+ *
|
||||||
|
+ * @hide
|
||||||
|
+ */
|
||||||
|
+ public void visitUris(@NonNull Consumer<Uri> visitor) {
|
||||||
|
+ visitor.accept(getIconUri());
|
||||||
|
+ if (mUri != null && !mUri.isEmpty()) {
|
||||||
|
+ visitor.accept(Uri.parse(mUri));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/** Builder for the immutable {@link Person} class. */
|
||||||
|
public static class Builder {
|
||||||
|
@Nullable private CharSequence mName;
|
||||||
|
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
|
||||||
|
index c2e591950e25a..9f51fbf025700 100644
|
||||||
|
--- a/core/java/android/widget/RemoteViews.java
|
||||||
|
+++ b/core/java/android/widget/RemoteViews.java
|
||||||
|
@@ -761,6 +761,13 @@ public int getActionTag() {
|
||||||
|
return SET_REMOTE_VIEW_ADAPTER_LIST_TAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ @Override
|
||||||
|
+ public void visitUris(@NonNull Consumer<Uri> visitor) {
|
||||||
|
+ for (RemoteViews remoteViews : list) {
|
||||||
|
+ remoteViews.visitUris(visitor);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
int viewTypeCount;
|
||||||
|
ArrayList<RemoteViews> list;
|
||||||
|
}
|
82
Patches/LineageOS-17.1/android_frameworks_base/410988.patch
Normal file
82
Patches/LineageOS-17.1/android_frameworks_base/410988.patch
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
From dcb0d9a1881ac39d3fb576c6af07b1f7dd1dc7e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Puma Hsu <pumahsu@google.com>
|
||||||
|
Date: Mon, 9 Mar 2020 16:57:43 +0800
|
||||||
|
Subject: [PATCH] Fix function setting failed in Developer options
|
||||||
|
|
||||||
|
One can select USB function in Settings->System->
|
||||||
|
Developer options->Default USB configuration without
|
||||||
|
a cable connected, and the selected function will be
|
||||||
|
the default function after re-connecting. However, this
|
||||||
|
function might be restored to NONE due to ENUMERATION_TIMEOUT
|
||||||
|
if one selected the function without a cable connected.
|
||||||
|
|
||||||
|
When the device is not connected to a host, we should not
|
||||||
|
queue the ENUMERATION_TIMEOUT while switching function.
|
||||||
|
Fix it by checking connected status and also make it switch
|
||||||
|
to corresponding function if an user has selected one in the
|
||||||
|
Default USB configuration.
|
||||||
|
|
||||||
|
Bug: 150422683
|
||||||
|
Test: Switch functions from Default USB configuration for the
|
||||||
|
both cases cable connecting and disconnecting. And also try it
|
||||||
|
while there is the secure lock.
|
||||||
|
Signed-off-by: Puma Hsu <pumahsu@google.com>
|
||||||
|
Change-Id: I1933c098e47496b8d6813a5a4e295bcf12027401
|
||||||
|
---
|
||||||
|
.../com/android/server/usb/UsbDeviceManager.java | 15 ++++++++++-----
|
||||||
|
1 file changed, 10 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
|
||||||
|
index 434592f129b36..dd2198106b32b 100644
|
||||||
|
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
|
||||||
|
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
|
||||||
|
@@ -461,7 +461,6 @@ private static void initRndisAddress() {
|
||||||
|
abstract static class UsbHandler extends Handler {
|
||||||
|
|
||||||
|
// current USB state
|
||||||
|
- private boolean mConnected;
|
||||||
|
private boolean mHostConnected;
|
||||||
|
private boolean mSourcePower;
|
||||||
|
private boolean mSinkPower;
|
||||||
|
@@ -489,6 +488,7 @@ abstract static class UsbHandler extends Handler {
|
||||||
|
private final UsbSettingsManager mSettingsManager;
|
||||||
|
private NotificationManager mNotificationManager;
|
||||||
|
|
||||||
|
+ protected boolean mConnected;
|
||||||
|
protected long mScreenUnlockedFunctions;
|
||||||
|
protected boolean mBootCompleted;
|
||||||
|
protected boolean mCurrentFunctionsApplied;
|
||||||
|
@@ -1834,7 +1834,8 @@ public void handleMessage(Message msg) {
|
||||||
|
case MSG_SET_FUNCTIONS_TIMEOUT:
|
||||||
|
Slog.e(TAG, "Set functions timed out! no reply from usb hal");
|
||||||
|
if (msg.arg1 != 1) {
|
||||||
|
- setEnabledFunctions(UsbManager.FUNCTION_NONE, false);
|
||||||
|
+ // Set this since default function may be selected from Developer options
|
||||||
|
+ setEnabledFunctions(mScreenUnlockedFunctions, false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MSG_GET_CURRENT_USB_FUNCTIONS:
|
||||||
|
@@ -1856,7 +1857,8 @@ public void handleMessage(Message msg) {
|
||||||
|
* Dont force to default when the configuration is already set to default.
|
||||||
|
*/
|
||||||
|
if (msg.arg1 != 1) {
|
||||||
|
- setEnabledFunctions(UsbManager.FUNCTION_NONE, !isAdbEnabled());
|
||||||
|
+ // Set this since default function may be selected from Developer options
|
||||||
|
+ setEnabledFunctions(mScreenUnlockedFunctions, false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MSG_GADGET_HAL_REGISTERED:
|
||||||
|
@@ -1957,8 +1959,11 @@ private void setUsbConfig(long config, boolean chargingFunctions) {
|
||||||
|
SET_FUNCTIONS_TIMEOUT_MS - SET_FUNCTIONS_LEEWAY_MS);
|
||||||
|
sendMessageDelayed(MSG_SET_FUNCTIONS_TIMEOUT, chargingFunctions,
|
||||||
|
SET_FUNCTIONS_TIMEOUT_MS);
|
||||||
|
- sendMessageDelayed(MSG_FUNCTION_SWITCH_TIMEOUT, chargingFunctions,
|
||||||
|
- SET_FUNCTIONS_TIMEOUT_MS + ENUMERATION_TIME_OUT_MS);
|
||||||
|
+ if (mConnected) {
|
||||||
|
+ // Only queue timeout of enumeration when the USB is connected
|
||||||
|
+ sendMessageDelayed(MSG_FUNCTION_SWITCH_TIMEOUT, chargingFunctions,
|
||||||
|
+ SET_FUNCTIONS_TIMEOUT_MS + ENUMERATION_TIME_OUT_MS);
|
||||||
|
+ }
|
||||||
|
if (DEBUG) Slog.d(TAG, "timeout message queued");
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Slog.e(TAG, "Remoteexception while calling setCurrentUsbFunctions", e);
|
53
Patches/LineageOS-17.1/android_frameworks_base/410989.patch
Normal file
53
Patches/LineageOS-17.1/android_frameworks_base/410989.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
From b798244c86fbd567b1a8ec17e9d267316be4b28e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ashish Kumar Gupta <kumarashishg@google.com>
|
||||||
|
Date: Wed, 31 Jul 2024 16:02:29 +0000
|
||||||
|
Subject: [PATCH] Set no data transfer on function switch timeout for accessory
|
||||||
|
mode
|
||||||
|
|
||||||
|
In case of function switch times out, we will check whether
|
||||||
|
the last function set was accessory. If this is the case, it is
|
||||||
|
recommended to set the function to NONE(No data transfer) rather than
|
||||||
|
setting it to the default USB function.
|
||||||
|
|
||||||
|
Bug: 353712853
|
||||||
|
Test: Build the code, flash the device and test it.
|
||||||
|
Test: atest CtsUsbManagerTestCases
|
||||||
|
Test: run CtsVerifier tool
|
||||||
|
Test: atest CtsUsbTests
|
||||||
|
(cherry picked from commit 7c6ec68537ba8abf798afd9ab7c3e5889841171f)
|
||||||
|
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b032a602cdad00687e1fe089d66a6c4fa6925d79)
|
||||||
|
Merged-In: I698e9df0333cbb51dd9bd5917a94d81273a2784a
|
||||||
|
Change-Id: I698e9df0333cbb51dd9bd5917a94d81273a2784a
|
||||||
|
---
|
||||||
|
.../java/com/android/server/usb/UsbDeviceManager.java | 11 ++++++++---
|
||||||
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
|
||||||
|
index dd2198106b32b..19b86b21216a4 100644
|
||||||
|
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
|
||||||
|
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
|
||||||
|
@@ -673,7 +673,7 @@ private void updateCurrentAccessory() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- private void notifyAccessoryModeExit() {
|
||||||
|
+ protected void notifyAccessoryModeExit() {
|
||||||
|
// make sure accessory mode is off
|
||||||
|
// and restore default functions
|
||||||
|
Slog.d(TAG, "exited USB accessory mode");
|
||||||
|
@@ -1857,8 +1857,13 @@ public void handleMessage(Message msg) {
|
||||||
|
* Dont force to default when the configuration is already set to default.
|
||||||
|
*/
|
||||||
|
if (msg.arg1 != 1) {
|
||||||
|
- // Set this since default function may be selected from Developer options
|
||||||
|
- setEnabledFunctions(mScreenUnlockedFunctions, false);
|
||||||
|
+ if (mCurrentFunctions == UsbManager.FUNCTION_ACCESSORY) {
|
||||||
|
+ notifyAccessoryModeExit();
|
||||||
|
+ } else {
|
||||||
|
+ // Set this since default function may be selected from Developer
|
||||||
|
+ // options
|
||||||
|
+ setEnabledFunctions(mScreenUnlockedFunctions, false);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MSG_GADGET_HAL_REGISTERED:
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 07a25bc41ce0a6911255373e096a60f595aca8d8 Mon Sep 17 00:00:00 2001
|
||||||
From: lpeter <lpeter@google.com>
|
From: lpeter <lpeter@google.com>
|
||||||
Date: Tue, 6 Aug 2024 09:22:12 +0000
|
Date: Tue, 6 Aug 2024 09:22:12 +0000
|
||||||
Subject: [PATCH] Disallow device admin package and protected packages to be
|
Subject: [PATCH] Disallow device admin package and protected packages to be
|
||||||
@ -21,10 +21,10 @@ Change-Id: I4e913a12477fd4a64990033eaae533e30863e2a2
|
|||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
|
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||||
index d27b5ad0d646..d304f29ec195 100644
|
index d27b5ad0d6464..d304f29ec1957 100644
|
||||||
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
|
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||||
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
|
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||||
@@ -13666,6 +13666,9 @@ public class PackageManagerService extends IPackageManager.Stub
|
@@ -13666,6 +13666,9 @@ int installExistingPackageAsUser(@Nullable String packageName, @UserIdInt int us
|
||||||
(installFlags & PackageManager.INSTALL_INSTANT_APP) != 0;
|
(installFlags & PackageManager.INSTALL_INSTANT_APP) != 0;
|
||||||
final boolean fullApp =
|
final boolean fullApp =
|
||||||
(installFlags & PackageManager.INSTALL_FULL_APP) != 0;
|
(installFlags & PackageManager.INSTALL_FULL_APP) != 0;
|
||||||
@ -34,7 +34,7 @@ index d27b5ad0d646..d304f29ec195 100644
|
|||||||
|
|
||||||
// writer
|
// writer
|
||||||
synchronized (mPackages) {
|
synchronized (mPackages) {
|
||||||
@@ -13673,7 +13676,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
@@ -13673,7 +13676,8 @@ int installExistingPackageAsUser(@Nullable String packageName, @UserIdInt int us
|
||||||
if (pkgSetting == null) {
|
if (pkgSetting == null) {
|
||||||
return PackageManager.INSTALL_FAILED_INVALID_URI;
|
return PackageManager.INSTALL_FAILED_INVALID_URI;
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 3e0d2fe6c935a72da1862cb6c9010f7adc567f58 Mon Sep 17 00:00:00 2001
|
||||||
From: Ben Murdoch <benm@google.com>
|
From: Ben Murdoch <benm@google.com>
|
||||||
Date: Fri, 30 Aug 2024 17:22:59 +0000
|
Date: Fri, 30 Aug 2024 17:22:59 +0000
|
||||||
Subject: [PATCH] RESTRICT AUTOMERGE Clear app-provided shortcut icons
|
Subject: [PATCH] RESTRICT AUTOMERGE Clear app-provided shortcut icons
|
||||||
@ -18,10 +18,10 @@ Change-Id: If7e291eb2254c3cbec23673c65e7477e6ad45b09
|
|||||||
2 files changed, 20 insertions(+), 2 deletions(-)
|
2 files changed, 20 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/core/java/android/view/KeyboardShortcutInfo.java b/core/java/android/view/KeyboardShortcutInfo.java
|
diff --git a/core/java/android/view/KeyboardShortcutInfo.java b/core/java/android/view/KeyboardShortcutInfo.java
|
||||||
index 2660e74dcb20..2075d77a9871 100644
|
index 2660e74dcb205..2075d77a9871e 100644
|
||||||
--- a/core/java/android/view/KeyboardShortcutInfo.java
|
--- a/core/java/android/view/KeyboardShortcutInfo.java
|
||||||
+++ b/core/java/android/view/KeyboardShortcutInfo.java
|
+++ b/core/java/android/view/KeyboardShortcutInfo.java
|
||||||
@@ -29,7 +29,7 @@ import android.os.Parcelable;
|
@@ -29,7 +29,7 @@
|
||||||
*/
|
*/
|
||||||
public final class KeyboardShortcutInfo implements Parcelable {
|
public final class KeyboardShortcutInfo implements Parcelable {
|
||||||
private final CharSequence mLabel;
|
private final CharSequence mLabel;
|
||||||
@ -30,7 +30,7 @@ index 2660e74dcb20..2075d77a9871 100644
|
|||||||
private final char mBaseCharacter;
|
private final char mBaseCharacter;
|
||||||
private final int mKeycode;
|
private final int mKeycode;
|
||||||
private final int mModifiers;
|
private final int mModifiers;
|
||||||
@@ -115,6 +115,15 @@ public final class KeyboardShortcutInfo implements Parcelable {
|
@@ -115,6 +115,15 @@ public Icon getIcon() {
|
||||||
return mIcon;
|
return mIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ index 2660e74dcb20..2075d77a9871 100644
|
|||||||
/**
|
/**
|
||||||
* Returns the base keycode that, combined with the modifiers, triggers this shortcut. If the
|
* Returns the base keycode that, combined with the modifiers, triggers this shortcut. If the
|
||||||
* base character was set instead, returns {@link KeyEvent#KEYCODE_UNKNOWN}. Valid keycodes are
|
* base character was set instead, returns {@link KeyEvent#KEYCODE_UNKNOWN}. Valid keycodes are
|
||||||
@@ -165,4 +174,4 @@ public final class KeyboardShortcutInfo implements Parcelable {
|
@@ -165,4 +174,4 @@ public KeyboardShortcutInfo[] newArray(int size) {
|
||||||
return new KeyboardShortcutInfo[size];
|
return new KeyboardShortcutInfo[size];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -54,10 +54,10 @@ index 2660e74dcb20..2075d77a9871 100644
|
|||||||
\ No newline at end of file
|
\ No newline at end of file
|
||||||
+}
|
+}
|
||||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java
|
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java
|
||||||
index 7e6ddcfea762..cc373d3c8b0f 100644
|
index 7e6ddcfea7620..cc373d3c8b0f1 100644
|
||||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java
|
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java
|
||||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java
|
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java
|
||||||
@@ -378,6 +378,7 @@ public final class KeyboardShortcuts {
|
@@ -378,6 +378,7 @@ private void showKeyboardShortcuts(int deviceId) {
|
||||||
@Override
|
@Override
|
||||||
public void onKeyboardShortcutsReceived(
|
public void onKeyboardShortcutsReceived(
|
||||||
final List<KeyboardShortcutGroup> result) {
|
final List<KeyboardShortcutGroup> result) {
|
||||||
@ -65,7 +65,7 @@ index 7e6ddcfea762..cc373d3c8b0f 100644
|
|||||||
result.add(getSystemShortcuts());
|
result.add(getSystemShortcuts());
|
||||||
final KeyboardShortcutGroup appShortcuts = getDefaultApplicationShortcuts();
|
final KeyboardShortcutGroup appShortcuts = getDefaultApplicationShortcuts();
|
||||||
if (appShortcuts != null) {
|
if (appShortcuts != null) {
|
||||||
@@ -388,6 +389,14 @@ public final class KeyboardShortcuts {
|
@@ -388,6 +389,14 @@ public void onKeyboardShortcutsReceived(
|
||||||
}, deviceId);
|
}, deviceId);
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,8 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From bc5e1e951c11a53149083c1b8a2dcc330c9a091d Mon Sep 17 00:00:00 2001
|
||||||
From: Nate Jiang <qiangjiang@google.com>
|
From: Nate Jiang <qiangjiang@google.com>
|
||||||
Date: Thu, 8 Aug 2024 18:13:39 +0000
|
Date: Thu, 8 Aug 2024 18:13:39 +0000
|
||||||
Subject: [PATCH] Fix security issue by change the field in WifiConfig
|
Subject: [PATCH] [BACKPORT] Fix security issue by change the field in
|
||||||
|
WifiConfig
|
||||||
|
|
||||||
Flag: EXEMPT bugfix
|
Flag: EXEMPT bugfix
|
||||||
Bug: 347912017
|
Bug: 347912017
|
||||||
@ -13,14 +14,14 @@ Test: atest com.android.server.wifi
|
|||||||
Merged-In: I8998340ae557660036895dd906808d682b83c6f0
|
Merged-In: I8998340ae557660036895dd906808d682b83c6f0
|
||||||
Change-Id: I8998340ae557660036895dd906808d682b83c6f0
|
Change-Id: I8998340ae557660036895dd906808d682b83c6f0
|
||||||
---
|
---
|
||||||
.../server/wifi/WifiConfigurationUtil.java | 72 ++++++++++++++++++-
|
.../server/wifi/WifiConfigurationUtil.java | 73 ++++++++++++++++++-
|
||||||
1 file changed, 71 insertions(+), 1 deletion(-)
|
1 file changed, 72 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/service/java/com/android/server/wifi/WifiConfigurationUtil.java b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
|
diff --git a/service/java/com/android/server/wifi/WifiConfigurationUtil.java b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
|
||||||
index b8992a011..98d2cb31a 100644
|
index b8992a0119..4d484adfb6 100644
|
||||||
--- a/service/java/com/android/server/wifi/WifiConfigurationUtil.java
|
--- a/service/java/com/android/server/wifi/WifiConfigurationUtil.java
|
||||||
+++ b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
|
+++ b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
|
||||||
@@ -82,6 +82,11 @@ public class WifiConfigurationUtil {
|
@@ -82,6 +82,12 @@ public class WifiConfigurationUtil {
|
||||||
private static final int SAE_ASCII_MIN_LEN = 1 + ENCLOSING_QUOTES_LEN;
|
private static final int SAE_ASCII_MIN_LEN = 1 + ENCLOSING_QUOTES_LEN;
|
||||||
private static final int PSK_SAE_ASCII_MAX_LEN = 63 + ENCLOSING_QUOTES_LEN;
|
private static final int PSK_SAE_ASCII_MAX_LEN = 63 + ENCLOSING_QUOTES_LEN;
|
||||||
private static final int PSK_SAE_HEX_LEN = 64;
|
private static final int PSK_SAE_HEX_LEN = 64;
|
||||||
@ -29,10 +30,11 @@ index b8992a011..98d2cb31a 100644
|
|||||||
+ // BACKPORT
|
+ // BACKPORT
|
||||||
+ private static final int MAX_NUMBER_OF_OI = 36;
|
+ private static final int MAX_NUMBER_OF_OI = 36;
|
||||||
+ private static final long MAX_OI_VALUE = ((long) 1 << 40) - 1;
|
+ private static final long MAX_OI_VALUE = ((long) 1 << 40) - 1;
|
||||||
|
+
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public static final String PASSWORD_MASK = "*";
|
public static final String PASSWORD_MASK = "*";
|
||||||
private static final String MATCH_EMPTY_SSID_PATTERN_PATH = "";
|
private static final String MATCH_EMPTY_SSID_PATTERN_PATH = "";
|
||||||
@@ -688,7 +693,8 @@ public class WifiConfigurationUtil {
|
@@ -688,7 +694,8 @@ public static boolean validate(WifiConfiguration config, boolean isAdd) {
|
||||||
if (!validateSsid(config.SSID, isAdd)) {
|
if (!validateSsid(config.SSID, isAdd)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -42,7 +44,7 @@ index b8992a011..98d2cb31a 100644
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!validateBitSets(config)) {
|
if (!validateBitSets(config)) {
|
||||||
@@ -697,6 +703,12 @@ public class WifiConfigurationUtil {
|
@@ -697,6 +704,12 @@ public static boolean validate(WifiConfiguration config, boolean isAdd) {
|
||||||
if (!validateKeyMgmt(config.allowedKeyManagement)) {
|
if (!validateKeyMgmt(config.allowedKeyManagement)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -55,7 +57,7 @@ index b8992a011..98d2cb31a 100644
|
|||||||
if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)
|
if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)
|
||||||
&& !validatePassword(config.preSharedKey, isAdd, false)) {
|
&& !validatePassword(config.preSharedKey, isAdd, false)) {
|
||||||
return false;
|
return false;
|
||||||
@@ -732,6 +744,64 @@ public class WifiConfigurationUtil {
|
@@ -732,6 +745,64 @@ public static boolean validate(WifiConfiguration config, boolean isAdd) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From abc51025abe483fa071a2e1a20db46341e59012b Mon Sep 17 00:00:00 2001
|
||||||
From: Almaz Mingaleev <mingaleev@google.com>
|
From: Almaz Mingaleev <mingaleev@google.com>
|
||||||
Date: Wed, 10 Jul 2024 13:38:35 +0100
|
Date: Wed, 10 Jul 2024 13:38:35 +0100
|
||||||
Subject: [PATCH] Do not accept zip files with invalid headers.
|
Subject: [PATCH] Do not accept zip files with invalid headers.
|
@ -1,7 +1,8 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From f9b4d83aff0d3dac5d73676b251fd1e14c5bf682 Mon Sep 17 00:00:00 2001
|
||||||
From: Himanshu Rawat <rwt@google.com>
|
From: Himanshu Rawat <rwt@google.com>
|
||||||
Date: Mon, 8 Apr 2024 19:44:45 +0000
|
Date: Mon, 8 Apr 2024 19:44:45 +0000
|
||||||
Subject: [PATCH] Disallow unexpected incoming HID connections 2/2
|
Subject: [PATCH] BACKPORT: RESTRICT AUTOMERGE Disallow unexpected incoming HID
|
||||||
|
connections 2/2
|
||||||
|
|
||||||
HID profile accepted any new incoming HID connection. Even when the
|
HID profile accepted any new incoming HID connection. Even when the
|
||||||
connection policy disabled HID connection, remote devices could initiate
|
connection policy disabled HID connection, remote devices could initiate
|
||||||
@ -57,22 +58,22 @@ index 7838ff6ce..60fffc2f3 100644
|
|||||||
{"virtualUnPlugNative", "([B)Z", (void*)virtualUnPlugNative},
|
{"virtualUnPlugNative", "([B)Z", (void*)virtualUnPlugNative},
|
||||||
{"setProtocolModeNative", "([BB)Z", (void*)setProtocolModeNative},
|
{"setProtocolModeNative", "([BB)Z", (void*)setProtocolModeNative},
|
||||||
diff --git a/src/com/android/bluetooth/hid/HidHostService.java b/src/com/android/bluetooth/hid/HidHostService.java
|
diff --git a/src/com/android/bluetooth/hid/HidHostService.java b/src/com/android/bluetooth/hid/HidHostService.java
|
||||||
index c378f8e89..fea167148 100644
|
index c378f8e89..d49edfa7a 100644
|
||||||
--- a/src/com/android/bluetooth/hid/HidHostService.java
|
--- a/src/com/android/bluetooth/hid/HidHostService.java
|
||||||
+++ b/src/com/android/bluetooth/hid/HidHostService.java
|
+++ b/src/com/android/bluetooth/hid/HidHostService.java
|
||||||
@@ -157,7 +157,10 @@ public class HidHostService extends ProfileService {
|
@@ -157,7 +157,10 @@ public void handleMessage(Message msg) {
|
||||||
break;
|
break;
|
||||||
case MESSAGE_DISCONNECT: {
|
case MESSAGE_DISCONNECT: {
|
||||||
BluetoothDevice device = (BluetoothDevice) msg.obj;
|
BluetoothDevice device = (BluetoothDevice) msg.obj;
|
||||||
- if (!disconnectHidNative(Utils.getByteAddress(device))) {
|
- if (!disconnectHidNative(Utils.getByteAddress(device))) {
|
||||||
+ int connectionPolicy = getPriority(device);
|
+ int priority = getPriority(device);
|
||||||
+ boolean reconnectAllowed =
|
+ boolean reconnectAllowed =
|
||||||
+ connectionPolicy == BluetoothProfile.PRIORITY_ON;
|
+ priority == BluetoothProfile.PRIORITY_ON;
|
||||||
+ if (!disconnectHidNative(Utils.getByteAddress(device), reconnectAllowed)) {
|
+ if (!disconnectHidNative(Utils.getByteAddress(device), reconnectAllowed)) {
|
||||||
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTING);
|
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTING);
|
||||||
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTED);
|
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTED);
|
||||||
break;
|
break;
|
||||||
@@ -871,7 +874,7 @@ public class HidHostService extends ProfileService {
|
@@ -871,7 +874,7 @@ public void dump(StringBuilder sb) {
|
||||||
|
|
||||||
private native boolean connectHidNative(byte[] btAddress);
|
private native boolean connectHidNative(byte[] btAddress);
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 9702e2c9683d87d5bae2009d30bd13df12ae9dd6 Mon Sep 17 00:00:00 2001
|
||||||
From: Yiling Chuang <emilychuang@google.com>
|
From: Yiling Chuang <emilychuang@google.com>
|
||||||
Date: Mon, 8 Jul 2024 03:09:50 +0000
|
Date: Mon, 8 Jul 2024 03:09:50 +0000
|
||||||
Subject: [PATCH] RESTRICT AUTOMERGE FRP bypass defense in App battery usage
|
Subject: [PATCH] RESTRICT AUTOMERGE FRP bypass defense in App battery usage
|
||||||
@ -24,7 +24,7 @@ diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/
|
|||||||
index e8d5f3330f2..d17642053e7 100644
|
index e8d5f3330f2..d17642053e7 100644
|
||||||
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
|
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
|
||||||
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
|
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
|
||||||
@@ -210,6 +210,11 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
@@ -210,6 +210,11 @@ public void onResume() {
|
||||||
initPreference();
|
initPreference();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsa
|
|||||||
index 8eeac8d26b0..37fa511beeb 100644
|
index 8eeac8d26b0..37fa511beeb 100644
|
||||||
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
|
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
|
||||||
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
|
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
|
||||||
@@ -395,4 +395,9 @@ public class AdvancedPowerUsageDetailTest {
|
@@ -395,4 +395,9 @@ public void testInitPreference_hasCorrectSummary() {
|
||||||
assertThat(mForegroundPreference.getSummary().toString()).isEqualTo("Used for 0 min");
|
assertThat(mForegroundPreference.getSummary().toString()).isEqualTo("Used for 0 min");
|
||||||
assertThat(mBackgroundPreference.getSummary().toString()).isEqualTo("Active for 0 min");
|
assertThat(mBackgroundPreference.getSummary().toString()).isEqualTo("Active for 0 min");
|
||||||
}
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
From 38f463ffa95d46bb7a56caefe12f7ed96adbf856 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Anna Bauza <annabauza@google.com>
|
||||||
|
Date: Thu, 14 Nov 2024 18:58:26 +0100
|
||||||
|
Subject: [PATCH] [PATCH] fix: Security Report - Reveal images across users via
|
||||||
|
EditUserPhotoController
|
||||||
|
|
||||||
|
This functionality has implemented tests on t+ branches.
|
||||||
|
|
||||||
|
Bug: 296915959
|
||||||
|
Test: N/A
|
||||||
|
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ae74e70c36ec027dd55164880d8b7225be4c85a3)
|
||||||
|
Merged-In: If79af734432b14be74815a47e1026dc8369a304f
|
||||||
|
Change-Id: If79af734432b14be74815a47e1026dc8369a304f
|
||||||
|
---
|
||||||
|
.../android/settings/users/EditUserPhotoController.java | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/com/android/settings/users/EditUserPhotoController.java b/src/com/android/settings/users/EditUserPhotoController.java
|
||||||
|
index f1831f7120b..d836d2687bc 100644
|
||||||
|
--- a/src/com/android/settings/users/EditUserPhotoController.java
|
||||||
|
+++ b/src/com/android/settings/users/EditUserPhotoController.java
|
||||||
|
@@ -18,6 +18,7 @@
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.ClipData;
|
||||||
|
+import android.content.ContentProvider;
|
||||||
|
import android.content.ContentResolver;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
@@ -131,6 +132,12 @@ public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ final int currentUserId = UserHandle.myUserId();
|
||||||
|
+ if (currentUserId != ContentProvider.getUserIdFromUri(pictureUri, currentUserId)) {
|
||||||
|
+ Log.e(TAG, "Invalid pictureUri: " + pictureUri);
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
switch (requestCode) {
|
||||||
|
case REQUEST_CODE_CROP_PHOTO:
|
||||||
|
onPhotoCropped(pictureUri, true);
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From dc193083cea24f184921fbdd46383332f7b26d5a Mon Sep 17 00:00:00 2001
|
||||||
From: Adam Bookatz <bookatz@google.com>
|
From: Adam Bookatz <bookatz@google.com>
|
||||||
Date: Mon, 22 Jul 2024 17:03:12 -0700
|
Date: Mon, 22 Jul 2024 17:03:12 -0700
|
||||||
Subject: [PATCH] startActivityForResult with new Intent
|
Subject: [PATCH] startActivityForResult with new Intent
|
||||||
@ -22,7 +22,7 @@ diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/c
|
|||||||
index 7cf46b69245..3f06e870a02 100644
|
index 7cf46b69245..3f06e870a02 100644
|
||||||
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
|
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
|
||||||
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
|
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
|
||||||
@@ -649,7 +649,7 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen
|
@@ -649,7 +649,7 @@ public void onReceive(Context context, Intent intent) {
|
||||||
int requestCode = generateCustomActivityRequestCode(
|
int requestCode = generateCustomActivityRequestCode(
|
||||||
RestrictionsResultReceiver.this.preference);
|
RestrictionsResultReceiver.this.preference);
|
||||||
AppRestrictionsFragment.this.startActivityForResult(
|
AppRestrictionsFragment.this.startActivityForResult(
|
@ -1,7 +1,8 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 99e4f13fcff7a6659d4575c904f3102aa7b4d9e3 Mon Sep 17 00:00:00 2001
|
||||||
From: Fan Wu <cechkahn@google.com>
|
From: Fan Wu <cechkahn@google.com>
|
||||||
Date: Mon, 22 Jul 2024 16:12:46 +0800
|
Date: Mon, 22 Jul 2024 16:12:46 +0800
|
||||||
Subject: [PATCH] Checks cross user permission before handling intent
|
Subject: [PATCH] RESTRICT AUTOMERGE Checks cross user permission before
|
||||||
|
handling intent
|
||||||
|
|
||||||
Bug: 326057017
|
Bug: 326057017
|
||||||
|
|
||||||
@ -17,10 +18,10 @@ Change-Id: I3444e55b22b7487f96b0e3e9deb3f844c4c4723a
|
|||||||
1 file changed, 36 insertions(+), 2 deletions(-)
|
1 file changed, 36 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
|
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
|
||||||
index 71043400ff8..ef5297acaec 100644
|
index 71043400ff8..9d098000fbc 100644
|
||||||
--- a/src/com/android/settings/applications/AppInfoBase.java
|
--- a/src/com/android/settings/applications/AppInfoBase.java
|
||||||
+++ b/src/com/android/settings/applications/AppInfoBase.java
|
+++ b/src/com/android/settings/applications/AppInfoBase.java
|
||||||
@@ -18,7 +18,9 @@ package com.android.settings.applications;
|
@@ -18,7 +18,9 @@
|
||||||
|
|
||||||
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ index 71043400ff8..ef5297acaec 100644
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
@@ -38,6 +40,7 @@ import android.os.UserManager;
|
@@ -38,6 +40,7 @@
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@ -38,7 +39,7 @@ index 71043400ff8..ef5297acaec 100644
|
|||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
@@ -134,8 +137,13 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
@@ -134,8 +137,13 @@ protected String retrieveAppEntry() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (intent != null && intent.hasExtra(Intent.EXTRA_USER_HANDLE)) {
|
if (intent != null && intent.hasExtra(Intent.EXTRA_USER_HANDLE)) {
|
||||||
@ -46,7 +47,7 @@ index 71043400ff8..ef5297acaec 100644
|
|||||||
- Intent.EXTRA_USER_HANDLE)).getIdentifier();
|
- Intent.EXTRA_USER_HANDLE)).getIdentifier();
|
||||||
+ mUserId = ((UserHandle) intent.getParcelableExtra(Intent.EXTRA_USER_HANDLE))
|
+ mUserId = ((UserHandle) intent.getParcelableExtra(Intent.EXTRA_USER_HANDLE))
|
||||||
+ .getIdentifier();
|
+ .getIdentifier();
|
||||||
+ if (mUserId != UserHandle.myUserId() && !hasInteractAcrossUsersPerm()) {
|
+ if (mUserId != UserHandle.myUserId() && !hasInteractAcrossUsersPermission()) {
|
||||||
+ Log.w(TAG, "Intent not valid.");
|
+ Log.w(TAG, "Intent not valid.");
|
||||||
+ finish();
|
+ finish();
|
||||||
+ return "";
|
+ return "";
|
||||||
@ -54,12 +55,12 @@ index 71043400ff8..ef5297acaec 100644
|
|||||||
} else {
|
} else {
|
||||||
mUserId = UserHandle.myUserId();
|
mUserId = UserHandle.myUserId();
|
||||||
}
|
}
|
||||||
@@ -158,6 +166,32 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
@@ -158,6 +166,32 @@ protected String retrieveAppEntry() {
|
||||||
return mPackageName;
|
return mPackageName;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ @VisibleForTesting
|
+ @VisibleForTesting
|
||||||
+ protected boolean hasInteractAcrossUsersPerm() {
|
+ protected boolean hasInteractAcrossUsersPermission() {
|
||||||
+ Activity activity = getActivity();
|
+ Activity activity = getActivity();
|
||||||
+ if (activity == null) {
|
+ if (activity == null) {
|
||||||
+ return false;
|
+ return false;
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 4a76c7fef797ae930db774cea0df8fecd6742a56 Mon Sep 17 00:00:00 2001
|
||||||
From: Omar Eissa <oeissa@google.com>
|
From: Omar Eissa <oeissa@google.com>
|
||||||
Date: Tue, 27 Aug 2024 13:24:21 +0000
|
Date: Tue, 27 Aug 2024 13:24:21 +0000
|
||||||
Subject: [PATCH] Prevent apps from renaming files they don't own
|
Subject: [PATCH] Prevent apps from renaming files they don't own
|
||||||
@ -25,10 +25,10 @@ Change-Id: I91e9966c012fe292cebc0b544f77032613516fac
|
|||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
|
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
|
||||||
index 4cd4452d0..6e9845fc6 100644
|
index 4cd4452d0..6e15836ce 100644
|
||||||
--- a/src/com/android/providers/media/MediaProvider.java
|
--- a/src/com/android/providers/media/MediaProvider.java
|
||||||
+++ b/src/com/android/providers/media/MediaProvider.java
|
+++ b/src/com/android/providers/media/MediaProvider.java
|
||||||
@@ -4713,6 +4713,8 @@ public class MediaProvider extends ContentProvider {
|
@@ -4713,6 +4713,8 @@ && getCallingPackageTargetSdkVersion() <= Build.VERSION_CODES.Q) {
|
||||||
case VIDEO_MEDIA_ID:
|
case VIDEO_MEDIA_ID:
|
||||||
case IMAGES_MEDIA_ID:
|
case IMAGES_MEDIA_ID:
|
||||||
case DOWNLOADS_ID:
|
case DOWNLOADS_ID:
|
49
Patches/LineageOS-17.1/android_system_bt/408530.patch
Normal file
49
Patches/LineageOS-17.1/android_system_bt/408530.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
From ea63021fbc4a92554c11fc07f1ca7282b41e6641 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chris Manton <cmanton@google.com>
|
||||||
|
Date: Sun, 29 Nov 2020 17:05:05 -0800
|
||||||
|
Subject: [PATCH] Add privatize option for bluetooth addresses for logging
|
||||||
|
|
||||||
|
Toward loggable code
|
||||||
|
|
||||||
|
Bug: 163134718
|
||||||
|
Tag: #refactor
|
||||||
|
Test: gd/cert/run --host
|
||||||
|
|
||||||
|
Change-Id: Id568adb9f9497072a79100202501c4d207e40828
|
||||||
|
---
|
||||||
|
main/shim/dumpsys.h | 26 ++++++++++++++++++++++++++
|
||||||
|
1 file changed, 26 insertions(+)
|
||||||
|
create mode 100644 main/shim/dumpsys.h
|
||||||
|
|
||||||
|
diff --git a/main/shim/dumpsys.h b/main/shim/dumpsys.h
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..0dc0bc2fd94
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/main/shim/dumpsys.h
|
||||||
|
@@ -0,0 +1,26 @@
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2019 The Android Open Source Project
|
||||||
|
+ *
|
||||||
|
+ * Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
+ * you may not use this file except in compliance with the License.
|
||||||
|
+ * You may obtain a copy of the License at
|
||||||
|
+ *
|
||||||
|
+ * http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
+ *
|
||||||
|
+ * Unless required by applicable law or agreed to in writing, software
|
||||||
|
+ * distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
+ * See the License for the specific language governing permissions and
|
||||||
|
+ * limitations under the License.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#pragma once
|
||||||
|
+
|
||||||
|
+#include <string>
|
||||||
|
+
|
||||||
|
+constexpr char kPrivateAddressPrefix[] = "xx:xx:xx:xx";
|
||||||
|
+#define PRIVATE_ADDRESS(addr) \
|
||||||
|
+ (addr.ToString() \
|
||||||
|
+ .replace(0, strlen(kPrivateAddressPrefix), kPrivateAddressPrefix) \
|
||||||
|
+ .c_str())
|
||||||
|
+
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From b3e6c7b50e9df35dec9b5a00e6d9dccd51f9ebb2 Mon Sep 17 00:00:00 2001
|
||||||
From: Chris Manton <cmanton@google.com>
|
From: Chris Manton <cmanton@google.com>
|
||||||
Date: Sun, 14 Mar 2021 09:52:19 -0700
|
Date: Sun, 14 Mar 2021 09:52:19 -0700
|
||||||
Subject: [PATCH] Add btif/include/btif_hh::btif_hh_status_text
|
Subject: [PATCH] Add btif/include/btif_hh::btif_hh_status_text
|
||||||
@ -16,7 +16,7 @@ Change-Id: Iab6a4f33a3e498c33f4870abc5abd59e073d03f2
|
|||||||
1 file changed, 20 insertions(+), 1 deletion(-)
|
1 file changed, 20 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/btif/include/btif_hh.h b/btif/include/btif_hh.h
|
diff --git a/btif/include/btif_hh.h b/btif/include/btif_hh.h
|
||||||
index b71d347c1..f33598d2f 100644
|
index b71d347c1a7..f33598d2f19 100644
|
||||||
--- a/btif/include/btif_hh.h
|
--- a/btif/include/btif_hh.h
|
||||||
+++ b/btif/include/btif_hh.h
|
+++ b/btif/include/btif_hh.h
|
||||||
@@ -46,7 +46,7 @@
|
@@ -46,7 +46,7 @@
|
@ -1,7 +1,7 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 26c752cae91c2483bdbc16c49d5f62dffb4a784a Mon Sep 17 00:00:00 2001
|
||||||
From: Himanshu Rawat <rwt@google.com>
|
From: Himanshu Rawat <rwt@google.com>
|
||||||
Date: Mon, 8 Apr 2024 19:42:21 +0000
|
Date: Mon, 8 Apr 2024 19:42:21 +0000
|
||||||
Subject: [PATCH] Disallow unexpected incoming HID connections 1/2
|
Subject: [PATCH] [BACKPORT] Disallow unexpected incoming HID connections 1/2
|
||||||
|
|
||||||
HID profile accepted any new incoming HID connection. Even when the
|
HID profile accepted any new incoming HID connection. Even when the
|
||||||
connection policy disabled HID connection, remote devices could initiate
|
connection policy disabled HID connection, remote devices could initiate
|
||||||
@ -21,13 +21,13 @@ Change-Id: I6e9db983e752dd498625078c13b736cd4c668806
|
|||||||
---
|
---
|
||||||
btif/include/btif_hh.h | 4 +-
|
btif/include/btif_hh.h | 4 +-
|
||||||
btif/include/btif_storage.h | 23 ++++++++++
|
btif/include/btif_storage.h | 23 ++++++++++
|
||||||
btif/src/btif_hh.cc | 86 ++++++++++++++++++++++++++++++++++---
|
btif/src/btif_hh.cc | 87 ++++++++++++++++++++++++++++++++++---
|
||||||
btif/src/btif_storage.cc | 53 ++++++++++++++++++++++-
|
btif/src/btif_storage.cc | 53 +++++++++++++++++++++-
|
||||||
include/hardware/bt_hh.h | 2 +-
|
include/hardware/bt_hh.h | 2 +-
|
||||||
5 files changed, 160 insertions(+), 8 deletions(-)
|
5 files changed, 161 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/btif/include/btif_hh.h b/btif/include/btif_hh.h
|
diff --git a/btif/include/btif_hh.h b/btif/include/btif_hh.h
|
||||||
index f33598d2f..f93341d89 100644
|
index f33598d2f19..f93341d89f1 100644
|
||||||
--- a/btif/include/btif_hh.h
|
--- a/btif/include/btif_hh.h
|
||||||
+++ b/btif/include/btif_hh.h
|
+++ b/btif/include/btif_hh.h
|
||||||
@@ -97,6 +97,7 @@ typedef struct {
|
@@ -97,6 +97,7 @@ typedef struct {
|
||||||
@ -49,7 +49,7 @@ index f33598d2f..f93341d89 100644
|
|||||||
extern void btif_hh_disconnect(RawAddress* bd_addr);
|
extern void btif_hh_disconnect(RawAddress* bd_addr);
|
||||||
extern void btif_hh_setreport(btif_hh_device_t* p_dev,
|
extern void btif_hh_setreport(btif_hh_device_t* p_dev,
|
||||||
diff --git a/btif/include/btif_storage.h b/btif/include/btif_storage.h
|
diff --git a/btif/include/btif_storage.h b/btif/include/btif_storage.h
|
||||||
index 1c1163d14..362ffdc21 100644
|
index 1c1163d1428..362ffdc21bb 100644
|
||||||
--- a/btif/include/btif_storage.h
|
--- a/btif/include/btif_storage.h
|
||||||
+++ b/btif/include/btif_storage.h
|
+++ b/btif/include/btif_storage.h
|
||||||
@@ -178,6 +178,29 @@ bt_status_t btif_storage_remove_bonded_device(const RawAddress* remote_bd_addr);
|
@@ -178,6 +178,29 @@ bt_status_t btif_storage_remove_bonded_device(const RawAddress* remote_bd_addr);
|
||||||
@ -83,10 +83,18 @@ index 1c1163d14..362ffdc21 100644
|
|||||||
*
|
*
|
||||||
* Function btif_storage_add_hid_device_info
|
* Function btif_storage_add_hid_device_info
|
||||||
diff --git a/btif/src/btif_hh.cc b/btif/src/btif_hh.cc
|
diff --git a/btif/src/btif_hh.cc b/btif/src/btif_hh.cc
|
||||||
index 5c57ee80c..b29b6773e 100644
|
index 5c57ee80c7a..50ea2d4e386 100644
|
||||||
--- a/btif/src/btif_hh.cc
|
--- a/btif/src/btif_hh.cc
|
||||||
+++ b/btif/src/btif_hh.cc
|
+++ b/btif/src/btif_hh.cc
|
||||||
@@ -338,6 +338,24 @@ btif_hh_device_t* btif_hh_find_connected_dev_by_handle(uint8_t handle) {
|
@@ -42,6 +42,7 @@
|
||||||
|
#include "btif_storage.h"
|
||||||
|
#include "btif_util.h"
|
||||||
|
#include "l2c_api.h"
|
||||||
|
+#include "main/shim/dumpsys.h"
|
||||||
|
#include "osi/include/log.h"
|
||||||
|
#include "osi/include/osi.h"
|
||||||
|
|
||||||
|
@@ -338,6 +339,24 @@ btif_hh_device_t* btif_hh_find_connected_dev_by_handle(uint8_t handle) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +119,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* Function btif_hh_find_dev_by_bda
|
* Function btif_hh_find_dev_by_bda
|
||||||
@@ -423,7 +441,8 @@ void btif_hh_start_vup_timer(const RawAddress* bd_addr) {
|
@@ -423,7 +442,8 @@ void btif_hh_start_vup_timer(const RawAddress* bd_addr) {
|
||||||
*
|
*
|
||||||
* Returns true if add successfully, otherwise false.
|
* Returns true if add successfully, otherwise false.
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
@ -121,7 +129,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
int i;
|
int i;
|
||||||
for (i = 0; i < BTIF_HH_MAX_ADDED_DEV; i++) {
|
for (i = 0; i < BTIF_HH_MAX_ADDED_DEV; i++) {
|
||||||
if (btif_hh_cb.added_devices[i].bd_addr == bda) {
|
if (btif_hh_cb.added_devices[i].bd_addr == bda) {
|
||||||
@@ -437,6 +456,7 @@ bool btif_hh_add_added_dev(const RawAddress& bda, tBTA_HH_ATTR_MASK attr_mask) {
|
@@ -437,6 +457,7 @@ bool btif_hh_add_added_dev(const RawAddress& bda, tBTA_HH_ATTR_MASK attr_mask) {
|
||||||
btif_hh_cb.added_devices[i].bd_addr = bda;
|
btif_hh_cb.added_devices[i].bd_addr = bda;
|
||||||
btif_hh_cb.added_devices[i].dev_handle = BTA_HH_INVALID_HANDLE;
|
btif_hh_cb.added_devices[i].dev_handle = BTA_HH_INVALID_HANDLE;
|
||||||
btif_hh_cb.added_devices[i].attr_mask = attr_mask;
|
btif_hh_cb.added_devices[i].attr_mask = attr_mask;
|
||||||
@ -129,7 +137,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -715,6 +735,23 @@ void btif_hh_getreport(btif_hh_device_t* p_dev, bthh_report_type_t r_type,
|
@@ -715,6 +736,23 @@ void btif_hh_getreport(btif_hh_device_t* p_dev, bthh_report_type_t r_type,
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
@ -138,11 +146,11 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
+ * outgoing connection was requested */
|
+ * outgoing connection was requested */
|
||||||
+ btif_hh_added_device_t* added_dev = btif_hh_find_added_dev(bda);
|
+ btif_hh_added_device_t* added_dev = btif_hh_find_added_dev(bda);
|
||||||
+ if (added_dev != nullptr && added_dev->reconnect_allowed) {
|
+ if (added_dev != nullptr && added_dev->reconnect_allowed) {
|
||||||
+ LOG_VERBOSE(LOG_TAG, "Connection allowed %s", bda.ToString().c_str());
|
+ LOG_VERBOSE(LOG_TAG, "Connection allowed %s", PRIVATE_ADDRESS(bda));
|
||||||
+ return true;
|
+ return true;
|
||||||
+ } else if (btif_hh_cb.pending_conn_address == bda) {
|
+ } else if (btif_hh_cb.pending_conn_address == bda) {
|
||||||
+ LOG_VERBOSE(LOG_TAG, "Device connection was pending for: %s, status: %s",
|
+ LOG_VERBOSE(LOG_TAG, "Device connection was pending for: %s, status: %s",
|
||||||
+ bda.ToString().c_str(),
|
+ PRIVATE_ADDRESS(bda),
|
||||||
+ btif_hh_status_text(btif_hh_cb.status).c_str());
|
+ btif_hh_status_text(btif_hh_cb.status).c_str());
|
||||||
+ return true;
|
+ return true;
|
||||||
+ }
|
+ }
|
||||||
@ -153,7 +161,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* Function btif_hh_upstreams_evt
|
* Function btif_hh_upstreams_evt
|
||||||
@@ -773,9 +810,26 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
@@ -773,9 +811,26 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
||||||
p_data->status);
|
p_data->status);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -164,7 +172,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
+
|
+
|
||||||
+ if (!btif_hh_connection_allowed(p_data->conn.bda)) {
|
+ if (!btif_hh_connection_allowed(p_data->conn.bda)) {
|
||||||
+ LOG_WARN(LOG_TAG, "Reject Incoming HID Connection, device: %s",
|
+ LOG_WARN(LOG_TAG, "Reject Incoming HID Connection, device: %s",
|
||||||
+ p_data->conn.bda.ToString().c_str());
|
+ PRIVATE_ADDRESS(p_data->conn.bda));
|
||||||
+ btif_hh_device_t* p_dev =
|
+ btif_hh_device_t* p_dev =
|
||||||
+ btif_hh_find_connected_dev_by_handle(p_data->conn.handle);
|
+ btif_hh_find_connected_dev_by_handle(p_data->conn.handle);
|
||||||
+ if (p_dev != nullptr) {
|
+ if (p_dev != nullptr) {
|
||||||
@ -181,7 +189,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
btif_hh_cb.pending_conn_address = RawAddress::kEmpty;
|
btif_hh_cb.pending_conn_address = RawAddress::kEmpty;
|
||||||
if (p_data->conn.status == BTA_HH_OK) {
|
if (p_data->conn.status == BTA_HH_OK) {
|
||||||
p_dev = btif_hh_find_connected_dev_by_handle(p_data->conn.handle);
|
p_dev = btif_hh_find_connected_dev_by_handle(p_data->conn.handle);
|
||||||
@@ -834,6 +888,7 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
@@ -834,6 +889,7 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
||||||
btif_hh_cb.status = (BTIF_HH_STATUS)BTIF_HH_DEV_DISCONNECTED;
|
btif_hh_cb.status = (BTIF_HH_STATUS)BTIF_HH_DEV_DISCONNECTED;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -189,7 +197,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
|
|
||||||
case BTA_HH_CLOSE_EVT:
|
case BTA_HH_CLOSE_EVT:
|
||||||
BTIF_TRACE_DEBUG("BTA_HH_CLOSE_EVT: status = %d, handle = %d",
|
BTIF_TRACE_DEBUG("BTA_HH_CLOSE_EVT: status = %d, handle = %d",
|
||||||
@@ -986,7 +1041,7 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
@@ -986,7 +1042,7 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
||||||
p_data->dscp_info.version,
|
p_data->dscp_info.version,
|
||||||
p_data->dscp_info.ctry_code, len,
|
p_data->dscp_info.ctry_code, len,
|
||||||
p_data->dscp_info.descriptor.dsc_list);
|
p_data->dscp_info.descriptor.dsc_list);
|
||||||
@ -198,7 +206,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
tBTA_HH_DEV_DSCP_INFO dscp_info;
|
tBTA_HH_DEV_DSCP_INFO dscp_info;
|
||||||
bt_status_t ret;
|
bt_status_t ret;
|
||||||
btif_hh_copy_hid_info(&dscp_info, &p_data->dscp_info);
|
btif_hh_copy_hid_info(&dscp_info, &p_data->dscp_info);
|
||||||
@@ -1002,6 +1057,8 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
@@ -1002,6 +1058,8 @@ static void btif_hh_upstreams_evt(uint16_t event, char* p_param) {
|
||||||
p_data->dscp_info.ssr_min_tout, len,
|
p_data->dscp_info.ssr_min_tout, len,
|
||||||
p_data->dscp_info.descriptor.dsc_list);
|
p_data->dscp_info.descriptor.dsc_list);
|
||||||
|
|
||||||
@ -207,7 +215,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
ASSERTC(ret == BT_STATUS_SUCCESS, "storing hid info failed", ret);
|
ASSERTC(ret == BT_STATUS_SUCCESS, "storing hid info failed", ret);
|
||||||
BTIF_TRACE_WARNING("BTA_HH_GET_DSCP_EVT: Called add device");
|
BTIF_TRACE_WARNING("BTA_HH_GET_DSCP_EVT: Called add device");
|
||||||
|
|
||||||
@@ -1283,6 +1340,13 @@ static bt_status_t init(bthh_callbacks_t* callbacks) {
|
@@ -1283,6 +1341,13 @@ static bt_status_t init(bthh_callbacks_t* callbacks) {
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
static bt_status_t connect(RawAddress* bd_addr) {
|
static bt_status_t connect(RawAddress* bd_addr) {
|
||||||
if (btif_hh_cb.status != BTIF_HH_DEV_CONNECTING) {
|
if (btif_hh_cb.status != BTIF_HH_DEV_CONNECTING) {
|
||||||
@ -221,7 +229,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
btif_transfer_context(btif_hh_handle_evt, BTIF_HH_CONNECT_REQ_EVT,
|
btif_transfer_context(btif_hh_handle_evt, BTIF_HH_CONNECT_REQ_EVT,
|
||||||
(char*)bd_addr, sizeof(RawAddress), NULL);
|
(char*)bd_addr, sizeof(RawAddress), NULL);
|
||||||
return BT_STATUS_SUCCESS;
|
return BT_STATUS_SUCCESS;
|
||||||
@@ -1299,7 +1363,7 @@ static bt_status_t connect(RawAddress* bd_addr) {
|
@@ -1299,7 +1364,7 @@ static bt_status_t connect(RawAddress* bd_addr) {
|
||||||
* Returns bt_status_t
|
* Returns bt_status_t
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
@ -230,14 +238,14 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
CHECK_BTHH_INIT();
|
CHECK_BTHH_INIT();
|
||||||
BTIF_TRACE_EVENT("BTHH: %s", __func__);
|
BTIF_TRACE_EVENT("BTHH: %s", __func__);
|
||||||
btif_hh_device_t* p_dev;
|
btif_hh_device_t* p_dev;
|
||||||
@@ -1309,6 +1373,17 @@ static bt_status_t disconnect(RawAddress* bd_addr) {
|
@@ -1309,6 +1374,17 @@ static bt_status_t disconnect(RawAddress* bd_addr) {
|
||||||
btif_hh_cb.status);
|
btif_hh_cb.status);
|
||||||
return BT_STATUS_FAIL;
|
return BT_STATUS_FAIL;
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ if (!reconnect_allowed) {
|
+ if (!reconnect_allowed) {
|
||||||
+ LOG_INFO(LOG_TAG, "Incoming reconnections disabled for device %s",
|
+ LOG_INFO(LOG_TAG, "Incoming reconnections disabled for device %s",
|
||||||
+ bd_addr->ToString().c_str());
|
+ PRIVATE_ADDRESS((*bd_addr)));
|
||||||
+ btif_hh_added_device_t* added_dev = btif_hh_find_added_dev(*bd_addr);
|
+ btif_hh_added_device_t* added_dev = btif_hh_find_added_dev(*bd_addr);
|
||||||
+ if (added_dev != nullptr && added_dev->reconnect_allowed) {
|
+ if (added_dev != nullptr && added_dev->reconnect_allowed) {
|
||||||
+ added_dev->reconnect_allowed = false;
|
+ added_dev->reconnect_allowed = false;
|
||||||
@ -248,7 +256,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
p_dev = btif_hh_find_connected_dev_by_bda(*bd_addr);
|
p_dev = btif_hh_find_connected_dev_by_bda(*bd_addr);
|
||||||
if (p_dev != NULL) {
|
if (p_dev != NULL) {
|
||||||
return btif_transfer_context(btif_hh_handle_evt, BTIF_HH_DISCONNECT_REQ_EVT,
|
return btif_transfer_context(btif_hh_handle_evt, BTIF_HH_DISCONNECT_REQ_EVT,
|
||||||
@@ -1440,9 +1515,10 @@ static bt_status_t set_info(RawAddress* bd_addr, bthh_hid_info_t hid_info) {
|
@@ -1440,9 +1516,10 @@ static bt_status_t set_info(RawAddress* bd_addr, bthh_hid_info_t hid_info) {
|
||||||
(uint8_t*)osi_malloc(dscp_info.descriptor.dl_len);
|
(uint8_t*)osi_malloc(dscp_info.descriptor.dl_len);
|
||||||
memcpy(dscp_info.descriptor.dsc_list, &(hid_info.dsc_list), hid_info.dl_len);
|
memcpy(dscp_info.descriptor.dsc_list, &(hid_info.dsc_list), hid_info.dl_len);
|
||||||
|
|
||||||
@ -261,7 +269,7 @@ index 5c57ee80c..b29b6773e 100644
|
|||||||
|
|
||||||
osi_free_and_reset((void**)&dscp_info.descriptor.dsc_list);
|
osi_free_and_reset((void**)&dscp_info.descriptor.dsc_list);
|
||||||
diff --git a/btif/src/btif_storage.cc b/btif/src/btif_storage.cc
|
diff --git a/btif/src/btif_storage.cc b/btif/src/btif_storage.cc
|
||||||
index 200ea2c4e..ecbf2b50a 100644
|
index 200ea2c4e42..ecbf2b50aea 100644
|
||||||
--- a/btif/src/btif_storage.cc
|
--- a/btif/src/btif_storage.cc
|
||||||
+++ b/btif/src/btif_storage.cc
|
+++ b/btif/src/btif_storage.cc
|
||||||
@@ -89,6 +89,8 @@ using bluetooth::Uuid;
|
@@ -89,6 +89,8 @@ using bluetooth::Uuid;
|
||||||
@ -347,7 +355,7 @@ index 200ea2c4e..ecbf2b50a 100644
|
|||||||
return BT_STATUS_SUCCESS;
|
return BT_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
diff --git a/include/hardware/bt_hh.h b/include/hardware/bt_hh.h
|
diff --git a/include/hardware/bt_hh.h b/include/hardware/bt_hh.h
|
||||||
index b87b129bb..923c62792 100644
|
index b87b129bb12..923c6279216 100644
|
||||||
--- a/include/hardware/bt_hh.h
|
--- a/include/hardware/bt_hh.h
|
||||||
+++ b/include/hardware/bt_hh.h
|
+++ b/include/hardware/bt_hh.h
|
||||||
@@ -154,7 +154,7 @@ typedef struct {
|
@@ -154,7 +154,7 @@ typedef struct {
|
@ -1,7 +1,7 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 6365a211cfc7a25ba9bcd9fbb65a5becc8fa17cf Mon Sep 17 00:00:00 2001
|
||||||
From: Himanshu Rawat <rwt@google.com>
|
From: Himanshu Rawat <rwt@google.com>
|
||||||
Date: Mon, 8 Apr 2024 19:44:45 +0000
|
Date: Mon, 8 Apr 2024 19:44:45 +0000
|
||||||
Subject: [PATCH] RESTRICT AUTOMERGE Disallow unexpected incoming HID
|
Subject: [PATCH] BACKPORT: RESTRICT AUTOMERGE Disallow unexpected incoming HID
|
||||||
connections 2/2
|
connections 2/2
|
||||||
|
|
||||||
HID profile accepted any new incoming HID connection. Even when the
|
HID profile accepted any new incoming HID connection. Even when the
|
||||||
@ -59,34 +59,34 @@ index b8f4d6530..e4c885b3e 100644
|
|||||||
{"virtualUnPlugNative", "([B)Z", (void*)virtualUnPlugNative},
|
{"virtualUnPlugNative", "([B)Z", (void*)virtualUnPlugNative},
|
||||||
{"setProtocolModeNative", "([BB)Z", (void*)setProtocolModeNative},
|
{"setProtocolModeNative", "([BB)Z", (void*)setProtocolModeNative},
|
||||||
diff --git a/src/com/android/bluetooth/hid/HidHostService.java b/src/com/android/bluetooth/hid/HidHostService.java
|
diff --git a/src/com/android/bluetooth/hid/HidHostService.java b/src/com/android/bluetooth/hid/HidHostService.java
|
||||||
index bbde61948..a830d07e1 100644
|
index bbde61948..63f0bc9a9 100644
|
||||||
--- a/src/com/android/bluetooth/hid/HidHostService.java
|
--- a/src/com/android/bluetooth/hid/HidHostService.java
|
||||||
+++ b/src/com/android/bluetooth/hid/HidHostService.java
|
+++ b/src/com/android/bluetooth/hid/HidHostService.java
|
||||||
@@ -156,7 +156,10 @@ public class HidHostService extends ProfileService {
|
@@ -156,7 +156,10 @@ public void handleMessage(Message msg) {
|
||||||
break;
|
break;
|
||||||
case MESSAGE_DISCONNECT: {
|
case MESSAGE_DISCONNECT: {
|
||||||
BluetoothDevice device = (BluetoothDevice) msg.obj;
|
BluetoothDevice device = (BluetoothDevice) msg.obj;
|
||||||
- if (!disconnectHidNative(Utils.getByteAddress(device))) {
|
- if (!disconnectHidNative(Utils.getByteAddress(device))) {
|
||||||
+ int connectionPolicy = getPriority(device);
|
+ int priority = getPriority(device);
|
||||||
+ boolean reconnectAllowed =
|
+ boolean reconnectAllowed =
|
||||||
+ connectionPolicy == BluetoothProfile.PRIORITY_ON;
|
+ priority == BluetoothProfile.PRIORITY_ON;
|
||||||
+ if (!disconnectHidNative(Utils.getByteAddress(device), reconnectAllowed)) {
|
+ if (!disconnectHidNative(Utils.getByteAddress(device), reconnectAllowed)) {
|
||||||
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTING);
|
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTING);
|
||||||
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTED);
|
broadcastConnectionState(device, BluetoothProfile.STATE_DISCONNECTED);
|
||||||
break;
|
break;
|
||||||
@@ -181,7 +184,10 @@ public class HidHostService extends ProfileService {
|
@@ -181,7 +184,10 @@ public void handleMessage(Message msg) {
|
||||||
Log.d(TAG, "Incoming HID connection rejected");
|
Log.d(TAG, "Incoming HID connection rejected");
|
||||||
}
|
}
|
||||||
if (disconnectRemote(device)) {
|
if (disconnectRemote(device)) {
|
||||||
- disconnectHidNative(Utils.getByteAddress(device));
|
- disconnectHidNative(Utils.getByteAddress(device));
|
||||||
+ int connectionPolicy = getPriority(device);
|
+ int priority = getPriority(device);
|
||||||
+ boolean reconnectAllowed =
|
+ boolean reconnectAllowed =
|
||||||
+ connectionPolicy == BluetoothProfile.PRIORITY_ON;
|
+ priority == BluetoothProfile.PRIORITY_ON;
|
||||||
+ disconnectHidNative(Utils.getByteAddress(device), reconnectAllowed);
|
+ disconnectHidNative(Utils.getByteAddress(device), reconnectAllowed);
|
||||||
} else {
|
} else {
|
||||||
virtualUnPlugNative(Utils.getByteAddress(device));
|
virtualUnPlugNative(Utils.getByteAddress(device));
|
||||||
}
|
}
|
||||||
@@ -906,7 +912,7 @@ public class HidHostService extends ProfileService {
|
@@ -906,7 +912,7 @@ public void dump(StringBuilder sb) {
|
||||||
|
|
||||||
private native boolean connectHidNative(byte[] btAddress);
|
private native boolean connectHidNative(byte[] btAddress);
|
||||||
|
|
@ -0,0 +1,49 @@
|
|||||||
|
From 41e0ee3735cdd68949edbedf5ff4fd16f8496b73 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chris Manton <cmanton@google.com>
|
||||||
|
Date: Sun, 29 Nov 2020 17:05:05 -0800
|
||||||
|
Subject: [PATCH] Add privatize option for bluetooth addresses for logging
|
||||||
|
|
||||||
|
Toward loggable code
|
||||||
|
|
||||||
|
Bug: 163134718
|
||||||
|
Tag: #refactor
|
||||||
|
Test: gd/cert/run --host
|
||||||
|
|
||||||
|
Change-Id: Id568adb9f9497072a79100202501c4d207e40828
|
||||||
|
---
|
||||||
|
main/shim/dumpsys.h | 26 ++++++++++++++++++++++++++
|
||||||
|
1 file changed, 26 insertions(+)
|
||||||
|
create mode 100644 main/shim/dumpsys.h
|
||||||
|
|
||||||
|
diff --git a/main/shim/dumpsys.h b/main/shim/dumpsys.h
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..0dc0bc2fd
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/main/shim/dumpsys.h
|
||||||
|
@@ -0,0 +1,26 @@
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2019 The Android Open Source Project
|
||||||
|
+ *
|
||||||
|
+ * Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
+ * you may not use this file except in compliance with the License.
|
||||||
|
+ * You may obtain a copy of the License at
|
||||||
|
+ *
|
||||||
|
+ * http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
+ *
|
||||||
|
+ * Unless required by applicable law or agreed to in writing, software
|
||||||
|
+ * distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
+ * See the License for the specific language governing permissions and
|
||||||
|
+ * limitations under the License.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#pragma once
|
||||||
|
+
|
||||||
|
+#include <string>
|
||||||
|
+
|
||||||
|
+constexpr char kPrivateAddressPrefix[] = "xx:xx:xx:xx";
|
||||||
|
+#define PRIVATE_ADDRESS(addr) \
|
||||||
|
+ (addr.ToString() \
|
||||||
|
+ .replace(0, strlen(kPrivateAddressPrefix), kPrivateAddressPrefix) \
|
||||||
|
+ .c_str())
|
||||||
|
+
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 322c9005d55c5648cd1e6a2cfd25e45d6da73562 Mon Sep 17 00:00:00 2001
|
||||||
From: Chris Manton <cmanton@google.com>
|
From: Chris Manton <cmanton@google.com>
|
||||||
Date: Sun, 14 Mar 2021 09:52:19 -0700
|
Date: Sun, 14 Mar 2021 09:52:19 -0700
|
||||||
Subject: [PATCH] Add btif/include/btif_hh::btif_hh_status_text
|
Subject: [PATCH] Add btif/include/btif_hh::btif_hh_status_text
|
@ -1,4 +1,4 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 70750edace71473e69cca83023972066e8233d2e Mon Sep 17 00:00:00 2001
|
||||||
From: Himanshu Rawat <rwt@google.com>
|
From: Himanshu Rawat <rwt@google.com>
|
||||||
Date: Mon, 8 Apr 2024 19:42:21 +0000
|
Date: Mon, 8 Apr 2024 19:42:21 +0000
|
||||||
Subject: [PATCH] RESTRICT AUTOMERGE Disallow unexpected incoming HID
|
Subject: [PATCH] RESTRICT AUTOMERGE Disallow unexpected incoming HID
|
||||||
@ -29,7 +29,7 @@ Change-Id: I6e9db983e752dd498625078c13b736cd4c668806
|
|||||||
5 files changed, 160 insertions(+), 8 deletions(-)
|
5 files changed, 160 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/btif/include/btif_hh.h b/btif/include/btif_hh.h
|
diff --git a/btif/include/btif_hh.h b/btif/include/btif_hh.h
|
||||||
index 98dc33383..2aa03fddc 100644
|
index 98dc33383d..2aa03fddc9 100644
|
||||||
--- a/btif/include/btif_hh.h
|
--- a/btif/include/btif_hh.h
|
||||||
+++ b/btif/include/btif_hh.h
|
+++ b/btif/include/btif_hh.h
|
||||||
@@ -113,6 +113,7 @@ typedef struct {
|
@@ -113,6 +113,7 @@ typedef struct {
|
||||||
@ -51,7 +51,7 @@ index 98dc33383..2aa03fddc 100644
|
|||||||
extern void btif_hh_disconnect(RawAddress* bd_addr);
|
extern void btif_hh_disconnect(RawAddress* bd_addr);
|
||||||
extern void btif_hh_service_registration(bool enable);
|
extern void btif_hh_service_registration(bool enable);
|
||||||
diff --git a/btif/include/btif_storage.h b/btif/include/btif_storage.h
|
diff --git a/btif/include/btif_storage.h b/btif/include/btif_storage.h
|
||||||
index b1ada4db6..a32b7b8ff 100755
|
index b1ada4db61..a32b7b8ffc 100755
|
||||||
--- a/btif/include/btif_storage.h
|
--- a/btif/include/btif_storage.h
|
||||||
+++ b/btif/include/btif_storage.h
|
+++ b/btif/include/btif_storage.h
|
||||||
@@ -201,6 +201,29 @@ bt_status_t btif_storage_is_device_bonded(RawAddress *remote_bd_addr);
|
@@ -201,6 +201,29 @@ bt_status_t btif_storage_is_device_bonded(RawAddress *remote_bd_addr);
|
||||||
@ -85,7 +85,7 @@ index b1ada4db6..a32b7b8ff 100755
|
|||||||
*
|
*
|
||||||
* Function btif_storage_add_hid_device_info
|
* Function btif_storage_add_hid_device_info
|
||||||
diff --git a/btif/src/btif_hh.cc b/btif/src/btif_hh.cc
|
diff --git a/btif/src/btif_hh.cc b/btif/src/btif_hh.cc
|
||||||
index b5135ff2f..0d184a646 100644
|
index b5135ff2fe..0d184a6465 100644
|
||||||
--- a/btif/src/btif_hh.cc
|
--- a/btif/src/btif_hh.cc
|
||||||
+++ b/btif/src/btif_hh.cc
|
+++ b/btif/src/btif_hh.cc
|
||||||
@@ -340,6 +340,24 @@ btif_hh_device_t* btif_hh_find_connected_dev_by_handle(uint8_t handle) {
|
@@ -340,6 +340,24 @@ btif_hh_device_t* btif_hh_find_connected_dev_by_handle(uint8_t handle) {
|
||||||
@ -263,7 +263,7 @@ index b5135ff2f..0d184a646 100644
|
|||||||
|
|
||||||
osi_free_and_reset((void**)&dscp_info.descriptor.dsc_list);
|
osi_free_and_reset((void**)&dscp_info.descriptor.dsc_list);
|
||||||
diff --git a/btif/src/btif_storage.cc b/btif/src/btif_storage.cc
|
diff --git a/btif/src/btif_storage.cc b/btif/src/btif_storage.cc
|
||||||
index a62d9da6d..db2091d9c 100644
|
index a62d9da6d3..db2091d9cf 100644
|
||||||
--- a/btif/src/btif_storage.cc
|
--- a/btif/src/btif_storage.cc
|
||||||
+++ b/btif/src/btif_storage.cc
|
+++ b/btif/src/btif_storage.cc
|
||||||
@@ -91,6 +91,8 @@ using bluetooth::Uuid;
|
@@ -91,6 +91,8 @@ using bluetooth::Uuid;
|
||||||
@ -349,7 +349,7 @@ index a62d9da6d..db2091d9c 100644
|
|||||||
return BT_STATUS_SUCCESS;
|
return BT_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
diff --git a/include/hardware/bt_hh.h b/include/hardware/bt_hh.h
|
diff --git a/include/hardware/bt_hh.h b/include/hardware/bt_hh.h
|
||||||
index c39e3e5b8..c1247cb1c 100644
|
index c39e3e5b8a..c1247cb1c7 100644
|
||||||
--- a/include/hardware/bt_hh.h
|
--- a/include/hardware/bt_hh.h
|
||||||
+++ b/include/hardware/bt_hh.h
|
+++ b/include/hardware/bt_hh.h
|
||||||
@@ -151,7 +151,7 @@ typedef struct {
|
@@ -151,7 +151,7 @@ typedef struct {
|
@ -174,7 +174,7 @@ git fetch https://github.com/LineageOS/android_external_pdfium refs/changes/15/3
|
|||||||
fi;
|
fi;
|
||||||
|
|
||||||
if enterAndClear "external/skia"; then
|
if enterAndClear "external/skia"; then
|
||||||
applyPatch "$DOS_PATCHES/android_external_skia/408442.patch"; #R_asb_2024-11 Avoid potential overflow when allocating 3D mask from emboss filter
|
applyPatch "$DOS_PATCHES/android_external_skia/410984.patch"; #Q_asb_2024-11 Avoid potential overflow when allocating 3D mask from emboss filter
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
if enterAndClear "external/sonivox"; then
|
if enterAndClear "external/sonivox"; then
|
||||||
@ -332,13 +332,16 @@ applyPatch "$DOS_PATCHES/android_frameworks_base/402604.patch"; #Q_asb_2024-08 B
|
|||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/402605.patch"; #Q_asb_2024-08 Restrict USB poups while setup is in progress
|
applyPatch "$DOS_PATCHES/android_frameworks_base/402605.patch"; #Q_asb_2024-08 Restrict USB poups while setup is in progress
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/402606.patch"; #Q_asb_2024-08 Hide SAW subwindows
|
applyPatch "$DOS_PATCHES/android_frameworks_base/402606.patch"; #Q_asb_2024-08 Hide SAW subwindows
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/403301.patch"; #Q_asb_2024-09 Sanitized uri scheme by removing scheme delimiter
|
applyPatch "$DOS_PATCHES/android_frameworks_base/403301.patch"; #Q_asb_2024-09 Sanitized uri scheme by removing scheme delimiter
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/405515.patch"; #R_asb_2024-10 Update AccountManagerService checkKeyIntent.
|
applyPatch "$DOS_PATCHES/android_frameworks_base/408524.patch"; #Q_asb_2024-10 Update AccountManagerService checkKeyIntent.
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/405516.patch"; #R_asb_2024-10 Fail parseUri if end is missing
|
applyPatch "$DOS_PATCHES/android_frameworks_base/408525.patch"; #Q_asb_2024-10 Fail parseUri if end is missing
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/405518.patch"; #R_asb_2024-10 Check whether installerPackageName contains only valid characters
|
applyPatch "$DOS_PATCHES/android_frameworks_base/408526.patch"; #Q_asb_2024-10 Check whether installerPackageName contains only valid characters
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/408443.patch"; #R_asb_2024-11 Remove authenticator data if it was disabled.
|
applyPatch "$DOS_PATCHES/android_frameworks_base/410985.patch"; #Q_asb_2024-11 Remove authenticator data if it was disabled.
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/408444.patch"; #R_asb_2024-11 RingtoneManager: allow video ringtone URI
|
applyPatch "$DOS_PATCHES/android_frameworks_base/410986.patch"; #Q_asb_2024-11 RingtoneManager: allow video ringtone URI
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/408446-backport.patch"; #R_asb_2024-11 Disallow device admin package and protected packages to be reinstalled as instant.
|
applyPatch "$DOS_PATCHES/android_frameworks_base/410987.patch"; #Q_asb_2024-11 Check more URIs in notifications
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_base/408447.patch"; #R_asb_2024-11 Clear app-provided shortcut icons
|
applyPatch "$DOS_PATCHES/android_frameworks_base/410988.patch"; #Q_asb_2024-11 Fix function setting failed in Developer options
|
||||||
|
applyPatch "$DOS_PATCHES/android_frameworks_base/410989.patch"; #Q_asb_2024-11 Set no data transfer on function switch timeout for accessory mode
|
||||||
|
applyPatch "$DOS_PATCHES/android_frameworks_base/410990.patch"; #Q_asb_2024-11 Disallow device admin package and protected packages to be reinstalled as instant.
|
||||||
|
applyPatch "$DOS_PATCHES/android_frameworks_base/410991.patch"; #Q_asb_2024-11 Clear app-provided shortcut icons
|
||||||
#applyPatch "$DOS_PATCHES/android_frameworks_base/272645.patch"; #ten-bt-sbc-hd-dualchannel: Add CHANNEL_MODE_DUAL_CHANNEL constant (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_frameworks_base/272645.patch"; #ten-bt-sbc-hd-dualchannel: Add CHANNEL_MODE_DUAL_CHANNEL constant (ValdikSS)
|
||||||
#applyPatch "$DOS_PATCHES/android_frameworks_base/272646-forwardport.patch"; #ten-bt-sbc-hd-dualchannel: Add Dual Channel into Bluetooth Audio Channel Mode developer options menu (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_frameworks_base/272646-forwardport.patch"; #ten-bt-sbc-hd-dualchannel: Add Dual Channel into Bluetooth Audio Channel Mode developer options menu (ValdikSS)
|
||||||
#applyPatch "$DOS_PATCHES/android_frameworks_base/272647.patch"; #ten-bt-sbc-hd-dualchannel: Allow SBC as HD audio codec in Bluetooth device configuration (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_frameworks_base/272647.patch"; #ten-bt-sbc-hd-dualchannel: Allow SBC as HD audio codec in Bluetooth device configuration (ValdikSS)
|
||||||
@ -415,7 +418,7 @@ if enterAndClear "frameworks/opt/net/wifi"; then
|
|||||||
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/352562.patch"; #Q_asb_2023-03 Revert "wifi: remove certificates for network factory reset"
|
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/352562.patch"; #Q_asb_2023-03 Revert "wifi: remove certificates for network factory reset"
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/355360.patch"; #Q_asb_2023-04 Revert "Revert "wifi: remove certificates for network factory reset""
|
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/355360.patch"; #Q_asb_2023-04 Revert "Revert "wifi: remove certificates for network factory reset""
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/378139.patch"; #Q_asb_2023-07 Limit the number of Passpoint per App
|
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/378139.patch"; #Q_asb_2023-07 Limit the number of Passpoint per App
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/408452-backport.patch"; #R_asb_2024-11 Fix security issue by change the field in WifiConfig
|
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/410992.patch"; #Q_asb_2024-11 Fix security issue by change the field in WifiConfig
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/0001-constify_JNINativeMethod.patch"; #Constify JNINativeMethod tables (GrapheneOS)
|
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/0001-constify_JNINativeMethod.patch"; #Constify JNINativeMethod tables (GrapheneOS)
|
||||||
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/0002-Random_MAC.patch"; #Add support for always generating new random MAC (GrapheneOS)
|
applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/0002-Random_MAC.patch"; #Add support for always generating new random MAC (GrapheneOS)
|
||||||
fi;
|
fi;
|
||||||
@ -462,7 +465,7 @@ applyPatch "$DOS_PATCHES/android_hardware_qcom_audio/0001-Unused-sm8150.patch";
|
|||||||
fi;
|
fi;
|
||||||
|
|
||||||
if enterAndClear "libcore"; then
|
if enterAndClear "libcore"; then
|
||||||
applyPatch "$DOS_PATCHES/android_libcore/405541.patch"; #R_asb_2024-10 Do not accept zip files with invalid headers.
|
applyPatch "$DOS_PATCHES/android_libcore/408527.patch"; #Q_asb_2024-10 Do not accept zip files with invalid headers.
|
||||||
applyPatch "$DOS_PATCHES/android_libcore/0001-Exec_Based_Spawning-1.patch"; #Add exec-based spawning support (GrapheneOS)
|
applyPatch "$DOS_PATCHES/android_libcore/0001-Exec_Based_Spawning-1.patch"; #Add exec-based spawning support (GrapheneOS)
|
||||||
applyPatch "$DOS_PATCHES/android_libcore/0001-Exec_Based_Spawning-2.patch";
|
applyPatch "$DOS_PATCHES/android_libcore/0001-Exec_Based_Spawning-2.patch";
|
||||||
applyPatch "$DOS_PATCHES/android_libcore/0003-Network_Permission.patch"; #Expose the NETWORK permission (GrapheneOS)
|
applyPatch "$DOS_PATCHES/android_libcore/0003-Network_Permission.patch"; #Expose the NETWORK permission (GrapheneOS)
|
||||||
@ -476,7 +479,7 @@ fi;
|
|||||||
|
|
||||||
if enterAndClear "packages/apps/Bluetooth"; then
|
if enterAndClear "packages/apps/Bluetooth"; then
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/378135.patch"; #Q_asb_2023-12 Fix UAF in ~CallbackEnv
|
applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/378135.patch"; #Q_asb_2023-12 Fix UAF in ~CallbackEnv
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/405835-backport.patch"; #P_asb_2024-10 Disallow unexpected incoming HID connections 2/2
|
applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/408528.patch"; #Q_asb_2024-10 Disallow unexpected incoming HID connections 2/2
|
||||||
#applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/272652.patch"; #ten-bt-sbc-hd-dualchannel: SBC Dual Channel (SBC HD Audio) support (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/272652.patch"; #ten-bt-sbc-hd-dualchannel: SBC Dual Channel (SBC HD Audio) support (ValdikSS)
|
||||||
#applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/272653.patch"; #ten-bt-sbc-hd-dualchannel: Assume optional codecs are supported if were supported previously (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/272653.patch"; #ten-bt-sbc-hd-dualchannel: Assume optional codecs are supported if were supported previously (ValdikSS)
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/0001-constify_JNINativeMethod.patch"; #Constify JNINativeMethod tables (GrapheneOS)
|
applyPatch "$DOS_PATCHES/android_packages_apps_Bluetooth/0001-constify_JNINativeMethod.patch"; #Constify JNINativeMethod tables (GrapheneOS)
|
||||||
@ -542,9 +545,10 @@ applyPatch "$DOS_PATCHES/android_packages_apps_Settings/403302.patch"; #Q_asb_20
|
|||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/403303.patch"; #Q_asb_2024-09 Replace getCallingActivity() with getLaunchedFromPackage()
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/403303.patch"; #Q_asb_2024-09 Replace getCallingActivity() with getLaunchedFromPackage()
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/403304.patch"; #Q_asb_2024-09 Ignore fragment attr from ext authenticator resource
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/403304.patch"; #Q_asb_2024-09 Ignore fragment attr from ext authenticator resource
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/403305.patch"; #Q_asb_2024-09 Restrict Settings Homepage prior to provisioning
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/403305.patch"; #Q_asb_2024-09 Restrict Settings Homepage prior to provisioning
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/405534.patch"; #R_asb_2024-10 FRP bypass defense in App battery usage page
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/408529.patch"; #Q_asb_2024-10 FRP bypass defense in App battery usage page
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/408450.patch"; #R_asb_2024-11 startActivityForResult with new Intent
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/410993.patch"; #Q_asb_2024-11 fix: Security Report - Reveal images across users via EditUserPhotoController
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/408451.patch"; #R_asb_2024-11 Checks cross user permission before handling intent
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/410994.patch"; #Q_asb_2024-11 startActivityForResult with new Intent
|
||||||
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/410995.patch"; #Q_asb_2024-11 Checks cross user permission before handling intent
|
||||||
git revert --no-edit 486980cfecce2ca64267f41462f9371486308e9d; #Don't hide OEM unlock
|
git revert --no-edit 486980cfecce2ca64267f41462f9371486308e9d; #Don't hide OEM unlock
|
||||||
#applyPatch "$DOS_PATCHES/android_packages_apps_Settings/272651.patch"; #ten-bt-sbc-hd-dualchannel: Add Dual Channel into Bluetooth Audio Channel Mode developer options menu (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_packages_apps_Settings/272651.patch"; #ten-bt-sbc-hd-dualchannel: Add Dual Channel into Bluetooth Audio Channel Mode developer options menu (ValdikSS)
|
||||||
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0001-Captive_Portal_Toggle.patch"; #Add option to disable captive portal checks (MSe1969)
|
applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0001-Captive_Portal_Toggle.patch"; #Add option to disable captive portal checks (MSe1969)
|
||||||
@ -612,7 +616,7 @@ applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/355362.patch";
|
|||||||
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/378137.patch"; #Q_asb_2023-09 Canonicalize file path for insertion by legacy apps
|
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/378137.patch"; #Q_asb_2023-09 Canonicalize file path for insertion by legacy apps
|
||||||
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/378138.patch"; #Q_asb_2023-10 Fix path traversal vulnerabilities in MediaProvider
|
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/378138.patch"; #Q_asb_2023-10 Fix path traversal vulnerabilities in MediaProvider
|
||||||
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/399090.patch"; #Q_asb_2024-07 Prevent insertion in other users storage volumes
|
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/399090.patch"; #Q_asb_2024-07 Prevent insertion in other users storage volumes
|
||||||
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/408453-backport.patch"; #R_asb_2024-11
|
applyPatch "$DOS_PATCHES/android_packages_providers_MediaProvider/410996.patch"; #Q_asb_2024-11 Prevent apps from renaming files they don't own
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
if enterAndClear "packages/providers/TelephonyProvider"; then
|
if enterAndClear "packages/providers/TelephonyProvider"; then
|
||||||
@ -686,8 +690,9 @@ applyPatch "$DOS_PATCHES/android_system_bt/403314.patch"; #Q_asb_2024-09 Use btm
|
|||||||
applyPatch "$DOS_PATCHES/android_system_bt/403315.patch"; #Q_asb_2024-09 Add support for checking security downgrade
|
applyPatch "$DOS_PATCHES/android_system_bt/403315.patch"; #Q_asb_2024-09 Add support for checking security downgrade
|
||||||
applyPatch "$DOS_PATCHES/android_system_bt/403316.patch"; #Q_asb_2024-09 Disallow connect with Secure Connections downgrade
|
applyPatch "$DOS_PATCHES/android_system_bt/403316.patch"; #Q_asb_2024-09 Disallow connect with Secure Connections downgrade
|
||||||
applyPatch "$DOS_PATCHES/android_system_bt/403317.patch"; #Q_asb_2024-09 Disallow connect with key length downgrade
|
applyPatch "$DOS_PATCHES/android_system_bt/403317.patch"; #Q_asb_2024-09 Disallow connect with key length downgrade
|
||||||
applyPatch "$DOS_PATCHES/android_system_bt/405536.patch"; #R_asb_2024-10 Add btif/include/btif_hh::btif_hh_status_text
|
applyPatch "$DOS_PATCHES/android_system_bt/408530.patch"; #Q_asb_2024-10 Add privatize option for bluetooth addresses for logging
|
||||||
applyPatch "$DOS_PATCHES/android_system_bt/405834-backport.patch"; #P_asb_2024-10 Disallow unexpected incoming HID connections 1/2
|
applyPatch "$DOS_PATCHES/android_system_bt/408531.patch"; #Q_asb_2024-10 Add btif/include/btif_hh::btif_hh_status_text
|
||||||
|
applyPatch "$DOS_PATCHES/android_system_bt/408532.patch"; #Q_asb_2024-10 Disallow unexpected incoming HID connections 1/2
|
||||||
applyPatch "$DOS_PATCHES_COMMON/android_system_bt/0001-alloc_size.patch"; #Add alloc_size attributes to the allocator (GrapheneOS)
|
applyPatch "$DOS_PATCHES_COMMON/android_system_bt/0001-alloc_size.patch"; #Add alloc_size attributes to the allocator (GrapheneOS)
|
||||||
#applyPatch "$DOS_PATCHES/android_system_bt/272648.patch"; #ten-bt-sbc-hd-dualchannel: Increase maximum Bluetooth SBC codec bitrate for SBC HD (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_system_bt/272648.patch"; #ten-bt-sbc-hd-dualchannel: Increase maximum Bluetooth SBC codec bitrate for SBC HD (ValdikSS)
|
||||||
#applyPatch "$DOS_PATCHES/android_system_bt/272649.patch"; #ten-bt-sbc-hd-dualchannel: Explicit SBC Dual Channel (SBC HD) support (ValdikSS)
|
#applyPatch "$DOS_PATCHES/android_system_bt/272649.patch"; #ten-bt-sbc-hd-dualchannel: Explicit SBC Dual Channel (SBC HD) support (ValdikSS)
|
||||||
@ -769,7 +774,8 @@ fi;
|
|||||||
|
|
||||||
if enterAndClear "vendor/qcom/opensource/commonsys/packages/apps/Bluetooth"; then
|
if enterAndClear "vendor/qcom/opensource/commonsys/packages/apps/Bluetooth"; then
|
||||||
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_packages_apps_Bluetooth/378136.patch"; #Q_asb_2023-12 Fix UAF in ~CallbackEnv
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_packages_apps_Bluetooth/378136.patch"; #Q_asb_2023-12 Fix UAF in ~CallbackEnv
|
||||||
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_packages_apps_Bluetooth/405585-backport.patch"; #R_asb_2024-10 Disallow unexpected incoming HID connections 2/2
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_packages_apps_Bluetooth/408533.patch"; #Q_asb_2024-10 Disallow unexpected incoming HID connections 2/2
|
||||||
|
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
if enterAndClear "vendor/qcom/opensource/commonsys/system/bt"; then
|
if enterAndClear "vendor/qcom/opensource/commonsys/system/bt"; then
|
||||||
@ -812,8 +818,9 @@ applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/403324.patch";
|
|||||||
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/403325.patch"; #Q_asb_2024-09 Add support for checking security downgrade
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/403325.patch"; #Q_asb_2024-09 Add support for checking security downgrade
|
||||||
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/403326.patch"; #Q_asb_2024-09 Disallow connect with Secure Connections downgrade
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/403326.patch"; #Q_asb_2024-09 Disallow connect with Secure Connections downgrade
|
||||||
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/403327.patch"; #Q_asb_2024-09 Disallow connect with key length downgrade
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/403327.patch"; #Q_asb_2024-09 Disallow connect with key length downgrade
|
||||||
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/405583.patch"; #R_asb_2024-10 Add btif/include/btif_hh::btif_hh_status_text
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/408535.patch"; #Q_asb_2024-10 Add privatize option for bluetooth addresses for logging
|
||||||
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/405584.patch"; #R_asb_2024-10 Disallow unexpected incoming HID connections 1/2
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/408535.patch"; #Q_asb_2024-10 Add btif/include/btif_hh::btif_hh_status_text
|
||||||
|
applyPatch "$DOS_PATCHES/android_vendor_qcom_opensource_system_bt/408536.patch"; #Q_asb_2024-10 Disallow unexpected incoming HID connections 1/2
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
if enterAndClear "vendor/lineage"; then
|
if enterAndClear "vendor/lineage"; then
|
||||||
|
Loading…
Reference in New Issue
Block a user