Compare commits
11 Commits
lineage-17
...
lineage-17
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79b5b414a7 | ||
|
|
85c08ba1de | ||
|
|
7003515879 | ||
|
|
133b4799cc | ||
|
|
23b58fa57f | ||
|
|
d1718561d3 | ||
|
|
80a47a7f4f | ||
|
|
90d7ed3178 | ||
|
|
9fe4d8ccf3 | ||
|
|
5a4c7737ee | ||
|
|
4af677c28b |
@@ -1,39 +0,0 @@
|
|||||||
From efbdeeea6ac6ac7e6a33ba9034d0d26a2da2c92e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Danny Baumann <dannybaumann@web.de>
|
|
||||||
Date: Wed, 29 Aug 2018 11:21:52 +0200
|
|
||||||
Subject: [PATCH 1/6] Implement per-process target SDK version override.
|
|
||||||
|
|
||||||
Change-Id: I65bbdbe96541d8aacdd4de125cdb9c1435129413
|
|
||||||
|
|
||||||
This is only partial cherry-pick. Value won't be set via Android.bp
|
|
||||||
---
|
|
||||||
linker/linker.cpp | 13 ++++++++++++-
|
|
||||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/linker/linker.cpp b/linker/linker.cpp
|
|
||||||
index b59df7302..ccdb131ca 100644
|
|
||||||
--- a/linker/linker.cpp
|
|
||||||
+++ b/linker/linker.cpp
|
|
||||||
@@ -4217,7 +4217,18 @@ std::vector<android_namespace_t*> init_default_namespaces(const char* executable
|
|
||||||
// somain and ld_preloads are added to these namespaces after LD_PRELOAD libs are linked
|
|
||||||
}
|
|
||||||
|
|
||||||
- set_application_target_sdk_version(config->target_sdk_version());
|
|
||||||
+ uint32_t target_sdk = config->target_sdk_version();
|
|
||||||
+#ifdef SDK_VERSION_OVERRIDES
|
|
||||||
+ for (const auto& entry : android::base::Split(SDK_VERSION_OVERRIDES, " ")) {
|
|
||||||
+ auto splitted = android::base::Split(entry, "=");
|
|
||||||
+ if (splitted.size() == 2 && splitted[0] == executable_path) {
|
|
||||||
+ target_sdk = static_cast<uint32_t>(std::stoul(splitted[1]));
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ DEBUG("Target SDK for %s = %d", executable_path, target_sdk);
|
|
||||||
+#endif
|
|
||||||
+ set_application_target_sdk_version(target_sdk);
|
|
||||||
|
|
||||||
std::vector<android_namespace_t*> created_namespaces;
|
|
||||||
created_namespaces.reserve(namespaces.size());
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From e77d8ff8326def1d6b457bfd4c8b232dc58dd7cb Mon Sep 17 00:00:00 2001
|
From 3e18df7a3462d3b81ac4cbc23b1e8721f2f3722c Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 3 Jan 2019 17:50:03 +0100
|
Date: Thu, 3 Jan 2019 17:50:03 +0100
|
||||||
Subject: [PATCH 4/6] Read SDK version override from property
|
Subject: [PATCH 1/2] Read SDK version override from property
|
||||||
|
|
||||||
Change-Id: I88ca5d0bde15ee4f2b2bd1255e98f9592973dbf9
|
Change-Id: I88ca5d0bde15ee4f2b2bd1255e98f9592973dbf9
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Change-Id: I88ca5d0bde15ee4f2b2bd1255e98f9592973dbf9
|
|||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/linker/linker.cpp b/linker/linker.cpp
|
diff --git a/linker/linker.cpp b/linker/linker.cpp
|
||||||
index ccdb131ca..f45a40b9d 100644
|
index 6941fde20..c4730ec20 100644
|
||||||
--- a/linker/linker.cpp
|
--- a/linker/linker.cpp
|
||||||
+++ b/linker/linker.cpp
|
+++ b/linker/linker.cpp
|
||||||
@@ -4218,7 +4218,9 @@ std::vector<android_namespace_t*> init_default_namespaces(const char* executable
|
@@ -4296,7 +4296,9 @@ std::vector<android_namespace_t*> init_default_namespaces(const char* executable
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t target_sdk = config->target_sdk_version();
|
uint32_t target_sdk = config->target_sdk_version();
|
||||||
@@ -23,7 +23,7 @@ index ccdb131ca..f45a40b9d 100644
|
|||||||
for (const auto& entry : android::base::Split(SDK_VERSION_OVERRIDES, " ")) {
|
for (const auto& entry : android::base::Split(SDK_VERSION_OVERRIDES, " ")) {
|
||||||
auto splitted = android::base::Split(entry, "=");
|
auto splitted = android::base::Split(entry, "=");
|
||||||
if (splitted.size() == 2 && splitted[0] == executable_path) {
|
if (splitted.size() == 2 && splitted[0] == executable_path) {
|
||||||
@@ -4227,7 +4229,7 @@ std::vector<android_namespace_t*> init_default_namespaces(const char* executable
|
@@ -4305,7 +4307,7 @@ std::vector<android_namespace_t*> init_default_namespaces(const char* executable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DEBUG("Target SDK for %s = %d", executable_path, target_sdk);
|
DEBUG("Target SDK for %s = %d", executable_path, target_sdk);
|
||||||
@@ -33,5 +33,5 @@ index ccdb131ca..f45a40b9d 100644
|
|||||||
|
|
||||||
std::vector<android_namespace_t*> created_namespaces;
|
std::vector<android_namespace_t*> created_namespaces;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From f32750cc994642f6ba792051f20c3f930f3007d2 Mon Sep 17 00:00:00 2001
|
From 1823be14501a6c116f6d5e87570dea1af2c68413 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 12 Sep 2019 12:54:23 +0200
|
Date: Thu, 12 Sep 2019 12:54:23 +0200
|
||||||
Subject: [PATCH 5/6] Use vndk_lite ld.config only on same-version vendor
|
Subject: [PATCH 2/2] Use vndk_lite ld.config only on same-version vendor
|
||||||
|
|
||||||
When running Q over P lite, there is currently absolutely no chance the
|
When running Q over P lite, there is currently absolutely no chance the
|
||||||
device boots, because it will be using Q vndk.
|
device boots, because it will be using Q vndk.
|
||||||
@@ -16,10 +16,10 @@ Change-Id: I55257cd7c738b1d20582e198e1d5621e1c87a03e
|
|||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/linker/linker.cpp b/linker/linker.cpp
|
diff --git a/linker/linker.cpp b/linker/linker.cpp
|
||||||
index f45a40b9d..9082fde53 100644
|
index c4730ec20..337811951 100644
|
||||||
--- a/linker/linker.cpp
|
--- a/linker/linker.cpp
|
||||||
+++ b/linker/linker.cpp
|
+++ b/linker/linker.cpp
|
||||||
@@ -4069,7 +4069,10 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
|
@@ -4147,7 +4147,10 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string get_ld_config_file_vndk_path() {
|
static std::string get_ld_config_file_vndk_path() {
|
||||||
@@ -32,5 +32,5 @@ index f45a40b9d..9082fde53 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
From 13acd597e0dd22c5fa462007b20fe4f2398db297 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
|
||||||
Date: Thu, 12 Sep 2019 13:00:55 +0200
|
|
||||||
Subject: [PATCH 6/6] fixup! Actually restore pre-P mutex behavior
|
|
||||||
|
|
||||||
---
|
|
||||||
libc/bionic/pthread_mutex.cpp | 8 +-------
|
|
||||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libc/bionic/pthread_mutex.cpp b/libc/bionic/pthread_mutex.cpp
|
|
||||||
index 969feb43c..bd9fabdb6 100644
|
|
||||||
--- a/libc/bionic/pthread_mutex.cpp
|
|
||||||
+++ b/libc/bionic/pthread_mutex.cpp
|
|
||||||
@@ -528,7 +528,7 @@ int pthread_mutex_init(pthread_mutex_t* mutex_interface, const pthread_mutexattr
|
|
||||||
}
|
|
||||||
|
|
||||||
if (((*attr & MUTEXATTR_PROTOCOL_MASK) >> MUTEXATTR_PROTOCOL_SHIFT) == PTHREAD_PRIO_INHERIT
|
|
||||||
- && bionic_get_application_target_sdk_version() >= __ANDROID_API_P__) {
|
|
||||||
+ && android_get_application_target_sdk_version() >= __ANDROID_API_P__) {
|
|
||||||
#if !defined(__LP64__)
|
|
||||||
if (state & MUTEX_SHARED_MASK) {
|
|
||||||
return EINVAL;
|
|
||||||
@@ -798,12 +798,6 @@ static int __attribute__((noinline)) HandleUsingDestroyedMutex(pthread_mutex_t*
|
|
||||||
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;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
int pthread_mutex_lock(pthread_mutex_t* mutex_interface) {
|
|
||||||
#if !defined(__LP64__)
|
|
||||||
// Some apps depend on being able to pass NULL as a mutex and get EINVAL
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
From 58a98bd24e41cdacdbd472aaed2ab994400fe68c Mon Sep 17 00:00:00 2001
|
From a1b739f4631bfaa8a15cdc70081819b1d9360332 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 12 Sep 2019 20:31:07 +0200
|
Date: Thu, 12 Sep 2019 20:31:07 +0200
|
||||||
Subject: [PATCH] Don't reboot if we couldn't get bootctrl
|
Subject: [PATCH] Don't reboot if we couldn't get bootctrl
|
||||||
@@ -22,5 +22,5 @@ index d04c455d..27e9f616 100644
|
|||||||
|
|
||||||
uint32_t current_slot = module->getCurrentSlot();
|
uint32_t current_slot = module->getCurrentSlot();
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 47af450ead33251ed80186d3b203e74d4930a775 Mon Sep 17 00:00:00 2001
|
From 5b235ab7e686c58433d623fe5355125d9c9fdd35 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Fri, 6 Sep 2019 15:10:28 +0200
|
Date: Fri, 6 Sep 2019 15:10:28 +0200
|
||||||
Subject: [PATCH] Whitelist radio HALs (needed because they need to e in
|
Subject: [PATCH] Whitelist radio HALs (needed because they need to e in
|
||||||
@@ -10,16 +10,16 @@ Change-Id: If1ccbedde92955bb86f4c6db6d68502784de1d8d
|
|||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/core/tasks/check_boot_jars/package_whitelist.txt b/core/tasks/check_boot_jars/package_whitelist.txt
|
diff --git a/core/tasks/check_boot_jars/package_whitelist.txt b/core/tasks/check_boot_jars/package_whitelist.txt
|
||||||
index d7dc368ee..7b6d5d8e7 100644
|
index a2ebd491d..3545bbd88 100644
|
||||||
--- a/core/tasks/check_boot_jars/package_whitelist.txt
|
--- a/core/tasks/check_boot_jars/package_whitelist.txt
|
||||||
+++ b/core/tasks/check_boot_jars/package_whitelist.txt
|
+++ b/core/tasks/check_boot_jars/package_whitelist.txt
|
||||||
@@ -254,3 +254,6 @@ org\.lineageos\.platform\.internal
|
@@ -264,3 +264,6 @@ org\.ifaa\.android\.manager.*
|
||||||
org\.codeaurora\.ims.*
|
com\.nvidia\.*
|
||||||
# telephony-ext:
|
com\.nvidia\.profilemanager\.*
|
||||||
org\.codeaurora\.internal.*
|
com\.nvidia\.NvCPLSvc\.*
|
||||||
+
|
+
|
||||||
+vendor\.samsung\.hardware\.radio\.V1_2
|
+vendor\.samsung\.hardware\.radio\.V1_2
|
||||||
+vendor\.mediatek\.hardware\.radio\.V2_0
|
+vendor\.mediatek\.hardware\.radio\.V2_0
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 1c3ecb1fd46c76111d44f600532068f307ccacbc Mon Sep 17 00:00:00 2001
|
From 8387b818fb3d921f718d7088a78db0842f8e5d41 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sat, 14 Sep 2019 21:25:07 +0200
|
Date: Sat, 14 Sep 2019 21:25:07 +0200
|
||||||
Subject: [PATCH 2/2] Add BOARD_SYSTEMIMAGE_AS_SYSTEM parameter to build SaS
|
Subject: [PATCH 2/3] Add BOARD_SYSTEMIMAGE_AS_SYSTEM parameter to build SaS
|
||||||
GSI
|
GSI
|
||||||
|
|
||||||
Change-Id: I764f0ef4e3be9a338fbe93944445cedc29d2bb81
|
Change-Id: I764f0ef4e3be9a338fbe93944445cedc29d2bb81
|
||||||
@@ -11,10 +11,10 @@ Change-Id: I764f0ef4e3be9a338fbe93944445cedc29d2bb81
|
|||||||
2 files changed, 5 insertions(+)
|
2 files changed, 5 insertions(+)
|
||||||
|
|
||||||
diff --git a/core/Makefile b/core/Makefile
|
diff --git a/core/Makefile b/core/Makefile
|
||||||
index 4611fb388..9ab207c6d 100644
|
index a5eef489f..1d0c63e23 100644
|
||||||
--- a/core/Makefile
|
--- a/core/Makefile
|
||||||
+++ b/core/Makefile
|
+++ b/core/Makefile
|
||||||
@@ -1345,6 +1345,7 @@ endif # PRODUCT_USE_DYNAMIC_PARTITIONS
|
@@ -1378,6 +1378,7 @@ endif # PRODUCT_USE_DYNAMIC_PARTITIONS
|
||||||
# $(3): additional "key=value" pairs to append to the dictionary file.
|
# $(3): additional "key=value" pairs to append to the dictionary file.
|
||||||
define generate-image-prop-dictionary
|
define generate-image-prop-dictionary
|
||||||
$(if $(filter $(2),system),\
|
$(if $(filter $(2),system),\
|
||||||
@@ -23,7 +23,7 @@ index 4611fb388..9ab207c6d 100644
|
|||||||
$(if $(INTERNAL_SYSTEM_OTHER_PARTITION_SIZE),$(hide) echo "system_other_size=$(INTERNAL_SYSTEM_OTHER_PARTITION_SIZE)" >> $(1))
|
$(if $(INTERNAL_SYSTEM_OTHER_PARTITION_SIZE),$(hide) echo "system_other_size=$(INTERNAL_SYSTEM_OTHER_PARTITION_SIZE)" >> $(1))
|
||||||
$(if $(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "system_fs_type=$(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
$(if $(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "system_fs_type=$(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
||||||
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
|
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
|
||||||
index 4136ed432..96f7ddcb0 100755
|
index 641a6e19f..7d4f1c328 100755
|
||||||
--- a/tools/releasetools/build_image.py
|
--- a/tools/releasetools/build_image.py
|
||||||
+++ b/tools/releasetools/build_image.py
|
+++ b/tools/releasetools/build_image.py
|
||||||
@@ -157,6 +157,8 @@ def SetUpInDirAndFsConfig(origin_in, prop_dict):
|
@@ -157,6 +157,8 @@ def SetUpInDirAndFsConfig(origin_in, prop_dict):
|
||||||
@@ -45,5 +45,5 @@ index 4136ed432..96f7ddcb0 100755
|
|||||||
# We inherit the selinux policies of /system since we contain some of its
|
# We inherit the selinux policies of /system since we contain some of its
|
||||||
# files.
|
# files.
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
From 9434797f88d439d3dff8c7af733dcea2cdfed7ab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Sun, 22 Mar 2020 18:09:04 +0100
|
||||||
|
Subject: [PATCH 3/3] Skip mounting /oem, because if it exists, it includes
|
||||||
|
framework-level stuff we dont want
|
||||||
|
|
||||||
|
---
|
||||||
|
target/product/gsi/skip_mount.cfg | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/target/product/gsi/skip_mount.cfg b/target/product/gsi/skip_mount.cfg
|
||||||
|
index 549767edf..327676384 100644
|
||||||
|
--- a/target/product/gsi/skip_mount.cfg
|
||||||
|
+++ b/target/product/gsi/skip_mount.cfg
|
||||||
|
@@ -1,2 +1,3 @@
|
||||||
|
/product
|
||||||
|
/product_services
|
||||||
|
+/oem
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 2357a8f50b6ec8e1ed4d863c4b18aaed8af6a3db Mon Sep 17 00:00:00 2001
|
From 0fcb4cf13bf9b59218267fa54f4334c397da96f4 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Fri, 2 Mar 2018 22:49:55 +0100
|
Date: Fri, 2 Mar 2018 22:49:55 +0100
|
||||||
Subject: [PATCH 1/6] Enable multipl_decls by default. This is needed because
|
Subject: [PATCH 1/8] Enable multipl_decls by default. This is needed because
|
||||||
8.0 init doesn't add -m
|
8.0 init doesn't add -m
|
||||||
|
|
||||||
Change-Id: I43dc661d519f7b8576d72a828d8cbd444592bf5e
|
Change-Id: I43dc661d519f7b8576d72a828d8cbd444592bf5e
|
||||||
@@ -23,5 +23,5 @@ index ad6862ba..8799e99a 100644
|
|||||||
int preserve_tunables = 0;
|
int preserve_tunables = 0;
|
||||||
int handle_unknown = -1;
|
int handle_unknown = -1;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 04ac55163d403dba2d986cb41805663ea5fa465a Mon Sep 17 00:00:00 2001
|
From 59e09675460e91cb989bc04886edb9aed738c63a Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 9 Apr 2018 00:19:49 +0200
|
Date: Mon, 9 Apr 2018 00:19:49 +0200
|
||||||
Subject: [PATCH 2/6] Increase default log_level to get actual selinux error in
|
Subject: [PATCH 2/8] Increase default log_level to get actual selinux error in
|
||||||
kmsg
|
kmsg
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -22,5 +22,5 @@ index 8799e99a..631b4b0a 100644
|
|||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
{"verbose", no_argument, 0, 'v'},
|
{"verbose", no_argument, 0, 'v'},
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
From 0883dddcc377f9c8c271b4ee1b5796cca6b9938c Mon Sep 17 00:00:00 2001
|
From bb0fa90347c9acd0a4b215b9f2244d2761667bdc Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 3 Dec 2018 20:54:54 +0100
|
Date: Mon, 3 Dec 2018 20:54:54 +0100
|
||||||
Subject: [PATCH 3/6] ::Kirin:: Workaround some conflicting Kirin tether
|
Subject: [PATCH 3/8] Kirin:: Workaround some conflicting Kirin tether SELinux
|
||||||
SELinux context
|
context
|
||||||
|
|
||||||
Some Kirin devices declared some android.hardware.tetheroffload HALs,
|
Some Kirin devices declared some android.hardware.tetheroffload HALs,
|
||||||
but they didn't use AOSP contexts.
|
but they didn't use AOSP contexts.
|
||||||
@@ -36,5 +36,5 @@ index eaca5947..ab92985b 100644
|
|||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
selinux_log
|
selinux_log
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From fac785e80fa91a71c29c95817110154e4c60464d Mon Sep 17 00:00:00 2001
|
From 8d23d9c14cc95edd2f3fc31433357e6249af1a11 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Fri, 6 Sep 2019 15:07:25 +0200
|
Date: Fri, 6 Sep 2019 15:07:25 +0200
|
||||||
Subject: [PATCH 4/6] Allow /devices/virtual/block/ genfscon conflict (seen on
|
Subject: [PATCH 4/8] Allow /devices/virtual/block/ genfscon conflict (seen on
|
||||||
Xiaomi Mi 9)
|
Xiaomi Mi 9)
|
||||||
|
|
||||||
Change-Id: I06e4e9d5b82d61a8aeab595b47e2589249675895
|
Change-Id: I06e4e9d5b82d61a8aeab595b47e2589249675895
|
||||||
@@ -39,5 +39,5 @@ index 0b09cecc..255c9e12 100644
|
|||||||
|
|
||||||
int cil_post_netifcon_context_compare(const void *a, const void *b)
|
int cil_post_netifcon_context_compare(const void *a, const void *b)
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From c741063fdd7cbb01dda51737db457e4043af0d04 Mon Sep 17 00:00:00 2001
|
From 2613e4dd6fe7b351581799e11980104b25e443f1 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 12 Sep 2019 20:34:28 +0200
|
Date: Thu, 12 Sep 2019 20:34:28 +0200
|
||||||
Subject: [PATCH 5/6] Most horrific: Remove ramdisk's zygote init scripts
|
Subject: [PATCH 5/8] Most horrific: Remove ramdisk's zygote init scripts
|
||||||
|
|
||||||
This is needed because:
|
This is needed because:
|
||||||
- only secilc is run soon enough in /system to
|
- only secilc is run soon enough in /system to
|
||||||
@@ -40,5 +40,5 @@ index 631b4b0a..3dd6e7ce 100644
|
|||||||
opt_char = getopt_long(argc, argv, "o:f:U:hvt:M:PDmNc:GX:", long_opts, &opt_index);
|
opt_char = getopt_long(argc, argv, "o:f:U:hvt:M:PDmNc:GX:", long_opts, &opt_index);
|
||||||
if (opt_char == -1) {
|
if (opt_char == -1) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 80f7a20f831e6d2028678899c39fe779024433f1 Mon Sep 17 00:00:00 2001
|
From 0646089ab1c663e04dd7ba364c6e06db3fb67695 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 12 Sep 2019 20:37:04 +0200
|
Date: Thu, 12 Sep 2019 20:37:04 +0200
|
||||||
Subject: [PATCH 6/6] if service is "rcs", accept conflict. Seen on Moto E5
|
Subject: [PATCH 6/8] if service is "rcs", accept conflict. Seen on Moto E5
|
||||||
|
|
||||||
Change-Id: I0cc2d0fad83f403f2b5d7458039b1564ce5ed9dd
|
Change-Id: I0cc2d0fad83f403f2b5d7458039b1564ce5ed9dd
|
||||||
---
|
---
|
||||||
@@ -40,5 +40,5 @@ index ab92985b..ca16327c 100644
|
|||||||
selinux_log
|
selinux_log
|
||||||
(SELINUX_WARNING,
|
(SELINUX_WARNING,
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 477ef41ac3a639f4c34c8ecf323d25ed2d3e8e8e Mon Sep 17 00:00:00 2001
|
From 619185d4d8d3af1b86a2aba200659ad6ae09b44a Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Fri, 25 Oct 2019 13:29:20 +0200
|
Date: Fri, 25 Oct 2019 13:29:20 +0200
|
||||||
Subject: [PATCH 7/7] Fix boot on Moto devices using unknown class
|
Subject: [PATCH 7/8] Fix boot on Moto devices using unknown class
|
||||||
|
|
||||||
vendor sepolicy never contains new class or classorder, and are not
|
vendor sepolicy never contains new class or classorder, and are not
|
||||||
allowed to.
|
allowed to.
|
||||||
@@ -80,5 +80,5 @@ index b90b0f60..6f391940 100644
|
|||||||
if (rc != SEPOL_OK) {
|
if (rc != SEPOL_OK) {
|
||||||
goto exit;
|
goto exit;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
From 6e9400a75c7193ba7e4d5050e3a0e71627d38ce8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Sun, 24 May 2020 17:22:22 +0200
|
||||||
|
Subject: [PATCH 8/8] Allow mismatches of exfat genfscon
|
||||||
|
|
||||||
|
---
|
||||||
|
libsepol/cil/src/cil_post.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/libsepol/cil/src/cil_post.c b/libsepol/cil/src/cil_post.c
|
||||||
|
index 255c9e12..f97c65c1 100644
|
||||||
|
--- a/libsepol/cil/src/cil_post.c
|
||||||
|
+++ b/libsepol/cil/src/cil_post.c
|
||||||
|
@@ -488,6 +488,10 @@ int cil_post_genfscon_context_compare(const void *a, const void *b)
|
||||||
|
*/
|
||||||
|
if(strcmp(a_genfscon->path_str, "/devices/virtual/block/") == 0)
|
||||||
|
bypass = 1;
|
||||||
|
+ if(strcmp(a_genfscon->fs_str, "exfat") == 0 || strcmp(a_genfscon->fs_str, "esdfs") == 0) {
|
||||||
|
+ if(strcmp(a_genfscon->path_str, "/") == 0)
|
||||||
|
+ bypass = 1;
|
||||||
|
+ }
|
||||||
|
if(bypass == 1) {
|
||||||
|
fprintf(stderr, "Received conflicting %s vs %s but ignore\n", a_genfscon->path_str, b_genfscon->path_str);
|
||||||
|
return 0;
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
From ba695ca22d256bb8a27f699c0759162a48999cf7 Mon Sep 17 00:00:00 2001
|
From fd42c051ba56676ce593d5313ae2d72d85133a6a Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Tue, 22 Oct 2019 20:54:25 +0800
|
Date: Tue, 22 Oct 2019 20:54:25 +0800
|
||||||
Subject: [PATCH] GrGLCaps: allow ignoring vendor-supplied texture swizzle flag
|
Subject: [PATCH] GrGLCaps: allow ignoring vendor-supplied texture swizzle flag
|
||||||
@@ -55,5 +55,5 @@ index 4a97e84cf8..aee7a5509e 100644
|
|||||||
bool mipMapLevelAndLodControlSupport() const { return fMipMapLevelAndLodControlSupport; }
|
bool mipMapLevelAndLodControlSupport() const { return fMipMapLevelAndLodControlSupport; }
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 5286da2b7f598de0566d1ad1a5e070bdb5d698d1 Mon Sep 17 00:00:00 2001
|
From 9873f460d3a40ca739e4c069068b32990dc2fff8 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 24 Apr 2018 00:14:28 +0200
|
Date: Tue, 24 Apr 2018 00:14:28 +0200
|
||||||
Subject: [PATCH 01/11] FIH devices: Fix "Earpiece" audio output
|
Subject: [PATCH 01/17] FIH devices: Fix "Earpiece" audio output
|
||||||
|
|
||||||
On some FIH devices (confirmed on Razer, and probably on Aquos SS2),
|
On some FIH devices (confirmed on Razer, and probably on Aquos SS2),
|
||||||
Earpiece is not listed in attachedDevices, and devicePort's profile
|
Earpiece is not listed in attachedDevices, and devicePort's profile
|
||||||
@@ -77,5 +77,5 @@ index 5f820c214..0b561320b 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From ddf773c1e301c5bc37fe156676ad6deb55fb7e8e Mon Sep 17 00:00:00 2001
|
From 09e90d056e41e8ef6d0527e7e34a54053c607b3a Mon Sep 17 00:00:00 2001
|
||||||
From: Alexander Pohl <pohl199885@gmail.com>
|
From: Alexander Pohl <pohl199885@gmail.com>
|
||||||
Date: Fri, 15 Jun 2018 19:58:07 +0200
|
Date: Fri, 15 Jun 2018 19:58:07 +0200
|
||||||
Subject: [PATCH 02/11] Fix WiFi-Display on Huawei devices (EMUI 8.0)
|
Subject: [PATCH 02/17] Fix WiFi-Display on Huawei devices (EMUI 8.0)
|
||||||
|
|
||||||
Huaweis media stack doesn't handle intra-refresh-mode, so skip the error instead.
|
Huaweis media stack doesn't handle intra-refresh-mode, so skip the error instead.
|
||||||
|
|
||||||
@@ -11,10 +11,10 @@ Thanks to Chris Vandomelen for pointing that out.
|
|||||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
|
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
|
||||||
index 3d67c911a..007b84cea 100644
|
index 55e8130e4..e8b493183 100644
|
||||||
--- a/media/libstagefright/ACodec.cpp
|
--- a/media/libstagefright/ACodec.cpp
|
||||||
+++ b/media/libstagefright/ACodec.cpp
|
+++ b/media/libstagefright/ACodec.cpp
|
||||||
@@ -4358,9 +4358,8 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) {
|
@@ -4366,9 +4366,8 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) {
|
||||||
if (msg->findInt32("intra-refresh-mode", &intraRefreshMode)) {
|
if (msg->findInt32("intra-refresh-mode", &intraRefreshMode)) {
|
||||||
err = setCyclicIntraMacroblockRefresh(msg, intraRefreshMode);
|
err = setCyclicIntraMacroblockRefresh(msg, intraRefreshMode);
|
||||||
if (err != OK) {
|
if (err != OK) {
|
||||||
@@ -27,5 +27,5 @@ index 3d67c911a..007b84cea 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 6e5e5dbc804ef1aa686731d588bdb959919de29e Mon Sep 17 00:00:00 2001
|
From 90390678c846d34aae136aa1557643619c524830 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 19 Aug 2018 22:59:06 +0200
|
Date: Sun, 19 Aug 2018 22:59:06 +0200
|
||||||
Subject: [PATCH 03/11] ::Kirin:: Remove lock to prevent self-lock
|
Subject: [PATCH 03/17] Kirin:: Remove lock to prevent self-lock
|
||||||
|
|
||||||
With Huawei Camera HAL, we get the following call order:
|
With Huawei Camera HAL, we get the following call order:
|
||||||
cameraserver CameraService::enumerateProviders (*)
|
cameraserver CameraService::enumerateProviders (*)
|
||||||
@@ -17,10 +17,10 @@ Hence the safe-lock
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
||||||
index 3e6210294..3736a9e24 100644
|
index 95e4e6eb7..077e3b238 100644
|
||||||
--- a/services/camera/libcameraservice/CameraService.cpp
|
--- a/services/camera/libcameraservice/CameraService.cpp
|
||||||
+++ b/services/camera/libcameraservice/CameraService.cpp
|
+++ b/services/camera/libcameraservice/CameraService.cpp
|
||||||
@@ -254,7 +254,7 @@ void CameraService::onNewProviderRegistered() {
|
@@ -271,7 +271,7 @@ bool CameraService::isPublicallyHiddenSecureCamera(const String8& cameraId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CameraService::updateCameraNumAndIds() {
|
void CameraService::updateCameraNumAndIds() {
|
||||||
@@ -30,5 +30,5 @@ index 3e6210294..3736a9e24 100644
|
|||||||
mNormalDeviceIds =
|
mNormalDeviceIds =
|
||||||
mCameraProviderManager->getAPI1CompatibleCameraDeviceIds();
|
mCameraProviderManager->getAPI1CompatibleCameraDeviceIds();
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,20 @@
|
|||||||
From d76a1c23cb4a61bac8e1cdc33bca4201b5c1972f Mon Sep 17 00:00:00 2001
|
From 1fe92753746f4410f5ac97abcef083276940cfee Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 19 Aug 2018 23:05:26 +0200
|
Date: Sun, 19 Aug 2018 23:05:26 +0200
|
||||||
Subject: [PATCH 04/11] We might not have a mFlashlight at this state, but
|
Subject: [PATCH 04/17] We might not have a mFlashlight at this state, but
|
||||||
that's ok
|
that's ok
|
||||||
|
|
||||||
|
Change-Id: I0ae65c0be4931b4e3cbda2d0cc64acc4f5018a73
|
||||||
---
|
---
|
||||||
services/camera/libcameraservice/CameraService.cpp | 2 +-
|
services/camera/libcameraservice/CameraService.cpp | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
||||||
index 3736a9e24..12ab2f47e 100644
|
index 077e3b238..bbfd90a28 100644
|
||||||
--- a/services/camera/libcameraservice/CameraService.cpp
|
--- a/services/camera/libcameraservice/CameraService.cpp
|
||||||
+++ b/services/camera/libcameraservice/CameraService.cpp
|
+++ b/services/camera/libcameraservice/CameraService.cpp
|
||||||
@@ -279,7 +279,7 @@ void CameraService::addStates(const String8 id) {
|
@@ -299,7 +299,7 @@ void CameraService::addStates(const String8 id) {
|
||||||
conflicting));
|
isPublicallyHiddenSecureCamera));
|
||||||
}
|
}
|
||||||
|
|
||||||
- if (mFlashlight->hasFlashUnit(id)) {
|
- if (mFlashlight->hasFlashUnit(id)) {
|
||||||
@@ -22,5 +23,5 @@ index 3736a9e24..12ab2f47e 100644
|
|||||||
mTorchStatusMap.add(id, TorchModeStatus::AVAILABLE_OFF);
|
mTorchStatusMap.add(id, TorchModeStatus::AVAILABLE_OFF);
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From a5bc47c2602ae78b0471e8f55538a4cca083decf Mon Sep 17 00:00:00 2001
|
From 669ad001302e6e6d749ae0f66026c8ce00d259fe Mon Sep 17 00:00:00 2001
|
||||||
From: Artem Borisov <dedsa2002@gmail.com>
|
From: Artem Borisov <dedsa2002@gmail.com>
|
||||||
Date: Tue, 25 Sep 2018 12:39:22 +0300
|
Date: Tue, 25 Sep 2018 12:39:22 +0300
|
||||||
Subject: [PATCH 05/11] CameraService: Support calling addStates in
|
Subject: [PATCH 05/17] CameraService: Support calling addStates in
|
||||||
enumerateProviders
|
enumerateProviders
|
||||||
|
|
||||||
Some pre-P camera HALs trigger onDeviceStatusChange callback during HAL init.
|
Some pre-P camera HALs trigger onDeviceStatusChange callback during HAL init.
|
||||||
@@ -22,10 +22,10 @@ Change-Id: Ife25b9753fdb679ab0c77f385e1b8527551a4711
|
|||||||
1 file changed, 16 insertions(+)
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
||||||
index 12ab2f47e..d208a36a9 100644
|
index bbfd90a28..7046384b3 100644
|
||||||
--- a/services/camera/libcameraservice/CameraService.cpp
|
--- a/services/camera/libcameraservice/CameraService.cpp
|
||||||
+++ b/services/camera/libcameraservice/CameraService.cpp
|
+++ b/services/camera/libcameraservice/CameraService.cpp
|
||||||
@@ -204,6 +204,20 @@ status_t CameraService::enumerateProviders() {
|
@@ -212,6 +212,20 @@ status_t CameraService::enumerateProviders() {
|
||||||
|
|
||||||
for (auto& cameraId : deviceIds) {
|
for (auto& cameraId : deviceIds) {
|
||||||
String8 id8 = String8(cameraId.c_str());
|
String8 id8 = String8(cameraId.c_str());
|
||||||
@@ -46,7 +46,7 @@ index 12ab2f47e..d208a36a9 100644
|
|||||||
if (getCameraState(id8) == nullptr) {
|
if (getCameraState(id8) == nullptr) {
|
||||||
onDeviceStatusChanged(id8, CameraDeviceStatus::PRESENT);
|
onDeviceStatusChanged(id8, CameraDeviceStatus::PRESENT);
|
||||||
}
|
}
|
||||||
@@ -317,8 +331,10 @@ void CameraService::onDeviceStatusChanged(const String8& id,
|
@@ -337,8 +351,10 @@ void CameraService::onDeviceStatusChanged(const String8& id,
|
||||||
ALOGI("%s: Unknown camera ID %s, a new camera is added",
|
ALOGI("%s: Unknown camera ID %s, a new camera is added",
|
||||||
__FUNCTION__, id.string());
|
__FUNCTION__, id.string());
|
||||||
|
|
||||||
@@ -58,5 +58,5 @@ index 12ab2f47e..d208a36a9 100644
|
|||||||
updateStatus(newStatus, id);
|
updateStatus(newStatus, id);
|
||||||
} else {
|
} else {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 04e7317ef801f4124f4a074519d7a077dac14702 Mon Sep 17 00:00:00 2001
|
From 8ad118d1fcfba6e9911aa099f354594787ad264b Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 9 Dec 2018 15:56:59 +0100
|
Date: Sun, 9 Dec 2018 15:56:59 +0100
|
||||||
Subject: [PATCH 06/11] Revert "Set rlimit rtprio for cameraserver"
|
Subject: [PATCH 06/17] Revert "Set rlimit rtprio for cameraserver"
|
||||||
|
|
||||||
This reverts commit 4ae244cab4fe715fc2729e906b7dda3075fbbac3.
|
This reverts commit 4ae244cab4fe715fc2729e906b7dda3075fbbac3.
|
||||||
|
|
||||||
@@ -21,5 +21,5 @@ index a9aae0b15..fea5a1d5c 100644
|
|||||||
writepid /dev/cpuset/camera-daemon/tasks /dev/stune/top-app/tasks
|
writepid /dev/cpuset/camera-daemon/tasks /dev/stune/top-app/tasks
|
||||||
- rlimit rtprio 10 10
|
- rlimit rtprio 10 10
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From bb6f508a514d09fdab79583886f7953dd42bfa0c Mon Sep 17 00:00:00 2001
|
From 293b2fb176c081a4e3db518009864c1a4c4053fd Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Wed, 4 Sep 2019 22:28:56 +0200
|
Date: Wed, 4 Sep 2019 22:28:56 +0200
|
||||||
Subject: [PATCH 07/11] fixup! FIH devices: Fix "Earpiece" audio output
|
Subject: [PATCH 07/17] fixup! FIH devices: Fix "Earpiece" audio output
|
||||||
|
|
||||||
---
|
---
|
||||||
.../audiopolicy/common/managerdefinitions/src/Serializer.cpp | 3 ++-
|
.../audiopolicy/common/managerdefinitions/src/Serializer.cpp | 3 ++-
|
||||||
@@ -29,5 +29,5 @@ index 0b561320b..c8cb54b5f 100644
|
|||||||
status = deserializeCollection<AudioProfileTraits>(cur, &profiles, NULL);
|
status = deserializeCollection<AudioProfileTraits>(cur, &profiles, NULL);
|
||||||
if (status != NO_ERROR) {
|
if (status != NO_ERROR) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 582695245e6ce2bafaf3b11b9d3b69dcf88d0037 Mon Sep 17 00:00:00 2001
|
From 6f4e7e032ca73db15cb01737c24de543780718da Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 5 Aug 2019 17:27:47 +0200
|
Date: Mon, 5 Aug 2019 17:27:47 +0200
|
||||||
Subject: [PATCH 08/11] Fix use-after-free (object on stack)
|
Subject: [PATCH 08/17] Fix use-after-free (object on stack)
|
||||||
|
|
||||||
Change-Id: I9ae666b10873eac4e7a55032071e7b15b0de058a
|
Change-Id: I9ae666b10873eac4e7a55032071e7b15b0de058a
|
||||||
---
|
---
|
||||||
@@ -22,5 +22,5 @@ index c8cb54b5f..9f2bdc4b3 100644
|
|||||||
std::string address = getXmlAttribute(cur, Attributes::address);
|
std::string address = getXmlAttribute(cur, Attributes::address);
|
||||||
if (!address.empty()) {
|
if (!address.empty()) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From c02350cbd42543fdfac9bd61b630182a0da1ecf9 Mon Sep 17 00:00:00 2001
|
From f303633bdac9176d45ca8a9073f2f9850406ebf8 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 5 Aug 2019 18:09:50 +0200
|
Date: Mon, 5 Aug 2019 18:09:50 +0200
|
||||||
Subject: [PATCH 09/11] Fix BT in-call on CAF devices
|
Subject: [PATCH 09/17] Fix BT in-call on CAF devices
|
||||||
|
|
||||||
See https://github.com/phhusson/treble_experimentations/issues/374
|
See https://github.com/phhusson/treble_experimentations/issues/374
|
||||||
|
|
||||||
@@ -125,5 +125,5 @@ index 9f2bdc4b3..9c7e5c49d 100644
|
|||||||
|
|
||||||
for (const xmlNode *children = cur->xmlChildrenNode; children != NULL;
|
for (const xmlNode *children = cur->xmlChildrenNode; children != NULL;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From a71fbad371842877a92190204450b5c6753b3509 Mon Sep 17 00:00:00 2001
|
From 7125c20e64937da5ee8134baae39e2136629b307 Mon Sep 17 00:00:00 2001
|
||||||
From: Vincent Vidal <vincent.vidal@onera.fr>
|
From: Vincent Vidal <vincent.vidal@onera.fr>
|
||||||
Date: Thu, 12 Sep 2019 14:17:14 +0200
|
Date: Thu, 12 Sep 2019 14:17:14 +0200
|
||||||
Subject: [PATCH 10/11] Fix null pointer for unknown audio sources in "Fix BT
|
Subject: [PATCH 10/17] Fix null pointer for unknown audio sources in "Fix BT
|
||||||
in-call on CAF devices"
|
in-call on CAF devices"
|
||||||
|
|
||||||
Some audio sources may not exist on some devices (e.g. Axon 7), leading to a segmentation fault.
|
Some audio sources may not exist on some devices (e.g. Axon 7), leading to a segmentation fault.
|
||||||
@@ -27,5 +27,5 @@ index 9c7e5c49d..8bfdb5b0a 100644
|
|||||||
|
|
||||||
newRoute->setSources(sources);
|
newRoute->setSources(sources);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
From 7ad31b03ab941886ac1e930a1f1dd1232461cd18 Mon Sep 17 00:00:00 2001
|
From 53e025a518a6a662f533e2e08b50ebaed223957c Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 1 Oct 2019 13:35:49 +0200
|
Date: Tue, 1 Oct 2019 13:35:49 +0200
|
||||||
Subject: [PATCH] Add (partial, cam id is hardcoded) support for Asus ZF6 motor
|
Subject: [PATCH 11/17] Add (partial, cam id is hardcoded) support for Asus ZF6
|
||||||
camera
|
motor camera
|
||||||
|
|
||||||
Change-Id: Iea6e1370780a1d16f728748d1d948d092532d8fe
|
Change-Id: Iea6e1370780a1d16f728748d1d948d092532d8fe
|
||||||
---
|
---
|
||||||
@@ -11,7 +11,7 @@ Change-Id: Iea6e1370780a1d16f728748d1d948d092532d8fe
|
|||||||
2 files changed, 29 insertions(+)
|
2 files changed, 29 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
||||||
index 62cbc7ddb..ddddfda97 100644
|
index 7046384b3..100db9e3c 100644
|
||||||
--- a/services/camera/libcameraservice/CameraService.cpp
|
--- a/services/camera/libcameraservice/CameraService.cpp
|
||||||
+++ b/services/camera/libcameraservice/CameraService.cpp
|
+++ b/services/camera/libcameraservice/CameraService.cpp
|
||||||
@@ -25,6 +25,7 @@
|
@@ -25,6 +25,7 @@
|
||||||
@@ -22,7 +22,7 @@ index 62cbc7ddb..ddddfda97 100644
|
|||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
|
||||||
@@ -131,6 +132,7 @@ Mutex CameraService::sProxyMutex;
|
@@ -133,6 +134,7 @@ Mutex CameraService::sProxyMutex;
|
||||||
sp<hardware::ICameraServiceProxy> CameraService::sCameraServiceProxy;
|
sp<hardware::ICameraServiceProxy> CameraService::sCameraServiceProxy;
|
||||||
|
|
||||||
CameraService::CameraService() :
|
CameraService::CameraService() :
|
||||||
@@ -30,7 +30,7 @@ index 62cbc7ddb..ddddfda97 100644
|
|||||||
mEventLog(DEFAULT_EVENT_LOG_LENGTH),
|
mEventLog(DEFAULT_EVENT_LOG_LENGTH),
|
||||||
mNumberOfCameras(0),
|
mNumberOfCameras(0),
|
||||||
mSoundRef(0), mInitialized(false) {
|
mSoundRef(0), mInitialized(false) {
|
||||||
@@ -1549,6 +1551,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
|
@@ -1579,6 +1581,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
|
||||||
mServiceLock.lock();
|
mServiceLock.lock();
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, add client to active clients list
|
// Otherwise, add client to active clients list
|
||||||
@@ -38,7 +38,7 @@ index 62cbc7ddb..ddddfda97 100644
|
|||||||
finishConnectLocked(client, partial);
|
finishConnectLocked(client, partial);
|
||||||
|
|
||||||
sp<ICameraMotor> cameraMotor = ICameraMotor::getService();
|
sp<ICameraMotor> cameraMotor = ICameraMotor::getService();
|
||||||
@@ -1564,6 +1567,27 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
|
@@ -1594,6 +1597,27 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ index 62cbc7ddb..ddddfda97 100644
|
|||||||
Status CameraService::setTorchMode(const String16& cameraId, bool enabled,
|
Status CameraService::setTorchMode(const String16& cameraId, bool enabled,
|
||||||
const sp<IBinder>& clientBinder) {
|
const sp<IBinder>& clientBinder) {
|
||||||
Mutex::Autolock lock(mServiceLock);
|
Mutex::Autolock lock(mServiceLock);
|
||||||
@@ -2427,6 +2451,8 @@ binder::Status CameraService::BasicClient::disconnect() {
|
@@ -2466,6 +2490,8 @@ binder::Status CameraService::BasicClient::disconnect() {
|
||||||
cameraMotor->onDisconnect(mCameraIdStr.string());
|
cameraMotor->onDisconnect(mCameraIdStr.string());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ index 62cbc7ddb..ddddfda97 100644
|
|||||||
sCameraService->logDisconnected(mCameraIdStr, mClientPid, String8(mClientPackageName));
|
sCameraService->logDisconnected(mCameraIdStr, mClientPid, String8(mClientPackageName));
|
||||||
sCameraService->mCameraProviderManager->removeRef(CameraProviderManager::DeviceMode::CAMERA,
|
sCameraService->mCameraProviderManager->removeRef(CameraProviderManager::DeviceMode::CAMERA,
|
||||||
diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h
|
diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h
|
||||||
index 065157dad..6d22da619 100644
|
index bcaca9ffc..2607bc257 100644
|
||||||
--- a/services/camera/libcameraservice/CameraService.h
|
--- a/services/camera/libcameraservice/CameraService.h
|
||||||
+++ b/services/camera/libcameraservice/CameraService.h
|
+++ b/services/camera/libcameraservice/CameraService.h
|
||||||
@@ -182,6 +182,9 @@ public:
|
@@ -182,6 +182,9 @@ public:
|
||||||
@@ -90,5 +90,5 @@ index 065157dad..6d22da619 100644
|
|||||||
// Client functionality
|
// Client functionality
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From d3828e0c23e79717b3b47ae29980be0b4726dc89 Mon Sep 17 00:00:00 2001
|
From 922e144d1ceba361f0a92372e3fda5161249fc74 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 3 Dec 2019 14:04:17 +0100
|
Date: Tue, 3 Dec 2019 14:04:17 +0100
|
||||||
Subject: [PATCH 12/12] Fix for some Huawei camera (that's not ideal because it
|
Subject: [PATCH 12/17] Fix for some Huawei camera (that's not ideal because it
|
||||||
is a revert, it needs to be further investigated and cleaned)
|
is a revert, it needs to be further investigated and cleaned)
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,7 +9,7 @@ Subject: [PATCH 12/12] Fix for some Huawei camera (that's not ideal because it
|
|||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
|
||||||
index ca0231c9e..9bb5db067 100644
|
index 100db9e3c..6a68a40b9 100644
|
||||||
--- a/services/camera/libcameraservice/CameraService.cpp
|
--- a/services/camera/libcameraservice/CameraService.cpp
|
||||||
+++ b/services/camera/libcameraservice/CameraService.cpp
|
+++ b/services/camera/libcameraservice/CameraService.cpp
|
||||||
@@ -16,7 +16,7 @@
|
@@ -16,7 +16,7 @@
|
||||||
@@ -21,7 +21,7 @@ index ca0231c9e..9bb5db067 100644
|
|||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <climits>
|
#include <climits>
|
||||||
@@ -223,9 +223,9 @@ status_t CameraService::enumerateProviders() {
|
@@ -228,9 +228,9 @@ status_t CameraService::enumerateProviders() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,5 +34,5 @@ index ca0231c9e..9bb5db067 100644
|
|||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
From 00a797e23bf88d6cd28f32155a02c40b4f9b91cb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Cai <peter@typeblog.net>
|
||||||
|
Date: Thu, 23 Jan 2020 11:13:43 +0800
|
||||||
|
Subject: [PATCH 13/17] audiopolicy: try again with trimmed audio port name if
|
||||||
|
not found
|
||||||
|
|
||||||
|
* In Spreadtrum BSP, some audio routes may contain ports with extra
|
||||||
|
spaces at the beginning and the end, causing audiopolicy to refuse to
|
||||||
|
load and leading to broken audio.
|
||||||
|
|
||||||
|
* Fix this by retrying with trimmed port name when not found. Do not
|
||||||
|
use trimmed name all the time because a white space is a valid
|
||||||
|
character in port name, and we cannot be sure nobody is using it for
|
||||||
|
legitimite purposes.
|
||||||
|
---
|
||||||
|
.../managerdefinitions/src/Serializer.cpp | 18 ++++++++++++++++--
|
||||||
|
1 file changed, 16 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
|
||||||
|
index 8bfdb5b0a..4bdb082ba 100644
|
||||||
|
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
|
||||||
|
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
|
||||||
|
@@ -550,6 +550,17 @@ Return<DevicePortTraits::Element> DevicePortTraits::deserialize(const xmlNode *c
|
||||||
|
return deviceDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
+char* trim(char * s) {
|
||||||
|
+ int l = strlen(s);
|
||||||
|
+
|
||||||
|
+ if (l > 0) {
|
||||||
|
+ while (isspace(s[l - 1])) --l;
|
||||||
|
+ while (*s && isspace(*s)) ++s, --l;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return strndup(s, l);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
Return<RouteTraits::Element> RouteTraits::deserialize(const xmlNode *cur, PtrSerializingCtx ctx)
|
||||||
|
{
|
||||||
|
std::string type = getXmlAttribute(cur, Attributes::type);
|
||||||
|
@@ -590,8 +601,11 @@ Return<RouteTraits::Element> RouteTraits::deserialize(const xmlNode *cur, PtrSer
|
||||||
|
if (strlen(devTag) != 0) {
|
||||||
|
sp<AudioPort> source = ctx->findPortByTagName(String8(devTag));
|
||||||
|
if (source == NULL) {
|
||||||
|
- ALOGE("%s: no source found with name=%s", __func__, devTag);
|
||||||
|
- return Status::fromStatusT(BAD_VALUE);
|
||||||
|
+ source = ctx->findPortByTagName(String8(trim(devTag)));
|
||||||
|
+ if (source == NULL) {
|
||||||
|
+ ALOGE("%s: no source found with name=%s", __func__, devTag);
|
||||||
|
+ return Status::fromStatusT(BAD_VALUE);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
sources.add(source);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
From e17862fc2b519ccddf7d578968a89f35ceaacfb1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Mon, 13 Apr 2020 21:01:16 +0200
|
||||||
|
Subject: [PATCH 14/17] There are three SCO devices. Fallback from one to the
|
||||||
|
others if needed
|
||||||
|
|
||||||
|
---
|
||||||
|
.../managerdefinitions/src/HwModule.cpp | 21 +++++++++++++++++++
|
||||||
|
1 file changed, 21 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
|
||||||
|
index 1f9b725a2..ecba6023d 100644
|
||||||
|
--- a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
|
||||||
|
+++ b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
|
||||||
|
@@ -294,6 +294,27 @@ sp <HwModule> HwModuleCollection::getModuleForDeviceTypes(audio_devices_t type,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ //We didn't find one? Ok but all SCOs are equivalent surely?
|
||||||
|
+ if(type == AUDIO_DEVICE_OUT_BLUETOOTH_SCO ||
|
||||||
|
+ type == AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET ||
|
||||||
|
+ type == AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT) {
|
||||||
|
+ ALOGE("Fallback SCO");
|
||||||
|
+ if(type != AUDIO_DEVICE_OUT_BLUETOOTH_SCO) {
|
||||||
|
+ auto ret = getModuleForDeviceTypes(AUDIO_DEVICE_OUT_BLUETOOTH_SCO, encodedFormat);
|
||||||
|
+ ALOGE("Fallback SCO simple? %s", (ret != nullptr) ? "yes" : "no");
|
||||||
|
+ if(ret != nullptr) return ret;
|
||||||
|
+ }
|
||||||
|
+ if(type != AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) {
|
||||||
|
+ auto ret = getModuleForDeviceTypes(AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET, encodedFormat);
|
||||||
|
+ ALOGE("Fallback SCO headset? %s", (ret != nullptr) ? "yes" : "no");
|
||||||
|
+ if(ret != nullptr) return ret;
|
||||||
|
+ }
|
||||||
|
+ if(type != AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT) {
|
||||||
|
+ auto ret = getModuleForDeviceTypes(AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT, encodedFormat);
|
||||||
|
+ ALOGE("Fallback SCO carkit? %s", (ret != nullptr) ? "yes" : "no");
|
||||||
|
+ if(ret != nullptr) return ret;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
From 9fef86bc540a7fa95432d5bc8da3fc18b07ae843 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Thu, 14 May 2020 19:54:55 +0200
|
||||||
|
Subject: [PATCH 15/17] Add persist.sys.phh.samsung.camera_ids property to
|
||||||
|
access hidden Samsung cameras
|
||||||
|
|
||||||
|
---
|
||||||
|
services/camera/libcameraservice/Android.bp | 1 +
|
||||||
|
.../common/CameraProviderManager.cpp | 13 +++++++++++--
|
||||||
|
2 files changed, 12 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp
|
||||||
|
index c4bc0f1a9..d6a4d6132 100644
|
||||||
|
--- a/services/camera/libcameraservice/Android.bp
|
||||||
|
+++ b/services/camera/libcameraservice/Android.bp
|
||||||
|
@@ -108,6 +108,7 @@ cc_library_shared {
|
||||||
|
"android.hardware.camera.device@3.4",
|
||||||
|
"android.hardware.camera.device@3.5",
|
||||||
|
"vendor.lineage.camera.motor@1.0",
|
||||||
|
+ "vendor.samsung.hardware.camera.provider@3.0",
|
||||||
|
],
|
||||||
|
|
||||||
|
export_shared_lib_headers: [
|
||||||
|
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
|
||||||
|
index fdb565750..9c1c70c84 100644
|
||||||
|
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
|
||||||
|
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
|
||||||
|
@@ -21,6 +21,7 @@
|
||||||
|
#include "CameraProviderManager.h"
|
||||||
|
|
||||||
|
#include <android/hardware/camera/device/3.5/ICameraDevice.h>
|
||||||
|
+#include <vendor/samsung/hardware/camera/provider/3.0/ISehCameraProvider.h>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <chrono>
|
||||||
|
@@ -1225,6 +1226,9 @@ status_t CameraProviderManager::ProviderInfo::initialize(
|
||||||
|
mMinorVersion = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ auto samsungCast = vendor::samsung::hardware::camera::provider::V3_0::ISehCameraProvider::castFrom(interface);
|
||||||
|
+ auto samsungProvider = samsungCast.isOk() ? static_cast<sp<vendor::samsung::hardware::camera::provider::V3_0::ISehCameraProvider>>(samsungCast) : nullptr;
|
||||||
|
+
|
||||||
|
// cameraDeviceStatusChange callbacks may be called (and causing new devices added)
|
||||||
|
// before setCallback returns
|
||||||
|
hardware::Return<Status> status = interface->setCallback(this);
|
||||||
|
@@ -1269,7 +1273,7 @@ status_t CameraProviderManager::ProviderInfo::initialize(
|
||||||
|
|
||||||
|
// Get initial list of camera devices, if any
|
||||||
|
std::vector<std::string> devices;
|
||||||
|
- hardware::Return<void> ret = interface->getCameraIdList([&status, this, &devices](
|
||||||
|
+ auto cb = [&status, this, &devices](
|
||||||
|
Status idStatus,
|
||||||
|
const hardware::hidl_vec<hardware::hidl_string>& cameraDeviceNames) {
|
||||||
|
status = idStatus;
|
||||||
|
@@ -1286,7 +1290,12 @@ status_t CameraProviderManager::ProviderInfo::initialize(
|
||||||
|
mProviderPublicCameraIds.push_back(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- } });
|
||||||
|
+ } };
|
||||||
|
+ hardware::Return<void> ret;
|
||||||
|
+ if(samsungProvider != nullptr && property_get_bool("persist.sys.phh.samsung.camera_ids", false))
|
||||||
|
+ ret = samsungProvider->sehGetCameraIdList(cb);
|
||||||
|
+ else
|
||||||
|
+ ret = interface->getCameraIdList(cb);
|
||||||
|
if (!ret.isOk()) {
|
||||||
|
ALOGE("%s: Transaction error in getting camera ID list from provider '%s': %s",
|
||||||
|
__FUNCTION__, mProviderName.c_str(), linked.description().c_str());
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
From b629b586c808f6e8e3415b578f10fe02b63b1631 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Tue, 19 May 2020 14:01:14 +0200
|
||||||
|
Subject: [PATCH 16/17] Add a property to force camera timestamp source
|
||||||
|
|
||||||
|
Some devices wrongly report their timesource
|
||||||
|
Camera's timesource can either be CLOCK_MONOTONIC, or CLOCK_BOOTTIME
|
||||||
|
The former doesn't increment in sleep, while the later does.
|
||||||
|
There is a camera HAL property for that, though some devices don't
|
||||||
|
report it properly.
|
||||||
|
|
||||||
|
This issue happens on Xiaomi Redmi 7A, it needs to force the value to 1
|
||||||
|
|
||||||
|
Add a property persist.sys.phh.camera.force_timestampsource to force
|
||||||
|
timestamp source.
|
||||||
|
---
|
||||||
|
.../libcameraservice/device3/Camera3Device.cpp | 12 ++++++++++--
|
||||||
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
|
||||||
|
index 93e18cfee..9cc44f1ec 100644
|
||||||
|
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
|
||||||
|
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
|
||||||
|
@@ -299,8 +299,16 @@ status_t Camera3Device::initializeCommonLocked() {
|
||||||
|
// Measure the clock domain offset between camera and video/hw_composer
|
||||||
|
camera_metadata_entry timestampSource =
|
||||||
|
mDeviceInfo.find(ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE);
|
||||||
|
- if (timestampSource.count > 0 && timestampSource.data.u8[0] ==
|
||||||
|
- ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME) {
|
||||||
|
+ int timestampSourceValue = 0;
|
||||||
|
+ if ((timestampSource.count > 0 && timestampSource.data.u8[0] ==
|
||||||
|
+ ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME)) {
|
||||||
|
+ timestampSourceValue = 1;
|
||||||
|
+ }
|
||||||
|
+ int forceTimestampSource = property_get_int32("persist.sys.phh.camera.force_timestampsource", -1);
|
||||||
|
+ //Don't override if it's -1, default value
|
||||||
|
+ if(forceTimestampSource == 0) timestampSourceValue = 0;
|
||||||
|
+ if(forceTimestampSource == 1) timestampSourceValue = 1;
|
||||||
|
+ if (timestampSourceValue == 1) {
|
||||||
|
mTimestampOffset = getMonoToBoottimeOffset();
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,325 @@
|
|||||||
|
From 95e61a23a96f0274d222e4ef84ee8583fc36baab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Mon, 25 May 2020 21:26:54 +0200
|
||||||
|
Subject: [PATCH 17/17] Add persist.sys.phh.disable_a2dp_offload property to
|
||||||
|
force a2dp offload
|
||||||
|
|
||||||
|
---
|
||||||
|
media/libstagefright/ACodec.cpp | 20 +-
|
||||||
|
.../managerdefinitions/src/Serializer.cpp | 180 +++++++++++++++++-
|
||||||
|
.../managerdefault/AudioPolicyManager.cpp | 3 +
|
||||||
|
3 files changed, 197 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
|
||||||
|
index e8b493183..310740ab5 100644
|
||||||
|
--- a/media/libstagefright/ACodec.cpp
|
||||||
|
+++ b/media/libstagefright/ACodec.cpp
|
||||||
|
@@ -1166,6 +1166,9 @@ status_t ACodec::configureOutputBuffersFromNativeWindow(
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ ALOGE("Window undequeued buffers is %d\n", *minUndequeuedBuffers);
|
||||||
|
+ ALOGE("Consumerrequested %d\n", def.nBufferCountMin);
|
||||||
|
+
|
||||||
|
// FIXME: assume that surface is controlled by app (native window
|
||||||
|
// returns the number for the case when surface is not controlled by app)
|
||||||
|
// FIXME2: This means that minUndeqeueudBufs can be 1 larger than reported
|
||||||
|
@@ -1178,22 +1181,29 @@ status_t ACodec::configureOutputBuffersFromNativeWindow(
|
||||||
|
// 2. try to allocate two (2) additional buffers to reduce starvation from
|
||||||
|
// the consumer
|
||||||
|
// plus an extra buffer to account for incorrect minUndequeuedBufs
|
||||||
|
- for (OMX_U32 extraBuffers = 2 + 1; /* condition inside loop */; extraBuffers--) {
|
||||||
|
- OMX_U32 newBufferCount =
|
||||||
|
- def.nBufferCountMin + *minUndequeuedBuffers + extraBuffers;
|
||||||
|
+ for (int extraBuffers = 2 + 1; /* condition inside loop */; extraBuffers--) {
|
||||||
|
+ int a = def.nBufferCountMin;
|
||||||
|
+ int b = *minUndequeuedBuffers;
|
||||||
|
+ int c = extraBuffers;
|
||||||
|
+ int newBufferCount = a+b+c;
|
||||||
|
def.nBufferCountActual = newBufferCount;
|
||||||
|
err = mOMXNode->setParameter(
|
||||||
|
OMX_IndexParamPortDefinition, &def, sizeof(def));
|
||||||
|
|
||||||
|
if (err == OK) {
|
||||||
|
- *minUndequeuedBuffers += extraBuffers;
|
||||||
|
+ ALOGE("Managed to allocate %d buffers (%d extra)\n", newBufferCount, extraBuffers);
|
||||||
|
+ if(extraBuffers > 0) {
|
||||||
|
+ *minUndequeuedBuffers += extraBuffers;
|
||||||
|
+ } else {
|
||||||
|
+ *minUndequeuedBuffers -= -extraBuffers;
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ALOGW("[%s] setting nBufferCountActual to %u failed: %d",
|
||||||
|
mComponentName.c_str(), newBufferCount, err);
|
||||||
|
/* exit condition */
|
||||||
|
- if (extraBuffers == 0) {
|
||||||
|
+ if (extraBuffers == -2 || newBufferCount == 1) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
|
||||||
|
index 4bdb082ba..d144f8991 100644
|
||||||
|
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
|
||||||
|
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
|
||||||
|
@@ -29,6 +29,7 @@
|
||||||
|
#include <utils/StrongPointer.h>
|
||||||
|
#include <utils/Errors.h>
|
||||||
|
#include <utils/RefBase.h>
|
||||||
|
+#include <cutils/properties.h>
|
||||||
|
#include "Serializer.h"
|
||||||
|
#include "TypeConverter.h"
|
||||||
|
|
||||||
|
@@ -36,6 +37,8 @@ namespace android {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
+static bool forceDisableA2dpOffload = false;
|
||||||
|
+
|
||||||
|
// TODO(mnaganov): Consider finding an alternative for using HIDL code.
|
||||||
|
using hardware::Return;
|
||||||
|
using hardware::Status;
|
||||||
|
@@ -316,7 +319,7 @@ status_t deserializeCollection(const xmlNode *cur,
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
- return BAD_VALUE;
|
||||||
|
+ ALOGE("Ignoring...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -732,12 +735,34 @@ Return<ModuleTraits::Element> ModuleTraits::deserialize(const xmlNode *cur, PtrS
|
||||||
|
|
||||||
|
Element module = new HwModule(name.c_str(), versionMajor, versionMinor);
|
||||||
|
|
||||||
|
+ bool isA2dpModule = strcmp(name.c_str(), "a2dp") == 0;
|
||||||
|
+ bool isPrimaryModule = strcmp(name.c_str(), "primary") == 0;
|
||||||
|
+
|
||||||
|
// Deserialize childrens: Audio Mix Port, Audio Device Ports (Source/Sink), Audio Routes
|
||||||
|
MixPortTraits::Collection mixPorts;
|
||||||
|
status_t status = deserializeCollection<MixPortTraits>(cur, &mixPorts, NULL);
|
||||||
|
if (status != NO_ERROR) {
|
||||||
|
return Status::fromStatusT(status);
|
||||||
|
}
|
||||||
|
+ if(forceDisableA2dpOffload && isA2dpModule) {
|
||||||
|
+ for(const auto& mixPort: mixPorts) {
|
||||||
|
+ ALOGE("Disable a2dp offload...? %s", mixPort->getTagName().c_str());
|
||||||
|
+ //"a2dp" sw module already has a2dp out
|
||||||
|
+ if(mixPort->getTagName() == String8("a2dp output")) {
|
||||||
|
+ forceDisableA2dpOffload = false;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ if(forceDisableA2dpOffload && isA2dpModule) {
|
||||||
|
+ //Add
|
||||||
|
+ //<mixPort name="a2dp output" role="source"/>
|
||||||
|
+ auto mixPort = new IOProfile(String8("a2dp output"), AUDIO_PORT_ROLE_SOURCE);
|
||||||
|
+ AudioProfileTraits::Collection profiles;
|
||||||
|
+ profiles.add(AudioProfile::createFullDynamic());
|
||||||
|
+ mixPort->setAudioProfiles(profiles);
|
||||||
|
+ mixPorts.push_back(mixPort);
|
||||||
|
+ }
|
||||||
|
module->setProfiles(mixPorts);
|
||||||
|
|
||||||
|
DevicePortTraits::Collection devicePorts;
|
||||||
|
@@ -745,6 +770,89 @@ Return<ModuleTraits::Element> ModuleTraits::deserialize(const xmlNode *cur, PtrS
|
||||||
|
if (status != NO_ERROR) {
|
||||||
|
return Status::fromStatusT(status);
|
||||||
|
}
|
||||||
|
+ Vector<String8> a2dpOuts;
|
||||||
|
+ a2dpOuts.push_back(String8("BT A2DP Out"));
|
||||||
|
+ a2dpOuts.push_back(String8("BT A2DP Headphones"));
|
||||||
|
+ a2dpOuts.push_back(String8("BT A2DP Speaker"));
|
||||||
|
+ if(forceDisableA2dpOffload) {
|
||||||
|
+ if(isA2dpModule) {
|
||||||
|
+ //<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink" address="lhdc_a2dp">
|
||||||
|
+ // <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
+ // samplingRates="44100,48000,96000"
|
||||||
|
+ // channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
+ //</devicePort>
|
||||||
|
+ if(true) {
|
||||||
|
+ FormatVector formats;
|
||||||
|
+ auto devicePortOut = new DeviceDescriptor(AUDIO_DEVICE_OUT_BLUETOOTH_A2DP, formats, String8(strdup("BT A2DP Out")));
|
||||||
|
+ AudioProfileTraits::Collection profiles;
|
||||||
|
+ ChannelsVector channels;
|
||||||
|
+ SampleRateVector sampleRates;
|
||||||
|
+ channels.add(AUDIO_CHANNEL_OUT_STEREO);
|
||||||
|
+ sampleRates.add(44100);
|
||||||
|
+ sampleRates.add(48000);
|
||||||
|
+ sampleRates.add(96000);
|
||||||
|
+ auto profile = new AudioProfile(AUDIO_FORMAT_PCM_16_BIT, channels, sampleRates);
|
||||||
|
+ profiles.add(profile);
|
||||||
|
+ devicePortOut->setAudioProfiles(profiles);
|
||||||
|
+ devicePortOut->setAddress(String8("lhdc_a2dp"));
|
||||||
|
+ devicePorts.add(devicePortOut);
|
||||||
|
+ }
|
||||||
|
+ //<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink" address="lhdc_a2dp">
|
||||||
|
+ // <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
+ // samplingRates="44100,48000,96000"
|
||||||
|
+ // channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
+ //</devicePort>
|
||||||
|
+ if(true) {
|
||||||
|
+ FormatVector formats;
|
||||||
|
+ auto devicePortOut = new DeviceDescriptor(AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES, formats, String8(strdup("BT A2DP Headphones")));
|
||||||
|
+ AudioProfileTraits::Collection profiles;
|
||||||
|
+ ChannelsVector channels;
|
||||||
|
+ SampleRateVector sampleRates;
|
||||||
|
+ channels.add(AUDIO_CHANNEL_OUT_STEREO);
|
||||||
|
+ sampleRates.add(44100);
|
||||||
|
+ sampleRates.add(48000);
|
||||||
|
+ sampleRates.add(96000);
|
||||||
|
+ auto profile = new AudioProfile(AUDIO_FORMAT_PCM_16_BIT, channels, sampleRates);
|
||||||
|
+ profiles.add(profile);
|
||||||
|
+ devicePortOut->setAudioProfiles(profiles);
|
||||||
|
+ devicePortOut->setAddress(String8("lhdc_a2dp"));
|
||||||
|
+ devicePorts.add(devicePortOut);
|
||||||
|
+ }
|
||||||
|
+ //<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink" address="lhdc_a2dp">
|
||||||
|
+ // <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
+ // samplingRates="44100,48000,96000"
|
||||||
|
+ // channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
+ //</devicePort>
|
||||||
|
+ if(true) {
|
||||||
|
+ FormatVector formats;
|
||||||
|
+ auto devicePortOut = new DeviceDescriptor(AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER, formats, String8(strdup("BT A2DP Speaker")));
|
||||||
|
+ AudioProfileTraits::Collection profiles;
|
||||||
|
+ ChannelsVector channels;
|
||||||
|
+ SampleRateVector sampleRates;
|
||||||
|
+ channels.add(AUDIO_CHANNEL_OUT_STEREO);
|
||||||
|
+ sampleRates.add(44100);
|
||||||
|
+ sampleRates.add(48000);
|
||||||
|
+ sampleRates.add(96000);
|
||||||
|
+ auto profile = new AudioProfile(AUDIO_FORMAT_PCM_16_BIT, channels, sampleRates);
|
||||||
|
+ profiles.add(profile);
|
||||||
|
+ devicePortOut->setAudioProfiles(profiles);
|
||||||
|
+ devicePortOut->setAddress(String8("lhdc_a2dp"));
|
||||||
|
+ devicePorts.add(devicePortOut);
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+ } else if(isPrimaryModule) {
|
||||||
|
+ for(const auto& out: a2dpOuts) {
|
||||||
|
+ auto iterA = std::find_if(devicePorts.begin(), devicePorts.end(), [out](const auto port) {
|
||||||
|
+ if(port->getTagName() == out) return true;
|
||||||
|
+ return false;
|
||||||
|
+ });
|
||||||
|
+ if(iterA != devicePorts.end()) {
|
||||||
|
+ ALOGE("Erasing device port %s", (*iterA)->getTagName().c_str());
|
||||||
|
+ devicePorts.erase(iterA);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
module->setDeclaredDevices(devicePorts);
|
||||||
|
|
||||||
|
RouteTraits::Collection routes;
|
||||||
|
@@ -752,7 +860,76 @@ Return<ModuleTraits::Element> ModuleTraits::deserialize(const xmlNode *cur, PtrS
|
||||||
|
if (status != NO_ERROR) {
|
||||||
|
return Status::fromStatusT(status);
|
||||||
|
}
|
||||||
|
+ if(forceDisableA2dpOffload) {
|
||||||
|
+ if(strcmp(name.c_str(), "primary") == 0) {
|
||||||
|
+ for(const auto& out: a2dpOuts) {
|
||||||
|
+ auto iterA = std::find_if(routes.begin(), routes.end(), [out](const auto route) {
|
||||||
|
+ if(route->getType() != AUDIO_ROUTE_MIX)
|
||||||
|
+ return false;
|
||||||
|
+ auto sink = route->getSink();
|
||||||
|
+ if(sink->getTagName() == out) {
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+ return false;
|
||||||
|
+ });
|
||||||
|
+ if(iterA != routes.end()) {
|
||||||
|
+ auto sink = (*iterA)->getSink()->getTagName();
|
||||||
|
+ ALOGE("Erasing route %s", sink.c_str());
|
||||||
|
+ routes.erase(iterA);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ } else if(isA2dpModule) {
|
||||||
|
+ //<route type="mix" sink="BT A2DP Out"
|
||||||
|
+ // sources="a2dp output"/>
|
||||||
|
+ if(true) {
|
||||||
|
+ auto newRoute = new AudioRoute(AUDIO_ROUTE_MIX);
|
||||||
|
+ auto sink = module->findPortByTagName(String8("BT A2DP Out"));
|
||||||
|
+ auto source = module->findPortByTagName(String8("a2dp output"));
|
||||||
|
+ newRoute->setSink(sink);
|
||||||
|
+ AudioPortVector sources;
|
||||||
|
+ sources.add(source);
|
||||||
|
+
|
||||||
|
+ sink->addRoute(newRoute);
|
||||||
|
+ source->addRoute(newRoute);
|
||||||
|
+ newRoute->setSources(sources);
|
||||||
|
+
|
||||||
|
+ routes.add(newRoute);
|
||||||
|
+ }
|
||||||
|
+ //<route type="mix" sink="BT A2DP Headphones"
|
||||||
|
+ // sources="a2dp output"/>
|
||||||
|
+ if(true) {
|
||||||
|
+ auto newRoute = new AudioRoute(AUDIO_ROUTE_MIX);
|
||||||
|
+ auto sink = module->findPortByTagName(String8("BT A2DP Headphones"));
|
||||||
|
+ auto source = module->findPortByTagName(String8("a2dp output"));
|
||||||
|
+ newRoute->setSink(sink);
|
||||||
|
+ AudioPortVector sources;
|
||||||
|
+ sources.add(source);
|
||||||
|
+
|
||||||
|
+ sink->addRoute(newRoute);
|
||||||
|
+ source->addRoute(newRoute);
|
||||||
|
+ newRoute->setSources(sources);
|
||||||
|
+ routes.add(newRoute);
|
||||||
|
+ }
|
||||||
|
+ //<route type="mix" sink="BT A2DP Speaker"
|
||||||
|
+ // sources="a2dp output"/>
|
||||||
|
+ if(true) {
|
||||||
|
+ auto newRoute = new AudioRoute(AUDIO_ROUTE_MIX);
|
||||||
|
+ auto sink = module->findPortByTagName(String8("BT A2DP Speaker"));
|
||||||
|
+ auto source = module->findPortByTagName(String8("a2dp output"));
|
||||||
|
+ newRoute->setSink(sink);
|
||||||
|
+ AudioPortVector sources;
|
||||||
|
+ sources.add(source);
|
||||||
|
+
|
||||||
|
+ sink->addRoute(newRoute);
|
||||||
|
+ source->addRoute(newRoute);
|
||||||
|
+ newRoute->setSources(sources);
|
||||||
|
+ routes.add(newRoute);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ ALOGE("Good morning");
|
||||||
|
fixupQualcommBtScoRoute(routes, devicePorts, module.get());
|
||||||
|
+ ALOGE("Good morning2");
|
||||||
|
module->setRoutes(routes);
|
||||||
|
|
||||||
|
for (const xmlNode *children = cur->xmlChildrenNode; children != NULL;
|
||||||
|
@@ -922,6 +1099,7 @@ status_t PolicySerializer::deserialize(const char *configFile, AudioPolicyConfig
|
||||||
|
status_t deserializeAudioPolicyFile(const char *fileName, AudioPolicyConfig *config)
|
||||||
|
{
|
||||||
|
PolicySerializer serializer;
|
||||||
|
+ forceDisableA2dpOffload = property_get_bool("persist.sys.phh.disable_a2dp_offload", false);
|
||||||
|
return serializer.deserialize(fileName, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
||||||
|
index 642559089..c5fad0d6c 100644
|
||||||
|
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
||||||
|
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
||||||
|
@@ -76,6 +76,8 @@ static const std::vector<audio_channel_mask_t> surroundChannelMasksOrder = {{
|
||||||
|
AUDIO_CHANNEL_OUT_2POINT1POINT2, AUDIO_CHANNEL_OUT_2POINT0POINT2,
|
||||||
|
AUDIO_CHANNEL_OUT_5POINT1, AUDIO_CHANNEL_OUT_STEREO }};
|
||||||
|
|
||||||
|
+static bool forceDisableA2dpOffload = false;
|
||||||
|
+
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// AudioPolicyInterface implementation
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -4256,6 +4258,7 @@ static status_t deserializeAudioPolicyXmlConfig(AudioPolicyConfig &config) {
|
||||||
|
} else if (property_get_bool("persist.bluetooth.bluetooth_audio_hal.disabled", false)) {
|
||||||
|
fileNames.push_back(AUDIO_POLICY_BLUETOOTH_LEGACY_HAL_XML_CONFIG_FILE_NAME);
|
||||||
|
}
|
||||||
|
+ forceDisableA2dpOffload = property_get_bool("persist.sys.phh.disable_a2dp_offload", false);
|
||||||
|
fileNames.push_back(AUDIO_POLICY_XML_CONFIG_FILE_NAME);
|
||||||
|
|
||||||
|
for (const char* fileName : fileNames) {
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 9f8c77fea17968dd20e76b83b28f2fce2630a087 Mon Sep 17 00:00:00 2001
|
From 005da321c7023c10bb9eb637b9bde2c9bff065d1 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sat, 24 Mar 2018 08:01:48 +0100
|
Date: Sat, 24 Mar 2018 08:01:48 +0100
|
||||||
Subject: [PATCH 01/36] Fix backlight control on Galaxy S9(+)
|
Subject: [PATCH 01/58] Fix backlight control on Galaxy S9(+)
|
||||||
|
|
||||||
Change-Id: I1fbbb47939c377597ef8ad6b88b2acea5f4acaa6
|
Change-Id: I1fbbb47939c377597ef8ad6b88b2acea5f4acaa6
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Change-Id: I1fbbb47939c377597ef8ad6b88b2acea5f4acaa6
|
|||||||
1 file changed, 13 insertions(+), 4 deletions(-)
|
1 file changed, 13 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index ac906bb23d3..e23e2cd3c4d 100644
|
index 0a308846181..347543584e4 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -21,6 +21,7 @@ import android.os.Handler;
|
@@ -22,6 +22,7 @@ import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
@@ -20,7 +20,7 @@ index ac906bb23d3..e23e2cd3c4d 100644
|
|||||||
import android.os.Trace;
|
import android.os.Trace;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
@@ -71,6 +72,7 @@ public class LightsService extends SystemService {
|
@@ -72,6 +73,7 @@ public class LightsService extends SystemService {
|
||||||
": brightness=0x" + Integer.toHexString(brightness));
|
": brightness=0x" + Integer.toHexString(brightness));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -28,7 +28,7 @@ index ac906bb23d3..e23e2cd3c4d 100644
|
|||||||
// Ideally, we'd like to set the brightness mode through the SF/HWC as well, but
|
// Ideally, we'd like to set the brightness mode through the SF/HWC as well, but
|
||||||
// right now we just fall back to the old path through Lights brightessMode is
|
// right now we just fall back to the old path through Lights brightessMode is
|
||||||
// anything but USER or the device shouldBeInLowPersistenceMode().
|
// anything but USER or the device shouldBeInLowPersistenceMode().
|
||||||
@@ -86,11 +88,18 @@ public class LightsService extends SystemService {
|
@@ -88,11 +90,18 @@ public class LightsService extends SystemService {
|
||||||
}
|
}
|
||||||
SurfaceControl.setDisplayBrightness(mDisplayToken,
|
SurfaceControl.setDisplayBrightness(mDisplayToken,
|
||||||
(float) brightness / mSurfaceControlMaximumBrightness);
|
(float) brightness / mSurfaceControlMaximumBrightness);
|
||||||
@@ -52,5 +52,5 @@ index ac906bb23d3..e23e2cd3c4d 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From ae073ba9abbd86e82d06261ad260ea27fbc04f14 Mon Sep 17 00:00:00 2001
|
From 318cda922fc2b2ed25519fc92bb58da4dc349db6 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 28 Nov 2017 18:28:04 +0100
|
Date: Tue, 28 Nov 2017 18:28:04 +0100
|
||||||
Subject: [PATCH] Relax requirement for visible flag to sdcards
|
Subject: [PATCH 02/58] Relax requirement for visible flag to sdcards
|
||||||
|
|
||||||
The vast majority of sdcard readers are stable enough to be declared by
|
The vast majority of sdcard readers are stable enough to be declared by
|
||||||
the API. (I see no counter-example)
|
the API. (I see no counter-example)
|
||||||
@@ -13,10 +13,10 @@ Change-Id: Ia616671c03562d1eadaff5531a5c708a62d7ad3a
|
|||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
|
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
|
||||||
index 72f40cc0351..20ffd687e89 100644
|
index 263efacb097..39a60e1778f 100644
|
||||||
--- a/services/core/java/com/android/server/StorageManagerService.java
|
--- a/services/core/java/com/android/server/StorageManagerService.java
|
||||||
+++ b/services/core/java/com/android/server/StorageManagerService.java
|
+++ b/services/core/java/com/android/server/StorageManagerService.java
|
||||||
@@ -1282,7 +1282,8 @@ class StorageManagerService extends IStorageManager.Stub
|
@@ -1283,7 +1283,8 @@ class StorageManagerService extends IStorageManager.Stub
|
||||||
|
|
||||||
// Adoptable public disks are visible to apps, since they meet
|
// Adoptable public disks are visible to apps, since they meet
|
||||||
// public API requirement of being in a stable location.
|
// public API requirement of being in a stable location.
|
||||||
@@ -27,5 +27,5 @@ index 72f40cc0351..20ffd687e89 100644
|
|||||||
} else if (vol.disk.isSd()) {
|
} else if (vol.disk.isSd()) {
|
||||||
vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE;
|
vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 78dcdf304f0baa325fe8d39e2e7cb64b46b9a089 Mon Sep 17 00:00:00 2001
|
From cc8745759acea40bb31f384b4fb70d33c4dd6a00 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 1 May 2018 17:47:36 +0200
|
Date: Tue, 1 May 2018 17:47:36 +0200
|
||||||
Subject: [PATCH 03/36] Also scan /system/overlay
|
Subject: [PATCH 03/58] Also scan /system/overlay
|
||||||
|
|
||||||
Change-Id: Ib0223560606b80cdaaa986b159b34b4db0154589
|
Change-Id: Ib0223560606b80cdaaa986b159b34b4db0154589
|
||||||
---
|
---
|
||||||
@@ -34,10 +34,10 @@ index 2b471fec9c8..4518c7e66a5 100644
|
|||||||
if (argc > 5) {
|
if (argc > 5) {
|
||||||
execv(AssetManager::IDMAP_BIN, (char* const*)argv);
|
execv(AssetManager::IDMAP_BIN, (char* const*)argv);
|
||||||
diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
|
diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
|
||||||
index fa5f931470b..488c2f8e9e8 100644
|
index 8ba2559ec2e..45b3c6a909d 100644
|
||||||
--- a/core/jni/fd_utils.cpp
|
--- a/core/jni/fd_utils.cpp
|
||||||
+++ b/core/jni/fd_utils.cpp
|
+++ b/core/jni/fd_utils.cpp
|
||||||
@@ -118,7 +118,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
|
@@ -119,7 +119,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
|
||||||
|| android::base::StartsWith(path, kSystemOdmOverlayDir)
|
|| android::base::StartsWith(path, kSystemOdmOverlayDir)
|
||||||
|| android::base::StartsWith(path, kOdmOverlayDir)
|
|| android::base::StartsWith(path, kOdmOverlayDir)
|
||||||
|| android::base::StartsWith(path, kSystemOemOverlayDir)
|
|| android::base::StartsWith(path, kSystemOemOverlayDir)
|
||||||
@@ -48,5 +48,5 @@ index fa5f931470b..488c2f8e9e8 100644
|
|||||||
&& path.find("/../") == std::string::npos) {
|
&& path.find("/../") == std::string::npos) {
|
||||||
return true;
|
return true;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
From e1a57d1f38bb45e69c9a2178ab34fd08adafe810 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
|
||||||
Date: Thu, 17 May 2018 20:28:35 +0200
|
|
||||||
Subject: [PATCH 04/36] Don't crash if there is IR HAL is not declared
|
|
||||||
|
|
||||||
---
|
|
||||||
services/core/java/com/android/server/ConsumerIrService.java | 2 --
|
|
||||||
1 file changed, 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/ConsumerIrService.java b/services/core/java/com/android/server/ConsumerIrService.java
|
|
||||||
index 2ed6c77baa0..c574a03c9a3 100644
|
|
||||||
--- a/services/core/java/com/android/server/ConsumerIrService.java
|
|
||||||
+++ b/services/core/java/com/android/server/ConsumerIrService.java
|
|
||||||
@@ -50,8 +50,6 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
|
|
||||||
if (!mHasNativeHal) {
|
|
||||||
throw new RuntimeException("FEATURE_CONSUMER_IR present, but no IR HAL loaded!");
|
|
||||||
}
|
|
||||||
- } else if (mHasNativeHal) {
|
|
||||||
- throw new RuntimeException("IR HAL present, but FEATURE_CONSUMER_IR is not set!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
From c318f6086d6c12bb92de652440ee985256fd60c2 Mon Sep 17 00:00:00 2001
|
From cd2464e7cfe3b9effe431e66a06fd1a8f42fe04d Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Wed, 30 May 2018 14:05:30 +0200
|
Date: Wed, 30 May 2018 14:05:30 +0200
|
||||||
Subject: [PATCH 05/36] Fix(?) #62
|
Subject: [PATCH 04/58] Fix(?) #62
|
||||||
|
|
||||||
---
|
---
|
||||||
.../src/com/android/keyguard/KeyguardUpdateMonitor.java | 5 ++++-
|
.../src/com/android/keyguard/KeyguardUpdateMonitor.java | 5 ++++-
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
||||||
index 6a4dbc8d722..39535c32860 100644
|
index 98323908c8d..5b69c434f46 100644
|
||||||
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
||||||
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
||||||
@@ -1117,7 +1117,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
|
@@ -1214,7 +1214,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAuthenticationError(int errMsgId, CharSequence errString) {
|
public void onAuthenticationError(int errMsgId, CharSequence errString) {
|
||||||
@@ -24,5 +24,5 @@ index 6a4dbc8d722..39535c32860 100644
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 6556ccbc704c6cb4a3bae5e9411082f6e1e1ff71 Mon Sep 17 00:00:00 2001
|
From 21dbb7af9d7f40b7f28a763a7498326e18d1f6d1 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
|
From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
|
||||||
Date: Thu, 7 Jun 2018 13:36:51 +0200
|
Date: Thu, 7 Jun 2018 13:36:51 +0200
|
||||||
Subject: [PATCH 06/36] S9 brightness override only for screen
|
Subject: [PATCH 05/58] S9 brightness override only for screen
|
||||||
|
|
||||||
Change-Id: Ie16a46336fa64850014b962429f7a20ff569222f
|
Change-Id: Ie16a46336fa64850014b962429f7a20ff569222f
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Change-Id: Ie16a46336fa64850014b962429f7a20ff569222f
|
|||||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index e23e2cd3c4d..327979166c2 100644
|
index 347543584e4..bc424682a86 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -91,11 +91,13 @@ public class LightsService extends SystemService {
|
@@ -93,11 +93,13 @@ public class LightsService extends SystemService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,5 +32,5 @@ index e23e2cd3c4d..327979166c2 100644
|
|||||||
int color = brightness & 0x000000ff;
|
int color = brightness & 0x000000ff;
|
||||||
color = 0xff000000 | (color << 16) | (color << 8) | color;
|
color = 0xff000000 | (color << 16) | (color << 8) | color;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
From 21d4fc3b58aa737f78378c0df4987604bf4e32e0 Mon Sep 17 00:00:00 2001
|
From 464f2398bb33b5d9e3e9ea0ec150e8c180e2a808 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
|
From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
|
||||||
Date: Thu, 7 Jun 2018 13:42:02 +0200
|
Date: Thu, 7 Jun 2018 13:42:02 +0200
|
||||||
Subject: [PATCH 07/36] [WIP] Fix OP6 brightness
|
Subject: [PATCH 06/58] Fix OP6 brightness
|
||||||
|
|
||||||
---
|
---
|
||||||
.../com/android/server/lights/LightsService.java | 12 ++++++++++++
|
.../com/android/server/lights/LightsService.java | 12 ++++++++++++
|
||||||
1 file changed, 12 insertions(+)
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index 327979166c2..f0035c67f4a 100644
|
index bc424682a86..c33a9c6cb1b 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -97,6 +97,18 @@ public class LightsService extends SystemService {
|
@@ -99,6 +99,18 @@ public class LightsService extends SystemService {
|
||||||
setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
|
setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,5 @@ index 327979166c2..f0035c67f4a 100644
|
|||||||
|
|
||||||
int color = brightness & 0x000000ff;
|
int color = brightness & 0x000000ff;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 7235d15f8ba322a1806a8736751cac88cecb9b53 Mon Sep 17 00:00:00 2001
|
From f61186905bf0425fe8a56c966fb87adbefea61f4 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 10 Jun 2018 22:54:55 +0200
|
Date: Sun, 10 Jun 2018 22:54:55 +0200
|
||||||
Subject: [PATCH 08/36] Try to make brightness more generic using property set
|
Subject: [PATCH 07/58] Try to make brightness more generic using property set
|
||||||
by rw-system
|
by rw-system
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH 08/36] Try to make brightness more generic using property set
|
|||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index f0035c67f4a..529026a1e7c 100644
|
index c33a9c6cb1b..b2f444f00e1 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -100,9 +100,11 @@ public class LightsService extends SystemService {
|
@@ -102,9 +102,11 @@ public class LightsService extends SystemService {
|
||||||
|
|
||||||
boolean qcomExtendBrightness = SystemProperties.getBoolean("persist.extend.brightness", false);
|
boolean qcomExtendBrightness = SystemProperties.getBoolean("persist.extend.brightness", false);
|
||||||
int scale = SystemProperties.getInt("persist.display.max_brightness", 1023);
|
int scale = SystemProperties.getInt("persist.display.max_brightness", 1023);
|
||||||
@@ -27,5 +27,5 @@ index f0035c67f4a..529026a1e7c 100644
|
|||||||
|
|
||||||
if(qcomExtendBrightness) {
|
if(qcomExtendBrightness) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 5d557f64f712c73d97669f10532b5a2867c6f1d3 Mon Sep 17 00:00:00 2001
|
From 397240e75f8a5e80280f9f0cd8fb0133a509ef94 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 12 Jun 2018 22:55:32 +0200
|
Date: Tue, 12 Jun 2018 22:55:32 +0200
|
||||||
Subject: [PATCH 09/36] property-matching RROs: allow to prefix the value with
|
Subject: [PATCH 08/58] property-matching RROs: allow to prefix the value with
|
||||||
+ to do glob match instead of exact match
|
+ to do glob match instead of exact match
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -31,5 +31,5 @@ index d69dd79555a..2be6d23ac78 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From a95da9d8c3508280233a42dcbfc6440fbc95c563 Mon Sep 17 00:00:00 2001
|
From 2d5671a1241bcb8cdee11180de11a04c4f184a2d Mon Sep 17 00:00:00 2001
|
||||||
From: Song Fuchang <song.fc@gmail.com>
|
From: Song Fuchang <song.fc@gmail.com>
|
||||||
Date: Sun, 17 Jun 2018 22:39:37 +0800
|
Date: Sun, 17 Jun 2018 22:39:37 +0800
|
||||||
Subject: [PATCH 10/36] Fix typo on fnmatch return value check
|
Subject: [PATCH 09/58] Fix typo on fnmatch return value check
|
||||||
|
|
||||||
---
|
---
|
||||||
cmds/idmap/scan.cpp | 2 +-
|
cmds/idmap/scan.cpp | 2 +-
|
||||||
@@ -21,5 +21,5 @@ index 2be6d23ac78..0acff23d031 100644
|
|||||||
|
|
||||||
return (strcmp(propBuf, val) == 0);
|
return (strcmp(propBuf, val) == 0);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
From 695e8613f1bcee3f03269eb7f28ed9a91b41e2ad Mon Sep 17 00:00:00 2001
|
From 506721861c7d8844885e03d0115272d643eb148d Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 25 Jun 2018 22:43:32 +0200
|
Date: Mon, 25 Jun 2018 22:43:32 +0200
|
||||||
Subject: [PATCH 11/36] Add Qualcomm starlte
|
Subject: [PATCH 10/58] Add Qualcomm starlte
|
||||||
|
|
||||||
---
|
---
|
||||||
.../core/java/com/android/server/lights/LightsService.java | 4 +++-
|
.../core/java/com/android/server/lights/LightsService.java | 4 +++-
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index 529026a1e7c..65f9ea87ae5 100644
|
index b2f444f00e1..939437f82a4 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -93,7 +93,9 @@ public class LightsService extends SystemService {
|
@@ -95,7 +95,9 @@ public class LightsService extends SystemService {
|
||||||
|
|
||||||
if(mId == 0) {
|
if(mId == 0) {
|
||||||
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
||||||
@@ -23,5 +23,5 @@ index 529026a1e7c..65f9ea87ae5 100644
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
From f1176c850abc148002e5986db5ccecac116b91c9 Mon Sep 17 00:00:00 2001
|
From df349c13c31ac523ac0e054338f9270049a428bd Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 2 Jul 2018 23:36:39 +0200
|
Date: Mon, 2 Jul 2018 23:36:39 +0200
|
||||||
Subject: [PATCH 12/36] [Galaxy S9] "remaining" of HAL onEnroll is actually a
|
Subject: [PATCH 11/58] "remaining" of HAL onEnroll is actually a percent of
|
||||||
percent of progress
|
progress
|
||||||
|
|
||||||
Change-Id: I8a586163eca93ae3c5bd968d1e7ddbf994ddcc91
|
Change-Id: I8a586163eca93ae3c5bd968d1e7ddbf994ddcc91
|
||||||
---
|
---
|
||||||
@@ -10,10 +10,10 @@ Change-Id: I8a586163eca93ae3c5bd968d1e7ddbf994ddcc91
|
|||||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
index 24fd1b7a6da..dc56a95217c 100644
|
index 320e1022873..9789c49f069 100644
|
||||||
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
@@ -588,7 +588,13 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -590,7 +590,13 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
final Fingerprint fingerprint =
|
final Fingerprint fingerprint =
|
||||||
new Fingerprint(getBiometricUtils().getUniqueName(getContext(), groupId),
|
new Fingerprint(getBiometricUtils().getUniqueName(getContext(), groupId),
|
||||||
groupId, fingerId, deviceId);
|
groupId, fingerId, deviceId);
|
||||||
@@ -29,5 +29,5 @@ index 24fd1b7a6da..dc56a95217c 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
From ca9cc0e485753ac43ea8fba76638b00495669f39 Mon Sep 17 00:00:00 2001
|
From 5727db8ca1ca71a847443b2d37a2ab4ed45b01ed Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 6 Aug 2018 12:49:00 +0200
|
Date: Mon, 6 Aug 2018 12:49:00 +0200
|
||||||
Subject: [PATCH 13/36] Show APN Settings for CDMA carriers
|
Subject: [PATCH 12/58] Show APN Settings for CDMA carriers
|
||||||
|
|
||||||
---
|
---
|
||||||
telephony/java/android/telephony/CarrierConfigManager.java | 2 +-
|
telephony/java/android/telephony/CarrierConfigManager.java | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
|
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
|
||||||
index 19f8203f750..4e0fcbb7358 100755
|
index e209a42c4ba..7f19121d78c 100644
|
||||||
--- a/telephony/java/android/telephony/CarrierConfigManager.java
|
--- a/telephony/java/android/telephony/CarrierConfigManager.java
|
||||||
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
|
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
|
||||||
@@ -3073,7 +3073,7 @@ public class CarrierConfigManager {
|
@@ -3333,7 +3333,7 @@ public class CarrierConfigManager {
|
||||||
sDefaults.putBoolean(KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL, false);
|
sDefaults.putBoolean(KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL, false);
|
||||||
sDefaults.putBoolean(KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
|
sDefaults.putBoolean(KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
|
||||||
sDefaults.putBoolean(KEY_PREFER_2G_BOOL, true);
|
sDefaults.putBoolean(KEY_PREFER_2G_BOOL, true);
|
||||||
@@ -21,5 +21,5 @@ index 19f8203f750..4e0fcbb7358 100755
|
|||||||
sDefaults.putBoolean(KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL, false);
|
sDefaults.putBoolean(KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL, false);
|
||||||
sDefaults.putBoolean(KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL, false);
|
sDefaults.putBoolean(KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL, false);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 1597769b8c2d3faabd76ba20368409293709a2d5 Mon Sep 17 00:00:00 2001
|
From 8ad9065fbaa02e368be5ba5576fe98ff1f4be856 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 19 Aug 2018 10:51:06 +0200
|
Date: Sun, 19 Aug 2018 10:51:06 +0200
|
||||||
Subject: [PATCH 14/36] idmap: Don't silently ignore RROs with same priority
|
Subject: [PATCH 13/58] idmap: Don't silently ignore RROs with same priority
|
||||||
|
|
||||||
Change-Id: I64a6899f1b30e0cd9e9a872b7ca83d831f038cbe
|
Change-Id: I64a6899f1b30e0cd9e9a872b7ca83d831f038cbe
|
||||||
---
|
---
|
||||||
@@ -22,5 +22,5 @@ index 0acff23d031..d1dde52732f 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From d7a6847541ff67793487d581067ca724b3144c60 Mon Sep 17 00:00:00 2001
|
From 238fc8c9b0297df0205b988a4fcccc4dc8b620bc Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 21 Aug 2018 22:24:02 +0200
|
Date: Tue, 21 Aug 2018 22:24:02 +0200
|
||||||
Subject: [PATCH] Don't wake IR HAL to the infinity and beyond
|
Subject: [PATCH 14/58] Don't wake IR HAL to the infinity and beyond
|
||||||
|
|
||||||
---
|
---
|
||||||
.../core/java/com/android/server/ConsumerIrService.java | 7 -------
|
.../core/java/com/android/server/ConsumerIrService.java | 7 -------
|
||||||
@@ -40,5 +40,5 @@ index 2ca348b3ae4..148fba9a688 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 410c6135bef8bc83e49b182f7d3408c46ca47584 Mon Sep 17 00:00:00 2001
|
From eb32a6fa5aebe2e021ba998ddf3970275b4da9a9 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 23 Aug 2018 23:39:16 +0200
|
Date: Thu, 23 Aug 2018 23:39:16 +0200
|
||||||
Subject: [PATCH 18/36] Switch samsung light fingerprint match to regexp, to
|
Subject: [PATCH 15/58] Switch samsung light fingerprint match to regexp, to
|
||||||
include Note9
|
include Note9
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH 18/36] Switch samsung light fingerprint match to regexp, to
|
|||||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index 65f9ea87ae5..aa014bf9ff4 100644
|
index 939437f82a4..f7c07044d66 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -93,9 +93,7 @@ public class LightsService extends SystemService {
|
@@ -95,9 +95,7 @@ public class LightsService extends SystemService {
|
||||||
|
|
||||||
if(mId == 0) {
|
if(mId == 0) {
|
||||||
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
||||||
@@ -24,5 +24,5 @@ index 65f9ea87ae5..aa014bf9ff4 100644
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 378df1aac9a2b439e20dcc60d216f8c15974fdca Mon Sep 17 00:00:00 2001
|
From 2b4b81841941cad4f0b0a3cccbf023a9c819b30e Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 27 Aug 2018 00:47:13 +0200
|
Date: Mon, 27 Aug 2018 00:47:13 +0200
|
||||||
Subject: [PATCH 19/36] Add a property toggle to enable high brightness range
|
Subject: [PATCH 16/58] Add a property toggle to enable high brightness range
|
||||||
on samsung device
|
on samsung device
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH 19/36] Add a property toggle to enable high brightness range
|
|||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index aa014bf9ff4..a18ae0d6159 100644
|
index f7c07044d66..f1a22ee2dc4 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -94,7 +94,11 @@ public class LightsService extends SystemService {
|
@@ -96,7 +96,11 @@ public class LightsService extends SystemService {
|
||||||
if(mId == 0) {
|
if(mId == 0) {
|
||||||
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
||||||
if(fp.matches(".*(crown|star)[q2]*lte.*")) {
|
if(fp.matches(".*(crown|star)[q2]*lte.*")) {
|
||||||
@@ -26,5 +26,5 @@ index aa014bf9ff4..a18ae0d6159 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
From 807d3807f81b4893cd5186c60cfcf94920281a41 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steve Kondik <steve@cyngn.com>
|
|
||||||
Date: Sat, 3 Jan 2015 05:13:26 -0800
|
|
||||||
Subject: [PATCH 16/36] power: Disable keyboard/button lights while
|
|
||||||
dozing/dreaming
|
|
||||||
|
|
||||||
* With hardkeys and doze mode enabled, entering suspend results in
|
|
||||||
an epic battle over the lights. It's a bad situation. Disable
|
|
||||||
them when we're sleepy.
|
|
||||||
|
|
||||||
Change-Id: I7f1fc35a1573717d1ea101a07c4171d6f66d1553
|
|
||||||
---
|
|
||||||
.../core/java/com/android/server/power/PowerManagerService.java | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
|
|
||||||
index 5cccc77ac53..e7d5315a2b9 100644
|
|
||||||
--- a/services/core/java/com/android/server/power/PowerManagerService.java
|
|
||||||
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
|
|
||||||
@@ -2040,7 +2040,7 @@ public final class PowerManagerService extends SystemService
|
|
||||||
final long nextProfileTimeout = getNextProfileTimeoutLocked(now);
|
|
||||||
|
|
||||||
mUserActivitySummary = 0;
|
|
||||||
- if (mLastUserActivityTime >= mLastWakeTime) {
|
|
||||||
+ if (mWakefulness == WAKEFULNESS_AWAKE && mLastUserActivityTime >= mLastWakeTime) {
|
|
||||||
nextTimeout = mLastUserActivityTime
|
|
||||||
+ screenOffTimeout - screenDimDuration;
|
|
||||||
if (now < nextTimeout) {
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 6c3996a1e42192a481ac029932fc1c4eade50488 Mon Sep 17 00:00:00 2001
|
From d4633552f1162cdacd769291a1ee08493a3b8816 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Wed, 29 Aug 2018 11:05:54 +0200
|
Date: Wed, 29 Aug 2018 11:05:54 +0200
|
||||||
Subject: [PATCH 20/36] Add a property to override pre-o max aspect ratio
|
Subject: [PATCH 17/58] Add a property to override pre-o max aspect ratio
|
||||||
|
|
||||||
Change-Id: Id001a19fab7680feda841202b6e91c490d0d5ffa
|
Change-Id: Id001a19fab7680feda841202b6e91c490d0d5ffa
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Change-Id: Id001a19fab7680feda841202b6e91c490d0d5ffa
|
|||||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
|
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
|
||||||
index 371a9435643..5b61f215f3f 100644
|
index 55e8e19fd27..7107bba3292 100644
|
||||||
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
|
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
|
||||||
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
|
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
|
||||||
@@ -2837,6 +2837,12 @@ final class ActivityRecord extends ConfigurationContainer {
|
@@ -2835,6 +2835,12 @@ final class ActivityRecord extends ConfigurationContainer {
|
||||||
// TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
|
// TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
|
||||||
private void updateOverrideConfiguration() {
|
private void updateOverrideConfiguration() {
|
||||||
final Configuration overrideConfig = mTmpConfig;
|
final Configuration overrideConfig = mTmpConfig;
|
||||||
@@ -25,7 +25,7 @@ index 371a9435643..5b61f215f3f 100644
|
|||||||
if (shouldUseSizeCompatMode()) {
|
if (shouldUseSizeCompatMode()) {
|
||||||
if (mCompatDisplayInsets != null) {
|
if (mCompatDisplayInsets != null) {
|
||||||
// The override configuration is set only once in size compatibility mode.
|
// The override configuration is set only once in size compatibility mode.
|
||||||
@@ -3070,7 +3076,7 @@ final class ActivityRecord extends ConfigurationContainer {
|
@@ -3068,7 +3074,7 @@ final class ActivityRecord extends ConfigurationContainer {
|
||||||
// TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
|
// TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
|
||||||
private void computeBounds(Rect outBounds, Rect containingAppBounds) {
|
private void computeBounds(Rect outBounds, Rect containingAppBounds) {
|
||||||
outBounds.setEmpty();
|
outBounds.setEmpty();
|
||||||
@@ -35,5 +35,5 @@ index 371a9435643..5b61f215f3f 100644
|
|||||||
final float minAspectRatio = info.minAspectRatio;
|
final float minAspectRatio = info.minAspectRatio;
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
From 05ed3ef7fba2ae7fc012ca296c60af4238c91550 Mon Sep 17 00:00:00 2001
|
From 7cf02f6a837cbba31bc214a8716be7e0d1055762 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 28 Aug 2018 20:39:26 +0200
|
Date: Tue, 28 Aug 2018 20:39:26 +0200
|
||||||
Subject: [PATCH 21/36] Add japanese S9
|
Subject: [PATCH 18/58] Add japanese S9
|
||||||
|
|
||||||
---
|
---
|
||||||
.../core/java/com/android/server/lights/LightsService.java | 3 ++-
|
.../core/java/com/android/server/lights/LightsService.java | 3 ++-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index a18ae0d6159..37e03880f1e 100644
|
index f1a22ee2dc4..15ab8cecfb5 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -93,7 +93,8 @@ public class LightsService extends SystemService {
|
@@ -95,7 +95,8 @@ public class LightsService extends SystemService {
|
||||||
|
|
||||||
if(mId == 0) {
|
if(mId == 0) {
|
||||||
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
||||||
@@ -22,5 +22,5 @@ index a18ae0d6159..37e03880f1e 100644
|
|||||||
if(SystemProperties.getBoolean("persist.sys.samsung.full_brightness", false)) {
|
if(SystemProperties.getBoolean("persist.sys.samsung.full_brightness", false)) {
|
||||||
newBrightness = (int) (brightness * 40960.0 / 255.0);
|
newBrightness = (int) (brightness * 40960.0 / 255.0);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
From 089eae49049ea602363949e8593acfd5447530c6 Mon Sep 17 00:00:00 2001
|
From d2029feef32f7e15327013c7c58db5616ed8235c Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 8 Nov 2018 23:04:03 +0100
|
Date: Thu, 8 Nov 2018 23:04:03 +0100
|
||||||
Subject: [PATCH 22/36] Re-order services so that it works even without qtaguid
|
Subject: [PATCH 19/58] Re-order services so that it works even without qtaguid
|
||||||
|
|
||||||
---
|
---
|
||||||
.../com/android/server/net/NetworkPolicyManagerService.java | 6 +++---
|
.../com/android/server/net/NetworkPolicyManagerService.java | 6 +++---
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||||
index 6c34e1313f7..337b22c3587 100644
|
index 11c1632b00f..3c8bee02ca1 100644
|
||||||
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||||
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||||
@@ -725,6 +725,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
@@ -734,6 +734,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "systemReady");
|
Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "systemReady");
|
||||||
final int oldPriority = Process.getThreadPriority(Process.myTid());
|
final int oldPriority = Process.getThreadPriority(Process.myTid());
|
||||||
try {
|
try {
|
||||||
@@ -21,7 +21,7 @@ index 6c34e1313f7..337b22c3587 100644
|
|||||||
// Boost thread's priority during system server init
|
// Boost thread's priority during system server init
|
||||||
Process.setThreadPriority(Process.THREAD_PRIORITY_FOREGROUND);
|
Process.setThreadPriority(Process.THREAD_PRIORITY_FOREGROUND);
|
||||||
if (!isBandwidthControlEnabled()) {
|
if (!isBandwidthControlEnabled()) {
|
||||||
@@ -732,9 +735,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
@@ -741,9 +744,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,5 +32,5 @@ index 6c34e1313f7..337b22c3587 100644
|
|||||||
synchronized (mNetworkPoliciesSecondLock) {
|
synchronized (mNetworkPoliciesSecondLock) {
|
||||||
updatePowerSaveWhitelistUL();
|
updatePowerSaveWhitelistUL();
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 1fa1945234225aa9d6201a7da2990fd17b544dc7 Mon Sep 17 00:00:00 2001
|
From e29eb86fe7f515b84816c824fc9e342e03f67df8 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 10 Mar 2019 19:35:06 +0100
|
Date: Sun, 10 Mar 2019 19:35:06 +0100
|
||||||
Subject: [PATCH 23/36] Different value for astarqlte. Probably more devices to
|
Subject: [PATCH 20/58] Different value for astarqlte. Probably more devices to
|
||||||
add later
|
add later
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH 23/36] Different value for astarqlte. Probably more devices to
|
|||||||
1 file changed, 9 insertions(+)
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index 37e03880f1e..993483c342b 100644
|
index 15ab8cecfb5..31033d57616 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -93,6 +93,15 @@ public class LightsService extends SystemService {
|
@@ -95,6 +95,15 @@ public class LightsService extends SystemService {
|
||||||
|
|
||||||
if(mId == 0) {
|
if(mId == 0) {
|
||||||
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
||||||
@@ -29,5 +29,5 @@ index 37e03880f1e..993483c342b 100644
|
|||||||
fp.matches(".*(SC-0[23]K|SCV3[89]).*")) {
|
fp.matches(".*(SC-0[23]K|SCV3[89]).*")) {
|
||||||
int newBrightness = brightness * 100;
|
int newBrightness = brightness * 100;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 8049bd5138e52042ed47b8b0700753cb77b57641 Mon Sep 17 00:00:00 2001
|
From 587b2c2d290643b0280f139141e9dd774c8edbca Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 24 Mar 2019 23:05:14 +0100
|
Date: Sun, 24 Mar 2019 23:05:14 +0100
|
||||||
Subject: [PATCH] Support new samsung light hal
|
Subject: [PATCH 21/58] Support new samsung light hal
|
||||||
|
|
||||||
Change-Id: I88ca834894320129737b4e31fa8f7e5ee918889a
|
Change-Id: I88ca834894320129737b4e31fa8f7e5ee918889a
|
||||||
---
|
---
|
||||||
@@ -22,7 +22,7 @@ index fdcefd42316..d8645012e24 100644
|
|||||||
|
|
||||||
static_libs: [
|
static_libs: [
|
||||||
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
index 35d8219651d..20de7985d1d 100644
|
index 35d8219651d..2f77726d5bd 100644
|
||||||
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
@@ -23,6 +23,8 @@
|
@@ -23,6 +23,8 @@
|
||||||
@@ -43,11 +43,10 @@ index 35d8219651d..20de7985d1d 100644
|
|||||||
static bool sLightSupported = true;
|
static bool sLightSupported = true;
|
||||||
|
|
||||||
static bool validate(jint light, jint flash, jint brightness) {
|
static bool validate(jint light, jint flash, jint brightness) {
|
||||||
@@ -151,6 +155,21 @@ static void setLight_native(
|
@@ -152,6 +156,21 @@ static void setLight_native(
|
||||||
colorAlpha = (colorAlpha * brightnessLevel) / 0xFF;
|
|
||||||
colorARGB = (colorAlpha << 24) + (colorARGB & 0x00FFFFFF);
|
colorARGB = (colorAlpha << 24) + (colorARGB & 0x00FFFFFF);
|
||||||
}
|
}
|
||||||
+
|
|
||||||
+ sp<ISecLight> secHal = ISecLight::getService();
|
+ sp<ISecLight> secHal = ISecLight::getService();
|
||||||
+
|
+
|
||||||
+ if(secHal != nullptr) {
|
+ if(secHal != nullptr) {
|
||||||
@@ -62,9 +61,10 @@ index 35d8219651d..20de7985d1d 100644
|
|||||||
+ if (t.duration() > 50ms) ALOGD("Excessive delay setting light");
|
+ if (t.duration() > 50ms) ALOGD("Excessive delay setting light");
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
Type type = static_cast<Type>(light);
|
Type type = static_cast<Type>(light);
|
||||||
LightState state = constructState(
|
LightState state = constructState(
|
||||||
|
colorARGB, flashMode, onMS, offMS, brightnessMode);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 454a0898504d1af98f687ebdbc8bc7b13a3d3ff5 Mon Sep 17 00:00:00 2001
|
From f7297b9796d2d01dabf58256af529999977e74f5 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Wed, 24 Apr 2019 20:09:53 +0200
|
Date: Wed, 24 Apr 2019 20:09:53 +0200
|
||||||
Subject: [PATCH 25/36] Fix backlight on S10*. Add an additional property to
|
Subject: [PATCH 22/58] Fix backlight on S10*. Add an additional property to
|
||||||
check, so testers can try it more easily
|
check, so testers can try it more easily
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH 25/36] Fix backlight on S10*. Add an additional property to
|
|||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index 993483c342b..a578ed894c4 100644
|
index 31033d57616..feba6bf8205 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -102,7 +102,9 @@ public class LightsService extends SystemService {
|
@@ -104,7 +104,9 @@ public class LightsService extends SystemService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,5 +24,5 @@ index 993483c342b..a578ed894c4 100644
|
|||||||
int newBrightness = brightness * 100;
|
int newBrightness = brightness * 100;
|
||||||
if(SystemProperties.getBoolean("persist.sys.samsung.full_brightness", false)) {
|
if(SystemProperties.getBoolean("persist.sys.samsung.full_brightness", false)) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
From 571bf63da97814631982b28b41f96781a13848a8 Mon Sep 17 00:00:00 2001
|
From 63685ef6795e3b47f227ae5770c063969072644b Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 2 Jul 2019 21:15:07 +0200
|
Date: Tue, 2 Jul 2019 21:15:07 +0200
|
||||||
Subject: [PATCH 26/36] Make samsung light HAL more overridable
|
Subject: [PATCH 23/58] Make samsung light HAL more overridable
|
||||||
|
|
||||||
---
|
---
|
||||||
.../android/server/lights/LightsService.java | 24 ++++++++++++-------
|
.../android/server/lights/LightsService.java | 24 ++++++++++++-------
|
||||||
1 file changed, 15 insertions(+), 9 deletions(-)
|
1 file changed, 15 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
index a578ed894c4..ac102c94770 100644
|
index feba6bf8205..f9ac8db09ea 100644
|
||||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
@@ -102,16 +102,22 @@ public class LightsService extends SystemService {
|
@@ -104,16 +104,22 @@ public class LightsService extends SystemService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,5 +44,5 @@ index a578ed894c4..ac102c94770 100644
|
|||||||
|
|
||||||
boolean qcomExtendBrightness = SystemProperties.getBoolean("persist.extend.brightness", false);
|
boolean qcomExtendBrightness = SystemProperties.getBoolean("persist.extend.brightness", false);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From d02ed45de2a9ad381a735ae0649f61dbca1f1d41 Mon Sep 17 00:00:00 2001
|
From 350739eec1738cebf50a64d4ae19fb61c3db769c Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 2 Jul 2019 21:19:29 +0200
|
Date: Tue, 2 Jul 2019 21:19:29 +0200
|
||||||
Subject: [PATCH 27/36] Make Samsung fingerprint broken HAL overridable
|
Subject: [PATCH 24/58] Make Samsung fingerprint broken HAL overridable
|
||||||
|
|
||||||
Change-Id: I8be38daa7c80fdb61e9209f12215e6daea171d03
|
Change-Id: I8be38daa7c80fdb61e9209f12215e6daea171d03
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Change-Id: I8be38daa7c80fdb61e9209f12215e6daea171d03
|
|||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
index dc56a95217c..19593e7e047 100644
|
index 9789c49f069..f6e0742aa67 100644
|
||||||
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
@@ -590,8 +590,10 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -592,8 +592,10 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
groupId, fingerId, deviceId);
|
groupId, fingerId, deviceId);
|
||||||
|
|
||||||
int remaining2 = remaining;
|
int remaining2 = remaining;
|
||||||
@@ -25,5 +25,5 @@ index dc56a95217c..19593e7e047 100644
|
|||||||
|
|
||||||
FingerprintService.super.handleEnrollResult(fingerprint, remaining2);
|
FingerprintService.super.handleEnrollResult(fingerprint, remaining2);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 677389d4f112ca9368d55e1eb661727e5974eeb1 Mon Sep 17 00:00:00 2001
|
From 376f6e380451b51ded4e34403016a528ed62157b Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 11 Aug 2019 10:30:37 +0200
|
Date: Sun, 11 Aug 2019 10:30:37 +0200
|
||||||
Subject: [PATCH 29/36] Add property to use linear brightness slider
|
Subject: [PATCH 25/58] Add property to use linear brightness slider
|
||||||
|
|
||||||
---
|
---
|
||||||
.../com/android/settingslib/display/BrightnessUtils.java | 6 ++++++
|
.../com/android/settingslib/display/BrightnessUtils.java | 6 ++++++
|
||||||
@@ -33,5 +33,5 @@ index 55723f9d8ed..da8ce4a67e9 100644
|
|||||||
final float normalizedVal = MathUtils.norm(min, max, val) * 12;
|
final float normalizedVal = MathUtils.norm(min, max, val) * 12;
|
||||||
final float ret;
|
final float ret;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From f93124e38386cc549fa02126c776098923f73ed7 Mon Sep 17 00:00:00 2001
|
From 4d1a24a3ea96184572bc741647b5cd43d4eae032 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 12 Aug 2019 23:08:26 +0200
|
Date: Mon, 12 Aug 2019 23:08:26 +0200
|
||||||
Subject: [PATCH 30/36] Add support for samsung touch proximity sensor as
|
Subject: [PATCH 26/58] Add support for samsung touch proximity sensor as
|
||||||
fallback to real proximity sensor
|
fallback to real proximity sensor
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH 30/36] Add support for samsung touch proximity sensor as
|
|||||||
1 file changed, 14 insertions(+)
|
1 file changed, 14 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||||
index fb381c33cbc..a262c86b7c7 100644
|
index e546534eb4c..6ac1589aab0 100644
|
||||||
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||||
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||||
@@ -529,6 +529,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
@@ -522,6 +522,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||||
|
|
||||||
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
|
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
|
||||||
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
|
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
|
||||||
@@ -26,7 +26,7 @@ index fb381c33cbc..a262c86b7c7 100644
|
|||||||
if (mProximitySensor != null) {
|
if (mProximitySensor != null) {
|
||||||
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
|
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
|
||||||
TYPICAL_PROXIMITY_THRESHOLD);
|
TYPICAL_PROXIMITY_THRESHOLD);
|
||||||
@@ -1944,6 +1951,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
@@ -1936,6 +1943,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||||
public void onSensorChanged(SensorEvent event) {
|
public void onSensorChanged(SensorEvent event) {
|
||||||
if (mProximitySensorEnabled) {
|
if (mProximitySensorEnabled) {
|
||||||
final long time = SystemClock.uptimeMillis();
|
final long time = SystemClock.uptimeMillis();
|
||||||
@@ -41,5 +41,5 @@ index fb381c33cbc..a262c86b7c7 100644
|
|||||||
boolean positive = distance >= 0.0f && distance < mProximityThreshold;
|
boolean positive = distance >= 0.0f && distance < mProximityThreshold;
|
||||||
handleProximitySensorEvent(time, positive);
|
handleProximitySensorEvent(time, positive);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From f852fefd22c754345767a7c3d3024f4f93791a3d Mon Sep 17 00:00:00 2001
|
From 231fd535554b81a5ef85aca4783da05bdbd330ec Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Wed, 14 Aug 2019 08:50:47 +0200
|
Date: Wed, 14 Aug 2019 08:50:47 +0200
|
||||||
Subject: [PATCH 31/36] Use Samsung power HAL
|
Subject: [PATCH 27/58] Use Samsung power HAL
|
||||||
|
|
||||||
Samsung likes to have two android.hardware.power@1.0 implementation
|
Samsung likes to have two android.hardware.power@1.0 implementation
|
||||||
side-by-side, one that works, one that doesn't.
|
side-by-side, one that works, one that doesn't.
|
||||||
@@ -11,10 +11,10 @@ Pick the one that works.
|
|||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
||||||
index 73bb579bd27..a211eef3d24 100644
|
index 523f802141e..211ea50ddc9 100644
|
||||||
--- a/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
--- a/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
||||||
+++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
+++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
||||||
@@ -92,7 +92,9 @@ static bool checkAndClearExceptionFromCallback(JNIEnv* env, const char* methodNa
|
@@ -98,7 +98,9 @@ static bool checkAndClearExceptionFromCallback(JNIEnv* env, const char* methodNa
|
||||||
// The caller must be holding gPowerHalMutex.
|
// The caller must be holding gPowerHalMutex.
|
||||||
static void connectPowerHalLocked() {
|
static void connectPowerHalLocked() {
|
||||||
if (gPowerHalExists && gPowerHalV1_0_ == nullptr) {
|
if (gPowerHalExists && gPowerHalV1_0_ == nullptr) {
|
||||||
@@ -26,5 +26,5 @@ index 73bb579bd27..a211eef3d24 100644
|
|||||||
ALOGI("Loaded power HAL 1.0 service");
|
ALOGI("Loaded power HAL 1.0 service");
|
||||||
// Try cast to powerHAL V1_1
|
// Try cast to powerHAL V1_1
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 32ce2b67710daf2e8b81f99a3660210f96d04f3a Mon Sep 17 00:00:00 2001
|
From 792cdc6603531eca7a91e3111ca3fd11b3711994 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Wed, 14 Aug 2019 23:36:45 +0200
|
Date: Wed, 14 Aug 2019 23:36:45 +0200
|
||||||
Subject: [PATCH 32/36] Also add com.samsung.sensor.physical_proximity (if
|
Subject: [PATCH 28/58] Also add com.samsung.sensor.physical_proximity (if
|
||||||
available, it is more a true proximity sensor than touch proximity sensor)
|
available, it is more a true proximity sensor than touch proximity sensor)
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH 32/36] Also add com.samsung.sensor.physical_proximity (if
|
|||||||
1 file changed, 7 insertions(+)
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||||
index a262c86b7c7..7c38f62b256 100644
|
index 6ac1589aab0..84f16c4af23 100644
|
||||||
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||||
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||||
@@ -529,6 +529,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
@@ -522,6 +522,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||||
|
|
||||||
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
|
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
|
||||||
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
|
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
|
||||||
@@ -27,5 +27,5 @@ index a262c86b7c7..7c38f62b256 100644
|
|||||||
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
|
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
|
||||||
for(Sensor sensor: sensors) {
|
for(Sensor sensor: sensors) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From b15c825ccb48260a85695db41aff138787d1817f Mon Sep 17 00:00:00 2001
|
From 67d493c638ff4c901a5ca76f91141b8b6b6a7b57 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 24 Mar 2019 22:48:39 +0100
|
Date: Sun, 24 Mar 2019 22:48:39 +0100
|
||||||
Subject: [PATCH] wip
|
Subject: [PATCH 29/58] wip
|
||||||
|
|
||||||
Change-Id: I50fa9a7a670cef5b93fc4a3a027f1587b1214831
|
Change-Id: I50fa9a7a670cef5b93fc4a3a027f1587b1214831
|
||||||
---
|
---
|
||||||
@@ -11,15 +11,15 @@ Change-Id: I50fa9a7a670cef5b93fc4a3a027f1587b1214831
|
|||||||
.../fingerprint/FingerprintService.java | 26 ++-
|
.../fingerprint/FingerprintService.java | 26 ++-
|
||||||
.../testharness/TestHarnessModeService.java | 7 +-
|
.../testharness/TestHarnessModeService.java | 7 +-
|
||||||
.../com/android/server/wm/ActivityRecord.java | 6 -
|
.../com/android/server/wm/ActivityRecord.java | 6 -
|
||||||
...om_android_server_lights_LightsService.cpp | 15 +-
|
...om_android_server_lights_LightsService.cpp | 13 +-
|
||||||
7 files changed, 255 insertions(+), 12 deletions(-)
|
7 files changed, 254 insertions(+), 11 deletions(-)
|
||||||
create mode 100644 services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
create mode 100644 services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
|
||||||
diff --git a/Android.bp b/Android.bp
|
diff --git a/Android.bp b/Android.bp
|
||||||
index 16abdbf79de..d01dc639c8f 100644
|
index bdd88034655..5e79350ac5c 100644
|
||||||
--- a/Android.bp
|
--- a/Android.bp
|
||||||
+++ b/Android.bp
|
+++ b/Android.bp
|
||||||
@@ -777,6 +777,8 @@ java_defaults {
|
@@ -779,6 +779,8 @@ java_defaults {
|
||||||
"android.hardware.vibrator-V1.2-java",
|
"android.hardware.vibrator-V1.2-java",
|
||||||
"android.hardware.vibrator-V1.3-java",
|
"android.hardware.vibrator-V1.3-java",
|
||||||
"android.hardware.wifi-V1.0-java-constants",
|
"android.hardware.wifi-V1.0-java-constants",
|
||||||
@@ -257,7 +257,7 @@ index 00000000000..8829bcb7e48
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
index 19593e7e047..c7de87126e8 100644
|
index f6e0742aa67..92c0cc5dc85 100644
|
||||||
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
@@ -120,8 +120,10 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -120,8 +120,10 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
@@ -298,7 +298,7 @@ index 19593e7e047..c7de87126e8 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -180,7 +202,6 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -181,7 +203,6 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
/**
|
/**
|
||||||
* The following methods contain common code which is shared in biometrics/common.
|
* The following methods contain common code which is shared in biometrics/common.
|
||||||
*/
|
*/
|
||||||
@@ -306,7 +306,7 @@ index 19593e7e047..c7de87126e8 100644
|
|||||||
@Override // Binder call
|
@Override // Binder call
|
||||||
public long preEnroll(IBinder token) {
|
public long preEnroll(IBinder token) {
|
||||||
checkPermission(MANAGE_FINGERPRINT);
|
checkPermission(MANAGE_FINGERPRINT);
|
||||||
@@ -725,6 +746,7 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -727,6 +748,7 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
mAlarmManager = context.getSystemService(AlarmManager.class);
|
mAlarmManager = context.getSystemService(AlarmManager.class);
|
||||||
context.registerReceiver(mLockoutReceiver, new IntentFilter(getLockoutResetIntent()),
|
context.registerReceiver(mLockoutReceiver, new IntentFilter(getLockoutResetIntent()),
|
||||||
getLockoutBroadcastPermission(), null /* handler */);
|
getLockoutBroadcastPermission(), null /* handler */);
|
||||||
@@ -314,7 +314,7 @@ index 19593e7e047..c7de87126e8 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -952,6 +974,7 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -954,6 +976,7 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
Slog.w(TAG, "startPreEnroll: no fingerprint HAL!");
|
Slog.w(TAG, "startPreEnroll: no fingerprint HAL!");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -322,7 +322,7 @@ index 19593e7e047..c7de87126e8 100644
|
|||||||
try {
|
try {
|
||||||
return daemon.preEnroll();
|
return daemon.preEnroll();
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
@@ -966,6 +989,7 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -968,6 +991,7 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
Slog.w(TAG, "startPostEnroll: no fingerprint HAL!");
|
Slog.w(TAG, "startPostEnroll: no fingerprint HAL!");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -349,10 +349,10 @@ index fcf87ee2a4b..0aa948417c1 100644
|
|||||||
// There's no data to apply, so leave it as-is.
|
// There's no data to apply, so leave it as-is.
|
||||||
return null;
|
return null;
|
||||||
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
|
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
|
||||||
index 479babc4c7d..1f972dd4918 100644
|
index 7107bba3292..8d2badb825a 100644
|
||||||
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
|
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
|
||||||
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
|
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
|
||||||
@@ -2833,12 +2833,6 @@ final class ActivityRecord extends ConfigurationContainer {
|
@@ -2835,12 +2835,6 @@ final class ActivityRecord extends ConfigurationContainer {
|
||||||
// TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
|
// TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
|
||||||
private void updateOverrideConfiguration() {
|
private void updateOverrideConfiguration() {
|
||||||
final Configuration overrideConfig = mTmpConfig;
|
final Configuration overrideConfig = mTmpConfig;
|
||||||
@@ -366,7 +366,7 @@ index 479babc4c7d..1f972dd4918 100644
|
|||||||
if (mCompatDisplayInsets != null) {
|
if (mCompatDisplayInsets != null) {
|
||||||
// The override configuration is set only once in size compatibility mode.
|
// The override configuration is set only once in size compatibility mode.
|
||||||
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
index 20de7985d1d..2b50d04233e 100644
|
index 2f77726d5bd..2b50d04233e 100644
|
||||||
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
@@ -46,6 +46,9 @@ using ISecLight = ::vendor::samsung::hardware::light::V2_0::ISecLight;
|
@@ -46,6 +46,9 @@ using ISecLight = ::vendor::samsung::hardware::light::V2_0::ISecLight;
|
||||||
@@ -379,19 +379,17 @@ index 20de7985d1d..2b50d04233e 100644
|
|||||||
static bool validate(jint light, jint flash, jint brightness) {
|
static bool validate(jint light, jint flash, jint brightness) {
|
||||||
bool valid = true;
|
bool valid = true;
|
||||||
|
|
||||||
@@ -155,20 +158,24 @@ static void setLight_native(
|
@@ -156,19 +159,23 @@ static void setLight_native(
|
||||||
colorAlpha = (colorAlpha * brightnessLevel) / 0xFF;
|
|
||||||
colorARGB = (colorAlpha << 24) + (colorARGB & 0x00FFFFFF);
|
colorARGB = (colorAlpha << 24) + (colorARGB & 0x00FFFFFF);
|
||||||
}
|
}
|
||||||
-
|
|
||||||
- sp<ISecLight> secHal = ISecLight::getService();
|
|
||||||
|
|
||||||
- if(secHal != nullptr) {
|
- sp<ISecLight> secHal = ISecLight::getService();
|
||||||
+ if(!sSecTried) {
|
+ if(!sSecTried) {
|
||||||
+ sSecHal = ISecLight::getService();
|
+ sSecHal = ISecLight::getService();
|
||||||
+ sSecTried = true;
|
+ sSecTried = true;
|
||||||
+ }
|
+ }
|
||||||
+
|
|
||||||
|
- if(secHal != nullptr) {
|
||||||
+ if(sSecHal != nullptr) {
|
+ if(sSecHal != nullptr) {
|
||||||
SecType type = static_cast<SecType>(light);
|
SecType type = static_cast<SecType>(light);
|
||||||
LightState state = constructState(
|
LightState state = constructState(
|
||||||
@@ -409,5 +407,5 @@ index 20de7985d1d..2b50d04233e 100644
|
|||||||
|
|
||||||
Type type = static_cast<Type>(light);
|
Type type = static_cast<Type>(light);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 8167bee50010c872b82a2183e0ac17779b6b565e Mon Sep 17 00:00:00 2001
|
From 12eee8e8f124d017db9265d587d3eabdcfe50803 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 12 Aug 2019 23:10:21 +0200
|
Date: Mon, 12 Aug 2019 23:10:21 +0200
|
||||||
Subject: [PATCH 34/36] User statsd/incidentd arent known to init 8.0. disable
|
Subject: [PATCH 30/58] User statsd/incidentd arent known to init 8.0. disable
|
||||||
those services
|
those services
|
||||||
|
|
||||||
Change-Id: I074654e194f764ffbc6961ff0ae304e36a9b5d1e
|
Change-Id: I074654e194f764ffbc6961ff0ae304e36a9b5d1e
|
||||||
@@ -61,5 +61,5 @@ index a98ecd586b4..564cf98d0a9 100644
|
|||||||
on post-fs-data
|
on post-fs-data
|
||||||
# Create directory for statsd
|
# Create directory for statsd
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From e73eb752f04a301bb4195a40ef3d73be5bb705d6 Mon Sep 17 00:00:00 2001
|
From 3c029d1d6858aaa232e9706f847c390addf0fd96 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 12 Sep 2019 20:38:08 +0200
|
Date: Thu, 12 Sep 2019 20:38:08 +0200
|
||||||
Subject: [PATCH 35/36] Check for samsung light service everytime
|
Subject: [PATCH 31/58] Check for samsung light service everytime
|
||||||
|
|
||||||
This is needed because it is possible sec light service isn't ready at
|
This is needed because it is possible sec light service isn't ready at
|
||||||
that time.
|
that time.
|
||||||
@@ -14,10 +14,10 @@ Change-Id: I30f049f3b06f83c455301b589b3558ff384ec300
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
index bea321da890..75793a7c0f2 100644
|
index 2b50d04233e..a21c6e2c8ef 100644
|
||||||
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
@@ -150,7 +150,7 @@ static void setLight_native(
|
@@ -161,7 +161,7 @@ static void setLight_native(
|
||||||
|
|
||||||
if(!sSecTried) {
|
if(!sSecTried) {
|
||||||
sSecHal = ISecLight::getService();
|
sSecHal = ISecLight::getService();
|
||||||
@@ -27,5 +27,5 @@ index bea321da890..75793a7c0f2 100644
|
|||||||
|
|
||||||
if(sSecHal != nullptr) {
|
if(sSecHal != nullptr) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From f2c2a6a4707dde7f62d29aa5b204d96f9693e0e0 Mon Sep 17 00:00:00 2001
|
From 6f450d9a22c3155a1732dbc1bcbcaed2a5a8d052 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Thu, 12 Sep 2019 20:39:50 +0200
|
Date: Thu, 12 Sep 2019 20:39:50 +0200
|
||||||
Subject: [PATCH 36/36] Forawrdport Samsung "fod" support for ultrasound fp
|
Subject: [PATCH 32/58] Forawrdport Samsung "fod" support for ultrasound fp
|
||||||
|
|
||||||
Change-Id: I9f787a01dab922cd94f9e552a6f3f53a00ca8448
|
Change-Id: I9f787a01dab922cd94f9e552a6f3f53a00ca8448
|
||||||
---
|
---
|
||||||
@@ -117,5 +117,5 @@ index 8829bcb7e48..f61582990cf 100644
|
|||||||
+
|
+
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From f1e202e71f6ab47a1870aa91e65d8c777770b88d Mon Sep 17 00:00:00 2001
|
From c37bc2054b6e8e8d7e5d469e082e423f56d092fc Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 14 Oct 2019 23:50:46 +0200
|
Date: Mon, 14 Oct 2019 23:50:46 +0200
|
||||||
Subject: [PATCH 37/38] Scan /system/overlay and fix support for properties in
|
Subject: [PATCH 33/58] Scan /system/overlay and fix support for properties in
|
||||||
idmap2
|
idmap2
|
||||||
|
|
||||||
Change-Id: Ic04b5b1cc7b5d8cee67b1e2fdaa8aa793546b6d6
|
Change-Id: Ic04b5b1cc7b5d8cee67b1e2fdaa8aa793546b6d6
|
||||||
@@ -97,10 +97,10 @@ index 71ba3f0f1ac..7fda402b80f 100644
|
|||||||
if (iter != tag->end()) {
|
if (iter != tag->end()) {
|
||||||
info.is_static = std::stoul(iter->second) != 0U;
|
info.is_static = std::stoul(iter->second) != 0U;
|
||||||
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
|
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
|
||||||
index b3776787cc2..2147cc61728 100644
|
index 535a8bc9db7..a164cb186a9 100644
|
||||||
--- a/core/java/android/content/pm/PackageParser.java
|
--- a/core/java/android/content/pm/PackageParser.java
|
||||||
+++ b/core/java/android/content/pm/PackageParser.java
|
+++ b/core/java/android/content/pm/PackageParser.java
|
||||||
@@ -1353,6 +1353,7 @@ public class PackageParser {
|
@@ -1355,6 +1355,7 @@ public class PackageParser {
|
||||||
} catch (PackageParserException e) {
|
} catch (PackageParserException e) {
|
||||||
throw e;
|
throw e;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -108,7 +108,7 @@ index b3776787cc2..2147cc61728 100644
|
|||||||
throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION,
|
throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION,
|
||||||
"Failed to read manifest from " + apkPath, e);
|
"Failed to read manifest from " + apkPath, e);
|
||||||
} finally {
|
} finally {
|
||||||
@@ -1392,6 +1393,7 @@ public class PackageParser {
|
@@ -1394,6 +1395,7 @@ public class PackageParser {
|
||||||
} catch (PackageParserException e) {
|
} catch (PackageParserException e) {
|
||||||
throw e;
|
throw e;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -116,7 +116,7 @@ index b3776787cc2..2147cc61728 100644
|
|||||||
throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION,
|
throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION,
|
||||||
"Failed to read manifest from " + apkPath, e);
|
"Failed to read manifest from " + apkPath, e);
|
||||||
} finally {
|
} finally {
|
||||||
@@ -2556,7 +2558,12 @@ public class PackageParser {
|
@@ -2574,7 +2576,12 @@ public class PackageParser {
|
||||||
|
|
||||||
// check property value - make sure it is both set and equal to expected value
|
// check property value - make sure it is both set and equal to expected value
|
||||||
final String currValue = SystemProperties.get(propName);
|
final String currValue = SystemProperties.get(propName);
|
||||||
@@ -145,10 +145,10 @@ index 4518c7e66a5..9e1b6db9ad9 100644
|
|||||||
input_dirs.push_back(AssetManager::VENDOR_OVERLAY_DIR);
|
input_dirs.push_back(AssetManager::VENDOR_OVERLAY_DIR);
|
||||||
}
|
}
|
||||||
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 7469e099421..203eb793610 100644
|
index 179abe958b1..264e85d8eca 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
|
||||||
@@ -2608,6 +2608,12 @@ public class PackageManagerService extends IPackageManager.Stub
|
@@ -2668,6 +2668,12 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||||
// any apps.)
|
// any apps.)
|
||||||
// For security and version matching reason, only consider overlay packages if they
|
// For security and version matching reason, only consider overlay packages if they
|
||||||
// reside in the right directory.
|
// reside in the right directory.
|
||||||
@@ -162,5 +162,5 @@ index 7469e099421..203eb793610 100644
|
|||||||
mDefParseFlags
|
mDefParseFlags
|
||||||
| PackageParser.PARSE_IS_SYSTEM_DIR,
|
| PackageParser.PARSE_IS_SYSTEM_DIR,
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 9bba3cbb885f9917c120bfc7f072002f9e8cd4ed Mon Sep 17 00:00:00 2001
|
From a950589b497f0e635205591b358aaa18e45e74c3 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 22 Oct 2019 00:33:23 +0200
|
Date: Tue, 22 Oct 2019 00:33:23 +0200
|
||||||
Subject: [PATCH 38/38] Improve FacolaView life cycle, though it is still
|
Subject: [PATCH 34/58] Improve FacolaView life cycle, though it is still
|
||||||
missing few cases. It might require to change BiometricServiceBase for actual
|
missing few cases. It might require to change BiometricServiceBase for actual
|
||||||
fix
|
fix
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ index f61582990cf..4ff373a108d 100644
|
|||||||
samsungCmd("fod_enable,0");
|
samsungCmd("fod_enable,0");
|
||||||
}
|
}
|
||||||
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
index c7de87126e8..972b4703860 100644
|
index 92c0cc5dc85..1323c5ec0dd 100644
|
||||||
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
@@ -181,6 +181,16 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -181,6 +181,16 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
@@ -74,7 +74,7 @@ index c7de87126e8..972b4703860 100644
|
|||||||
@Override
|
@Override
|
||||||
public int start() {
|
public int start() {
|
||||||
mFacola.show();
|
mFacola.show();
|
||||||
@@ -219,6 +229,7 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -220,6 +230,7 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
final IFingerprintServiceReceiver receiver, final int flags,
|
final IFingerprintServiceReceiver receiver, final int flags,
|
||||||
final String opPackageName) {
|
final String opPackageName) {
|
||||||
checkPermission(MANAGE_FINGERPRINT);
|
checkPermission(MANAGE_FINGERPRINT);
|
||||||
@@ -82,7 +82,7 @@ index c7de87126e8..972b4703860 100644
|
|||||||
|
|
||||||
final boolean restricted = isRestricted();
|
final boolean restricted = isRestricted();
|
||||||
final int groupId = userId; // default group for fingerprint enrollment
|
final int groupId = userId; // default group for fingerprint enrollment
|
||||||
@@ -641,6 +652,9 @@ public class FingerprintService extends BiometricServiceBase {
|
@@ -643,6 +654,9 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
public void onError(final long deviceId, final int error, final int vendorCode) {
|
public void onError(final long deviceId, final int error, final int vendorCode) {
|
||||||
mHandler.post(() -> {
|
mHandler.post(() -> {
|
||||||
FingerprintService.super.handleError(deviceId, error, vendorCode);
|
FingerprintService.super.handleError(deviceId, error, vendorCode);
|
||||||
@@ -93,5 +93,5 @@ index c7de87126e8..972b4703860 100644
|
|||||||
if (error == BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE) {
|
if (error == BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE) {
|
||||||
// If we get HW_UNAVAILABLE, try to connect again later...
|
// If we get HW_UNAVAILABLE, try to connect again later...
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 12005c0b0a7f7e9c33bd8cf79ffaee609c43dafb Mon Sep 17 00:00:00 2001
|
From 9cd57490c483e5a5b94d32d8fda5cc095734734d Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 22 Oct 2019 15:31:54 +0200
|
Date: Tue, 22 Oct 2019 15:31:54 +0200
|
||||||
Subject: [PATCH 39/39] Link hwui with libbase, because of updated skia
|
Subject: [PATCH 35/58] Link hwui with libbase, because of updated skia
|
||||||
dependency
|
dependency
|
||||||
|
|
||||||
Change-Id: I201df2cd8f66674948b56fb6d5be5e8c3cb48bd1
|
Change-Id: I201df2cd8f66674948b56fb6d5be5e8c3cb48bd1
|
||||||
@@ -22,5 +22,5 @@ index ebba4cb79df..b9808751130 100644
|
|||||||
static_libs: [
|
static_libs: [
|
||||||
"libEGL_blobCache",
|
"libEGL_blobCache",
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 1573fc903e5c874b7a4fa78284801aa67a9f1ff7 Mon Sep 17 00:00:00 2001
|
From 6806da584a014aa51429e4779f999f83a0e826be Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 27 Oct 2019 16:27:55 +0100
|
Date: Sun, 27 Oct 2019 16:27:55 +0100
|
||||||
Subject: [PATCH 40/40] Fix crash on some devices by checking for null client
|
Subject: [PATCH 36/58] Fix crash on some devices by checking for null client
|
||||||
|
|
||||||
Some device get the following system_server crash:
|
Some device get the following system_server crash:
|
||||||
*** FATAL EXCEPTION IN SYSTEM PROCESS: main
|
*** FATAL EXCEPTION IN SYSTEM PROCESS: main
|
||||||
@@ -19,10 +19,10 @@ Change-Id: If39d8c1b26c8c0a44b3d9292b646cb71ff258a95
|
|||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||||
index d3c62bed7b5..b6710992a6e 100644
|
index 37a08de62fc..292798721c6 100644
|
||||||
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||||
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||||
@@ -774,6 +774,7 @@ public abstract class BiometricServiceBase extends SystemService
|
@@ -792,6 +792,7 @@ public abstract class BiometricServiceBase extends SystemService
|
||||||
protected void handleEnumerate(BiometricAuthenticator.Identifier identifier, int remaining) {
|
protected void handleEnumerate(BiometricAuthenticator.Identifier identifier, int remaining) {
|
||||||
ClientMonitor client = getCurrentClient();
|
ClientMonitor client = getCurrentClient();
|
||||||
|
|
||||||
@@ -31,5 +31,5 @@ index d3c62bed7b5..b6710992a6e 100644
|
|||||||
|
|
||||||
// All templates in the HAL for this user were enumerated
|
// All templates in the HAL for this user were enumerated
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 6d0a4d0c2d14754f42189e8bce03e3f40d8d5668 Mon Sep 17 00:00:00 2001
|
From ca4db4fe51356d20bf26142c188b6a691075c123 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 15 Dec 2019 16:38:44 +0100
|
Date: Sun, 15 Dec 2019 16:38:44 +0100
|
||||||
Subject: [PATCH] Support Samsung Q Light HAL
|
Subject: [PATCH 37/58] Support Samsung Q Light HAL
|
||||||
|
|
||||||
Change-Id: Ic5745eb115a14de348391e69ed6bf3c2a24b157e
|
Change-Id: Ic5745eb115a14de348391e69ed6bf3c2a24b157e
|
||||||
---
|
---
|
||||||
@@ -471,5 +471,5 @@ index 00000000000..a21c6e2c8ef
|
|||||||
+
|
+
|
||||||
+};
|
+};
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 6d095a568c1b3abc27bd9111155353c3688a761e Mon Sep 17 00:00:00 2001
|
From 47c5660af8f54286d6c525e211077c05f9689ca8 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 15 Dec 2019 16:58:38 +0100
|
Date: Sun, 15 Dec 2019 16:58:38 +0100
|
||||||
Subject: [PATCH 42/45] Add a nodim property for FacolaView
|
Subject: [PATCH 38/58] Add a nodim property for FacolaView
|
||||||
|
|
||||||
Set persist.sys.phh.nodim to true to remove diming/full brightness
|
Set persist.sys.phh.nodim to true to remove diming/full brightness
|
||||||
---
|
---
|
||||||
@@ -42,5 +42,5 @@ index 4ff373a108d..08436019bc9 100644
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 23fac793a4950f84a88ee2d5ceb3045d703a46e6 Mon Sep 17 00:00:00 2001
|
From fffb6c1f4bf48d2bdc1a1b3c24b97d32bdaa4cca Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 15 Dec 2019 22:14:12 +0100
|
Date: Sun, 15 Dec 2019 22:14:12 +0100
|
||||||
Subject: [PATCH] Add Samsung's Q power HAL to fix suspend
|
Subject: [PATCH 39/58] Add Samsung's Q power HAL to fix suspend
|
||||||
|
|
||||||
Change-Id: I1edd4de9932ab089b7051f1329f60c15b9d99aaa
|
Change-Id: I1edd4de9932ab089b7051f1329f60c15b9d99aaa
|
||||||
---
|
---
|
||||||
@@ -86,5 +86,5 @@ index 211ea50ddc9..bf0599fe18a 100644
|
|||||||
|
|
||||||
static void nativeSetAutoSuspend(JNIEnv* /* env */, jclass /* clazz */, jboolean enable) {
|
static void nativeSetAutoSuspend(JNIEnv* /* env */, jclass /* clazz */, jboolean enable) {
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From e156f6e2e7af7d743dc5ea52fe6a5623730141ef Mon Sep 17 00:00:00 2001
|
From 2edb7c4d383365654a4e650041e0d85fd8fa2f9c Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 15 Dec 2019 23:19:32 +0100
|
Date: Sun, 15 Dec 2019 23:19:32 +0100
|
||||||
Subject: [PATCH 44/45] FacolaView: Support goodix ext and fix wrong forced
|
Subject: [PATCH 40/58] FacolaView: Support goodix ext and fix wrong forced
|
||||||
brightness
|
brightness
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -10,10 +10,10 @@ Subject: [PATCH 44/45] FacolaView: Support goodix ext and fix wrong forced
|
|||||||
2 files changed, 23 insertions(+), 8 deletions(-)
|
2 files changed, 23 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/core/Android.bp b/services/core/Android.bp
|
diff --git a/services/core/Android.bp b/services/core/Android.bp
|
||||||
index b2e8af938f3..9f83e49c27d 100644
|
index 2e7118da1c0..ccf1ca99b54 100644
|
||||||
--- a/services/core/Android.bp
|
--- a/services/core/Android.bp
|
||||||
+++ b/services/core/Android.bp
|
+++ b/services/core/Android.bp
|
||||||
@@ -54,6 +54,7 @@ java_library_static {
|
@@ -55,6 +55,7 @@ java_library_static {
|
||||||
"dnsresolver_aidl_interface-V2-java",
|
"dnsresolver_aidl_interface-V2-java",
|
||||||
"netd_aidl_interface-V2-java",
|
"netd_aidl_interface-V2-java",
|
||||||
"netd_event_listener_interface-java",
|
"netd_event_listener_interface-java",
|
||||||
@@ -113,5 +113,5 @@ index 08436019bc9..651cc97be39 100644
|
|||||||
mParams.packageName = "android";
|
mParams.packageName = "android";
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 482586467473be36e881922152c9cf410ab0b73c Mon Sep 17 00:00:00 2001
|
From 6963785c01498fcb54b697bb2530ecd7a8297f56 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 16 Dec 2019 19:31:12 +0100
|
Date: Mon, 16 Dec 2019 19:31:12 +0100
|
||||||
Subject: [PATCH 45/45] Fix (big) goodix integration mistakes
|
Subject: [PATCH 41/58] Fix (big) goodix integration mistakes
|
||||||
|
|
||||||
---
|
---
|
||||||
.../biometrics/fingerprint/FacolaView.java | 19 ++++++++++++-------
|
.../biometrics/fingerprint/FacolaView.java | 19 ++++++++++++-------
|
||||||
@@ -55,5 +55,5 @@ index 651cc97be39..b8ca25a48d2 100644
|
|||||||
Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd");
|
Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd");
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
From 7117854a66e39ec6db3deb5caa02bb7008ed3650 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Cai <peter@typeblog.net>
|
||||||
|
Date: Thu, 2 Jan 2020 10:16:49 +0800
|
||||||
|
Subject: [PATCH 42/58] fix crashing on devices with higher aspect ratio down
|
||||||
|
to sw288dp
|
||||||
|
|
||||||
|
* This is what the Qin 2 (Pro) is.
|
||||||
|
|
||||||
|
Change-Id: I2289a23b706b512a99a541221576960407c098e7
|
||||||
|
---
|
||||||
|
.../SystemUI/res/values-sw288dp/dimens.xml | 33 +++++++++++++++++++
|
||||||
|
1 file changed, 33 insertions(+)
|
||||||
|
create mode 100644 packages/SystemUI/res/values-sw288dp/dimens.xml
|
||||||
|
|
||||||
|
diff --git a/packages/SystemUI/res/values-sw288dp/dimens.xml b/packages/SystemUI/res/values-sw288dp/dimens.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..40adc2e6879
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/packages/SystemUI/res/values-sw288dp/dimens.xml
|
||||||
|
@@ -0,0 +1,33 @@
|
||||||
|
+<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
+<!--
|
||||||
|
+ ~ Copyright (C) 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
|
||||||
|
+ -->
|
||||||
|
+<resources>
|
||||||
|
+ <!-- Global actions grid -->
|
||||||
|
+ <dimen name="global_actions_grid_vertical_padding">3dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_horizontal_padding">3dp</dimen>
|
||||||
|
+
|
||||||
|
+ <dimen name="global_actions_grid_item_side_margin">5dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_item_vertical_margin">4dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_item_width">64dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_item_height">64dp</dimen>
|
||||||
|
+
|
||||||
|
+ <dimen name="global_actions_grid_item_icon_width">20dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_item_icon_height">20dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_item_icon_top_margin">12dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_item_icon_side_margin">22dp</dimen>
|
||||||
|
+ <dimen name="global_actions_grid_item_icon_bottom_margin">4dp</dimen>
|
||||||
|
+
|
||||||
|
+</resources>
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
From 1269ddf783c8d092c5eb51324ea9bb53230789af Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Sat, 22 Feb 2020 23:25:51 +0100
|
||||||
|
Subject: [PATCH 43/58] FacolaView] Allow system-side properties (vendor-side
|
||||||
|
works only with proper selinux)
|
||||||
|
|
||||||
|
---
|
||||||
|
.../com/android/server/biometrics/fingerprint/FacolaView.java | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index b8ca25a48d2..f77e8282689 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -73,7 +73,11 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
|
||||||
|
noDim = android.os.SystemProperties.getBoolean("persist.sys.phh.nodim", false);
|
||||||
|
String[] location = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
+ if(location.length == 0)
|
||||||
|
+ location = android.os.SystemProperties.get("persist.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
String[] size = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.size.width_height", "").split(",");
|
||||||
|
+ if(size.length == 0)
|
||||||
|
+ size = android.os.SystemProperties.get("persist.sys.fp.fod.size.width_height", "").split(",");
|
||||||
|
Slog.d("PHH-Enroll", "FacolaView hello");
|
||||||
|
if(size.length == 2 && location.length == 2) {
|
||||||
|
Slog.d("PHH-Enroll", "Got real values");
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
From d829818f8aaf25aaa6ae99f8220a73a2717342a5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Sat, 22 Feb 2020 23:45:54 +0100
|
||||||
|
Subject: [PATCH 44/58] report press events to oppo fingerprint sensor
|
||||||
|
|
||||||
|
---
|
||||||
|
.../biometrics/fingerprint/FacolaView.java | 16 ++++++++++++++++
|
||||||
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index f77e8282689..0fb4254eb60 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -114,6 +114,20 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private final File oppoFod = new File("/sys/kernel/oppo_display/notify_fppress");
|
||||||
|
+ private void oppoPress(boolean pressed) {
|
||||||
|
+ if(!oppoFod.exists()) return;
|
||||||
|
+ try {
|
||||||
|
+ String v = "0";
|
||||||
|
+ if(pressed) v = "1";
|
||||||
|
+ PrintWriter writer = new PrintWriter(oppoFod, "UTF-8");
|
||||||
|
+ writer.println(v);
|
||||||
|
+ writer.close();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH", "Failed to notify oppo fp press", e);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
@Override
|
||||||
|
protected void onDraw(Canvas canvas) {
|
||||||
|
super.onDraw(canvas);
|
||||||
|
@@ -131,9 +145,11 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd");
|
||||||
|
}
|
||||||
|
+ oppoPress(true);
|
||||||
|
|
||||||
|
canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), this.mPaintFingerprint);
|
||||||
|
} else {
|
||||||
|
+ oppoPress(false);
|
||||||
|
try {
|
||||||
|
if(mXiaomiFingerprint != null) {
|
||||||
|
mXiaomiFingerprint.extCmd(0xa, 0);
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
From 89f7440821343b3a55e75be79e4a58305f0bd660 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Mon, 2 Mar 2020 21:13:36 +0100
|
||||||
|
Subject: [PATCH 45/58] Add support for samsung optical under-display
|
||||||
|
fingerprint
|
||||||
|
|
||||||
|
---
|
||||||
|
services/core/Android.bp | 1 +
|
||||||
|
.../biometrics/fingerprint/FacolaView.java | 17 +++++++++++++++--
|
||||||
|
2 files changed, 16 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/Android.bp b/services/core/Android.bp
|
||||||
|
index ccf1ca99b54..ba6c5fcf7ee 100644
|
||||||
|
--- a/services/core/Android.bp
|
||||||
|
+++ b/services/core/Android.bp
|
||||||
|
@@ -56,6 +56,7 @@ java_library_static {
|
||||||
|
"netd_aidl_interface-V2-java",
|
||||||
|
"netd_event_listener_interface-java",
|
||||||
|
"vendor.goodix.extend.service-V2.0-java",
|
||||||
|
+ "vendor.samsung.hardware.biometrics.fingerprint-V2.1-java",
|
||||||
|
"vendor.xiaomi.hardware.fingerprintextension-V1.0-java",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index 0fb4254eb60..edd13988e49 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -37,6 +37,7 @@ import java.io.PrintWriter;
|
||||||
|
|
||||||
|
import vendor.xiaomi.hardware.fingerprintextension.V1_0.IXiaomiFingerprint;
|
||||||
|
import vendor.goodix.extend.service.V2_0.IGoodixFPExtendService;
|
||||||
|
+import vendor.samsung.hardware.biometrics.fingerprint.V2_1.ISecBiometricsFingerprint;
|
||||||
|
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.HandlerThread;
|
||||||
|
@@ -48,6 +49,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
private final Paint mPaintShow = new Paint();
|
||||||
|
private IXiaomiFingerprint mXiaomiFingerprint = null;
|
||||||
|
private IGoodixFPExtendService mGoodixFingerprint = null;
|
||||||
|
+ private ISecBiometricsFingerprint mSamsungFingerprint = null;
|
||||||
|
private boolean mInsideCircle = false;
|
||||||
|
private final WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
|
||||||
|
|
||||||
|
@@ -111,6 +113,11 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed getting goodix fingerprint service", e);
|
||||||
|
}
|
||||||
|
+ try {
|
||||||
|
+ mSamsungFingerprint = ISecBiometricsFingerprint.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting samsung fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -141,9 +148,12 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mXiaomiFingerprint.extCmd(0xa, nitValue);
|
||||||
|
} else if(mGoodixFingerprint != null) {
|
||||||
|
mGoodixFingerprint.goodixExtendCommand(10, 1);
|
||||||
|
+ } else if(mSamsungFingerprint != null) {
|
||||||
|
+ mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 2 /* pressed */, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
}
|
||||||
|
} catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd");
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
|
||||||
|
}
|
||||||
|
oppoPress(true);
|
||||||
|
|
||||||
|
@@ -155,9 +165,12 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mXiaomiFingerprint.extCmd(0xa, 0);
|
||||||
|
} else if(mGoodixFingerprint != null) {
|
||||||
|
mGoodixFingerprint.goodixExtendCommand(10, 0);
|
||||||
|
+ } else if(mSamsungFingerprint != null) {
|
||||||
|
+ mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 1 /* released */, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
}
|
||||||
|
} catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd");
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
|
||||||
|
}
|
||||||
|
canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), this.mPaintShow);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
From 5c0dc33ebcbb06c0a1408f651c408afca1b606cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Mon, 2 Mar 2020 21:13:47 +0100
|
||||||
|
Subject: [PATCH 46/58] Fix persist.sys.fp.fod override
|
||||||
|
|
||||||
|
---
|
||||||
|
.../com/android/server/biometrics/fingerprint/FacolaView.java | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index edd13988e49..2c1ba76f529 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -75,10 +75,10 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
|
||||||
|
noDim = android.os.SystemProperties.getBoolean("persist.sys.phh.nodim", false);
|
||||||
|
String[] location = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
- if(location.length == 0)
|
||||||
|
+ if(location.length != 2)
|
||||||
|
location = android.os.SystemProperties.get("persist.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
String[] size = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.size.width_height", "").split(",");
|
||||||
|
- if(size.length == 0)
|
||||||
|
+ if(size.length != 2)
|
||||||
|
size = android.os.SystemProperties.get("persist.sys.fp.fod.size.width_height", "").split(",");
|
||||||
|
Slog.d("PHH-Enroll", "FacolaView hello");
|
||||||
|
if(size.length == 2 && location.length == 2) {
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
From c9cc25cbfb382cbfad7f0694118e1791719c8f87 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Tue, 10 Mar 2020 23:30:17 +0100
|
||||||
|
Subject: [PATCH 47/58] Allow disabling of fingerprint cleanups, needed on some
|
||||||
|
Realme devices that cant enumerate
|
||||||
|
|
||||||
|
---
|
||||||
|
.../android/server/biometrics/BiometricServiceBase.java | 9 ++++++---
|
||||||
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||||
|
index 292798721c6..aa94e2e2d40 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||||
|
@@ -326,6 +326,7 @@ public abstract class BiometricServiceBase extends SystemService
|
||||||
|
private List<? extends BiometricAuthenticator.Identifier> mEnrolledList;
|
||||||
|
// List of templates to remove from the HAL
|
||||||
|
private List<BiometricAuthenticator.Identifier> mUnknownHALTemplates = new ArrayList<>();
|
||||||
|
+ final boolean mNocleanup = android.os.SystemProperties.getBoolean("persist.sys.phh.fingerprint.nocleanup", false);
|
||||||
|
|
||||||
|
InternalEnumerateClient(Context context,
|
||||||
|
DaemonWrapper daemon, long halDeviceId, IBinder token,
|
||||||
|
@@ -370,9 +371,11 @@ public abstract class BiometricServiceBase extends SystemService
|
||||||
|
BiometricAuthenticator.Identifier identifier = mEnrolledList.get(i);
|
||||||
|
Slog.e(getTag(), "doTemplateCleanup(): Removing dangling template from framework: "
|
||||||
|
+ identifier.getBiometricId() + " "
|
||||||
|
- + identifier.getName());
|
||||||
|
- mUtils.removeBiometricForUser(getContext(),
|
||||||
|
- getTargetUserId(), identifier.getBiometricId());
|
||||||
|
+ + identifier.getName() + " /// " + mNocleanup);
|
||||||
|
+ if(!mNocleanup) {
|
||||||
|
+ mUtils.removeBiometricForUser(getContext(),
|
||||||
|
+ getTargetUserId(), identifier.getBiometricId());
|
||||||
|
+ }
|
||||||
|
StatsLog.write(StatsLog.BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED,
|
||||||
|
statsModality(),
|
||||||
|
BiometricsProtoEnums.ISSUE_UNKNOWN_TEMPLATE_ENROLLED_FRAMEWORK);
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
293
patches/platform_frameworks_base/0048-Support-Realme-FOD.patch
Normal file
293
patches/platform_frameworks_base/0048-Support-Realme-FOD.patch
Normal file
@@ -0,0 +1,293 @@
|
|||||||
|
From 8bec1b57d67df8b2d14b41f91ab909246e655ad0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Tue, 10 Mar 2020 23:32:00 +0100
|
||||||
|
Subject: [PATCH 48/58] Support Realme FOD
|
||||||
|
|
||||||
|
List of changes:
|
||||||
|
- Enable dimlayer_hbm. This dims the framebuffer, while putting screen
|
||||||
|
into HBM. From user's POV, brightness didn't change, but this enables
|
||||||
|
HBM facola.
|
||||||
|
- Have two separate FOD layers
|
||||||
|
This is needed because hwcomposer is expecting two FOD layers to tell
|
||||||
|
fingerprint HAL that UI is ready.
|
||||||
|
Also, using the second magical layer makes this second layer OVER the
|
||||||
|
dim, so it is running at full brightness.
|
||||||
|
- All devices are now moved to two layers.
|
||||||
|
- Sending events to other HALs have been delayed by 200ms, to account
|
||||||
|
for slow brightness change
|
||||||
|
---
|
||||||
|
services/core/Android.bp | 1 +
|
||||||
|
.../biometrics/fingerprint/FacolaView.java | 146 ++++++++++++++++--
|
||||||
|
2 files changed, 132 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/Android.bp b/services/core/Android.bp
|
||||||
|
index ba6c5fcf7ee..334d0d04067 100644
|
||||||
|
--- a/services/core/Android.bp
|
||||||
|
+++ b/services/core/Android.bp
|
||||||
|
@@ -57,6 +57,7 @@ java_library_static {
|
||||||
|
"netd_event_listener_interface-java",
|
||||||
|
"vendor.goodix.extend.service-V2.0-java",
|
||||||
|
"vendor.samsung.hardware.biometrics.fingerprint-V2.1-java",
|
||||||
|
+ "vendor.oppo.hardware.biometrics.fingerprint-V2.1-java",
|
||||||
|
"vendor.xiaomi.hardware.fingerprintextension-V1.0-java",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index 2c1ba76f529..42f21d63430 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -19,6 +19,7 @@ package com.android.server.biometrics.fingerprint;
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.Paint;
|
||||||
|
+import android.graphics.Point;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.View.OnTouchListener;
|
||||||
|
import android.view.View;
|
||||||
|
@@ -39,19 +40,23 @@ import vendor.xiaomi.hardware.fingerprintextension.V1_0.IXiaomiFingerprint;
|
||||||
|
import vendor.goodix.extend.service.V2_0.IGoodixFPExtendService;
|
||||||
|
import vendor.samsung.hardware.biometrics.fingerprint.V2_1.ISecBiometricsFingerprint;
|
||||||
|
|
||||||
|
+import android.hardware.display.DisplayManager;
|
||||||
|
+
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.HandlerThread;
|
||||||
|
import android.os.ServiceManager;
|
||||||
|
|
||||||
|
public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
- private final int mX, mY, mW, mH;
|
||||||
|
+ private int mX, mY, mW, mH;
|
||||||
|
private final Paint mPaintFingerprint = new Paint();
|
||||||
|
private final Paint mPaintShow = new Paint();
|
||||||
|
private IXiaomiFingerprint mXiaomiFingerprint = null;
|
||||||
|
private IGoodixFPExtendService mGoodixFingerprint = null;
|
||||||
|
private ISecBiometricsFingerprint mSamsungFingerprint = null;
|
||||||
|
+ private vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint mOppoFingerprint = null;
|
||||||
|
private boolean mInsideCircle = false;
|
||||||
|
private final WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
|
||||||
|
+ private final WindowManager.LayoutParams mParamsTouched = new WindowManager.LayoutParams();
|
||||||
|
|
||||||
|
private final static float UNTOUCHED_DIM = .1f;
|
||||||
|
private final static float TOUCHED_DIM = .9f;
|
||||||
|
@@ -60,20 +65,34 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
private final Handler mHandler;
|
||||||
|
|
||||||
|
private final WindowManager mWM;
|
||||||
|
+ private final DisplayManager mDM;
|
||||||
|
private final boolean samsungFod = samsungHasCmd("fod_enable");
|
||||||
|
- private final boolean noDim;
|
||||||
|
+ private boolean noDim;
|
||||||
|
|
||||||
|
+ private boolean mFullGreenDisplayed = false;
|
||||||
|
+ private final View mFullGreen;
|
||||||
|
private boolean mHidden = true;
|
||||||
|
FacolaView(Context context) {
|
||||||
|
super(context);
|
||||||
|
|
||||||
|
+ mFullGreen = new ImageView(context) {
|
||||||
|
+ @Override
|
||||||
|
+ protected void onDraw(Canvas canvas) {
|
||||||
|
+ super.onDraw(canvas);
|
||||||
|
+ canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), mPaintFingerprint);
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ mWM = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
|
||||||
|
+ mDM = (DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE);
|
||||||
|
+
|
||||||
|
android.util.Log.d("PHH", "Samsung FOD " + samsungFod);
|
||||||
|
|
||||||
|
mHandlerThread = new HandlerThread("FacolaThread");
|
||||||
|
mHandlerThread.start();
|
||||||
|
mHandler = new Handler(mHandlerThread.getLooper());
|
||||||
|
|
||||||
|
- noDim = android.os.SystemProperties.getBoolean("persist.sys.phh.nodim", false);
|
||||||
|
+ noDim = android.os.SystemProperties.getBoolean("persist.sys.phh.nodim", true);
|
||||||
|
String[] location = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
if(location.length != 2)
|
||||||
|
location = android.os.SystemProperties.get("persist.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
@@ -94,13 +113,29 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mH = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ int oppoSize = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconsize", 0);
|
||||||
|
+ if(oppoSize > 0) {
|
||||||
|
+ mW = oppoSize;
|
||||||
|
+ mH = oppoSize;
|
||||||
|
+ }
|
||||||
|
+ int oppoLocation = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconlocation", 0);
|
||||||
|
+ if(oppoLocation > 0) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Got Oppo icon location " + oppoLocation);
|
||||||
|
+ Point p = new Point();
|
||||||
|
+ mDM.getDisplay(0).getRealSize(p);
|
||||||
|
+ Slog.d("PHH-Enroll", "\tscreen size " + p.x + ", " + p.y);
|
||||||
|
+ mX = p.x/2 - mW/2;
|
||||||
|
+ mY = p.y - mH/2 - oppoLocation;
|
||||||
|
+ Slog.d("PHH-Enroll", "\tfacola at " + mX + ", " + mY);
|
||||||
|
+ noDim = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
mPaintFingerprint.setAntiAlias(true);
|
||||||
|
mPaintFingerprint.setColor(Color.GREEN);
|
||||||
|
|
||||||
|
mPaintShow.setAntiAlias(true);
|
||||||
|
mPaintShow.setColor(Color.argb(0x18, 0x00, 0xff, 0x00));
|
||||||
|
setOnTouchListener(this);
|
||||||
|
- mWM = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
|
||||||
|
Slog.d("PHH-Enroll", "Created facola...");
|
||||||
|
if(mW != -1) {
|
||||||
|
try {
|
||||||
|
@@ -118,6 +153,17 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed getting samsung fingerprint service", e);
|
||||||
|
}
|
||||||
|
+ try {
|
||||||
|
+ mOppoFingerprint = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting oppo fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if(mX != -1) {
|
||||||
|
+ android.os.SystemProperties.set("persist.sys.phh.has_fod", "true");
|
||||||
|
+ } else {
|
||||||
|
+ android.os.SystemProperties.set("persist.sys.phh.has_fod", "false");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -143,21 +189,53 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
//TODO w!=h?
|
||||||
|
if(mInsideCircle) {
|
||||||
|
try {
|
||||||
|
- int nitValue = 2;
|
||||||
|
- if(mXiaomiFingerprint != null) {
|
||||||
|
- mXiaomiFingerprint.extCmd(0xa, nitValue);
|
||||||
|
- } else if(mGoodixFingerprint != null) {
|
||||||
|
- mGoodixFingerprint.goodixExtendCommand(10, 1);
|
||||||
|
- } else if(mSamsungFingerprint != null) {
|
||||||
|
- mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 2 /* pressed */, new java.util.ArrayList<Byte>(),
|
||||||
|
- (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ mParamsTouched.x = mX;
|
||||||
|
+ mParamsTouched.y = mY;
|
||||||
|
+
|
||||||
|
+ mParamsTouched.height = mW;
|
||||||
|
+ mParamsTouched.width = mH;
|
||||||
|
+ mParamsTouched.format = PixelFormat.TRANSLUCENT;
|
||||||
|
+
|
||||||
|
+ mParamsTouched.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
|
||||||
|
+ mParamsTouched.setTitle("Fingerprint on display.touched");
|
||||||
|
+ mParamsTouched.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
|
||||||
|
+ WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
|
||||||
|
+ mParamsTouched.dimAmount = UNTOUCHED_DIM;
|
||||||
|
+ if(!noDim) {
|
||||||
|
+ mParamsTouched.dimAmount = TOUCHED_DIM;
|
||||||
|
+ mParamsTouched.screenBrightness = 1.0f;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ mParamsTouched.packageName = "android";
|
||||||
|
+
|
||||||
|
+ mParamsTouched.gravity = Gravity.TOP | Gravity.LEFT;
|
||||||
|
+ if(!mFullGreenDisplayed && !mHidden) {
|
||||||
|
+ mHandler.post( () -> {
|
||||||
|
+ Slog.d("PHH-Enroll", "Adding full green because of finger pressed");
|
||||||
|
+ mFullGreenDisplayed = true;
|
||||||
|
+ mWM.addView(mFullGreen, mParamsTouched);
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ int nitValue = 2;
|
||||||
|
+ mHandler.postDelayed( () -> {
|
||||||
|
+ try {
|
||||||
|
+ if(mXiaomiFingerprint != null) {
|
||||||
|
+ mXiaomiFingerprint.extCmd(0xa, nitValue);
|
||||||
|
+ } else if(mGoodixFingerprint != null) {
|
||||||
|
+ mGoodixFingerprint.goodixExtendCommand(10, 1);
|
||||||
|
+ } else if(mSamsungFingerprint != null) {
|
||||||
|
+ mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 2 /* pressed */, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ }
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed calling late fp extcmd", e);
|
||||||
|
+ }
|
||||||
|
+ }, 200);
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
|
||||||
|
}
|
||||||
|
oppoPress(true);
|
||||||
|
-
|
||||||
|
- canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), this.mPaintFingerprint);
|
||||||
|
} else {
|
||||||
|
oppoPress(false);
|
||||||
|
try {
|
||||||
|
@@ -172,8 +250,15 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
|
||||||
|
}
|
||||||
|
- canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), this.mPaintShow);
|
||||||
|
+ if(mFullGreenDisplayed) {
|
||||||
|
+ mHandler.post( () -> {
|
||||||
|
+ Slog.d("PHH-Enroll", "Removing full green because of finger released");
|
||||||
|
+ mFullGreenDisplayed = false;
|
||||||
|
+ mWM.removeView(mFullGreen);
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
+ canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), this.mPaintShow);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@@ -211,7 +296,15 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
Slog.d("PHH-Enroll", "Show", new Exception());
|
||||||
|
if(!mHidden) return;
|
||||||
|
mHidden = false;
|
||||||
|
+ if(mOppoFingerprint != null) {
|
||||||
|
+ try {
|
||||||
|
+ mOppoFingerprint.setScreenState(vendor.oppo.hardware.biometrics.fingerprint.V2_1.FingerprintScreenState.FINGERPRINT_SCREEN_ON);
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed setting oppo screen state", e);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
mInsideCircle = false;
|
||||||
|
+ writeFile("/sys/kernel/oppo_display/dimlayer_hbm", "1");
|
||||||
|
if(samsungFod) {
|
||||||
|
samsungCmd("fod_enable,1,1");
|
||||||
|
}
|
||||||
|
@@ -254,7 +347,20 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mInsideCircle = false;
|
||||||
|
Slog.d("PHH-Enroll", "Hide", new Exception());
|
||||||
|
if(mHidden) return;
|
||||||
|
+ if(mOppoFingerprint != null) {
|
||||||
|
+ try {
|
||||||
|
+ mOppoFingerprint.setScreenState(vendor.oppo.hardware.biometrics.fingerprint.V2_1.FingerprintScreenState.FINGERPRINT_SCREEN_ON);
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed setting oppo screen state", e);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ writeFile("/sys/kernel/oppo_display/dimlayer_hbm", "0");
|
||||||
|
mHidden = true;
|
||||||
|
+ if(mFullGreenDisplayed) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Removing full green because of hide");
|
||||||
|
+ mFullGreenDisplayed = false;
|
||||||
|
+ mWM.removeView(mFullGreen);
|
||||||
|
+ }
|
||||||
|
if(samsungFod) {
|
||||||
|
samsungCmd("fod_enable,0");
|
||||||
|
}
|
||||||
|
@@ -325,4 +431,14 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private static void writeFile(String path, String value) {
|
||||||
|
+ try {
|
||||||
|
+ PrintWriter writer = new PrintWriter(path, "UTF-8");
|
||||||
|
+ writer.println(value);
|
||||||
|
+ writer.close();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ android.util.Log.d("PHH", "Failed writing to " + path + ": " + value);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
From b071b7633f20b176aee53cbf8baed331a2483019 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||||
|
Date: Mon, 30 Mar 2020 10:07:00 +0000
|
||||||
|
Subject: [PATCH 49/58] Support Huawei light HAL
|
||||||
|
|
||||||
|
For https://github.com/phhusson/treble_experimentations/issues/1204
|
||||||
|
|
||||||
|
Change-Id: I719a13eb66a46703b7ff0e00113f9b98b3244996
|
||||||
|
---
|
||||||
|
services/core/jni/Android.bp | 1 +
|
||||||
|
...om_android_server_lights_LightsService.cpp | 30 +++++++++++++++++++
|
||||||
|
2 files changed, 31 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
|
||||||
|
index 8f44be480c9..2bc6a15129f 100644
|
||||||
|
--- a/services/core/jni/Android.bp
|
||||||
|
+++ b/services/core/jni/Android.bp
|
||||||
|
@@ -138,6 +138,7 @@ cc_defaults {
|
||||||
|
"vendor.samsung.hardware.miscpower@2.0",
|
||||||
|
"vendor.samsung.hardware.light@2.0",
|
||||||
|
"vendor.samsung.hardware.light@3.0",
|
||||||
|
+ "vendor.huawei.hardware.light@2.0",
|
||||||
|
],
|
||||||
|
|
||||||
|
static_libs: [
|
||||||
|
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
|
index dedc7734131..7c2a0b6203d 100644
|
||||||
|
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
|
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||||
|
@@ -27,6 +27,7 @@
|
||||||
|
#include <vendor/samsung/hardware/light/2.0/types.h>
|
||||||
|
#include <vendor/samsung/hardware/light/3.0/ISehLight.h>
|
||||||
|
#include <vendor/samsung/hardware/light/3.0/types.h>
|
||||||
|
+#include <vendor/huawei/hardware/light/2.0/ILight.h>
|
||||||
|
#include <android-base/chrono_utils.h>
|
||||||
|
#include <utils/misc.h>
|
||||||
|
#include <utils/Log.h>
|
||||||
|
@@ -49,11 +50,15 @@ using SecType = ::vendor::samsung::hardware::light::V2_0::SecType;
|
||||||
|
using ISehLight = ::vendor::samsung::hardware::light::V3_0::ISehLight;
|
||||||
|
using SehType = ::vendor::samsung::hardware::light::V3_0::SehType;
|
||||||
|
using SehLightState = ::vendor::samsung::hardware::light::V3_0::SehLightState;
|
||||||
|
+using ILightHw = ::vendor::huawei::hardware::light::V2_0::ILight;
|
||||||
|
+using LightStateHw = ::android::hardware::light::V2_0::LightState;
|
||||||
|
static bool sLightSupported = true;
|
||||||
|
|
||||||
|
static sp<ISecLight> sSecHal;
|
||||||
|
static sp<ISehLight> sSehHal;
|
||||||
|
static bool sSecTried = false;
|
||||||
|
+static sp<ILightHw> sHwHal;
|
||||||
|
+static bool sHwTried = false;
|
||||||
|
|
||||||
|
static bool validate(jint light, jint flash, jint brightness) {
|
||||||
|
bool valid = true;
|
||||||
|
@@ -204,6 +209,31 @@ static void setLight_native(
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!sHwTried) {
|
||||||
|
+ sHwHal = ILightHw::getService();
|
||||||
|
+ //sHwTried = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (sHwHal != nullptr && light == 0) {
|
||||||
|
+ ALOGE("sHwHal triggered!");
|
||||||
|
+ int brightness = colorARGB & 0xff;
|
||||||
|
+ int hwBrightness = brightness << 4;
|
||||||
|
+ LightState state = constructState(hwBrightness, flashMode, onMS, offMS, brightnessMode);
|
||||||
|
+ bool got260 = false;
|
||||||
|
+ sHwHal->HWgetSupportedTypes([&](auto types) {
|
||||||
|
+ for (const auto& type: types) {
|
||||||
|
+ if (type == 260) {
|
||||||
|
+ ALOGE("sHwHal reports 260 as a supported type");
|
||||||
|
+ got260 = true;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ });
|
||||||
|
+ if (got260) {
|
||||||
|
+ sHwHal->HWsetLight(260, state);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
Type type = static_cast<Type>(light);
|
||||||
|
LightState state = constructState(
|
||||||
|
colorARGB, flashMode, onMS, offMS, brightnessMode);
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
From fe62d8d4d08605687312ca28f722978191e4ac41 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Sun, 5 Apr 2020 16:32:46 +0200
|
||||||
|
Subject: [PATCH 50/58] Always allow overriding the number of work profiles
|
||||||
|
|
||||||
|
---
|
||||||
|
.../java/com/android/server/pm/UserManagerService.java | 10 ++--------
|
||||||
|
1 file changed, 2 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
|
||||||
|
index 82bc41fcdcd..4a3da73cf42 100644
|
||||||
|
--- a/services/core/java/com/android/server/pm/UserManagerService.java
|
||||||
|
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
|
||||||
|
@@ -4438,14 +4438,8 @@ public class UserManagerService extends IUserManager.Stub {
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
static int getMaxManagedProfiles() {
|
||||||
|
- // Allow overriding max managed profiles on debuggable builds for testing
|
||||||
|
- // of multiple profiles.
|
||||||
|
- if (!Build.IS_DEBUGGABLE) {
|
||||||
|
- return MAX_MANAGED_PROFILES;
|
||||||
|
- } else {
|
||||||
|
- return SystemProperties.getInt("persist.sys.max_profiles",
|
||||||
|
- MAX_MANAGED_PROFILES);
|
||||||
|
- }
|
||||||
|
+ return SystemProperties.getInt("persist.sys.max_profiles",
|
||||||
|
+ MAX_MANAGED_PROFILES);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GuardedBy("mUsersLock")
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
From 7a5d752d18a11b7a64e13879cdf42235bcd54237 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Thu, 9 Apr 2020 22:57:47 +0200
|
||||||
|
Subject: [PATCH 51/58] Additional fod command for non-optical samsung devices
|
||||||
|
running Q vendor
|
||||||
|
|
||||||
|
---
|
||||||
|
.../com/android/server/biometrics/fingerprint/FacolaView.java | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index 42f21d63430..a87f7e78af4 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -307,6 +307,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
writeFile("/sys/kernel/oppo_display/dimlayer_hbm", "1");
|
||||||
|
if(samsungFod) {
|
||||||
|
samsungCmd("fod_enable,1,1");
|
||||||
|
+ samsungCmd("fod_enable,1,1,0");
|
||||||
|
}
|
||||||
|
if(mX == -1 || mY == -1 || mW == -1 || mH == -1) return;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
From d12f98cc2bde44b689cd4be62ba6e7d1b9fc8d9e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Wed, 20 May 2020 17:28:26 +0200
|
||||||
|
Subject: [PATCH 52/58] Add a backlight listener, to be used by FOD to properly
|
||||||
|
set dim
|
||||||
|
|
||||||
|
---
|
||||||
|
.../core/java/com/android/server/lights/LightsService.java | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
|
index f9ac8db09ea..6b0dbc336bb 100644
|
||||||
|
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||||
|
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||||
|
@@ -31,10 +31,14 @@ import android.view.SurfaceControl;
|
||||||
|
import com.android.server.SystemService;
|
||||||
|
|
||||||
|
public class LightsService extends SystemService {
|
||||||
|
+ public interface OnBacklightChange {
|
||||||
|
+ void onBacklightChange(int newBacklight);
|
||||||
|
+ }
|
||||||
|
static final String TAG = "LightsService";
|
||||||
|
static final boolean DEBUG = false;
|
||||||
|
|
||||||
|
final LightImpl mLights[] = new LightImpl[LightsManager.LIGHT_ID_COUNT];
|
||||||
|
+ public static OnBacklightChange backlightChangeListener;
|
||||||
|
|
||||||
|
private final class LightImpl extends Light {
|
||||||
|
|
||||||
|
@@ -92,6 +96,7 @@ public class LightsService extends SystemService {
|
||||||
|
(float) brightness / mSurfaceControlMaximumBrightness);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
+ if(mId == 0 && backlightChangeListener != null) backlightChangeListener.onBacklightChange(brightness);
|
||||||
|
|
||||||
|
if(mId == 0) {
|
||||||
|
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
From 84c844aca01d2a838ae19be6b7961811852fa31f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Wed, 20 May 2020 17:39:50 +0200
|
||||||
|
Subject: [PATCH 53/58] Don't show facola on preenroll, wait for enroll
|
||||||
|
|
||||||
|
---
|
||||||
|
.../server/biometrics/fingerprint/FingerprintService.java | 4 +---
|
||||||
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
|
index 1323c5ec0dd..c53607786df 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
|
||||||
|
@@ -176,7 +176,6 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
|
@Override
|
||||||
|
public boolean onAcquired(int acquiredInfo, int vendorCode) {
|
||||||
|
boolean result = super.onAcquired(acquiredInfo, vendorCode);
|
||||||
|
- android.util.Log.d("PHH-Enroll", "acquired ret " + result);
|
||||||
|
if(result) mFacola.hide();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
@@ -185,7 +184,6 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
|
public boolean onAuthenticated(BiometricAuthenticator.Identifier identifier,
|
||||||
|
boolean authenticated, ArrayList<Byte> token) {
|
||||||
|
boolean result = super.onAuthenticated(identifier, authenticated, token);
|
||||||
|
- android.util.Log.d("PHH-Enroll", "auth-ed ret " + result);
|
||||||
|
if(result) mFacola.hide();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
@@ -744,6 +742,7 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
|
Slog.w(TAG, "enroll(): no fingerprint HAL!");
|
||||||
|
return ERROR_ESRCH;
|
||||||
|
}
|
||||||
|
+ mFacola.show();
|
||||||
|
return daemon.enroll(cryptoToken, groupId, timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -990,7 +989,6 @@ public class FingerprintService extends BiometricServiceBase {
|
||||||
|
Slog.w(TAG, "startPreEnroll: no fingerprint HAL!");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
- mFacola.show();
|
||||||
|
try {
|
||||||
|
return daemon.preEnroll();
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,531 @@
|
|||||||
|
From 5528cf273e0e2e4b33ad5202a494ebc4018216ae Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Wed, 20 May 2020 21:17:58 +0200
|
||||||
|
Subject: [PATCH 54/58] Add support for new Goodix, Samsung, Xiaomi FODs
|
||||||
|
|
||||||
|
- Xiaomi on MIUI12 has new magical Z to trigger HBM, and trigger feedback. Dim layer is done by kernel, but we need to set alpha
|
||||||
|
- Samsung has usageBits to trigger HBM and trigger feedback
|
||||||
|
- Goodix has nothing specific just send events
|
||||||
|
---
|
||||||
|
services/core/Android.bp | 2 +
|
||||||
|
.../biometrics/fingerprint/FacolaView.java | 323 +++++++++++++++---
|
||||||
|
2 files changed, 285 insertions(+), 40 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/Android.bp b/services/core/Android.bp
|
||||||
|
index 334d0d04067..8dcb4396953 100644
|
||||||
|
--- a/services/core/Android.bp
|
||||||
|
+++ b/services/core/Android.bp
|
||||||
|
@@ -56,7 +56,9 @@ java_library_static {
|
||||||
|
"netd_aidl_interface-V2-java",
|
||||||
|
"netd_event_listener_interface-java",
|
||||||
|
"vendor.goodix.extend.service-V2.0-java",
|
||||||
|
+ "vendor.goodix.hardware.biometrics.fingerprint-V2.1-java",
|
||||||
|
"vendor.samsung.hardware.biometrics.fingerprint-V2.1-java",
|
||||||
|
+ "vendor.samsung.hardware.biometrics.fingerprint-V3.0-java",
|
||||||
|
"vendor.oppo.hardware.biometrics.fingerprint-V2.1-java",
|
||||||
|
"vendor.xiaomi.hardware.fingerprintextension-V1.0-java",
|
||||||
|
],
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index a87f7e78af4..d3d58aff6c0 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -35,30 +35,38 @@ import java.io.BufferedReader;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
+import java.util.Arrays;
|
||||||
|
|
||||||
|
import vendor.xiaomi.hardware.fingerprintextension.V1_0.IXiaomiFingerprint;
|
||||||
|
import vendor.goodix.extend.service.V2_0.IGoodixFPExtendService;
|
||||||
|
import vendor.samsung.hardware.biometrics.fingerprint.V2_1.ISecBiometricsFingerprint;
|
||||||
|
+import vendor.samsung.hardware.biometrics.fingerprint.V3_0.ISehBiometricsFingerprint;
|
||||||
|
|
||||||
|
import android.hardware.display.DisplayManager;
|
||||||
|
|
||||||
|
+import android.os.Build;
|
||||||
|
+import android.os.FileObserver;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.HandlerThread;
|
||||||
|
import android.os.ServiceManager;
|
||||||
|
|
||||||
|
+import android.util.DisplayMetrics;
|
||||||
|
+
|
||||||
|
public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
private int mX, mY, mW, mH;
|
||||||
|
private final Paint mPaintFingerprint = new Paint();
|
||||||
|
private final Paint mPaintShow = new Paint();
|
||||||
|
private IXiaomiFingerprint mXiaomiFingerprint = null;
|
||||||
|
private IGoodixFPExtendService mGoodixFingerprint = null;
|
||||||
|
+ private vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon mGoodixFingerprintV2_1 = null;
|
||||||
|
private ISecBiometricsFingerprint mSamsungFingerprint = null;
|
||||||
|
+ private ISehBiometricsFingerprint mSamsungFingerprint3_0 = null;
|
||||||
|
private vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint mOppoFingerprint = null;
|
||||||
|
private boolean mInsideCircle = false;
|
||||||
|
private final WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
|
||||||
|
private final WindowManager.LayoutParams mParamsTouched = new WindowManager.LayoutParams();
|
||||||
|
|
||||||
|
- private final static float UNTOUCHED_DIM = .1f;
|
||||||
|
+ private final static float UNTOUCHED_DIM = .0f;
|
||||||
|
private final static float TOUCHED_DIM = .9f;
|
||||||
|
|
||||||
|
private final HandlerThread mHandlerThread;
|
||||||
|
@@ -68,10 +76,17 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
private final DisplayManager mDM;
|
||||||
|
private final boolean samsungFod = samsungHasCmd("fod_enable");
|
||||||
|
private boolean noDim;
|
||||||
|
+ private boolean bypassedBrightness;
|
||||||
|
+ private boolean isDown = false;
|
||||||
|
+
|
||||||
|
+ private java.util.ArrayList<Object> objectsToKeep = new java.util.ArrayList();
|
||||||
|
+
|
||||||
|
+ private static boolean doneCalibrationOnce = true;
|
||||||
|
|
||||||
|
private boolean mFullGreenDisplayed = false;
|
||||||
|
private final View mFullGreen;
|
||||||
|
private boolean mHidden = true;
|
||||||
|
+ private boolean xiaomiAsynchronous = false;
|
||||||
|
FacolaView(Context context) {
|
||||||
|
super(context);
|
||||||
|
|
||||||
|
@@ -86,13 +101,18 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mWM = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
|
||||||
|
mDM = (DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE);
|
||||||
|
|
||||||
|
+ Point displayRealSize = new Point();
|
||||||
|
+ DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||||
|
+ mDM.getDisplay(0).getRealSize(displayRealSize);
|
||||||
|
+ mDM.getDisplay(0).getMetrics(displayMetrics);
|
||||||
|
+
|
||||||
|
android.util.Log.d("PHH", "Samsung FOD " + samsungFod);
|
||||||
|
|
||||||
|
mHandlerThread = new HandlerThread("FacolaThread");
|
||||||
|
mHandlerThread.start();
|
||||||
|
mHandler = new Handler(mHandlerThread.getLooper());
|
||||||
|
|
||||||
|
- noDim = android.os.SystemProperties.getBoolean("persist.sys.phh.nodim", true);
|
||||||
|
+ noDim = android.os.SystemProperties.getBoolean("persist.sys.phh.nodim", false);
|
||||||
|
String[] location = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
if(location.length != 2)
|
||||||
|
location = android.os.SystemProperties.get("persist.sys.fp.fod.location.X_Y", "").split(",");
|
||||||
|
@@ -107,12 +127,25 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mW = Integer.parseInt(size[0]);
|
||||||
|
mH = Integer.parseInt(size[1]);
|
||||||
|
} else {
|
||||||
|
+ //a50
|
||||||
|
+ //mX = -1;//443;// - 190/2;
|
||||||
|
+ //mY = -1;// 1972;// - 190 / 2;
|
||||||
|
+ //mW = -1;//190;
|
||||||
|
+ //mH = -1;//190;
|
||||||
|
+
|
||||||
|
+ //x2 pro
|
||||||
|
+ //mX = 445;// - 190/2;
|
||||||
|
+ //mY = 1988;// - 190/2;
|
||||||
|
+ //mW = 190;
|
||||||
|
+ //mH = 190;
|
||||||
|
mX = -1;
|
||||||
|
mY = -1;
|
||||||
|
mW = -1;
|
||||||
|
mH = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ mParamsTouched.dimAmount = 0;
|
||||||
|
+
|
||||||
|
int oppoSize = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconsize", 0);
|
||||||
|
if(oppoSize > 0) {
|
||||||
|
mW = oppoSize;
|
||||||
|
@@ -121,15 +154,16 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
int oppoLocation = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconlocation", 0);
|
||||||
|
if(oppoLocation > 0) {
|
||||||
|
Slog.d("PHH-Enroll", "Got Oppo icon location " + oppoLocation);
|
||||||
|
- Point p = new Point();
|
||||||
|
- mDM.getDisplay(0).getRealSize(p);
|
||||||
|
- Slog.d("PHH-Enroll", "\tscreen size " + p.x + ", " + p.y);
|
||||||
|
- mX = p.x/2 - mW/2;
|
||||||
|
- mY = p.y - mH/2 - oppoLocation;
|
||||||
|
+ Slog.d("PHH-Enroll", "\tscreen size " + displayRealSize.x + ", " + displayRealSize.y);
|
||||||
|
+ mX = displayRealSize.x/2 - mW/2;
|
||||||
|
+ mY = displayRealSize.y - mH/2 - oppoLocation;
|
||||||
|
Slog.d("PHH-Enroll", "\tfacola at " + mX + ", " + mY);
|
||||||
|
noDim = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ String gammaStr = android.os.SystemProperties.get("persist.sys.phh.fod.gamma", "2.2");
|
||||||
|
+ float gamma = Float.parseFloat(gammaStr);
|
||||||
|
+
|
||||||
|
mPaintFingerprint.setAntiAlias(true);
|
||||||
|
mPaintFingerprint.setColor(Color.GREEN);
|
||||||
|
|
||||||
|
@@ -148,11 +182,21 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed getting goodix fingerprint service", e);
|
||||||
|
}
|
||||||
|
+ try {
|
||||||
|
+ mGoodixFingerprintV2_1 = vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting goodix2 fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
try {
|
||||||
|
mSamsungFingerprint = ISecBiometricsFingerprint.getService();
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed getting samsung fingerprint service", e);
|
||||||
|
}
|
||||||
|
+ try {
|
||||||
|
+ mSamsungFingerprint3_0 = ISehBiometricsFingerprint.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting samsung 3.0 fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
try {
|
||||||
|
mOppoFingerprint = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||||
|
} catch(Exception e) {
|
||||||
|
@@ -160,13 +204,154 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if(mSamsungFingerprint3_0 != null || mSamsungFingerprint != null) {
|
||||||
|
+ noDim = true;
|
||||||
|
+ bypassedBrightness = true;
|
||||||
|
+
|
||||||
|
+ String fodPositionString = readFile("/sys/class/fingerprint/fingerprint/position");
|
||||||
|
+ final String brightnessFile;
|
||||||
|
+ if("qcom".equals(Build.HARDWARE))
|
||||||
|
+ brightnessFile = "/sys/class/backlight/panel0-backlight/brightness";
|
||||||
|
+ else
|
||||||
|
+ brightnessFile = "/sys/class/lcd/panel/device/backlight/panel/brightness";
|
||||||
|
+
|
||||||
|
+ String maskBrightnessStr = readFile("/sys/class/lcd/panel/mask_brightness");
|
||||||
|
+ String actualMaskBrightnessPath = "/sys/class/lcd/panel/actual_mask_brightness";
|
||||||
|
+
|
||||||
|
+ if(fodPositionString != null && maskBrightnessStr != null) {
|
||||||
|
+ double maskBrightness = Double.parseDouble(maskBrightnessStr);
|
||||||
|
+ String[] fodPositionArray = readFile("/sys/class/fingerprint/fingerprint/position").split(",");
|
||||||
|
+ float bottomMM = Float.parseFloat(fodPositionArray[0]);
|
||||||
|
+ float areaSizeMM = Float.parseFloat(fodPositionArray[5]);
|
||||||
|
+
|
||||||
|
+ float bottomInch = bottomMM * 0.0393700787f;
|
||||||
|
+ float areaSizeInch = areaSizeMM * 0.0393700787f;
|
||||||
|
+
|
||||||
|
+ int bottomPx = (int)(bottomInch * displayMetrics.ydpi);
|
||||||
|
+ int areaSizePx = (int)(areaSizeInch * displayMetrics.ydpi);
|
||||||
|
+ mW = areaSizePx;
|
||||||
|
+ mH = areaSizePx;
|
||||||
|
+ mX = displayRealSize.x/2 - mW/2;
|
||||||
|
+ mY = displayRealSize.y - bottomPx - mH;
|
||||||
|
+ Slog.d("PHH-Enroll", "Samsung computed " + mX + "," + mY + "; " + mW + "x" + mH);
|
||||||
|
+
|
||||||
|
+ String cmd = String.format("fod_rect,%d,%d,%d,%d", mX, mY, mX+mW, mY+mH);
|
||||||
|
+ samsungCmd(cmd);
|
||||||
|
+
|
||||||
|
+ Slog.d("PHH-Enroll", "Reading brightness file gives " + readFile(brightnessFile));
|
||||||
|
+ FileObserver samsungCallback = new FileObserver(brightnessFile, FileObserver.MODIFY) {
|
||||||
|
+ //Don't use LightsService' observer, because Samsung's brightness file is in nits, which makes for much more accurate computation
|
||||||
|
+ @Override
|
||||||
|
+ public void onEvent(int event, String path) {
|
||||||
|
+ String currentBrightnessStr = readFile(brightnessFile);
|
||||||
|
+ Slog.d("PHH-Enroll", "New brightness is " + currentBrightnessStr);
|
||||||
|
+ int currentBrightness = Integer.parseInt(currentBrightnessStr);
|
||||||
|
+
|
||||||
|
+ mHandler.post( () -> {
|
||||||
|
+ double dim = 1.0d - Math.pow( (currentBrightness / maskBrightness), 1/gamma);
|
||||||
|
+ Slog.d("PHH-Enroll", "Setting dim to " + dim);
|
||||||
|
+ mParamsTouched.dimAmount = (float)dim;
|
||||||
|
+ if(!mHidden) {
|
||||||
|
+ Slog.d("PHH-Enroll", "++Setting dim to " + dim);
|
||||||
|
+ if(mFullGreenDisplayed && !mHidden) {
|
||||||
|
+ mWM.updateViewLayout(mFullGreen, mParamsTouched);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+ };
|
||||||
|
+ samsungCallback.startWatching();
|
||||||
|
+ objectsToKeep.add(samsungCallback);
|
||||||
|
+
|
||||||
|
+ Slog.d("PHH-Enroll", "Reading actual brightness file gives " + readFile(actualMaskBrightnessPath));
|
||||||
|
+ FileObserver actualMaskObserver = new FileObserver(actualMaskBrightnessPath, FileObserver.MODIFY) {
|
||||||
|
+ @Override
|
||||||
|
+ public void onEvent(int event, String path) {
|
||||||
|
+ String actualMask = readFile(actualMaskBrightnessPath);
|
||||||
|
+ Slog.d("PHH-Enroll", "New actual mask brightness is " + actualMask);
|
||||||
|
+ try {
|
||||||
|
+ int eventReq = 0;
|
||||||
|
+ if("0".equals(actualMask)) {
|
||||||
|
+ eventReq = 1; //released
|
||||||
|
+ } else {
|
||||||
|
+ eventReq = 2; //pressed
|
||||||
|
+ }
|
||||||
|
+ if(mSamsungFingerprint != null) {
|
||||||
|
+ mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, eventReq, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ } else if(mSamsungFingerprint3_0 != null) {
|
||||||
|
+ mSamsungFingerprint3_0.sehRequest(22 /* SEM_FINGER_STATE */, eventReq, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ }
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed setting samsung event for mask observer", e);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ };
|
||||||
|
+ actualMaskObserver.startWatching();
|
||||||
|
+ objectsToKeep.add(actualMaskObserver);
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ String xiaomiFodReadyPath = "/sys/class/drm/card0-DSI-1/fod_ui_ready";
|
||||||
|
+ if(new File(xiaomiFodReadyPath).exists()) {
|
||||||
|
+ xiaomiAsynchronous = true;
|
||||||
|
+ FileObserver xiaomiUiReadyCb = new FileObserver(xiaomiFodReadyPath, FileObserver.MODIFY) {
|
||||||
|
+ @Override
|
||||||
|
+ public void onEvent(int event, String path) {
|
||||||
|
+ String currentUiReady = readFile(xiaomiFodReadyPath);
|
||||||
|
+ Slog.d("PHH-Enroll", "New fod ready is " + currentUiReady);
|
||||||
|
+
|
||||||
|
+ mHandler.post( () -> {
|
||||||
|
+ try {
|
||||||
|
+ if("0".equals(currentUiReady)) {
|
||||||
|
+ mXiaomiFingerprint.extCmd(0xa, 0);
|
||||||
|
+ } else if("1".equals(currentUiReady)) {
|
||||||
|
+ mXiaomiFingerprint.extCmd(0xa, 1);
|
||||||
|
+ }
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed Xiaomi async extcmd", e);
|
||||||
|
+ }
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+ };
|
||||||
|
+ xiaomiUiReadyCb.startWatching();
|
||||||
|
+ objectsToKeep.add(xiaomiUiReadyCb);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if(mX != -1) {
|
||||||
|
android.os.SystemProperties.set("persist.sys.phh.has_fod", "true");
|
||||||
|
} else {
|
||||||
|
android.os.SystemProperties.set("persist.sys.phh.has_fod", "false");
|
||||||
|
}
|
||||||
|
+ com.android.server.lights.LightsService.backlightChangeListener = new com.android.server.lights.LightsService.OnBacklightChange() {
|
||||||
|
+ public void onBacklightChange(int brightness) {
|
||||||
|
+ //Simple (but wrong) math assuming 255 is max brightness with 2.2 screen gamma and linear backlight
|
||||||
|
+ double dim = (1.0 - Math.pow(brightness/255.0, 1/gamma));
|
||||||
|
+
|
||||||
|
+ int alpha = (int)(255.0*dim);
|
||||||
|
+ Slog.d("PHH-Enroll", "Setting Xiaomi dim alpha to " + alpha + ", from " + brightness);
|
||||||
|
+ writeFile("/sys/class/drm/card0-DSI-1/dim_alpha", Integer.toString(alpha));
|
||||||
|
+
|
||||||
|
+ mHandler.post( () -> {
|
||||||
|
+ if(!noDim) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Setting dim to " + dim);
|
||||||
|
+ mParams.dimAmount = (float)dim;
|
||||||
|
+ if(!mHidden) {
|
||||||
|
+ Slog.d("PHH-Enroll", "++Setting dim to " + dim);
|
||||||
|
+ mWM.updateViewLayout(FacolaView.this, mParams);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ bypassedBrightness = hbmCtrl1.exists() || noDim;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private final File hbmCtrl1 = new File("/proc/leds/hbm_mode");
|
||||||
|
+
|
||||||
|
private final File oppoFod = new File("/sys/kernel/oppo_display/notify_fppress");
|
||||||
|
private void oppoPress(boolean pressed) {
|
||||||
|
if(!oppoFod.exists()) return;
|
||||||
|
@@ -199,11 +384,14 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mParamsTouched.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
|
||||||
|
mParamsTouched.setTitle("Fingerprint on display.touched");
|
||||||
|
mParamsTouched.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
|
||||||
|
- WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
|
||||||
|
- mParamsTouched.dimAmount = UNTOUCHED_DIM;
|
||||||
|
+ WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
|
||||||
|
+ WindowManager.LayoutParams.FLAG_DIM_BEHIND;
|
||||||
|
+ writeFile(hbmCtrl1, "1");
|
||||||
|
if(!noDim) {
|
||||||
|
- mParamsTouched.dimAmount = TOUCHED_DIM;
|
||||||
|
mParamsTouched.screenBrightness = 1.0f;
|
||||||
|
+ if(!bypassedBrightness) {
|
||||||
|
+ mParamsTouched.screenBrightness = 1.0f;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
mParamsTouched.packageName = "android";
|
||||||
|
@@ -216,39 +404,52 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mWM.addView(mFullGreen, mParamsTouched);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- int nitValue = 2;
|
||||||
|
- mHandler.postDelayed( () -> {
|
||||||
|
- try {
|
||||||
|
- if(mXiaomiFingerprint != null) {
|
||||||
|
+ if(!isDown) {
|
||||||
|
+ isDown = true;
|
||||||
|
+ int nitValue = 2;
|
||||||
|
+ mHandler.postDelayed( () -> {
|
||||||
|
+ try {
|
||||||
|
+ if(mXiaomiFingerprint != null && !xiaomiAsynchronous) {
|
||||||
|
mXiaomiFingerprint.extCmd(0xa, nitValue);
|
||||||
|
- } else if(mGoodixFingerprint != null) {
|
||||||
|
+ } else if(mGoodixFingerprint != null) {
|
||||||
|
mGoodixFingerprint.goodixExtendCommand(10, 1);
|
||||||
|
- } else if(mSamsungFingerprint != null) {
|
||||||
|
- mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 2 /* pressed */, new java.util.ArrayList<Byte>(),
|
||||||
|
+ } else if(mGoodixFingerprintV2_1 != null) {
|
||||||
|
+ mGoodixFingerprintV2_1.sendCommand(0x600, new java.util.ArrayList<Byte>(),
|
||||||
|
(int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
- }
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed calling late fp extcmd", e);
|
||||||
|
- }
|
||||||
|
- }, 200);
|
||||||
|
+ }
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed calling late fp extcmd", e);
|
||||||
|
+ }
|
||||||
|
+ }, 200);
|
||||||
|
+ }
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
|
||||||
|
}
|
||||||
|
oppoPress(true);
|
||||||
|
} else {
|
||||||
|
+ writeFile(hbmCtrl1, "1");
|
||||||
|
oppoPress(false);
|
||||||
|
- try {
|
||||||
|
- if(mXiaomiFingerprint != null) {
|
||||||
|
- mXiaomiFingerprint.extCmd(0xa, 0);
|
||||||
|
- } else if(mGoodixFingerprint != null) {
|
||||||
|
- mGoodixFingerprint.goodixExtendCommand(10, 0);
|
||||||
|
- } else if(mSamsungFingerprint != null) {
|
||||||
|
- mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 1 /* released */, new java.util.ArrayList<Byte>(),
|
||||||
|
- (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ if(isDown) {
|
||||||
|
+ isDown = false;
|
||||||
|
+ try {
|
||||||
|
+ if(mXiaomiFingerprint != null && !xiaomiAsynchronous) {
|
||||||
|
+ mXiaomiFingerprint.extCmd(0xa, 0);
|
||||||
|
+ } else if(mGoodixFingerprint != null) {
|
||||||
|
+ mGoodixFingerprint.goodixExtendCommand(10, 0);
|
||||||
|
+ } else if(mGoodixFingerprintV2_1 != null) {
|
||||||
|
+ mGoodixFingerprintV2_1.sendCommand(0x601, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {});
|
||||||
|
+ } else if(mSamsungFingerprint != null) {
|
||||||
|
+ mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 1 /* released */, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ } else if(mSamsungFingerprint3_0 != null) {
|
||||||
|
+ mSamsungFingerprint3_0.sehRequest(22 /* SEM_FINGER_STATE */, 1 /* released */, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ }
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
|
||||||
|
}
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
|
||||||
|
+
|
||||||
|
}
|
||||||
|
if(mFullGreenDisplayed) {
|
||||||
|
mHandler.post( () -> {
|
||||||
|
@@ -278,7 +479,9 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
|
||||||
|
if(!mInsideCircle) {
|
||||||
|
mParams.screenBrightness = .0f;
|
||||||
|
- mParams.dimAmount = UNTOUCHED_DIM;
|
||||||
|
+ if(!noDim) {
|
||||||
|
+ mParams.dimAmount = UNTOUCHED_DIM;
|
||||||
|
+ }
|
||||||
|
mWM.updateViewLayout(this, mParams);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@@ -296,6 +499,34 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
Slog.d("PHH-Enroll", "Show", new Exception());
|
||||||
|
if(!mHidden) return;
|
||||||
|
mHidden = false;
|
||||||
|
+ try {
|
||||||
|
+ mSamsungFingerprint = ISecBiometricsFingerprint.getService();
|
||||||
|
+ mSamsungFingerprint.request(20 /* SEM_FINGER_STATE */, 0, 0 /* released */, new java.util.ArrayList<Byte>(),
|
||||||
|
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed setting fast fingerprint recognition");
|
||||||
|
+ }
|
||||||
|
+ try {
|
||||||
|
+ mSamsungFingerprint3_0 = ISehBiometricsFingerprint.getService();
|
||||||
|
+ Slog.d("PHH-Enroll", "Samsung ask for sensor status");
|
||||||
|
+ mSamsungFingerprint3_0.sehRequest(6, 0, new java.util.ArrayList(), (int retval, java.util.ArrayList<Byte> out) -> {
|
||||||
|
+ Slog.d("PHH-Enroll", "Result is " + retval);
|
||||||
|
+ for(int i=0; i<out.size(); i++) {
|
||||||
|
+ Slog.d("PHH-Enroll", "\t" + i + ":" + out.get(i));
|
||||||
|
+ }
|
||||||
|
+ } );
|
||||||
|
+ Slog.d("PHH-Enroll", "Samsung ask for sensor brightness value");
|
||||||
|
+ mSamsungFingerprint3_0.sehRequest(32, 0, new java.util.ArrayList(), (int retval, java.util.ArrayList<Byte> out) -> {
|
||||||
|
+ Slog.d("PHH-Enroll", "Result is " + retval);
|
||||||
|
+ for(int i=0; i<out.size(); i++) {
|
||||||
|
+ Slog.d("PHH-Enroll", "\t" + i + ":" + out.get(i));
|
||||||
|
+ }
|
||||||
|
+ } );
|
||||||
|
+
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed setting samsung3.0 fingerprint recognition", e);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if(mOppoFingerprint != null) {
|
||||||
|
try {
|
||||||
|
mOppoFingerprint.setScreenState(vendor.oppo.hardware.biometrics.fingerprint.V2_1.FingerprintScreenState.FINGERPRINT_SCREEN_ON);
|
||||||
|
@@ -327,13 +558,17 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mParams.format = PixelFormat.TRANSLUCENT;
|
||||||
|
|
||||||
|
mParams.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
|
||||||
|
- mParams.setTitle("Fingerprint on display");
|
||||||
|
+ mParams.setTitle("Fingerprint on display.untouched");
|
||||||
|
mParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
|
||||||
|
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH |
|
||||||
|
WindowManager.LayoutParams.FLAG_DIM_BEHIND |
|
||||||
|
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
|
||||||
|
- mParams.dimAmount = UNTOUCHED_DIM;
|
||||||
|
- mParams.screenBrightness = .0f;
|
||||||
|
+ if(!noDim) {
|
||||||
|
+ mParams.dimAmount = UNTOUCHED_DIM;
|
||||||
|
+ mParams.screenBrightness = .0f;
|
||||||
|
+ } else {
|
||||||
|
+ mParams.dimAmount = 0;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
mParams.packageName = "android";
|
||||||
|
|
||||||
|
@@ -370,8 +605,6 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
try {
|
||||||
|
if(mXiaomiFingerprint != null) {
|
||||||
|
mXiaomiFingerprint.extCmd(0xa, 0);
|
||||||
|
- } else if(mGoodixFingerprint != null) {
|
||||||
|
- mXiaomiFingerprint.extCmd(10, 0);
|
||||||
|
}
|
||||||
|
} catch(Exception e) {
|
||||||
|
Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd");
|
||||||
|
@@ -417,7 +650,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- private static void samsungCmd(String cmd) {
|
||||||
|
+ public static void samsungCmd(String cmd) {
|
||||||
|
try {
|
||||||
|
PrintWriter writer = new PrintWriter("/sys/devices/virtual/sec/tsp/cmd", "UTF-8");
|
||||||
|
writer.println(cmd);
|
||||||
|
@@ -442,4 +675,14 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private static void writeFile(File file, String value) {
|
||||||
|
+ try {
|
||||||
|
+ PrintWriter writer = new PrintWriter(file, "UTF-8");
|
||||||
|
+ writer.println(value);
|
||||||
|
+ writer.close();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ android.util.Log.d("PHH", "Failed writing to " + file + ": " + value);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
From 5bc5806b8570dcd25aae6bcb27926037a48855de Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Thu, 21 May 2020 16:12:42 +0200
|
||||||
|
Subject: [PATCH 55/58] On MIUI12 vendor, we don't want our own diming
|
||||||
|
|
||||||
|
---
|
||||||
|
.../com/android/server/biometrics/fingerprint/FacolaView.java | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index d3d58aff6c0..8afbbc0dce0 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -81,8 +81,6 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
|
||||||
|
private java.util.ArrayList<Object> objectsToKeep = new java.util.ArrayList();
|
||||||
|
|
||||||
|
- private static boolean doneCalibrationOnce = true;
|
||||||
|
-
|
||||||
|
private boolean mFullGreenDisplayed = false;
|
||||||
|
private final View mFullGreen;
|
||||||
|
private boolean mHidden = true;
|
||||||
|
@@ -297,6 +295,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
String xiaomiFodReadyPath = "/sys/class/drm/card0-DSI-1/fod_ui_ready";
|
||||||
|
if(new File(xiaomiFodReadyPath).exists()) {
|
||||||
|
xiaomiAsynchronous = true;
|
||||||
|
+ noDim = true;
|
||||||
|
FileObserver xiaomiUiReadyCb = new FileObserver(xiaomiFodReadyPath, FileObserver.MODIFY) {
|
||||||
|
@Override
|
||||||
|
public void onEvent(int event, String path) {
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
From 2f5a9ff1301647e242dc37d25387dff5ed652207 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Thu, 21 May 2020 18:41:57 +0200
|
||||||
|
Subject: [PATCH 56/58] Add mUiHidden which is guarded by Handler. This is
|
||||||
|
needed because backlight listener might intervene at the wrong time
|
||||||
|
|
||||||
|
---
|
||||||
|
.../android/server/biometrics/fingerprint/FacolaView.java | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index 8afbbc0dce0..aeb81f5b7c9 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -84,6 +84,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
private boolean mFullGreenDisplayed = false;
|
||||||
|
private final View mFullGreen;
|
||||||
|
private boolean mHidden = true;
|
||||||
|
+ private boolean mUiHidden = true;
|
||||||
|
private boolean xiaomiAsynchronous = false;
|
||||||
|
FacolaView(Context context) {
|
||||||
|
super(context);
|
||||||
|
@@ -216,6 +217,8 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
String maskBrightnessStr = readFile("/sys/class/lcd/panel/mask_brightness");
|
||||||
|
String actualMaskBrightnessPath = "/sys/class/lcd/panel/actual_mask_brightness";
|
||||||
|
|
||||||
|
+ Slog.d("PHH-Enroll", "Got fod position, mask brightness " + fodPositionString + ", " + maskBrightnessStr);
|
||||||
|
+
|
||||||
|
if(fodPositionString != null && maskBrightnessStr != null) {
|
||||||
|
double maskBrightness = Double.parseDouble(maskBrightnessStr);
|
||||||
|
String[] fodPositionArray = readFile("/sys/class/fingerprint/fingerprint/position").split(",");
|
||||||
|
@@ -337,7 +340,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
if(!noDim) {
|
||||||
|
Slog.d("PHH-Enroll", "Setting dim to " + dim);
|
||||||
|
mParams.dimAmount = (float)dim;
|
||||||
|
- if(!mHidden) {
|
||||||
|
+ if(!mUiHidden) {
|
||||||
|
Slog.d("PHH-Enroll", "++Setting dim to " + dim);
|
||||||
|
mWM.updateViewLayout(FacolaView.this, mParams);
|
||||||
|
}
|
||||||
|
@@ -573,6 +576,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
|
||||||
|
mParams.gravity = Gravity.TOP | Gravity.LEFT;
|
||||||
|
mHandler.post( () -> {
|
||||||
|
+ mUiHidden = false;
|
||||||
|
mWM.addView(this, mParams);
|
||||||
|
});
|
||||||
|
|
||||||
|
@@ -618,6 +622,7 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
|
||||||
|
Slog.d("PHH-Enroll", "Removed facola");
|
||||||
|
mHandler.post( () -> {
|
||||||
|
+ mUiHidden = true;
|
||||||
|
mWM.removeView(this);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
From ce6a18178130952fd1238d2fa66aceef1c114ed1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Thu, 21 May 2020 18:42:20 +0200
|
||||||
|
Subject: [PATCH 57/58] Always try to get FOD HALs, because we check samsung
|
||||||
|
HAL later to compute width
|
||||||
|
|
||||||
|
---
|
||||||
|
.../biometrics/fingerprint/FacolaView.java | 60 +++++++++----------
|
||||||
|
1 file changed, 29 insertions(+), 31 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
index aeb81f5b7c9..3536093a4ee 100644
|
||||||
|
--- a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
|
||||||
|
@@ -170,37 +170,35 @@ public class FacolaView extends ImageView implements OnTouchListener {
|
||||||
|
mPaintShow.setColor(Color.argb(0x18, 0x00, 0xff, 0x00));
|
||||||
|
setOnTouchListener(this);
|
||||||
|
Slog.d("PHH-Enroll", "Created facola...");
|
||||||
|
- if(mW != -1) {
|
||||||
|
- try {
|
||||||
|
- mXiaomiFingerprint = IXiaomiFingerprint.getService();
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed getting xiaomi fingerprint service", e);
|
||||||
|
- }
|
||||||
|
- try {
|
||||||
|
- mGoodixFingerprint = IGoodixFPExtendService.getService();
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed getting goodix fingerprint service", e);
|
||||||
|
- }
|
||||||
|
- try {
|
||||||
|
- mGoodixFingerprintV2_1 = vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon.getService();
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed getting goodix2 fingerprint service", e);
|
||||||
|
- }
|
||||||
|
- try {
|
||||||
|
- mSamsungFingerprint = ISecBiometricsFingerprint.getService();
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed getting samsung fingerprint service", e);
|
||||||
|
- }
|
||||||
|
- try {
|
||||||
|
- mSamsungFingerprint3_0 = ISehBiometricsFingerprint.getService();
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed getting samsung 3.0 fingerprint service", e);
|
||||||
|
- }
|
||||||
|
- try {
|
||||||
|
- mOppoFingerprint = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||||
|
- } catch(Exception e) {
|
||||||
|
- Slog.d("PHH-Enroll", "Failed getting oppo fingerprint service", e);
|
||||||
|
- }
|
||||||
|
+ try {
|
||||||
|
+ mXiaomiFingerprint = IXiaomiFingerprint.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting xiaomi fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
+ try {
|
||||||
|
+ mGoodixFingerprint = IGoodixFPExtendService.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting goodix fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
+ try {
|
||||||
|
+ mGoodixFingerprintV2_1 = vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting goodix2 fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
+ try {
|
||||||
|
+ mSamsungFingerprint = ISecBiometricsFingerprint.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting samsung fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
+ try {
|
||||||
|
+ mSamsungFingerprint3_0 = ISehBiometricsFingerprint.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting samsung 3.0 fingerprint service", e);
|
||||||
|
+ }
|
||||||
|
+ try {
|
||||||
|
+ mOppoFingerprint = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||||
|
+ } catch(Exception e) {
|
||||||
|
+ Slog.d("PHH-Enroll", "Failed getting oppo fingerprint service", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mSamsungFingerprint3_0 != null || mSamsungFingerprint != null) {
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
From cb07b8475b5b0c9da86012d4c260a404a2e5c640 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Sat, 6 Jun 2020 18:21:56 +0200
|
||||||
|
Subject: [PATCH 58/58] HOME deserves to wake-up devices just as well as back
|
||||||
|
and menu
|
||||||
|
|
||||||
|
---
|
||||||
|
core/java/android/view/KeyEvent.java | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
|
||||||
|
index fee2503ccad..7bdeaa6e83e 100644
|
||||||
|
--- a/core/java/android/view/KeyEvent.java
|
||||||
|
+++ b/core/java/android/view/KeyEvent.java
|
||||||
|
@@ -1935,6 +1935,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
|
||||||
|
switch (keyCode) {
|
||||||
|
case KeyEvent.KEYCODE_BACK:
|
||||||
|
case KeyEvent.KEYCODE_MENU:
|
||||||
|
+ case KeyEvent.KEYCODE_HOME:
|
||||||
|
case KeyEvent.KEYCODE_WAKEUP:
|
||||||
|
case KeyEvent.KEYCODE_PAIRING:
|
||||||
|
case KeyEvent.KEYCODE_STEM_1:
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 0ce8e40182af9c1955a862f8bba608b90e6a0524 Mon Sep 17 00:00:00 2001
|
From 0b98498b3b9768fabd4b9a45e6ce23c6bcbc93a1 Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Tue, 14 Aug 2018 21:01:35 +0200
|
Date: Tue, 14 Aug 2018 21:01:35 +0200
|
||||||
Subject: [PATCH 1/5] AOSP 8.0/8.1 didn't use presentOrValidate, so it's
|
Subject: [PATCH 1/8] AOSP 8.0/8.1 didn't use presentOrValidate, so it's
|
||||||
broken. Don't use it
|
broken. Don't use it
|
||||||
|
|
||||||
Change-Id: If86793dba3738680280f9dc0f7e7c802c0836690
|
Change-Id: If86793dba3738680280f9dc0f7e7c802c0836690
|
||||||
@@ -23,5 +23,5 @@ index 1099041b4..2021c26b0 100644
|
|||||||
uint32_t state = UINT32_MAX;
|
uint32_t state = UINT32_MAX;
|
||||||
error = hwcDisplay->presentOrValidate(&numTypes, &numRequests, &outPresentFence , &state);
|
error = hwcDisplay->presentOrValidate(&numTypes, &numRequests, &outPresentFence , &state);
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From d51e5d5a041f8404b5d62cfca5f5765588ded4fb Mon Sep 17 00:00:00 2001
|
From f4a49874650b6192a821a6e755f600745b34210a Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Sun, 19 Aug 2018 23:07:24 +0200
|
Date: Sun, 19 Aug 2018 23:07:24 +0200
|
||||||
Subject: [PATCH 2/5] Ignore usage bits verification
|
Subject: [PATCH 2/8] Ignore usage bits verification
|
||||||
|
|
||||||
This didn't ignore as of 8.1, so we're ""safe""
|
This didn't ignore as of 8.1, so we're ""safe""
|
||||||
|
|
||||||
@@ -11,10 +11,10 @@ Change-Id: I40c1d588c1fa104d844322b469f76e52bee1495a
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp
|
diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp
|
||||||
index 5dc453005..90dc90f39 100644
|
index 2dd11b141..3ebf9808d 100644
|
||||||
--- a/libs/ui/Gralloc2.cpp
|
--- a/libs/ui/Gralloc2.cpp
|
||||||
+++ b/libs/ui/Gralloc2.cpp
|
+++ b/libs/ui/Gralloc2.cpp
|
||||||
@@ -108,7 +108,7 @@ status_t Gralloc2Mapper::validateBufferDescriptorInfo(
|
@@ -115,7 +115,7 @@ status_t Gralloc2Mapper::validateBufferDescriptorInfo(
|
||||||
if (descriptorInfo->usage & ~validUsageBits) {
|
if (descriptorInfo->usage & ~validUsageBits) {
|
||||||
ALOGE("buffer descriptor contains invalid usage bits 0x%" PRIx64,
|
ALOGE("buffer descriptor contains invalid usage bits 0x%" PRIx64,
|
||||||
descriptorInfo->usage & ~validUsageBits);
|
descriptorInfo->usage & ~validUsageBits);
|
||||||
@@ -24,5 +24,5 @@ index 5dc453005..90dc90f39 100644
|
|||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From 8db7e963f05ebc59298cf8e9b74f98d670ec5742 Mon Sep 17 00:00:00 2001
|
From 66d21d061b9c9f745c5cb199c29268f519425d71 Mon Sep 17 00:00:00 2001
|
||||||
From: phh <phh@phh.me>
|
From: phh <phh@phh.me>
|
||||||
Date: Wed, 22 Aug 2018 08:57:52 +0000
|
Date: Wed, 22 Aug 2018 08:57:52 +0000
|
||||||
Subject: [PATCH 3/5] Enable fallback to old ro.sf.hwrotation property
|
Subject: [PATCH 3/8] Enable fallback to old ro.sf.hwrotation property
|
||||||
|
|
||||||
Change-Id: I46b75a15b85fc5bda31357a4beeb7dab77bd6fe1
|
Change-Id: I46b75a15b85fc5bda31357a4beeb7dab77bd6fe1
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Change-Id: I46b75a15b85fc5bda31357a4beeb7dab77bd6fe1
|
|||||||
1 file changed, 18 insertions(+)
|
1 file changed, 18 insertions(+)
|
||||||
|
|
||||||
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
|
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
|
||||||
index 6166789fc..14ca4729c 100644
|
index e2ba4de6d..d66c8a8f5 100644
|
||||||
--- a/services/surfaceflinger/SurfaceFlinger.cpp
|
--- a/services/surfaceflinger/SurfaceFlinger.cpp
|
||||||
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
|
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
|
||||||
@@ -329,7 +329,25 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI
|
@@ -339,7 +339,25 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI
|
||||||
SurfaceFlinger::primaryDisplayOrientation = DisplayState::eOrientationDefault;
|
SurfaceFlinger::primaryDisplayOrientation = DisplayState::eOrientationDefault;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -39,5 +39,5 @@ index 6166789fc..14ca4729c 100644
|
|||||||
mInternalDisplayPrimaries = sysprop::getDisplayNativePrimaries();
|
mInternalDisplayPrimaries = sysprop::getDisplayNativePrimaries();
|
||||||
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From c554242731125a5e6a3f7d31d4f4af9049d8c7f4 Mon Sep 17 00:00:00 2001
|
From 1a0eb93d4e59e5857cd0afd3560647258955c6ed Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Mon, 12 Aug 2019 23:48:37 +0200
|
Date: Mon, 12 Aug 2019 23:48:37 +0200
|
||||||
Subject: [PATCH 4/5] Some Samsung devices requires lying colorspace
|
Subject: [PATCH 4/8] Some Samsung devices requires lying colorspace
|
||||||
|
|
||||||
Change-Id: I4153b8e7abc10c519565e4e4386c6388621477b2
|
Change-Id: I4153b8e7abc10c519565e4e4386c6388621477b2
|
||||||
---
|
---
|
||||||
@@ -9,10 +9,10 @@ Change-Id: I4153b8e7abc10c519565e4e4386c6388621477b2
|
|||||||
1 file changed, 6 insertions(+)
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
diff --git a/opengl/libs/EGL/egl_platform_entries.cpp b/opengl/libs/EGL/egl_platform_entries.cpp
|
diff --git a/opengl/libs/EGL/egl_platform_entries.cpp b/opengl/libs/EGL/egl_platform_entries.cpp
|
||||||
index e996be685..57ca592a7 100644
|
index a3bb6debe..bfa4a9bb2 100644
|
||||||
--- a/opengl/libs/EGL/egl_platform_entries.cpp
|
--- a/opengl/libs/EGL/egl_platform_entries.cpp
|
||||||
+++ b/opengl/libs/EGL/egl_platform_entries.cpp
|
+++ b/opengl/libs/EGL/egl_platform_entries.cpp
|
||||||
@@ -458,8 +458,14 @@ EGLBoolean eglGetConfigAttribImpl(EGLDisplay dpy, EGLConfig config,
|
@@ -459,8 +459,14 @@ EGLBoolean eglGetConfigAttribImpl(EGLDisplay dpy, EGLConfig config,
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
// Translates EGL color spaces to Android data spaces.
|
// Translates EGL color spaces to Android data spaces.
|
||||||
@@ -28,5 +28,5 @@ index e996be685..57ca592a7 100644
|
|||||||
} else if (colorspace == EGL_GL_COLORSPACE_SRGB_KHR) {
|
} else if (colorspace == EGL_GL_COLORSPACE_SRGB_KHR) {
|
||||||
return HAL_DATASPACE_V0_SRGB;
|
return HAL_DATASPACE_V0_SRGB;
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From fd7365352954e1ab647fca2eefeaa2707d47f7fa Mon Sep 17 00:00:00 2001
|
From c1f0158346aace39261b787854e10d58e9d905fe Mon Sep 17 00:00:00 2001
|
||||||
From: Pierre-Hugues Husson <phh@phh.me>
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
Date: Wed, 14 Aug 2019 23:37:10 +0200
|
Date: Wed, 14 Aug 2019 23:37:10 +0200
|
||||||
Subject: [PATCH 5/5] On Samsung, we need to send a hack-message to HAL to get
|
Subject: [PATCH 5/8] On Samsung, we need to send a hack-message to HAL to get
|
||||||
all Sensors
|
all Sensors
|
||||||
|
|
||||||
Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
|
Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
|
||||||
@@ -33,5 +33,5 @@ index 717f31769..45d6c679b 100644
|
|||||||
[&](const auto &list) {
|
[&](const auto &list) {
|
||||||
const size_t count = list.size();
|
const size_t count = list.size();
|
||||||
--
|
--
|
||||||
2.17.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,91 @@
|
|||||||
|
From a92fa788759b5b4550bf4d2778077af78dbc3af7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre Couillaud <pierre.couillaud@broadcom.com>
|
||||||
|
Date: Tue, 27 Aug 2019 13:43:22 -0700
|
||||||
|
Subject: [PATCH 6/8] SurfaceFlinger: retain the sideband layer information for
|
||||||
|
composition
|
||||||
|
|
||||||
|
when present, the sideband layer stream information is not saved into
|
||||||
|
the BufferQueueLayer::mSidebandStream, during "latchSidebandStream".
|
||||||
|
|
||||||
|
this subsequently leads to such layer being marked as non visible in the
|
||||||
|
composition stack and to be drop from advertisement to hardware composer
|
||||||
|
even though a sideband layer is defined in the rest of the framework.
|
||||||
|
|
||||||
|
this seems to be a regression introduced during android 9 to android 10
|
||||||
|
revamp of the SurfaceFlinger for buffer latching. latching a sideband layer is actually harmless since there is no buffer associated with it that need to be waited on from the gpu side.
|
||||||
|
|
||||||
|
the fix proposed here allows to maintain the knowledge of the sideband
|
||||||
|
layer and make it visible in the composition stack for hardware composer to handle adequately.
|
||||||
|
|
||||||
|
for illustration purposes, the relevant snippet of the layer composition
|
||||||
|
stack are posted here from "dumpsys SurfaceFlinger", highlighting the
|
||||||
|
issue with ">>>".
|
||||||
|
|
||||||
|
[before]:
|
||||||
|
|
||||||
|
* compositionengine::Layer 0xa959b34c (SurfaceView - <truncated>)
|
||||||
|
frontend:
|
||||||
|
isSecure=false geomUsesSourceCrop=false geomBufferUsesDisplayInverseTransform=false
|
||||||
|
geomLayerTransform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
|
||||||
|
1.0000 0.0000 0.0000
|
||||||
|
0.0000 1.0000 0.0000
|
||||||
|
0.0000 0.0000 1.0000
|
||||||
|
|
||||||
|
geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 -1 -1] geomBufferTransform=0
|
||||||
|
Region geomActiveTransparentRegion (this=0xa959b3f8, count=1)
|
||||||
|
[ 0, 0, 0, 0]
|
||||||
|
geomLayerBounds=[0.000000 0.000000 0.000000 0.000000]
|
||||||
|
blend=INVALID (0) alpha=1.000000
|
||||||
|
>>> type=0 appId=0 composition type=INVALID (0)
|
||||||
|
buffer: buffer=0x0 slot=-1
|
||||||
|
>>> sideband stream=0x9b509900
|
||||||
|
color=[0 0 0]
|
||||||
|
dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=<truncated>
|
||||||
|
|
||||||
|
[after]:
|
||||||
|
|
||||||
|
* compositionengine::Layer 0xa9a5034c (SurfaceView - <truncated>)
|
||||||
|
frontend:
|
||||||
|
isSecure=false geomUsesSourceCrop=true geomBufferUsesDisplayInverseTransform=false
|
||||||
|
geomLayerTransform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
|
||||||
|
1.0000 0.0000 0.0000
|
||||||
|
0.0000 1.0000 0.0000
|
||||||
|
0.0000 0.0000 1.0000
|
||||||
|
|
||||||
|
geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 1920 1080] geomBufferTransform=0
|
||||||
|
Region geomActiveTransparentRegion (this=0xa9a503f8, count=1)
|
||||||
|
[ 0, 0, 0, 0]
|
||||||
|
geomLayerBounds=[0.000000 0.000000 1920.000000 1080.000000]
|
||||||
|
blend=NONE (1) alpha=1.000000
|
||||||
|
>>> type=1 appId=10064 composition type=SIDEBAND (5)
|
||||||
|
buffer: buffer=0x0 slot=-1
|
||||||
|
>>> sideband stream=0x9a1472b0
|
||||||
|
color=[0 0 0]
|
||||||
|
dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=<truncated>
|
||||||
|
|
||||||
|
Bug: 140128098
|
||||||
|
refs #SWANDROID-6178
|
||||||
|
|
||||||
|
Signed-off-by: Pierre Couillaud <pierre.couillaud@broadcom.com>
|
||||||
|
---
|
||||||
|
services/surfaceflinger/BufferQueueLayer.cpp | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
|
||||||
|
index eb1bf66cd..af5fe6246 100644
|
||||||
|
--- a/services/surfaceflinger/BufferQueueLayer.cpp
|
||||||
|
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
|
||||||
|
@@ -243,8 +243,9 @@ bool BufferQueueLayer::latchSidebandStream(bool& recomputeVisibleRegions) {
|
||||||
|
bool sidebandStreamChanged = true;
|
||||||
|
if (mSidebandStreamChanged.compare_exchange_strong(sidebandStreamChanged, false)) {
|
||||||
|
// mSidebandStreamChanged was changed to false
|
||||||
|
+ mSidebandStream = mConsumer->getSidebandStream();
|
||||||
|
auto& layerCompositionState = getCompositionLayer()->editState().frontEnd;
|
||||||
|
- layerCompositionState.sidebandStream = mConsumer->getSidebandStream();
|
||||||
|
+ layerCompositionState.sidebandStream = mSidebandStream;
|
||||||
|
if (layerCompositionState.sidebandStream != nullptr) {
|
||||||
|
setTransactionFlags(eTransactionNeeded);
|
||||||
|
mFlinger->setTransactionFlags(eTraversalNeeded);
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user