diff --git a/patches/platform_bionic/0002-Actually-restore-pre-P-mutex-behavior.patch b/patches/platform_bionic/0002-Actually-restore-pre-P-mutex-behavior.patch deleted file mode 100644 index 24b62df..0000000 --- a/patches/platform_bionic/0002-Actually-restore-pre-P-mutex-behavior.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 38b21e5ba3f2ee5c8a6473ed20e6fa1946bdd2e3 Mon Sep 17 00:00:00 2001 -From: Ethan Chen -Date: Tue, 25 Sep 2018 00:11:05 -0700 -Subject: [PATCH 2/6] Actually restore pre-P mutex behavior - -Apps built against versions < P may not actually expect the EBUSY return -code, and may crash or otherwise misbehave. Check for target SDK -versions earlier than P when performing the IsMutexDestroyed check so -any invocation of HandleUsingDestroyedMutex is bypassed and pre-P mutex -behavior is restored. - -See 9e989f12d1186231d97dac6d038db7955acebdf3 for the change that -introduced this new behavior. - -Change-Id: I45f8882c9527c63eed1ef5820a5004b8958d58ea ---- - libc/bionic/pthread_mutex.cpp | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - -diff --git a/libc/bionic/pthread_mutex.cpp b/libc/bionic/pthread_mutex.cpp -index f92184e50..f006bb92d 100644 ---- a/libc/bionic/pthread_mutex.cpp -+++ b/libc/bionic/pthread_mutex.cpp -@@ -783,16 +783,23 @@ static int MutexLockWithTimeout(pthread_mutex_internal_t* mutex, bool use_realti - } // namespace NonPI - - static inline __always_inline bool IsMutexDestroyed(uint16_t mutex_state) { -- return mutex_state == 0xffff; -+ if (android_get_application_target_sdk_version() >= __ANDROID_API_P__) { -+ return mutex_state == 0xffff; -+ } -+ return false; - } - - // Inlining this function in pthread_mutex_lock() adds the cost of stack frame instructions on - // ARM64. So make it noinline. - static int __attribute__((noinline)) HandleUsingDestroyedMutex(pthread_mutex_t* mutex, - const char* function_name) { -- if (android_get_application_target_sdk_version() >= __ANDROID_API_P__) { -- __fortify_fatal("%s called on a destroyed mutex (%p)", function_name, mutex); -- } -+ __fortify_fatal("%s called on a destroyed mutex (%p)", function_name, mutex); -+ return EBUSY; -+} -+ -+static int __always_inline HandleUsingDestroyedMutex(pthread_mutex_t* mutex, -+ const char* function_name) { -+ __fortify_fatal("%s called on a destroyed mutex (%p)", function_name, mutex); - return EBUSY; - } - --- -2.17.1 - diff --git a/patches/platform_bionic/0003-bionic-Use-legacy-pthread_mutex_init-behavior-on-pre.patch b/patches/platform_bionic/0003-bionic-Use-legacy-pthread_mutex_init-behavior-on-pre.patch deleted file mode 100644 index 75ff5ca..0000000 --- a/patches/platform_bionic/0003-bionic-Use-legacy-pthread_mutex_init-behavior-on-pre.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 45eed08a80644561adc9e103e7d58af691afeb86 Mon Sep 17 00:00:00 2001 -From: nx111 -Date: Wed, 3 Oct 2018 16:58:19 +0800 -Subject: [PATCH 3/6] bionic: Use legacy pthread_mutex_init() behavior on pre-P - API levels - -* Google's changes to pthread_mutex_init is breaking RIL - on certain Samsung devices like klte and hlte -* To resolve this, add a check for their new additions - to only apply the new behavior for P and higher APIs - -Change-Id: I41335c5c436fa28a66d044e6634466556dfd7f95 ---- - libc/bionic/pthread_mutex.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/libc/bionic/pthread_mutex.cpp b/libc/bionic/pthread_mutex.cpp -index f006bb92d..969feb43c 100644 ---- a/libc/bionic/pthread_mutex.cpp -+++ b/libc/bionic/pthread_mutex.cpp -@@ -527,7 +527,8 @@ int pthread_mutex_init(pthread_mutex_t* mutex_interface, const pthread_mutexattr - return EINVAL; - } - -- if (((*attr & MUTEXATTR_PROTOCOL_MASK) >> MUTEXATTR_PROTOCOL_SHIFT) == PTHREAD_PRIO_INHERIT) { -+ if (((*attr & MUTEXATTR_PROTOCOL_MASK) >> MUTEXATTR_PROTOCOL_SHIFT) == PTHREAD_PRIO_INHERIT -+ && bionic_get_application_target_sdk_version() >= __ANDROID_API_P__) { - #if !defined(__LP64__) - if (state & MUTEX_SHARED_MASK) { - return EINVAL; --- -2.17.1 - diff --git a/patches/platform_system_core/0014-Ugly-but-secure-Set-dev-uinput-as-0666-to-fix-finger.patch b/patches/platform_system_core/0014-Ugly-but-secure-Set-dev-uinput-as-0666-to-fix-finger.patch new file mode 100644 index 0000000..b4edffe --- /dev/null +++ b/patches/platform_system_core/0014-Ugly-but-secure-Set-dev-uinput-as-0666-to-fix-finger.patch @@ -0,0 +1,32 @@ +From ef7918d80d3dcd9341e8bc967a1215e687ff5d47 Mon Sep 17 00:00:00 2001 +From: Pierre-Hugues Husson +Date: Fri, 1 Nov 2019 18:22:13 +0100 +Subject: [PATCH 14/14] Ugly but secure: Set /dev/uinput as 0666 to fix + fingerprint sensor on some devices + +cf https://github.com/phhusson/device_phh_treble/pull/122/commits/e000d69c286b6686777ea6f1867f379e30273e48 +This is safe because even though it's 0666, its SELinux policy is very +tight, and only bluetooth HAL, shell (and fingerprint HAL on Xiaomi) can +access it. + +Change-Id: Id374e781957927d5604cb96c7a39b3fb28b3a6c5 +--- + rootdir/ueventd.rc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rootdir/ueventd.rc b/rootdir/ueventd.rc +index 451f5adf3..41ad5bd09 100644 +--- a/rootdir/ueventd.rc ++++ b/rootdir/ueventd.rc +@@ -45,7 +45,7 @@ subsystem sound + + # these should not be world writable + /dev/uhid 0660 uhid uhid +-/dev/uinput 0660 uhid uhid ++/dev/uinput 0666 uhid uhid + /dev/rtc0 0640 system system + /dev/tty0 0660 root system + /dev/graphics/* 0660 root graphics +-- +2.17.1 +