Initial commit for Android 11, syncing up to v300.f
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
From 494741f30b1c6a1ce223e6331d6ade70e9bc0b52 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 28 Nov 2017 18:28:04 +0100
|
||||
Subject: [PATCH] Relax requirement for visible flag to sdcards
|
||||
|
||||
The vast majority of sdcard readers are stable enough to be declared by
|
||||
the API. (I see no counter-example)
|
||||
FBE broke adoptable storage with SDCard, hence this need.
|
||||
|
||||
Change-Id: Ia616671c03562d1eadaff5531a5c708a62d7ad3a
|
||||
---
|
||||
.../core/java/com/android/server/StorageManagerService.java | 3 ++-
|
||||
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
|
||||
index 498c52a5aa6..dd7f4560000 100644
|
||||
--- a/services/core/java/com/android/server/StorageManagerService.java
|
||||
+++ b/services/core/java/com/android/server/StorageManagerService.java
|
||||
@@ -1525,7 +1525,8 @@ class StorageManagerService extends IStorageManager.Stub
|
||||
|
||||
// Adoptable public disks are visible to apps, since they meet
|
||||
// public API requirement of being in a stable location.
|
||||
- if (vol.disk.isAdoptable()) {
|
||||
+ // Assume all SDs match this as well
|
||||
+ if (vol.disk.isAdoptable() || vol.disk.isSd()) {
|
||||
vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE;
|
||||
} else if (vol.disk.isSd()) {
|
||||
vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,43 @@
|
||||
From b236ed36a97c09a15fa18d3387ff20dadd5be965 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 1 May 2018 17:47:36 +0200
|
||||
Subject: [PATCH 03/25] Also scan /system/overlay
|
||||
|
||||
Change-Id: Ib0223560606b80cdaaa986b159b34b4db0154589
|
||||
---
|
||||
core/jni/android_util_AssetManager.cpp | 4 ++++
|
||||
core/jni/fd_utils.cpp | 3 ++-
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
|
||||
index 12abc256a20..3133f2f3023 100644
|
||||
--- a/core/jni/android_util_AssetManager.cpp
|
||||
+++ b/core/jni/android_util_AssetManager.cpp
|
||||
@@ -140,6 +140,10 @@ static jobjectArray NativeCreateIdmapsForStaticOverlaysTargetingAndroid(JNIEnv*
|
||||
input_dirs.push_back(AssetManager::OEM_OVERLAY_DIR);
|
||||
}
|
||||
|
||||
+ if (stat("/system/overlay", &st) == 0) {
|
||||
+ input_dirs.push_back("/system/overlay");
|
||||
+ }
|
||||
+
|
||||
if (input_dirs.empty()) {
|
||||
LOG(WARNING) << "no directories for idmap2 to scan";
|
||||
return env->NewObjectArray(0, g_stringClass, nullptr);
|
||||
diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
|
||||
index c72668f84fb..d4307ae6579 100644
|
||||
--- a/core/jni/fd_utils.cpp
|
||||
+++ b/core/jni/fd_utils.cpp
|
||||
@@ -135,7 +135,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
|
||||
|| android::base::StartsWith(path, kSystemOdmOverlayDir)
|
||||
|| android::base::StartsWith(path, kOdmOverlayDir)
|
||||
|| android::base::StartsWith(path, kSystemOemOverlayDir)
|
||||
- || android::base::StartsWith(path, kOemOverlayDir))
|
||||
+ || android::base::StartsWith(path, kOemOverlayDir)
|
||||
+ || android::base::StartsWith(path, "/system/overlay"))
|
||||
&& android::base::EndsWith(path, kApkSuffix)
|
||||
&& path.find("/../") == std::string::npos) {
|
||||
return true;
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From 2436b6da10c438a3b71ca3a2a5aa9705e7c00813 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/25] 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
|
||||
|
||||
28
patches/platform_frameworks_base/0005-Fix-62.patch
Normal file
28
patches/platform_frameworks_base/0005-Fix-62.patch
Normal file
@@ -0,0 +1,28 @@
|
||||
From 25b2ec68fe9ce8a2e3b35fc91ff47ae65ba95be4 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Wed, 30 May 2018 14:05:30 +0200
|
||||
Subject: [PATCH 05/25] Fix(?) #62
|
||||
|
||||
---
|
||||
.../src/com/android/keyguard/KeyguardUpdateMonitor.java | 5 ++++-
|
||||
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
|
||||
index 3acbfb87c3f..358053343f2 100644
|
||||
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
||||
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
|
||||
@@ -1270,7 +1270,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
|
||||
@Override
|
||||
public void onAuthenticationError(int errMsgId, CharSequence errString) {
|
||||
- handleFingerprintError(errMsgId, errString.toString());
|
||||
+ if(errString != null)
|
||||
+ handleFingerprintError(errMsgId, errString.toString());
|
||||
+ else
|
||||
+ handleFingerprintError(errMsgId, "unknown error");
|
||||
}
|
||||
|
||||
@Override
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
From f3d0a467c4c1f9df19c3c4819b4c6cb4b26fe2a3 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Fri, 11 Sep 2020 23:42:37 +0200
|
||||
Subject: [PATCH] property-matching RROs: allow to prefix the value with + to
|
||||
do glob match instead of exact match
|
||||
|
||||
Change-Id: I1f5b7c907523eb6e48d41f5163984564d3db9506
|
||||
---
|
||||
cmds/idmap2/idmap2/Scan.cpp | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmds/idmap2/idmap2/Scan.cpp b/cmds/idmap2/idmap2/Scan.cpp
|
||||
index 36250450cc7..6a5162dd0d9 100644
|
||||
--- a/cmds/idmap2/idmap2/Scan.cpp
|
||||
+++ b/cmds/idmap2/idmap2/Scan.cpp
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
#include <dirent.h>
|
||||
+#include <fnmatch.h>
|
||||
|
||||
#include <fstream>
|
||||
#include <memory>
|
||||
@@ -187,7 +188,10 @@ Result<Unit> Scan(const std::vector<std::string>& args) {
|
||||
// if property set & equal to value, then include overlay - otherwise skip
|
||||
if (android::base::GetProperty(overlay_info->requiredSystemPropertyName, "") !=
|
||||
overlay_info->requiredSystemPropertyValue) {
|
||||
- continue;
|
||||
+ auto osValue = android::base::GetProperty(overlay_info->requiredSystemPropertyName, "");
|
||||
+ if(fnmatch(overlay_info->requiredSystemPropertyValue.c_str()+1, osValue.c_str(), 0) != 0) {
|
||||
+ continue;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 649f6bd7789acae16c1e3fa8c57919bd4ae0d1e3 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 2 Jul 2018 23:36:39 +0200
|
||||
Subject: [PATCH 07/25] [Galaxy S9] "remaining" of HAL onEnroll is actually a
|
||||
percent of progress
|
||||
|
||||
Change-Id: I8a586163eca93ae3c5bd968d1e7ddbf994ddcc91
|
||||
---
|
||||
.../server/biometrics/fingerprint/FingerprintService.java | 8 +++++++-
|
||||
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
|
||||
index 6b7ba6a56d8..c247731be13 100644
|
||||
--- a/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 {
|
||||
final Fingerprint fingerprint =
|
||||
new Fingerprint(getBiometricUtils().getUniqueName(getContext(), groupId),
|
||||
groupId, fingerId, deviceId);
|
||||
- FingerprintService.super.handleEnrollResult(fingerprint, remaining);
|
||||
+
|
||||
+ int remaining2 = remaining;
|
||||
+ String fp = android.os.SystemProperties.get("ro.vendor.build.fingerprint");
|
||||
+ if(fp != null && (fp.contains("starlte") || fp.contains("star2lte") || fp.contains("starqlte") || fp.contains("star2qlte")))
|
||||
+ remaining2 = 100 - remaining2;
|
||||
+
|
||||
+ FingerprintService.super.handleEnrollResult(fingerprint, remaining2);
|
||||
});
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From 4ee7b7947513a5481b0b69a3c59e0c7cf6509153 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 6 Aug 2018 12:49:00 +0200
|
||||
Subject: [PATCH 08/25] Show APN Settings for CDMA carriers
|
||||
|
||||
---
|
||||
telephony/java/android/telephony/CarrierConfigManager.java | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
|
||||
index 3d455d51dd7..d351598a55e 100755
|
||||
--- a/telephony/java/android/telephony/CarrierConfigManager.java
|
||||
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
|
||||
@@ -3898,7 +3898,7 @@ public class CarrierConfigManager {
|
||||
sDefaults.putBoolean(KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
|
||||
sDefaults.putBoolean(KEY_PREFER_2G_BOOL, true);
|
||||
- sDefaults.putBoolean(KEY_SHOW_APN_SETTING_CDMA_BOOL, false);
|
||||
+ sDefaults.putBoolean(KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
|
||||
sDefaults.putBoolean(KEY_SHOW_CDMA_CHOICES_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL, false);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From c53ddf67401c177fe29d0c2eca146e1548ed4ecb Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 21 Aug 2018 22:24:02 +0200
|
||||
Subject: [PATCH] Don't wait IR HAL to the infinity and beyond
|
||||
|
||||
Change-Id: I3afded27441bbee8244d5fda544b3e6d1238dc1b
|
||||
---
|
||||
.../core/java/com/android/server/ConsumerIrService.java | 7 -------
|
||||
services/core/jni/com_android_server_ConsumerIrService.cpp | 2 +-
|
||||
2 files changed, 1 insertion(+), 8 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/ConsumerIrService.java b/services/core/java/com/android/server/ConsumerIrService.java
|
||||
index 2ed6c77baa0..82ec033bc30 100644
|
||||
--- a/services/core/java/com/android/server/ConsumerIrService.java
|
||||
+++ b/services/core/java/com/android/server/ConsumerIrService.java
|
||||
@@ -46,13 +46,6 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
|
||||
mWakeLock.setReferenceCounted(true);
|
||||
|
||||
mHasNativeHal = halOpen();
|
||||
- if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONSUMER_IR)) {
|
||||
- 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!");
|
||||
- }
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/services/core/jni/com_android_server_ConsumerIrService.cpp b/services/core/jni/com_android_server_ConsumerIrService.cpp
|
||||
index 2ca348b3ae4..148fba9a688 100644
|
||||
--- a/services/core/jni/com_android_server_ConsumerIrService.cpp
|
||||
+++ b/services/core/jni/com_android_server_ConsumerIrService.cpp
|
||||
@@ -36,7 +36,7 @@ static sp<IConsumerIr> mHal;
|
||||
|
||||
static jboolean halOpen(JNIEnv* /* env */, jobject /* obj */) {
|
||||
// TODO(b/31632518)
|
||||
- mHal = IConsumerIr::getService();
|
||||
+ mHal = IConsumerIr::tryGetService();
|
||||
return mHal != nullptr;
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 6befde035c29a499fd4320753909c98a2c239410 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Thu, 8 Nov 2018 23:04:03 +0100
|
||||
Subject: [PATCH 10/25] Re-order services so that it works even without qtaguid
|
||||
|
||||
Change-Id: I0c0f527b3ae151d45c68f7ac6c205da3f34e74df
|
||||
---
|
||||
.../android/server/net/NetworkPolicyManagerService.java | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||
index d6557f6410e..e65edcdc12c 100644
|
||||
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||
@@ -731,6 +731,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "systemReady");
|
||||
final int oldPriority = Process.getThreadPriority(Process.myTid());
|
||||
try {
|
||||
+ mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class);
|
||||
+ mAppStandby = LocalServices.getService(AppStandbyInternal.class);
|
||||
+ mNetworkStats = LocalServices.getService(NetworkStatsManagerInternal.class);
|
||||
+
|
||||
// Boost thread's priority during system server init
|
||||
Process.setThreadPriority(Process.THREAD_PRIORITY_FOREGROUND);
|
||||
if (!isBandwidthControlEnabled()) {
|
||||
@@ -738,10 +742,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
return;
|
||||
}
|
||||
|
||||
- mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class);
|
||||
- mAppStandby = LocalServices.getService(AppStandbyInternal.class);
|
||||
- mNetworkStats = LocalServices.getService(NetworkStatsManagerInternal.class);
|
||||
-
|
||||
synchronized (mUidRulesFirstLock) {
|
||||
synchronized (mNetworkPoliciesSecondLock) {
|
||||
updatePowerSaveWhitelistUL();
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
From 04ada322124eca94d2e354f10c45d80d1ad522e3 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 24 Mar 2019 23:05:14 +0100
|
||||
Subject: [PATCH] Support new samsung Pie and Q light hal and Samsung Power
|
||||
HALs
|
||||
|
||||
---
|
||||
services/core/jni/Android.bp | 3 ++
|
||||
...om_android_server_lights_LightsService.cpp | 51 +++++++++++++++++++
|
||||
...droid_server_power_PowerManagerService.cpp | 22 ++++++++
|
||||
3 files changed, 76 insertions(+)
|
||||
|
||||
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
|
||||
index eaa3c66fe0d..74f5b8667c4 100644
|
||||
--- a/services/core/jni/Android.bp
|
||||
+++ b/services/core/jni/Android.bp
|
||||
@@ -167,6 +167,9 @@ cc_defaults {
|
||||
"service.incremental",
|
||||
"suspend_control_aidl_interface-cpp",
|
||||
"vendor.lineage.power@1.0",
|
||||
+ "vendor.samsung.hardware.miscpower@2.0",
|
||||
+ "vendor.samsung.hardware.light@2.0",
|
||||
+ "vendor.samsung.hardware.light@3.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 35d8219651d..b45b2137d0e 100644
|
||||
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||
@@ -23,6 +23,10 @@
|
||||
|
||||
#include <android/hardware/light/2.0/ILight.h>
|
||||
#include <android/hardware/light/2.0/types.h>
|
||||
+#include <vendor/samsung/hardware/light/2.0/ISecLight.h>
|
||||
+#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 <android-base/chrono_utils.h>
|
||||
#include <utils/misc.h>
|
||||
#include <utils/Log.h>
|
||||
@@ -40,8 +44,17 @@ using Type = ::android::hardware::light::V2_0::Type;
|
||||
template<typename T>
|
||||
using Return = ::android::hardware::Return<T>;
|
||||
|
||||
+using ISecLight = ::vendor::samsung::hardware::light::V2_0::ISecLight;
|
||||
+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;
|
||||
static bool sLightSupported = true;
|
||||
|
||||
+static sp<ISecLight> sSecHal;
|
||||
+static sp<ISehLight> sSehHal;
|
||||
+static bool sSecTried = false;
|
||||
+
|
||||
static bool validate(jint light, jint flash, jint brightness) {
|
||||
bool valid = true;
|
||||
|
||||
@@ -152,6 +165,44 @@ static void setLight_native(
|
||||
colorARGB = (colorAlpha << 24) + (colorARGB & 0x00FFFFFF);
|
||||
}
|
||||
|
||||
+ if(!sSecTried) {
|
||||
+ sSecHal = ISecLight::getService();
|
||||
+ sSehHal = ISehLight::getService();
|
||||
+ //sSecTried = true;
|
||||
+ }
|
||||
+
|
||||
+ if(sSecHal != nullptr) {
|
||||
+ SecType type = static_cast<SecType>(light);
|
||||
+ LightState state = constructState(
|
||||
+ colorARGB, flashMode, onMS, offMS, brightnessMode);
|
||||
+
|
||||
+ {
|
||||
+ android::base::Timer t;
|
||||
+ Return<Status> ret = sSecHal->setLightSec(type, state);
|
||||
+ processReturn(ret, static_cast<Type>(light), state);
|
||||
+ if (t.duration() > 50ms) ALOGD("Excessive delay setting light");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if(sSehHal != nullptr && light == 0 && flashMode == static_cast<jint>(Flash::HARDWARE)) {
|
||||
+ SehType type = static_cast<SehType>(light);
|
||||
+ SehLightState state {};
|
||||
+ state.flashMode = Flash::NONE;
|
||||
+ Brightness brightness = static_cast<Brightness>(brightnessMode);
|
||||
+ state.brightnessMode = brightness;
|
||||
+ state.extendedBrightness = colorARGB;
|
||||
+
|
||||
+ {
|
||||
+ android::base::Timer t;
|
||||
+ Return<Status> ret = sSehHal->sehSetLight(type, state);
|
||||
+ if(!ret.isOk()) {
|
||||
+ ALOGE("Failed to issue set light command.");
|
||||
+ }
|
||||
+ if (t.duration() > 50ms) ALOGD("Excessive delay setting light");
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
Type type = static_cast<Type>(light);
|
||||
LightState state = constructState(
|
||||
colorARGB, flashMode, onMS, offMS, brightnessMode);
|
||||
diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
||||
index 33b3bad2b33..47fdcc9a87b 100644
|
||||
--- a/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
||||
+++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <android/hardware/power/Mode.h>
|
||||
#include <android/system/suspend/1.0/ISystemSuspend.h>
|
||||
#include <android/system/suspend/ISuspendControlService.h>
|
||||
+#include <vendor/samsung/hardware/miscpower/2.0/ISehMiscPower.h>
|
||||
#include <nativehelper/JNIHelp.h>
|
||||
#include <vendor/lineage/power/1.0/ILineagePower.h>
|
||||
#include "jni.h"
|
||||
@@ -64,6 +65,7 @@ using IPowerV1_0 = android::hardware::power::V1_0::IPower;
|
||||
using IPowerAidl = android::hardware::power::IPower;
|
||||
using ILineagePowerV1_0 = vendor::lineage::power::V1_0::ILineagePower;
|
||||
using vendor::lineage::power::V1_0::LineageFeature;
|
||||
+using ISehMiscPower = vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower;
|
||||
|
||||
namespace android {
|
||||
|
||||
@@ -80,6 +82,8 @@ static sp<IPowerV1_0> gPowerHalHidlV1_0_ = nullptr;
|
||||
static sp<IPowerV1_1> gPowerHalHidlV1_1_ = nullptr;
|
||||
static sp<IPowerAidl> gPowerHalAidl_ = nullptr;
|
||||
static sp<ILineagePowerV1_0> gLineagePowerHalV1_0_ = nullptr;
|
||||
+static sp<ISehMiscPower> gSehMiscPower = nullptr;
|
||||
+static bool gPowerHalExists = true;
|
||||
static std::mutex gPowerHalMutex;
|
||||
|
||||
enum class HalVersion {
|
||||
@@ -125,6 +129,10 @@ static HalVersion connectPowerHalLocked() {
|
||||
gPowerHalAidlExists = false;
|
||||
}
|
||||
}
|
||||
+ if (gPowerHalExists && gPowerHalHidlV1_0_ == nullptr) {
|
||||
+ gSehMiscPower = ISehMiscPower::getService();
|
||||
+ gPowerHalHidlV1_0_ = IPowerV1_0::getService("miscpower");
|
||||
+ }
|
||||
if (gPowerHalHidlExists && gPowerHalHidlV1_0_ == nullptr) {
|
||||
gPowerHalHidlV1_0_ = IPowerV1_0::getService();
|
||||
if (gPowerHalHidlV1_0_) {
|
||||
@@ -163,6 +171,12 @@ void connectLineagePowerHalLocked() {
|
||||
}
|
||||
}
|
||||
|
||||
+sp<ISehMiscPower> getSehMiscPower() {
|
||||
+ std::lock_guard<std::mutex> lock(gPowerHalMutex);
|
||||
+ connectPowerHalLocked();
|
||||
+ return gSehMiscPower;
|
||||
+}
|
||||
+
|
||||
// Retrieve a copy of PowerHAL HIDL V1_0
|
||||
sp<IPowerV1_0> getPowerHalHidlV1_0() {
|
||||
std::lock_guard<std::mutex> lock(gPowerHalMutex);
|
||||
@@ -498,6 +512,14 @@ static void nativeSetInteractive(JNIEnv* /* env */, jclass /* clazz */, jboolean
|
||||
return;
|
||||
}
|
||||
}
|
||||
+ sp<ISehMiscPower> sehMiscPower = getSehMiscPower();
|
||||
+ if(sehMiscPower != nullptr) {
|
||||
+ android::base::Timer t;
|
||||
+ Return<void> ret = sehMiscPower->setInteractiveAsync(enable, 0);
|
||||
+ if(!ret.isOk()) {
|
||||
+ ALOGE("set interactive async() failed: seh misc setInteractiveAsync");
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
static void nativeSetAutoSuspend(JNIEnv* /* env */, jclass /* clazz */, jboolean enable) {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From ea68a77524fc2cbfa571d7afa01442460b3ea284 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 2 Jul 2019 21:19:29 +0200
|
||||
Subject: [PATCH 12/25] Make Samsung fingerprint broken HAL overridable
|
||||
|
||||
Change-Id: I8be38daa7c80fdb61e9209f12215e6daea171d03
|
||||
---
|
||||
.../server/biometrics/fingerprint/FingerprintService.java | 4 +++-
|
||||
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
|
||||
index c247731be13..5552086c17f 100644
|
||||
--- a/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 {
|
||||
groupId, fingerId, deviceId);
|
||||
|
||||
int remaining2 = remaining;
|
||||
+ int overrideSamsung = android.os.SystemProperties.getInt("persist.sys.phh.samsung_fingerprint", -1);
|
||||
+
|
||||
String fp = android.os.SystemProperties.get("ro.vendor.build.fingerprint");
|
||||
- if(fp != null && (fp.contains("starlte") || fp.contains("star2lte") || fp.contains("starqlte") || fp.contains("star2qlte")))
|
||||
+ if(overrideSamsung == 1 || (overrideSamsung != 0 && fp != null && fp.startsWith("samsung/")))
|
||||
remaining2 = 100 - remaining2;
|
||||
|
||||
FingerprintService.super.handleEnrollResult(fingerprint, remaining2);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
From e9848dbafb20526eed8e5d8dfbd2df01b240cab8 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 11 Aug 2019 10:30:37 +0200
|
||||
Subject: [PATCH 13/25] Add property to use linear brightness slider
|
||||
|
||||
Change-Id: I1af7eb923779fa60c7a735904ba8fc82d0622c1d
|
||||
---
|
||||
.../com/android/settingslib/display/BrightnessUtils.java | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java b/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java
|
||||
index 4f86afaa995..f1fe73a6a1d 100644
|
||||
--- a/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java
|
||||
+++ b/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java
|
||||
@@ -51,7 +51,12 @@ public class BrightnessUtils {
|
||||
* @param max The maximum acceptable value for the setting.
|
||||
* @return The corresponding setting value.
|
||||
*/
|
||||
+ private static final boolean useLinearBrightness = android.os.SystemProperties.getBoolean("persist.sys.phh.linear_brightness", false);
|
||||
public static final int convertGammaToLinear(int val, int min, int max) {
|
||||
+ if(useLinearBrightness) {
|
||||
+ if(val < 4) return 1;
|
||||
+ return val/4;
|
||||
+ }
|
||||
final float normalizedVal = MathUtils.norm(GAMMA_SPACE_MIN, GAMMA_SPACE_MAX, val);
|
||||
final float ret;
|
||||
if (normalizedVal <= R) {
|
||||
@@ -127,6 +132,7 @@ public class BrightnessUtils {
|
||||
* @return The corresponding slider value
|
||||
*/
|
||||
public static final int convertLinearToGammaFloat(float val, float min, float max) {
|
||||
+ if(useLinearBrightness) return (int)(val*4);
|
||||
// For some reason, HLG normalizes to the range [0, 12] rather than [0, 1]
|
||||
final float normalizedVal = MathUtils.norm(min, max, val) * 12;
|
||||
final float ret;
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From 33ba0d099de0181f34b3795ad5b2ee25d8c252a4 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 12 Aug 2019 23:08:26 +0200
|
||||
Subject: [PATCH 14/25] Add support for samsung touch proximity sensor as
|
||||
fallback to real proximity sensor
|
||||
|
||||
---
|
||||
.../server/display/DisplayPowerController.java | 14 ++++++++++++++
|
||||
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
|
||||
index 9411c562945..774e5a38777 100644
|
||||
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
@@ -527,6 +527,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
|
||||
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
|
||||
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
|
||||
+ if(mProximitySensor == null) {
|
||||
+ List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
|
||||
+ for(Sensor sensor: sensors) {
|
||||
+ if("com.samsung.sensor.touch_proximity".equals(sensor.getStringType()))
|
||||
+ mProximitySensor = sensor;
|
||||
+ }
|
||||
+ }
|
||||
if (mProximitySensor != null) {
|
||||
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
|
||||
TYPICAL_PROXIMITY_THRESHOLD);
|
||||
@@ -1970,6 +1977,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
public void onSensorChanged(SensorEvent event) {
|
||||
if (mProximitySensorEnabled) {
|
||||
final long time = SystemClock.uptimeMillis();
|
||||
+ if("com.samsung.sensor.touch_proximity".equals(mProximitySensor.getStringType())) {
|
||||
+ int v = (int)event.values[0];
|
||||
+ boolean positive = (v <= 4);
|
||||
+ android.util.Log.d("PHH", "Samsung sensor changed " + positive + ":" + v);
|
||||
+ handleProximitySensorEvent(time, positive);
|
||||
+ return;
|
||||
+ }
|
||||
final float distance = event.values[0];
|
||||
boolean positive = distance >= 0.0f && distance < mProximityThreshold;
|
||||
handleProximitySensorEvent(time, positive);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From 298c7cd14541920c09b4bbcfb3255ec1ddcaad67 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Wed, 14 Aug 2019 23:36:45 +0200
|
||||
Subject: [PATCH 15/25] Also add com.samsung.sensor.physical_proximity (if
|
||||
available, it is more a true proximity sensor than touch proximity sensor)
|
||||
|
||||
---
|
||||
.../com/android/server/display/DisplayPowerController.java | 7 +++++++
|
||||
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
|
||||
index 774e5a38777..4c12ebbd94f 100644
|
||||
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
@@ -527,6 +527,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
|
||||
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
|
||||
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
|
||||
+ if(mProximitySensor == null) {
|
||||
+ List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
|
||||
+ for(Sensor sensor: sensors) {
|
||||
+ if("com.samsung.sensor.physical_proximity".equals(sensor.getStringType()))
|
||||
+ mProximitySensor = sensor;
|
||||
+ }
|
||||
+ }
|
||||
if(mProximitySensor == null) {
|
||||
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
|
||||
for(Sensor sensor: sensors) {
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
From d2cdf9ba6dc99f28c94e093078c1307dd4414a56 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Cai <peter@typeblog.net>
|
||||
Date: Thu, 2 Jan 2020 10:16:49 +0800
|
||||
Subject: [PATCH] fix crashing on devices with higher aspect ratio down to
|
||||
sw288dp
|
||||
|
||||
* This is what the Qin 2 (Pro) is.
|
||||
|
||||
Change-Id: Ia39682b327fcf947f06219ce2dab996f53dcb01d
|
||||
---
|
||||
.../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,28 @@
|
||||
From 76cbbb0d09a80eaad75c64281d635e58976bd5be Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 1 Mar 2020 18:14:40 +0100
|
||||
Subject: [PATCH 17/25] Remove orientation 4 from sensor earlier in the process
|
||||
chain
|
||||
|
||||
Change-Id: Id8e2e860a73d417fc70db6cf5fc5fa5ef187aa50
|
||||
---
|
||||
.../com/android/server/policy/WindowOrientationListener.java | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/policy/WindowOrientationListener.java b/services/core/java/com/android/server/policy/WindowOrientationListener.java
|
||||
index 0157706866c..732417b88f4 100644
|
||||
--- a/services/core/java/com/android/server/policy/WindowOrientationListener.java
|
||||
+++ b/services/core/java/com/android/server/policy/WindowOrientationListener.java
|
||||
@@ -1055,6 +1055,9 @@ public abstract class WindowOrientationListener {
|
||||
|
||||
synchronized (mLock) {
|
||||
mDesiredRotation = reportedRotation;
|
||||
+ if(mDesiredRotation >= 4 || mDesiredRotation < 0) {
|
||||
+ mDesiredRotation = 0;
|
||||
+ }
|
||||
newRotation = evaluateRotationChangeLocked();
|
||||
}
|
||||
if (newRotation >=0) {
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 0dc5a490d8aac60ce2ed3efafc9f6bcb6ced71f4 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 18/25] Allow disabling of fingerprint cleanups, needed on some
|
||||
Realme devices that cant enumerate
|
||||
|
||||
Change-Id: I8a486e707712b81711fb1a691faec029499fa897
|
||||
---
|
||||
.../android/server/biometrics/BiometricServiceBase.java | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||
index 75452ea5fb6..fd77ada1109 100644
|
||||
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
|
||||
@@ -344,6 +344,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,
|
||||
@@ -389,8 +390,10 @@ public abstract class BiometricServiceBase extends SystemService
|
||||
Slog.e(getTag(), "doTemplateCleanup(): Removing dangling template from framework: "
|
||||
+ identifier.getBiometricId() + " "
|
||||
+ identifier.getName());
|
||||
- mUtils.removeBiometricForUser(getContext(),
|
||||
- getTargetUserId(), identifier.getBiometricId());
|
||||
+ if(!mNocleanup) {
|
||||
+ mUtils.removeBiometricForUser(getContext(),
|
||||
+ getTargetUserId(), identifier.getBiometricId());
|
||||
+ }
|
||||
FrameworkStatsLog.write(FrameworkStatsLog.BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED,
|
||||
statsModality(),
|
||||
BiometricsProtoEnums.ISSUE_UNKNOWN_TEMPLATE_ENROLLED_FRAMEWORK);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
From 858d6a97037b0f9eb751038a41d28564e7221222 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 19/25] 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 24a3c68cae2..472c925f76f 100644
|
||||
--- a/services/core/jni/Android.bp
|
||||
+++ b/services/core/jni/Android.bp
|
||||
@@ -170,6 +170,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 268b59a5801..5e535e3dcbf 100644
|
||||
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||
@@ -26,6 +26,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>
|
||||
@@ -48,11 +49,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;
|
||||
@@ -192,6 +197,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.17.1
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From dc92080dc096ff77e5d751026d24decc1e424ca9 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 20/25] Always allow overriding the number of work profiles
|
||||
|
||||
Change-Id: I6eb09aa71663c6fbe7563e3038bffcabdba0ff6a
|
||||
---
|
||||
.../java/com/android/server/pm/UserManagerService.java | 8 ++------
|
||||
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
|
||||
index 27924a68ff4..4d687679f59 100644
|
||||
--- a/services/core/java/com/android/server/pm/UserManagerService.java
|
||||
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
|
||||
@@ -5282,12 +5282,8 @@ public class UserManagerService extends IUserManager.Stub {
|
||||
*/
|
||||
private static int getMaxUsersOfTypePerParent(UserTypeDetails userTypeDetails) {
|
||||
final int defaultMax = userTypeDetails.getMaxAllowedPerParent();
|
||||
- if (!Build.IS_DEBUGGABLE) {
|
||||
- return defaultMax;
|
||||
- } else {
|
||||
- if (userTypeDetails.isManagedProfile()) {
|
||||
- return SystemProperties.getInt("persist.sys.max_profiles", defaultMax);
|
||||
- }
|
||||
+ if (userTypeDetails.isManagedProfile()) {
|
||||
+ return SystemProperties.getInt("persist.sys.max_profiles", defaultMax);
|
||||
}
|
||||
return defaultMax;
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
From 3be1d7309cb7c496963c5d391b53ad3932563282 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] HOME deserves to wake-up devices just as well as back and
|
||||
menu
|
||||
|
||||
Change-Id: Ia562bafd8c620d00c17e8eb338e4701c6c4a3c3a
|
||||
---
|
||||
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 144dd8b3c36..9a704296bbf 100644
|
||||
--- a/core/java/android/view/KeyEvent.java
|
||||
+++ b/core/java/android/view/KeyEvent.java
|
||||
@@ -1977,6 +1977,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
|
||||
case KeyEvent.KEYCODE_CAMERA:
|
||||
case KeyEvent.KEYCODE_FOCUS:
|
||||
case KeyEvent.KEYCODE_MENU:
|
||||
+ case KeyEvent.KEYCODE_HOME:
|
||||
case KeyEvent.KEYCODE_PAIRING:
|
||||
case KeyEvent.KEYCODE_STEM_1:
|
||||
case KeyEvent.KEYCODE_STEM_2:
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From b8adbf5e35d5d1e40077b3226ad3f842fc9be6dc Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 21 Sep 2020 10:30:18 +0200
|
||||
Subject: [PATCH 23/25] On old inits (A-only devices), multi-sim basedband
|
||||
property too long, catch that and make it shorter
|
||||
|
||||
Change-Id: I2f52595409f0d43b148063d5fd90c80d1182ff8c
|
||||
---
|
||||
telephony/java/android/telephony/TelephonyManager.java | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
|
||||
index 8ae1ee99b06..4659c7909bc 100644
|
||||
--- a/telephony/java/android/telephony/TelephonyManager.java
|
||||
+++ b/telephony/java/android/telephony/TelephonyManager.java
|
||||
@@ -10104,7 +10104,13 @@ public class TelephonyManager {
|
||||
if (SubscriptionManager.isValidPhoneId(phoneId)) {
|
||||
List<String> newList = updateTelephonyProperty(
|
||||
TelephonyProperties.baseband_version(), phoneId, version);
|
||||
- TelephonyProperties.baseband_version(newList);
|
||||
+ try {
|
||||
+ TelephonyProperties.baseband_version(newList);
|
||||
+ } catch(java.lang.IllegalArgumentException e) {
|
||||
+ List<String> list = new ArrayList<>();
|
||||
+ list.add(newList.get(0));
|
||||
+ TelephonyProperties.baseband_version(list);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 11dae80179722994abd9e3501e6c14d4393c4c93 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 29 Sep 2020 22:39:47 +0200
|
||||
Subject: [PATCH 24/25] Some devices have proximity sensor reporting NaN as max
|
||||
range for some reason. Make them behave standard way by setting 5 cm
|
||||
|
||||
Change-Id: I3c39e3e914a05903c140235702e0480d2d58a612
|
||||
---
|
||||
.../com/android/server/display/DisplayPowerController.java | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
index 4c12ebbd94f..01f367e8a2f 100644
|
||||
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
@@ -544,6 +544,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
if (mProximitySensor != null) {
|
||||
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
|
||||
TYPICAL_PROXIMITY_THRESHOLD);
|
||||
+ if(Float.isNaN(mProximityThreshold)) {
|
||||
+ mProximityThreshold = 5.0f;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
mCurrentScreenBrightnessSetting = getScreenBrightnessSetting();
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From c341fe6ac6366d2e78b8ec69d11729180ab5cb84 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 29 Sep 2020 22:40:10 +0200
|
||||
Subject: [PATCH 25/25] Fix brightness range not being complete on Samsung
|
||||
devices
|
||||
|
||||
On some devices, minimum brightness is 0, which totally messes with
|
||||
Brightness computations (minimum float brightness becomes -1.0 instead
|
||||
of 0.0...).
|
||||
Cheat and have them report 1 as minimum instead, which fixes the slope
|
||||
|
||||
Change-Id: I4d97cbc32490949e83272b81ec6320a5483310b1
|
||||
---
|
||||
.../java/com/android/server/power/PowerManagerService.java | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
|
||||
index 764ac969e18..40aeb32c40a 100644
|
||||
--- a/services/core/java/com/android/server/power/PowerManagerService.java
|
||||
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
|
||||
@@ -913,9 +913,11 @@ public final class PowerManagerService extends SystemService
|
||||
|
||||
if (min == INVALID_BRIGHTNESS_IN_CONFIG || max == INVALID_BRIGHTNESS_IN_CONFIG
|
||||
|| def == INVALID_BRIGHTNESS_IN_CONFIG) {
|
||||
+ int correctedMin = mContext.getResources().getInteger(com.android.internal.R.integer
|
||||
+ .config_screenBrightnessSettingMinimum);
|
||||
+ if(correctedMin == 0) correctedMin = 1;
|
||||
mScreenBrightnessMinimum = BrightnessSynchronizer.brightnessIntToFloat(
|
||||
- mContext.getResources().getInteger(com.android.internal.R.integer
|
||||
- .config_screenBrightnessSettingMinimum),
|
||||
+ correctedMin,
|
||||
PowerManager.BRIGHTNESS_OFF + 1, PowerManager.BRIGHTNESS_ON,
|
||||
PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX);
|
||||
mScreenBrightnessMaximum = BrightnessSynchronizer.brightnessIntToFloat(
|
||||
--
|
||||
2.17.1
|
||||
|
||||
Reference in New Issue
Block a user