From ebc4ea1e260d5059f7f83764f13465b54c623ce8 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 7 Oct 2023 19:15:00 -0400 Subject: [PATCH 01/19] [1/n] Android 14 port --- ...m-to-fake-vendor-props-on-a-per-proc.patch | 4 +- ...rce-load-audio-policy-for-system-si.patch} | 10 +- ...and-Q-behavior-respectively-for-tele.patch | 232 ----------------- ...DP-audio-ports-from-the-primary-HAL.patch} | 8 +- ...ecessary-close-of-buffer-acquire-fen.patch | 43 ---- ...support-glob-matching-for-properties.patch | 6 +- ...d-support-for-app-signature-spoofing.patch | 44 ++-- ...PackageUtils-Add-glob-matching-suppo.patch | 4 +- .../base/0004-Global-VPN-feature-1-2.patch | 38 +-- ...d.version.incremental-to-signal-OTA-.patch | 236 ------------------ ...more-FDE-methods-from-StorageManager.patch | 127 ---------- ...ability-to-write-to-index-0-of-bpf-m.patch | 8 +- ...tart-console-service-when-debuggable.patch | 8 +- ...ide-some-properties-ro.apex.updatabl.patch | 8 +- 14 files changed, 69 insertions(+), 707 deletions(-) rename frameworks/av/{0002-APM-Optionally-force-load-audio-policy-for-system-si.patch => 0001-APM-Optionally-force-load-audio-policy-for-system-si.patch} (89%) delete mode 100644 frameworks/av/0001-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch rename frameworks/av/{0003-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch => 0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch} (95%) delete mode 100644 frameworks/av/0004-Camera-Avoid-unnecessary-close-of-buffer-acquire-fen.patch delete mode 100644 frameworks/base/0005-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch delete mode 100644 frameworks/base/0006-Revert-Remove-more-FDE-methods-from-StorageManager.patch diff --git a/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch b/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch index a756b22..3b2f16f 100644 --- a/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch +++ b/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch @@ -1,4 +1,4 @@ -From ea0f283eec1e7750351302dbc2009fa905cef375 Mon Sep 17 00:00:00 2001 +From ee3be511ddfa2474c7c5890cea4725e908996b9f Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Sat, 19 Feb 2022 08:20:25 -0500 Subject: [PATCH] Add new mechanism to fake vendor props on a per-process basis @@ -132,5 +132,5 @@ index 1cb15c3df..40ff48bad 100644 static bool is_read_only(const char* name) { -- -2.40.0 +2.41.0 diff --git a/frameworks/av/0002-APM-Optionally-force-load-audio-policy-for-system-si.patch b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch similarity index 89% rename from frameworks/av/0002-APM-Optionally-force-load-audio-policy-for-system-si.patch rename to frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch index 5c6a2cc..334fb3b 100644 --- a/frameworks/av/0002-APM-Optionally-force-load-audio-policy-for-system-si.patch +++ b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch @@ -1,7 +1,7 @@ -From 5ae18168ff97d9e4eb66fc6dc8e087bd0ead8f31 Mon Sep 17 00:00:00 2001 +From f8b9cb1d3cdf0274414bb7d100844d2707999558 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:42:39 -0400 -Subject: [PATCH 2/4] APM: Optionally force-load audio policy for system-side +Subject: [PATCH 1/2] APM: Optionally force-load audio policy for system-side bt audio HAL Required to support our system-side bt audio implementation, i.e. @@ -14,7 +14,7 @@ Change-Id: I279fff541a531f922f3fa55b8f14d00237db59ff 1 file changed, 25 insertions(+) diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp -index d446e9667b..f5233f2a42 100644 +index 3d5c1d2e42..881c188e4c 100644 --- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp @@ -25,6 +25,7 @@ @@ -25,7 +25,7 @@ index d446e9667b..f5233f2a42 100644 #include #include #include -@@ -890,6 +891,30 @@ status_t PolicySerializer::deserialize(const char *configFile, AudioPolicyConfig +@@ -885,6 +886,30 @@ status_t PolicySerializer::deserialize(const char *configFile, AudioPolicyConfig if (status != NO_ERROR) { return status; } @@ -57,5 +57,5 @@ index d446e9667b..f5233f2a42 100644 // Global Configuration -- -2.39.2 +2.41.0 diff --git a/frameworks/av/0001-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch b/frameworks/av/0001-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch deleted file mode 100644 index ae6b430..0000000 --- a/frameworks/av/0001-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch +++ /dev/null @@ -1,232 +0,0 @@ -From f9be27ef60cd4ccca6803458ff29ee7a2236769c Mon Sep 17 00:00:00 2001 -From: Peter Cai -Date: Thu, 18 Aug 2022 15:44:46 -0400 -Subject: [PATCH 1/4] APM: Restore S, R and Q behavior respectively for - telephony audio - -This conditionally reverts part of b2e5cb (T), 51c9cc (S) and afd4ce (R) -when the VNDK version is equal to or before S, R and Q respectively. - -On R, commit afd4ce made it so that both HW and SW bridging go through -`createAudioPatch()`, which is broken on some devices such as on MTK Q -vendor, because their HAL do not support HW patching via the newer -`createAudioPatch()` method. Instead, the patching on Q was done through -`setOutputDevices()`. - -On S, commit 51c9cc refactored the related code again such that HW -bridging for the Rx direction is essentially removed, replaced with SW -bridging through `startAudioSource()`. This is, again, broken on MTK R -vendor devices. - -On T, commit b2e5cb applied the same SW bridging to the Tx direction. - -All of these commits rely on assumptions that are not tested through -VTS and just presumed to be true. Although we can blame MTK for not -supporting all the possible cases in their HAL, it will not fix -anything, and really frameworks code should not depend on such untested -assumptions. - -To work around said issues, we restore old behavior from S, R and Q -relying on the value of `ro.vndk.version`. - -Change-Id: I56d36d2aef4319935cb88a3e4771b23c6d5b2145 ---- - .../managerdefault/AudioPolicyManager.cpp | 103 ++++++++++++++++-- - .../managerdefault/AudioPolicyManager.h | 3 + - 2 files changed, 96 insertions(+), 10 deletions(-) - -diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp -index 4573382a06..c218c7ce2d 100644 ---- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp -+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp -@@ -675,6 +675,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal( - disconnectTelephonyAudioSource(mCallRxSourceClient); - disconnectTelephonyAudioSource(mCallTxSourceClient); - -+ // release existing RX patch if any -+ if (mCallRxPatch != 0) { -+ releaseAudioPatchInternal(mCallRxPatch->getHandle()); -+ mCallRxPatch.clear(); -+ } -+ // release TX patch if any -+ if (mCallTxPatch != 0) { -+ releaseAudioPatchInternal(mCallTxPatch->getHandle()); -+ mCallTxPatch.clear(); -+ } -+ - auto telephonyRxModule = - mHwModules.getModuleForDeviceType(AUDIO_DEVICE_IN_TELEPHONY_RX, AUDIO_FORMAT_DEFAULT); - auto telephonyTxModule = -@@ -697,9 +708,20 @@ status_t AudioPolicyManager::updateCallRoutingInternal( - ALOGE("%s() no telephony Tx and/or RX device", __func__); - return INVALID_OPERATION; - } -- // createAudioPatchInternal now supports both HW / SW bridging -- createRxPatch = true; -- createTxPatch = true; -+ if (property_get_int32("ro.vndk.version", 31) >= 30) { -+ // createAudioPatchInternal now supports both HW / SW bridging -+ createRxPatch = true; -+ createTxPatch = true; -+ } else { -+ // pre-R behavior: some devices before VNDK 30 do not support createAudioPatch correctly -+ // for HW bridging even though they declare support for it -+ // do not create a patch (aka Sw Bridging) if Primary HW module has declared supporting a -+ // route between telephony RX to Sink device and Source device to telephony TX -+ ALOGI("%s() Using pre-R behavior for createRxPatch and createTxPatch", __func__); -+ const auto &primaryModule = telephonyRxModule; -+ createRxPatch = !primaryModule->supportsPatch(rxSourceDevice, rxDevices.itemAt(0)); -+ createTxPatch = !primaryModule->supportsPatch(txSourceDevice, txSinkDevice); -+ } - } else { - // If the RX device is on the primary HW module, then use legacy routing method for - // voice calls via setOutputDevice() on primary output. -@@ -716,7 +738,14 @@ status_t AudioPolicyManager::updateCallRoutingInternal( - if (!createRxPatch) { - muteWaitMs = setOutputDevices(mPrimaryOutput, rxDevices, true, delayMs); - } else { // create RX path audio patch -- connectTelephonyRxAudioSource(); -+ if (property_get_int32("ro.vndk.version", 31) >= 31) { -+ connectTelephonyRxAudioSource(); -+ } else { -+ // pre-S behavior: some devices do not support SW bridging correctly when HW bridge is -+ // available through createAudioPatch(); startAudioSource() forces SW bridging. -+ ALOGI("%s() Using pre-S behavior to create HW Rx patch", __func__); -+ mCallRxPatch = createTelephonyPatch(true /*isRx*/, rxDevices.itemAt(0), delayMs); -+ } - // If the TX device is on the primary HW module but RX device is - // on other HW module, SinkMetaData of telephony input should handle it - // assuming the device uses audio HAL V5.0 and above -@@ -731,7 +760,12 @@ status_t AudioPolicyManager::updateCallRoutingInternal( - closeActiveClients(activeDesc); - } - } -- connectTelephonyTxAudioSource(txSourceDevice, txSinkDevice, delayMs); -+ if (property_get_int32("ro.vndk.version", 33) >= 33) { -+ connectTelephonyTxAudioSource(txSourceDevice, txSinkDevice, delayMs); -+ } else { -+ // pre-T behavior: hw bridging for tx too; skip the SwOutput -+ mCallTxPatch = createTelephonyPatch(false /*isRx*/, txSourceDevice, delayMs); -+ } - } - if (waitMs != nullptr) { - *waitMs = muteWaitMs; -@@ -739,6 +773,36 @@ status_t AudioPolicyManager::updateCallRoutingInternal( - return NO_ERROR; - } - -+sp AudioPolicyManager::createTelephonyPatch( -+ bool isRx, const sp &device, uint32_t delayMs) { -+ PatchBuilder patchBuilder; -+ -+ if (device == nullptr) { -+ return nullptr; -+ } -+ -+ // @TODO: still ignoring the address, or not dealing platform with multiple telephony devices -+ if (isRx) { -+ patchBuilder.addSink(device). -+ addSource(mAvailableInputDevices.getDevice( -+ AUDIO_DEVICE_IN_TELEPHONY_RX, String8(), AUDIO_FORMAT_DEFAULT)); -+ } else { -+ patchBuilder.addSource(device). -+ addSink(mAvailableOutputDevices.getDevice( -+ AUDIO_DEVICE_OUT_TELEPHONY_TX, String8(), AUDIO_FORMAT_DEFAULT)); -+ } -+ -+ audio_patch_handle_t patchHandle = AUDIO_PATCH_HANDLE_NONE; -+ status_t status = -+ createAudioPatchInternal(patchBuilder.patch(), &patchHandle, mUidCached, delayMs, nullptr); -+ ssize_t index = mAudioPatches.indexOfKey(patchHandle); -+ if (status != NO_ERROR || index < 0) { -+ ALOGW("%s() error %d creating %s audio patch", __func__, status, isRx ? "RX" : "TX"); -+ return nullptr; -+ } -+ return mAudioPatches.valueAt(index); -+} -+ - bool AudioPolicyManager::isDeviceOfModule( - const sp& devDesc, const char *moduleId) const { - sp module = mHwModules.getModuleFromName(moduleId); -@@ -4541,6 +4605,7 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch * - // in config XML to reach the sink so that is can be declared as available. - audio_io_handle_t output = AUDIO_IO_HANDLE_NONE; - sp outputDesc; -+ if (sourceDesc != nullptr) { // Ignore indentation, we don't want to cuase huge conflicts... - if (!sourceDesc->isInternal()) { - // take care of dynamic routing for SwOutput selection, - audio_attributes_t attributes = sourceDesc->attributes(); -@@ -4586,33 +4651,51 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch * - outputDesc = mOutputs.valueFor(output); - if (outputDesc->isDuplicated()) { - ALOGV("%s output for device %s is duplicated", -- __func__, sinkDevice->toString().c_str()); -+ __func__, sinkDevice->toString().c_str()); - return INVALID_OPERATION; - } - sourceDesc->setSwOutput(outputDesc, /* closeOutput= */ false); - } -+ } - // create a software bridge in PatchPanel if: - // - source and sink devices are on different HW modules OR - // - audio HAL version is < 3.0 - // - audio HAL version is >= 3.0 but no route has been declared between devices -- // - called from startAudioSource (aka sourceDesc is not internal) and source device -+ // - called from startAudioSource (aka sourceDesc is neither null nor internal) and source device - // does not have a gain controller - if (!srcDevice->hasSameHwModuleAs(sinkDevice) || - (srcDevice->getModuleVersionMajor() < 3) || - !srcDevice->getModule()->supportsPatch(srcDevice, sinkDevice) || -- (!sourceDesc->isInternal() && -+ ((sourceDesc != nullptr && !sourceDesc->isInternal()) && - srcDevice->getAudioPort()->getGains().size() == 0)) { - // support only one sink device for now to simplify output selection logic - if (patch->num_sinks > 1) { - return INVALID_OPERATION; - } -- sourceDesc->setUseSwBridge(); -+ if (sourceDesc == nullptr) { -+ SortedVector outputs = -+ getOutputsForDevices(DeviceVector(sinkDevice), mOutputs); -+ // if the sink device is reachable via an opened output stream, request to -+ // go via this output stream by adding a second source to the patch -+ // description -+ output = selectOutput(outputs); -+ if (output != AUDIO_IO_HANDLE_NONE) { -+ outputDesc = mOutputs.valueFor(output); -+ if (outputDesc->isDuplicated()) { -+ ALOGV("%s output for device %s is duplicated", -+ __FUNCTION__, sinkDevice->toString().c_str()); -+ return INVALID_OPERATION; -+ } -+ } -+ } else { -+ sourceDesc->setUseSwBridge(); -+ } - if (outputDesc != nullptr) { - audio_port_config srcMixPortConfig = {}; - outputDesc->toAudioPortConfig(&srcMixPortConfig, nullptr); - // for volume control, we may need a valid stream - srcMixPortConfig.ext.mix.usecase.stream = -- (!sourceDesc->isInternal() || isCallTxAudioSource(sourceDesc)) ? -+ ((sourceDesc != nullptr && !sourceDesc->isInternal()) || isCallTxAudioSource(sourceDesc)) ? - mEngine->getStreamTypeForAttributes(sourceDesc->attributes()) : - AUDIO_STREAM_PATCH; - patchBuilder.addSource(srcMixPortConfig); -diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h -index a69e08871b..f8762016db 100644 ---- a/services/audiopolicy/managerdefault/AudioPolicyManager.h -+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h -@@ -944,6 +944,9 @@ protected: - - SoundTriggerSessionCollection mSoundTriggerSessions; - -+ sp mCallTxPatch; -+ sp mCallRxPatch; -+ - HwAudioOutputCollection mHwOutputs; - SourceClientCollection mAudioSources; - --- -2.39.2 - diff --git a/frameworks/av/0003-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch similarity index 95% rename from frameworks/av/0003-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch rename to frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch index 51420ea..aa0b992 100644 --- a/frameworks/av/0003-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch +++ b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch @@ -1,7 +1,7 @@ -From d11e204968cbf01851042f03fe2a12aabbe84a93 Mon Sep 17 00:00:00 2001 +From d60a1b5fc58a7cc84b48c554cb2cffaeff14d86e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 25 Aug 2022 13:30:29 -0400 -Subject: [PATCH 3/4] APM: Remove A2DP audio ports from the primary HAL +Subject: [PATCH 2/2] APM: Remove A2DP audio ports from the primary HAL These ports defined in the primary HAL are intended for A2DP offloading, however they do not work in general on GSIs, and will interfere with @@ -16,7 +16,7 @@ Change-Id: I3305594a17285da113167b419543543f0ef71122 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp -index f5233f2a42..6630d06f6d 100644 +index 881c188e4c..8519cfdc04 100644 --- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp @@ -26,6 +26,7 @@ @@ -75,5 +75,5 @@ index f5233f2a42..6630d06f6d 100644 RouteTraits::Collection routes; -- -2.39.2 +2.41.0 diff --git a/frameworks/av/0004-Camera-Avoid-unnecessary-close-of-buffer-acquire-fen.patch b/frameworks/av/0004-Camera-Avoid-unnecessary-close-of-buffer-acquire-fen.patch deleted file mode 100644 index 3f1e671..0000000 --- a/frameworks/av/0004-Camera-Avoid-unnecessary-close-of-buffer-acquire-fen.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 628ff965d6ade74843a58cab6fe58069ef0ec3ad Mon Sep 17 00:00:00 2001 -From: Emilian Peev -Date: Fri, 5 Aug 2022 17:28:06 -0700 -Subject: [PATCH 4/4] Camera: Avoid unnecessary close of buffer acquire fence - fds - -According to the gralloc lock documentation: -The ownership of acquireFence is always transferred to the callee, even -on errors. - -Bug: 241455881 -Test: Manual using camera application -Change-Id: Ieec34b54aaa7f0d773eccb593c3daaa3e41bae0b -Merged-In: Ieec34b54aaa7f0d773eccb593c3daaa3e41bae0b ---- - .../camera/libcameraservice/device3/Camera3OutputStream.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp -index 396104c4fd..c725aadb79 100644 ---- a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp -+++ b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp -@@ -331,7 +331,7 @@ status_t Camera3OutputStream::fixUpHidlJpegBlobHeader(ANativeWindowBuffer* anwBu - status_t res = - gbLocker.lockAsync( - GraphicBuffer::USAGE_SW_READ_OFTEN | GraphicBuffer::USAGE_SW_WRITE_RARELY, -- &mapped, fenceFd.get()); -+ &mapped, fenceFd.release()); - if (res != OK) { - ALOGE("%s: Failed to lock the buffer: %s (%d)", __FUNCTION__, strerror(-res), res); - return res; -@@ -1327,7 +1327,7 @@ void Camera3OutputStream::dumpImageToDisk(nsecs_t timestamp, - void* mapped = nullptr; - base::unique_fd fenceFd(dup(fence)); - status_t res = graphicBuffer->lockAsync(GraphicBuffer::USAGE_SW_READ_OFTEN, &mapped, -- fenceFd.get()); -+ fenceFd.release()); - if (res != OK) { - ALOGE("%s: Failed to lock the buffer: %s (%d)", __FUNCTION__, strerror(-res), res); - return; --- -2.39.2 - diff --git a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch index 5521e96..cea0159 100644 --- a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch +++ b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch @@ -1,7 +1,7 @@ -From 5e94fc70ba1963ed33eb6633702cce706b6814d1 Mon Sep 17 00:00:00 2001 +From c25e4bfafc3b0b9f44c9cd2b9fed590299480f71 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Oct 2021 21:37:22 -0400 -Subject: [PATCH 1/6] PackageParser: support glob matching for properties +Subject: [PATCH 1/4] PackageParser: support glob matching for properties Needed to make phh's vendor overlays work --- @@ -9,7 +9,7 @@ Needed to make phh's vendor overlays work 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java -index c15b3e0b80c3..05bb843c0c4d 100644 +index 048289f56a0c..0d88d7ab97a4 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -2545,8 +2545,16 @@ public class PackageParser { diff --git a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch index 966f492..d2fe6b4 100644 --- a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch +++ b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch @@ -1,7 +1,7 @@ -From 3199a7f449d08acf306aafb180ccbcbacd993616 Mon Sep 17 00:00:00 2001 +From 540857efdf49ba24121970d2b836eb38ab7e7b32 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Sat, 16 Oct 2021 05:27:57 -0700 -Subject: [PATCH 2/6] Add support for app signature spoofing +Subject: [PATCH 2/4] Add support for app signature spoofing This is needed by microG GmsCore to pretend to be the official Google Play Services package, because client apps check the package signature @@ -38,18 +38,18 @@ Change-Id: Ied7d6ce0b83a2d2345c3abba0429998d86494a88 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt -index 487e57d114c9..04e69741b9fd 100644 +index 288ab479c0fb..2124d89c6e6f 100644 --- a/core/api/current.txt +++ b/core/api/current.txt -@@ -87,6 +87,7 @@ package android { - field public static final String DUMP = "android.permission.DUMP"; +@@ -95,6 +95,7 @@ package android { + field public static final String EXECUTE_APP_ACTION = "android.permission.EXECUTE_APP_ACTION"; field public static final String EXPAND_STATUS_BAR = "android.permission.EXPAND_STATUS_BAR"; field public static final String FACTORY_TEST = "android.permission.FACTORY_TEST"; + field public static final String FAKE_PACKAGE_SIGNATURE = "android.permission.FAKE_PACKAGE_SIGNATURE"; field public static final String FOREGROUND_SERVICE = "android.permission.FOREGROUND_SERVICE"; - field public static final String GET_ACCOUNTS = "android.permission.GET_ACCOUNTS"; - field public static final String GET_ACCOUNTS_PRIVILEGED = "android.permission.GET_ACCOUNTS_PRIVILEGED"; -@@ -222,6 +223,7 @@ package android { + field public static final String FOREGROUND_SERVICE_CAMERA = "android.permission.FOREGROUND_SERVICE_CAMERA"; + field public static final String FOREGROUND_SERVICE_CONNECTED_DEVICE = "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"; +@@ -326,6 +327,7 @@ package android { field public static final String CALL_LOG = "android.permission-group.CALL_LOG"; field public static final String CAMERA = "android.permission-group.CAMERA"; field public static final String CONTACTS = "android.permission-group.CONTACTS"; @@ -58,10 +58,10 @@ index 487e57d114c9..04e69741b9fd 100644 field public static final String MICROPHONE = "android.permission-group.MICROPHONE"; field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES"; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml -index 0e95e30a99b8..a456ac6b7129 100644 +index 2f9f6ae3f3c4..c4cde374ce58 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml -@@ -3569,6 +3569,21 @@ +@@ -4251,6 +4251,21 @@ android:description="@string/permdesc_getPackageSize" android:protectionLevel="normal" /> @@ -84,10 +84,10 @@ index 0e95e30a99b8..a456ac6b7129 100644 {@link android.content.pm.PackageManager#addPackageToPreferred} for details. --> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml -index 2091c0502b6f..6888edcf7d3c 100644 +index a5b2b853fddd..f8b48c55ce21 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml -@@ -982,6 +982,18 @@ +@@ -991,6 +991,18 @@ @@ -107,10 +107,10 @@ index 2091c0502b6f..6888edcf7d3c 100644 disable or modify status bar diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java -index 46b7460dff1b..40549962436f 100644 +index 78f1fa60b69f..fb2f7da97cda 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java -@@ -1603,6 +1603,29 @@ public class ComputerEngine implements Computer { +@@ -1450,6 +1450,29 @@ public class ComputerEngine implements Computer { return result; } @@ -140,21 +140,21 @@ index 46b7460dff1b..40549962436f 100644 public final PackageInfo generatePackageInfo(PackageStateInternal ps, @PackageManager.PackageInfoFlagsBits long flags, int userId) { if (!mUserManager.exists(userId)) return null; -@@ -1632,13 +1655,14 @@ public class ComputerEngine implements Computer { - final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY - : mPermissionManager.getGidsForUid(UserHandle.getUid(userId, ps.getAppId())); +@@ -1483,13 +1506,14 @@ public class ComputerEngine implements Computer { + || ArrayUtils.isEmpty(p.getPermissions())) ? Collections.emptySet() + : mPermissionManager.getInstalledPermissions(ps.getPackageName()); // Compute granted permissions only if package has requested permissions -- final Set permissions = ((flags & PackageManager.GET_PERMISSIONS) == 0 -+ final Set permissions = (((flags & PackageManager.GET_PERMISSIONS) == 0 +- final Set grantedPermissions = ((flags & PackageManager.GET_PERMISSIONS) == 0 ++ final Set grantedPermissions = (((flags & PackageManager.GET_PERMISSIONS) == 0 + && !requestsFakeSignature(p)) || ArrayUtils.isEmpty(p.getRequestedPermissions())) ? Collections.emptySet() : mPermissionManager.getGrantedPermissions(ps.getPackageName(), userId); - PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags, + PackageInfo packageInfo = mayFakeSignature(p, PackageInfoUtils.generate(p, gids, flags, - state.getFirstInstallTime(), ps.getLastUpdateTime(), permissions, state, userId, -- ps); -+ ps), permissions); + state.getFirstInstallTimeMillis(), ps.getLastUpdateTime(), installedPermissions, +- grantedPermissions, state, userId, ps); ++ grantedPermissions, state, userId, ps), grantedPermissions); if (packageInfo == null) { return null; diff --git a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch index f449efc..ccecbe6 100644 --- a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch +++ b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch @@ -1,7 +1,7 @@ -From 734839b7918f93cb746ebbe82179a9cbcf165424 Mon Sep 17 00:00:00 2001 +From 148fe28e381f444f7d06ea611dbd82c1e1ae8573 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 2 Sep 2022 21:36:06 -0400 -Subject: [PATCH 3/6] FrameworkParsingPackageUtils: Add glob matching support +Subject: [PATCH 3/4] FrameworkParsingPackageUtils: Add glob matching support for properties This is now required in addition to the one in PackageParser in order diff --git a/frameworks/base/0004-Global-VPN-feature-1-2.patch b/frameworks/base/0004-Global-VPN-feature-1-2.patch index 39f3205..173de2b 100644 --- a/frameworks/base/0004-Global-VPN-feature-1-2.patch +++ b/frameworks/base/0004-Global-VPN-feature-1-2.patch @@ -1,7 +1,7 @@ -From af0cbe50e889694dc72ab84c4e1af816bdd199b9 Mon Sep 17 00:00:00 2001 +From 00b72ce36c74f294e9823a41c0f50f73d435b1dd Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:41:43 -0400 -Subject: [PATCH 4/6] Global VPN feature [1/2] +Subject: [PATCH 4/4] Global VPN feature [1/2] * Modify existing VPN user range functions to conditionally have traffic from all users pass through the global VPN. @@ -28,10 +28,10 @@ Signed-off-by: Mohammad Hasan Keramat J 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java -index 8d8379831e87..bd6cc1d4d7bf 100644 +index d695c0cb3760..5c705aa14d44 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java -@@ -16060,6 +16060,12 @@ public final class Settings { +@@ -16734,6 +16734,12 @@ public final class Settings { CLOCKWORK_HOME_READY, }; @@ -45,7 +45,7 @@ index 8d8379831e87..bd6cc1d4d7bf 100644 * Keys we no longer back up under the current schema, but want to continue to * process when restoring historical backup datasets. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java -index ba947149d287..e5eb04c7818d 100644 +index 03656f000c07..fddf8167beb5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java @@ -39,6 +39,7 @@ import android.os.Handler; @@ -56,7 +56,7 @@ index ba947149d287..e5eb04c7818d 100644 import android.security.KeyChain; import android.util.ArrayMap; import android.util.Log; -@@ -332,8 +333,13 @@ public class SecurityControllerImpl implements SecurityController { +@@ -338,8 +339,13 @@ public class SecurityControllerImpl implements SecurityController { @Override public void onUserSwitched(int newUserId) { mCurrentUserId = newUserId; @@ -72,10 +72,10 @@ index ba947149d287..e5eb04c7818d 100644 mVpnUserId = newUserInfo.restrictedProfileParentId; } else { diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java -index 8510de4ef201..7c02924a711d 100644 +index e85eee817d29..2a731532b8d2 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java -@@ -691,6 +691,15 @@ public class Vpn { +@@ -909,6 +909,15 @@ public class Vpn { return mAlwaysOn; } @@ -91,7 +91,7 @@ index 8510de4ef201..7c02924a711d 100644 /** * Checks if a VPN app supports always-on mode. * -@@ -1559,6 +1568,7 @@ public class Vpn { +@@ -1855,6 +1864,7 @@ public class Vpn { try { // Restricted users are not allowed to create VPNs, they are tied to Owner enforceNotRestrictedUser(); @@ -99,7 +99,7 @@ index 8510de4ef201..7c02924a711d 100644 final PackageManager packageManager = mUserIdContext.getPackageManager(); if (packageManager == null) { -@@ -1720,7 +1730,7 @@ public class Vpn { +@@ -2007,7 +2017,7 @@ public class Vpn { addUserToRanges(ranges, userId, allowedApplications, disallowedApplications); // If the user can have restricted profiles, assign all its restricted profiles too @@ -108,7 +108,7 @@ index 8510de4ef201..7c02924a711d 100644 final long token = Binder.clearCallingIdentity(); List users; try { -@@ -1729,7 +1739,8 @@ public class Vpn { +@@ -2016,7 +2026,8 @@ public class Vpn { Binder.restoreCallingIdentity(token); } for (UserInfo user : users) { @@ -118,7 +118,7 @@ index 8510de4ef201..7c02924a711d 100644 addUserToRanges(ranges, user.id, allowedApplications, disallowedApplications); } } -@@ -1810,7 +1821,8 @@ public class Vpn { +@@ -2097,7 +2108,8 @@ public class Vpn { public void onUserAdded(int userId) { // If the user is restricted tie them to the parent user's VPN UserInfo user = mUserManager.getUserInfo(userId); @@ -128,7 +128,7 @@ index 8510de4ef201..7c02924a711d 100644 synchronized(Vpn.this) { final Set> existingRanges = mNetworkCapabilities.getUids(); if (existingRanges != null) { -@@ -1839,7 +1851,8 @@ public class Vpn { +@@ -2126,7 +2138,8 @@ public class Vpn { public void onUserRemoved(int userId) { // clean up if restricted UserInfo user = mUserManager.getUserInfo(userId); @@ -138,7 +138,7 @@ index 8510de4ef201..7c02924a711d 100644 synchronized(Vpn.this) { final Set> existingRanges = mNetworkCapabilities.getUids(); if (existingRanges != null) { -@@ -2278,6 +2291,17 @@ public class Vpn { +@@ -2565,6 +2578,17 @@ public class Vpn { } } @@ -156,7 +156,7 @@ index 8510de4ef201..7c02924a711d 100644 /** * Start legacy VPN, controlling native daemons as needed. Creates a * secondary thread to perform connection work, returning quickly. -@@ -2362,6 +2386,7 @@ public class Vpn { +@@ -2649,6 +2673,7 @@ public class Vpn { new UserHandle(mUserId))) { throw new SecurityException("Restricted users cannot establish VPNs"); } @@ -164,7 +164,7 @@ index 8510de4ef201..7c02924a711d 100644 final RouteInfo ipv4DefaultRoute = findIPv4DefaultRoute(egress); final String gateway = ipv4DefaultRoute.getGateway().getHostAddress(); -@@ -3859,6 +3884,7 @@ public class Vpn { +@@ -4627,6 +4652,7 @@ public class Vpn { verifyCallingUidAndPackage(packageName); enforceNotRestrictedUser(); @@ -172,7 +172,7 @@ index 8510de4ef201..7c02924a711d 100644 validateRequiredFeatures(profile); if (profile.isRestrictedToTestNetworks) { -@@ -3901,6 +3927,7 @@ public class Vpn { +@@ -4669,6 +4695,7 @@ public class Vpn { verifyCallingUidAndPackage(packageName); enforceNotRestrictedUser(); @@ -180,7 +180,7 @@ index 8510de4ef201..7c02924a711d 100644 final long token = Binder.clearCallingIdentity(); try { -@@ -3964,6 +3991,7 @@ public class Vpn { +@@ -4738,6 +4765,7 @@ public class Vpn { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); @@ -188,7 +188,7 @@ index 8510de4ef201..7c02924a711d 100644 // Prepare VPN for startup if (!prepare(packageName, null /* newPackage */, VpnManager.TYPE_VPN_PLATFORM)) { -@@ -4085,6 +4113,7 @@ public class Vpn { +@@ -4860,6 +4888,7 @@ public class Vpn { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); diff --git a/frameworks/base/0005-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch b/frameworks/base/0005-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch deleted file mode 100644 index 77c15f4..0000000 --- a/frameworks/base/0005-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 628ab41923ce082cd68ab8d4a184823b62a75ab3 Mon Sep 17 00:00:00 2001 -From: dhacker29 -Date: Tue, 24 Nov 2015 01:53:47 -0500 -Subject: [PATCH 5/6] fw/b: Use ro.build.version.incremental to signal OTA - upgrades - -Squash of: - -Author: dhacker29 -Date: Tue Nov 24 01:53:47 2015 -0500 - Core: Use ro.build.date to signal mIsUpgrade - - M: We use a static fingerprint that is only changed when a new OEM build is released, so - every flash shows Android is starting instead of upgrading. This will fix that. - N: even though we dont have the dexopt sceen on N, this is still needed to delete the - correct caches, and grant/deny specific runtime permissions like a true oem update - would do. - Updated for Nougat By: BeansTown106 - - Change-Id: I0e3ed5c8f0351e48944432ae6a0c5194ddeff1fa - -Author: Sam Mortimer -Date: Fri Sep 28 13:45:00 2018 -0700 - fw/b UserManagerService: Use ro.build.date to signal upgrades - - *) We changed PackageManagerService to use Build.DATE instead of - Build.FINGERPRINT to detect upgrade. Do the same for - UserManagerService. - *) Affects generation of preboot intent and app data migration. - - Change-Id: I56887b7ca842afdcf3cf84b27b4c04667cf43307 - -Author: Wang Han <416810799@qq.com> -Date: Sat Dec 29 23:33:20 2018 +0800 - ShortcutService: Use ro.build.date to signal package scanning - - * Affects system apps scanning. - - Change-Id: I5f6d6647929f5b5ae7e820b18e95bf5ed2ec8d1c - -Author: maxwen -Date: Tue Nov 19 01:02:01 2019 +0100 - base: Use ro.build.date to clear cache dirs on update - - instead of using ro.build.fingerprint we explictly need to use ro.build.date - - Change-Id: Ib3e80e58eb8c9a21c108e9f5cd2dbdb7ada8e3a4 - -Author: maxwen -Date: Wed Oct 28 07:07:10 2020 -0400 - One more Build.FINGERPRINT to Build.DATE change - - Change-Id: I13dbf3d7f6587d3fcd6591cc0f861b34b6d5561c - -Change-Id: If0eb969ba509981f9209ffa37a949d9042ef4c2a ---- - core/java/android/app/admin/SystemUpdateInfo.java | 4 ++-- - .../java/com/android/server/am/UserController.java | 3 ++- - .../com/android/server/pm/PackageManagerService.java | 12 ++++++------ - .../core/java/com/android/server/pm/Settings.java | 4 ++-- - .../java/com/android/server/pm/ShortcutService.java | 2 +- - .../com/android/server/pm/UserManagerService.java | 8 ++++---- - 6 files changed, 17 insertions(+), 16 deletions(-) - -diff --git a/core/java/android/app/admin/SystemUpdateInfo.java b/core/java/android/app/admin/SystemUpdateInfo.java -index b88bf76c96ca..fdf2b3f54311 100644 ---- a/core/java/android/app/admin/SystemUpdateInfo.java -+++ b/core/java/android/app/admin/SystemUpdateInfo.java -@@ -132,7 +132,7 @@ public final class SystemUpdateInfo implements Parcelable { - out.startTag(null, tag); - out.attributeLong(null, ATTR_RECEIVED_TIME, mReceivedTime); - out.attributeInt(null, ATTR_SECURITY_PATCH_STATE, mSecurityPatchState); -- out.attribute(null, ATTR_ORIGINAL_BUILD , Build.FINGERPRINT); -+ out.attribute(null, ATTR_ORIGINAL_BUILD , Build.VERSION.INCREMENTAL); - out.endTag(null, tag); - } - -@@ -141,7 +141,7 @@ public final class SystemUpdateInfo implements Parcelable { - public static SystemUpdateInfo readFromXml(TypedXmlPullParser parser) { - // If an OTA has been applied (build fingerprint has changed), discard stale info. - final String buildFingerprint = parser.getAttributeValue(null, ATTR_ORIGINAL_BUILD ); -- if (!Build.FINGERPRINT.equals(buildFingerprint)) { -+ if (!Build.VERSION.INCREMENTAL.equals(buildFingerprint)) { - return null; - } - try { -diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java -index 44b186e1541f..9470a728389f 100644 ---- a/services/core/java/com/android/server/am/UserController.java -+++ b/services/core/java/com/android/server/am/UserController.java -@@ -71,6 +71,7 @@ import android.content.pm.PackagePartitions; - import android.content.pm.UserInfo; - import android.os.BatteryStats; - import android.os.Binder; -+import android.os.Build; - import android.os.Bundle; - import android.os.Debug; - import android.os.Handler; -@@ -761,7 +762,7 @@ class UserController implements Handler.Callback { - // purposefully block sending BOOT_COMPLETED until after all - // PRE_BOOT receivers are finished to avoid ANR'ing apps - final UserInfo info = getUserInfo(userId); -- if (!Objects.equals(info.lastLoggedInFingerprint, PackagePartitions.FINGERPRINT) -+ if (!Objects.equals(info.lastLoggedInFingerprint, Build.VERSION.INCREMENTAL) - || SystemProperties.getBoolean("persist.pm.mock-upgrade", false)) { - // Suppress double notifications for managed profiles that - // were unlocked automatically as part of their parent user being -diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java -index 47860373156b..858bf1aad92f 100644 ---- a/services/core/java/com/android/server/pm/PackageManagerService.java -+++ b/services/core/java/com/android/server/pm/PackageManagerService.java -@@ -1492,7 +1492,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService - } - - PackageManagerService m = new PackageManagerService(injector, onlyCore, factoryTest, -- PackagePartitions.FINGERPRINT, Build.IS_ENG, Build.IS_USERDEBUG, -+ Build.VERSION.INCREMENTAL, Build.IS_ENG, Build.IS_USERDEBUG, - Build.VERSION.SDK_INT, Build.VERSION.INCREMENTAL); - t.traceEnd(); // "create package manager" - -@@ -1954,7 +1954,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService - !buildFingerprint.equals(ver.fingerprint); - if (mIsUpgrade) { - PackageManagerServiceUtils.logCriticalInfo(Log.INFO, "Upgrading from " -- + ver.fingerprint + " to " + PackagePartitions.FINGERPRINT); -+ + ver.fingerprint + " to " + Build.VERSION.INCREMENTAL); - } - - mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper, -@@ -2068,8 +2068,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService - // allow... it would be nice to have some better way to handle - // this situation. - if (mIsUpgrade) { -- Slog.i(TAG, "Build fingerprint changed from " + ver.fingerprint + " to " -- + PackagePartitions.FINGERPRINT -+ Slog.i(TAG, "Build incremental version changed from " + ver.fingerprint + " to " -+ + Build.VERSION.INCREMENTAL - + "; regranting permissions for internal storage"); - } - mPermissionManager.onStorageVolumeMounted( -@@ -2091,7 +2091,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService - // across OTAs and are used to drive profile verification (post OTA) and - // profile compilation (without waiting to collect a fresh set of profiles). - if (mIsUpgrade && !mOnlyCore) { -- Slog.i(TAG, "Build fingerprint changed; clearing code caches"); -+ Slog.i(TAG, "Build incremental version changed; clearing code caches"); - for (int i = 0; i < packageSettings.size(); i++) { - final PackageSetting ps = packageSettings.valueAt(i); - if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, ps.getVolumeUuid())) { -@@ -2102,7 +2102,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService - | Installer.FLAG_CLEAR_APP_DATA_KEEP_ART_PROFILES); - } - } -- ver.fingerprint = PackagePartitions.FINGERPRINT; -+ ver.fingerprint = Build.VERSION.INCREMENTAL; - } - - // Defer the app data fixup until we are done with app data clearing above. -diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java -index cfd029346340..a9b624653b92 100644 ---- a/services/core/java/com/android/server/pm/Settings.java -+++ b/services/core/java/com/android/server/pm/Settings.java -@@ -445,7 +445,7 @@ public final class Settings implements Watchable, Snappable { - public void forceCurrent() { - sdkVersion = Build.VERSION.SDK_INT; - databaseVersion = CURRENT_DATABASE_VERSION; -- fingerprint = PackagePartitions.FINGERPRINT; -+ fingerprint = Build.VERSION.INCREMENTAL; - } - } - -@@ -5527,7 +5527,7 @@ public final class Settings implements Watchable, Snappable { - } - - private String getExtendedFingerprint(long version) { -- return PackagePartitions.FINGERPRINT + "?pc_version=" + version; -+ return Build.VERSION.INCREMENTAL + "?pc_version=" + version; - } - - private static long uniformRandom(double low, double high) { -diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java -index a2b2983a8f35..4564e9dccc13 100644 ---- a/services/core/java/com/android/server/pm/ShortcutService.java -+++ b/services/core/java/com/android/server/pm/ShortcutService.java -@@ -5168,7 +5168,7 @@ public class ShortcutService extends IShortcutService.Stub { - - // Injection point. - String injectBuildFingerprint() { -- return Build.FINGERPRINT; -+ return Build.VERSION.INCREMENTAL; - } - - final void wtf(String message) { -diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java -index 88aeb17dc2b4..af7b481dd311 100644 ---- a/services/core/java/com/android/server/pm/UserManagerService.java -+++ b/services/core/java/com/android/server/pm/UserManagerService.java -@@ -4104,7 +4104,7 @@ public class UserManagerService extends IUserManager.Stub { - userInfo.creationTime = getCreationTime(); - userInfo.partial = true; - userInfo.preCreated = preCreate; -- userInfo.lastLoggedInFingerprint = PackagePartitions.FINGERPRINT; -+ userInfo.lastLoggedInFingerprint = Build.VERSION.INCREMENTAL; - if (userTypeDetails.hasBadge() && parentId != UserHandle.USER_NULL) { - userInfo.profileBadge = getFreeProfileBadgeLU(parentId, userType); - } -@@ -5390,7 +5390,7 @@ public class UserManagerService extends IUserManager.Stub { - t.traceBegin("onBeforeStartUser-" + userId); - final int userSerial = userInfo.serialNumber; - // Migrate only if build fingerprints mismatch -- boolean migrateAppsData = !PackagePartitions.FINGERPRINT.equals( -+ boolean migrateAppsData = !Build.VERSION.INCREMENTAL.equals( - userInfo.lastLoggedInFingerprint); - t.traceBegin("prepareUserData"); - mUserDataPreparer.prepareUserData(userId, userSerial, StorageManager.FLAG_STORAGE_DE); -@@ -5421,7 +5421,7 @@ public class UserManagerService extends IUserManager.Stub { - } - final int userSerial = userInfo.serialNumber; - // Migrate only if build fingerprints mismatch -- boolean migrateAppsData = !PackagePartitions.FINGERPRINT.equals( -+ boolean migrateAppsData = !Build.VERSION.INCREMENTAL.equals( - userInfo.lastLoggedInFingerprint); - - final TimingsTraceAndSlog t = new TimingsTraceAndSlog(); -@@ -5466,7 +5466,7 @@ public class UserManagerService extends IUserManager.Stub { - if (now > EPOCH_PLUS_30_YEARS) { - userData.info.lastLoggedInTime = now; - } -- userData.info.lastLoggedInFingerprint = PackagePartitions.FINGERPRINT; -+ userData.info.lastLoggedInFingerprint = Build.VERSION.INCREMENTAL; - scheduleWriteUser(userData); - } - --- -2.41.0 - diff --git a/frameworks/base/0006-Revert-Remove-more-FDE-methods-from-StorageManager.patch b/frameworks/base/0006-Revert-Remove-more-FDE-methods-from-StorageManager.patch deleted file mode 100644 index 54e5bff..0000000 --- a/frameworks/base/0006-Revert-Remove-more-FDE-methods-from-StorageManager.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 54e70eb7ce231f6a1bef4ffdedb6008b3a949820 Mon Sep 17 00:00:00 2001 -From: Andy CrossGate Yan -Date: Sat, 15 Oct 2022 09:33:56 +0000 -Subject: [PATCH 6/6] Revert "Remove more FDE methods from StorageManager" - -This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676. ---- - .../android/os/storage/StorageManager.java | 69 ++++++++++++++++--- - .../internal/os/RoSystemProperties.java | 4 ++ - 2 files changed, 65 insertions(+), 8 deletions(-) - -diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java -index d9604b3f0145..603612e82007 100644 ---- a/core/java/android/os/storage/StorageManager.java -+++ b/core/java/android/os/storage/StorageManager.java -@@ -1681,13 +1681,18 @@ public class StorageManager { - } - - /** {@hide} -- * Is this device encrypted? -- *

-- * Note: all devices launching with Android 10 (API level 29) or later are -- * required to be encrypted. This should only ever return false for -- * in-development devices on which encryption has not yet been configured. -- * -- * @return true if encrypted, false if not encrypted -+ * Is this device encryptable or already encrypted? -+ * @return true for encryptable or encrypted -+ * false not encrypted and not encryptable -+ */ -+ public static boolean isEncryptable() { -+ return RoSystemProperties.CRYPTO_ENCRYPTABLE; -+ } -+ -+ /** {@hide} -+ * Is this device already encrypted? -+ * @return true for encrypted. (Implies isEncryptable() == true) -+ * false not encrypted - */ - public static boolean isEncrypted() { - return RoSystemProperties.CRYPTO_ENCRYPTED; -@@ -1696,7 +1701,7 @@ public class StorageManager { - /** {@hide} - * Is this device file encrypted? - * @return true for file encrypted. (Implies isEncrypted() == true) -- * false not encrypted or using "managed" encryption -+ * false not encrypted or block encrypted - */ - @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) - public static boolean isFileEncryptedNativeOnly() { -@@ -1706,6 +1711,54 @@ public class StorageManager { - return RoSystemProperties.CRYPTO_FILE_ENCRYPTED; - } - -+ /** {@hide} -+ * Is this device block encrypted? -+ * @return true for block encrypted. (Implies isEncrypted() == true) -+ * false not encrypted or file encrypted -+ */ -+ public static boolean isBlockEncrypted() { -+ return false; -+ } -+ -+ /** {@hide} -+ * Is this device block encrypted with credentials? -+ * @return true for crediential block encrypted. -+ * (Implies isBlockEncrypted() == true) -+ * false not encrypted, file encrypted or default block encrypted -+ */ -+ public static boolean isNonDefaultBlockEncrypted() { -+ return false; -+ } -+ -+ /** {@hide} -+ * Is this device in the process of being block encrypted? -+ * @return true for encrypting. -+ * false otherwise -+ * Whether device isEncrypted at this point is undefined -+ * Note that only system services and CryptKeeper will ever see this return -+ * true - no app will ever be launched in this state. -+ * Also note that this state will not change without a teardown of the -+ * framework, so no service needs to check for changes during their lifespan -+ */ -+ public static boolean isBlockEncrypting() { -+ return false; -+ } -+ -+ /** {@hide} -+ * Is this device non default block encrypted and in the process of -+ * prompting for credentials? -+ * @return true for prompting for credentials. -+ * (Implies isNonDefaultBlockEncrypted() == true) -+ * false otherwise -+ * Note that only system services and CryptKeeper will ever see this return -+ * true - no app will ever be launched in this state. -+ * Also note that this state will not change without a teardown of the -+ * framework, so no service needs to check for changes during their lifespan -+ */ -+ public static boolean inCryptKeeperBounce() { -+ return false; -+ } -+ - /** {@hide} */ - public static boolean isFileEncryptedEmulatedOnly() { - return SystemProperties.getBoolean(StorageManager.PROP_EMULATE_FBE, false); -diff --git a/core/java/com/android/internal/os/RoSystemProperties.java b/core/java/com/android/internal/os/RoSystemProperties.java -index cccd80e82420..adb5c107bc62 100644 ---- a/core/java/com/android/internal/os/RoSystemProperties.java -+++ b/core/java/com/android/internal/os/RoSystemProperties.java -@@ -62,10 +62,14 @@ public class RoSystemProperties { - public static final CryptoProperties.type_values CRYPTO_TYPE = - CryptoProperties.type().orElse(CryptoProperties.type_values.NONE); - // These are pseudo-properties -+ public static final boolean CRYPTO_ENCRYPTABLE = -+ CRYPTO_STATE != CryptoProperties.state_values.UNSUPPORTED; - public static final boolean CRYPTO_ENCRYPTED = - CRYPTO_STATE == CryptoProperties.state_values.ENCRYPTED; - public static final boolean CRYPTO_FILE_ENCRYPTED = - CRYPTO_TYPE == CryptoProperties.type_values.FILE; -+ public static final boolean CRYPTO_BLOCK_ENCRYPTED = -+ CRYPTO_TYPE == CryptoProperties.type_values.BLOCK; - - public static final boolean CONTROL_PRIVAPP_PERMISSIONS_LOG = - "log".equalsIgnoreCase(CONTROL_PRIVAPP_PERMISSIONS); --- -2.41.0 - diff --git a/system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch b/system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch index 8704b6d..ae8b43c 100644 --- a/system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch +++ b/system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch @@ -1,4 +1,4 @@ -From cf04b02d96fef364996067ca4ecc51b65f521dca Mon Sep 17 00:00:00 2001 +From 89613b61836c202b6ba3d3f35be16e24500ffe6c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 6 Dec 2022 18:30:32 -0500 Subject: [PATCH] Revert "detect inability to write to index != 0 of bpf map @@ -10,10 +10,10 @@ This reverts commit ead9d83423877458023056f6ccf9390950d6726f. 1 file changed, 9 deletions(-) diff --git a/bpfloader/BpfLoader.cpp b/bpfloader/BpfLoader.cpp -index 5cd80b7..bc72811 100644 +index e53669a..2816161 100644 --- a/bpfloader/BpfLoader.cpp +++ b/bpfloader/BpfLoader.cpp -@@ -199,15 +199,6 @@ int main(int argc, char** argv) { +@@ -307,15 +307,6 @@ int main(int argc, char** argv) { } } @@ -30,5 +30,5 @@ index 5cd80b7..bc72811 100644 ALOGE("Failed to set bpf.progs_loaded property"); return 1; -- -2.38.1 +2.41.0 diff --git a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch index 64462e1..f543b89 100644 --- a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch +++ b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch @@ -1,4 +1,4 @@ -From f53da166596fc34df3255b1c5120fd7cdcf21e5f Mon Sep 17 00:00:00 2001 +From b370e176ea2fe56423d668a9c7a53000d6154b8a Mon Sep 17 00:00:00 2001 From: Isaac Chen Date: Wed, 23 Jun 2021 13:07:30 +0800 Subject: [PATCH 1/2] init: Do not start console service when debuggable @@ -13,10 +13,10 @@ Change-Id: I34cfd6b42d3b9aee4b3e63181480cfb8b1255f29 1 file changed, 3 deletions(-) diff --git a/rootdir/init.rc b/rootdir/init.rc -index 02e51d2c4..ab45bb032 100644 +index 1e6918d00..8b48a9c87 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc -@@ -1277,9 +1277,6 @@ on property:ro.debuggable=1 +@@ -1312,9 +1312,6 @@ on property:ro.debuggable=1 # Give reads to anyone for the accessibility trace folder on debug builds. chmod 0775 /data/misc/a11ytrace @@ -27,5 +27,5 @@ index 02e51d2c4..ab45bb032 100644 # TODO(b/135984674): reset all necessary properties here. setprop sys.boot_completed "" -- -2.40.0 +2.41.0 diff --git a/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch b/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch index 8ac9347..85f37f0 100644 --- a/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch +++ b/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch @@ -1,4 +1,4 @@ -From b50dd85e88568bddedbab1e18984a5b5578c8612 Mon Sep 17 00:00:00 2001 +From 1b075ec9186fd7b8b501272370a7ebfe43fe2fb4 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Fri, 21 Apr 2023 13:08:48 -0400 Subject: [PATCH 2/2] Let system override some properties (ro.apex.updatable, @@ -10,10 +10,10 @@ Change-Id: I3c84fa617f0ab7990abb0d905230a8703cf39bf7 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/init/property_service.cpp b/init/property_service.cpp -index 26341b196..19fc09d63 100644 +index 8da69822c..0680b8e06 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp -@@ -726,7 +726,12 @@ static void LoadProperties(char* data, const char* filter, const char* filename, +@@ -787,7 +787,12 @@ static void LoadProperties(char* data, const char* filter, const char* filename, } else if (it->second != value) { LOG(WARNING) << "Overriding previous property '" << key << "':'" << it->second << "' with new value '" << value << "'"; @@ -28,5 +28,5 @@ index 26341b196..19fc09d63 100644 } else { LOG(ERROR) << "Do not have permissions to set '" << key << "' to '" << value -- -2.40.0 +2.41.0 From edbcfc74f228d67d361dd378b563b510488a9976 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 7 Oct 2023 19:36:35 -0400 Subject: [PATCH 02/19] [2/n] Android 14 port --- ...s-static-ImsManager.updateImsService.patch | 8 +-- ...c-void-TelephonyMetrics.writeRilSen.patch} | 6 +- ...roller-Do-not-override-default-calli.patch | 45 -------------- ...e-to-setPreferredNetworkType-for-RI.patch} | 16 ++--- ...g-too-long-to-fit-into-a-91-chars-p.patch} | 10 ++-- ...vert-Block-Binder-thread-until-incom.patch | 29 +++++----- ...roller-Do-not-override-default-calli.patch | 58 +++++++++++++++++++ 7 files changed, 91 insertions(+), 81 deletions(-) rename frameworks/opt/telephony/{0002-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch => 0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch} (94%) delete mode 100644 frameworks/opt/telephony/0001-SubscriptionController-Do-not-override-default-calli.patch rename frameworks/opt/telephony/{0003-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch => 0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch} (84%) rename frameworks/opt/telephony/{0005-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch => 0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch} (83%) create mode 100644 frameworks/opt/telephony/0005-SubscriptionController-Do-not-override-default-calli.patch diff --git a/frameworks/opt/net/ims/0001-Pie-MTK-IMS-calls-static-ImsManager.updateImsService.patch b/frameworks/opt/net/ims/0001-Pie-MTK-IMS-calls-static-ImsManager.updateImsService.patch index cea2729..732d74a 100644 --- a/frameworks/opt/net/ims/0001-Pie-MTK-IMS-calls-static-ImsManager.updateImsService.patch +++ b/frameworks/opt/net/ims/0001-Pie-MTK-IMS-calls-static-ImsManager.updateImsService.patch @@ -1,4 +1,4 @@ -From 9f88617d1af3f068efdff111984a7a631464a205 Mon Sep 17 00:00:00 2001 +From 45ee12fd0ac92b5e6a07de927716b8b03c18f1fd Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Sun, 14 Nov 2021 13:47:29 -0500 Subject: [PATCH] Pie MTK IMS calls static @@ -10,10 +10,10 @@ Change-Id: I3dd66d436629d37c8ec795df6569736195ae570e 1 file changed, 8 insertions(+) diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java -index c41426d0..2c6d656f 100644 +index b5a1168b..547a3a16 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java -@@ -1667,6 +1667,14 @@ public class ImsManager implements FeatureUpdates { +@@ -1666,6 +1666,14 @@ public class ImsManager implements FeatureUpdates { } } @@ -29,5 +29,5 @@ index c41426d0..2c6d656f 100644 * Push configuration updates to the ImsService implementation. */ -- -2.40.0 +2.41.0 diff --git a/frameworks/opt/telephony/0002-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch b/frameworks/opt/telephony/0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch similarity index 94% rename from frameworks/opt/telephony/0002-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch rename to frameworks/opt/telephony/0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch index 6dc0420..c7c6822 100644 --- a/frameworks/opt/telephony/0002-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch +++ b/frameworks/opt/telephony/0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch @@ -1,7 +1,7 @@ -From bcaff4d8a493c657519ae50cf7f3661da6c4a46b Mon Sep 17 00:00:00 2001 +From d8c305abadf223aef7237029d9b58c6756922a7d Mon Sep 17 00:00:00 2001 From: ironydelerium <42721860+ironydelerium@users.noreply.github.com> Date: Fri, 31 Dec 2021 02:20:28 -0800 -Subject: [PATCH 2/5] Reintroduce 'public void +Subject: [PATCH 1/5] Reintroduce 'public void TelephonyMetrics.writeRilSendSms(int, int, int, int)'. (#8) The MediaTek IMS package for Android Q, at the very least (likely for the rest, too) @@ -42,5 +42,5 @@ index 3fdbfe0ed7..fb8011c3df 100644 * Write Send SMS event using ImsService. Expecting response from * {@link #writeOnSmsSolicitedResponse}. -- -2.40.0 +2.41.0 diff --git a/frameworks/opt/telephony/0001-SubscriptionController-Do-not-override-default-calli.patch b/frameworks/opt/telephony/0001-SubscriptionController-Do-not-override-default-calli.patch deleted file mode 100644 index 6bb0898..0000000 --- a/frameworks/opt/telephony/0001-SubscriptionController-Do-not-override-default-calli.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 02041484d88e3c8a6cd62e1253f4b12b15be6852 Mon Sep 17 00:00:00 2001 -From: Peter Cai -Date: Mon, 5 Sep 2022 14:02:37 -0400 -Subject: [PATCH 1/5] SubscriptionController: Do not override default calling - account from third-party apps - -When the user has selected a calling account from a third-party app as -default, it should not be overridden by the rest of the telephony -subsystem (e.g. SIM subcription updates, or default SIM slot selection). - -Otherwise, it creates a somewhat annoying situation where the user has -to keep re-selecting the desired calling account after every reboot. - -Test: manual -Change-Id: Iccab64e9b3b3ab4773bd8944d47c2006f229d472 ---- - .../internal/telephony/SubscriptionController.java | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java -index 82799bea8b..5105d3a183 100644 ---- a/src/java/com/android/internal/telephony/SubscriptionController.java -+++ b/src/java/com/android/internal/telephony/SubscriptionController.java -@@ -2855,8 +2855,17 @@ public class SubscriptionController extends ISub.Stub { - subId); - - TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class); -+ PhoneAccountHandle currentHandle = telecomManager.getUserSelectedOutgoingPhoneAccount(); -+ String currentPackageName = -+ currentHandle == null ? null : currentHandle.getComponentName().getPackageName(); -+ boolean currentIsSim = "com.android.phone".equals(currentPackageName); -+ // Do not override user selected outgoing calling account -+ // if the user has selected a third-party app as default -+ boolean shouldKeepOutgoingAccount = currentHandle != null && !currentIsSim; - -- telecomManager.setUserSelectedOutgoingPhoneAccount(newHandle); -+ if (!shouldKeepOutgoingAccount) { -+ telecomManager.setUserSelectedOutgoingPhoneAccount(newHandle); -+ } - logd("[setDefaultVoiceSubId] requesting change to phoneAccountHandle=" + newHandle); - - if (previousDefaultSub != getDefaultSubId()) { --- -2.40.0 - diff --git a/frameworks/opt/telephony/0003-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch b/frameworks/opt/telephony/0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch similarity index 84% rename from frameworks/opt/telephony/0003-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch rename to frameworks/opt/telephony/0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch index c070a86..7eba6ed 100644 --- a/frameworks/opt/telephony/0003-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch +++ b/frameworks/opt/telephony/0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch @@ -1,7 +1,7 @@ -From 9550951ff96e643d143da826cb9560da572850a1 Mon Sep 17 00:00:00 2001 +From b299cb6cb26268d1a0a58b8df42ea334d7bdc950 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Fri, 21 Oct 2022 20:55:05 +0200 -Subject: [PATCH 3/5] Pass correct value to setPreferredNetworkType() for RIL +Subject: [PATCH 2/5] Pass correct value to setPreferredNetworkType() for RIL version < 1.4 Change-Id: Id14be66a2ea4e85b6504bc03fd7d2f038185c17d @@ -11,10 +11,10 @@ Change-Id: Id14be66a2ea4e85b6504bc03fd7d2f038185c17d 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java -index 6de66527e1..0c1b7cdf8c 100644 +index 5ecdfcbbd4..174b89c141 100644 --- a/src/java/com/android/internal/telephony/RIL.java +++ b/src/java/com/android/internal/telephony/RIL.java -@@ -2879,7 +2879,8 @@ public class RIL extends BaseCommands implements CommandsInterface { +@@ -3027,7 +3027,8 @@ public class RIL extends BaseCommands implements CommandsInterface { mMetrics.writeSetPreferredNetworkType(mPhoneId, networkType); try { @@ -22,13 +22,13 @@ index 6de66527e1..0c1b7cdf8c 100644 + networkProxy.setPreferredNetworkTypeBitmap( + rr.mSerial, mAllowedNetworkTypesBitmask, networkType); } catch (RemoteException | RuntimeException e) { - handleRadioProxyExceptionForRR(NETWORK_SERVICE, "setPreferredNetworkType", e); + handleRadioProxyExceptionForRR(HAL_SERVICE_NETWORK, "setPreferredNetworkType", e); } diff --git a/src/java/com/android/internal/telephony/RadioNetworkProxy.java b/src/java/com/android/internal/telephony/RadioNetworkProxy.java -index b88103510a..661fa56954 100644 +index 246c2e0204..2e352a96b4 100644 --- a/src/java/com/android/internal/telephony/RadioNetworkProxy.java +++ b/src/java/com/android/internal/telephony/RadioNetworkProxy.java -@@ -379,16 +379,17 @@ public class RadioNetworkProxy extends RadioServiceProxy { +@@ -389,16 +389,17 @@ public class RadioNetworkProxy extends RadioServiceProxy { * Call IRadioNetwork#setPreferredNetworkTypeBitmap * @param serial Serial number of request * @param networkTypesBitmask Preferred network types bitmask to set @@ -49,5 +49,5 @@ index b88103510a..661fa56954 100644 } -- -2.40.0 +2.41.0 diff --git a/frameworks/opt/telephony/0005-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch b/frameworks/opt/telephony/0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch similarity index 83% rename from frameworks/opt/telephony/0005-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch rename to frameworks/opt/telephony/0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch index 9210d5e..a7f9bd6 100644 --- a/frameworks/opt/telephony/0005-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch +++ b/frameworks/opt/telephony/0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch @@ -1,7 +1,7 @@ -From 53160d33c83afe4f56862c3c12d4b61e2970209b Mon Sep 17 00:00:00 2001 +From 2861b7ed720286f3a69782d4fc18128e742d8949 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 6 Dec 2021 16:28:22 -0500 -Subject: [PATCH 5/5] Fix baseband being too long to fit into a 91 chars +Subject: [PATCH 3/5] Fix baseband being too long to fit into a 91 chars property, preventing telephony subsystem from starting Change-Id: I1762e4a8cc137626be89f350229d6be162bdaf57 @@ -10,10 +10,10 @@ Change-Id: I1762e4a8cc137626be89f350229d6be162bdaf57 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java -index 76a8d57246..9a72712c59 100644 +index 5eae06112c..d5302413bc 100644 --- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java +++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java -@@ -3124,7 +3124,7 @@ public class GsmCdmaPhone extends Phone { +@@ -3282,7 +3282,7 @@ public class GsmCdmaPhone extends Phone { String version = (String)ar.result; if (version != null) { int length = version.length(); @@ -23,5 +23,5 @@ index 76a8d57246..9a72712c59 100644 length <= MAX_VERSION_LEN ? version : version.substring(length - MAX_VERSION_LEN, length)); -- -2.40.0 +2.41.0 diff --git a/frameworks/opt/telephony/0004-Conditionally-revert-Block-Binder-thread-until-incom.patch b/frameworks/opt/telephony/0004-Conditionally-revert-Block-Binder-thread-until-incom.patch index 5e1d94d..8870493 100644 --- a/frameworks/opt/telephony/0004-Conditionally-revert-Block-Binder-thread-until-incom.patch +++ b/frameworks/opt/telephony/0004-Conditionally-revert-Block-Binder-thread-until-incom.patch @@ -1,4 +1,4 @@ -From c527732943bc02fd434cbecbd07787e2d429023d Mon Sep 17 00:00:00 2001 +From ec5993b869fc758bd48c1636ee009bad8d4205bf Mon Sep 17 00:00:00 2001 From: ExactExampl Date: Tue, 11 Oct 2022 12:38:00 +0300 Subject: [PATCH 4/5] Conditionally revert "Block Binder thread until incoming @@ -13,14 +13,14 @@ This conditionally reverts commit 75c3dc9ba272b43971f519caba0382f9871c7d9d. Change-Id: I55a8f3bbca4a2b9a6bc7511e9fe2d0884a8818e5 --- - .../imsphone/ImsPhoneCallTracker.java | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) + .../telephony/imsphone/ImsPhoneCallTracker.java | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java -index 5968ba6fa1..86034f6fa1 100644 +index c3ee0f6060..f11b921c08 100644 --- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java -@@ -50,6 +50,7 @@ import android.os.Registrant; +@@ -70,6 +70,7 @@ import android.os.Registrant; import android.os.RegistrantList; import android.os.RemoteException; import android.os.SystemClock; @@ -28,30 +28,27 @@ index 5968ba6fa1..86034f6fa1 100644 import android.preference.PreferenceManager; import android.provider.Settings; import android.sysprop.TelephonyProperties; -@@ -322,10 +323,19 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { - - @Override - public void onIncomingCall(IImsCallSession c, Bundle extras) { -- // we want to ensure we block this binder thread until incoming call setup completes -- // as to avoid race conditions where the ImsService tries to update the state of the -- // call before the listeners have been attached. -- executeAndWait(()-> processIncomingCall(c, extras)); +@@ -385,7 +386,19 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { + @Nullable + public IImsCallSessionListener onIncomingCall( + @NonNull IImsCallSession c, @Nullable String callId, @Nullable Bundle extras) { +- return executeAndWaitForReturn(()-> processIncomingCall(c, callId, extras)); + final boolean shouldBlockBinderThreadOnIncomingCalls = SystemProperties.getBoolean( + "ro.telephony.block_binder_thread_on_incoming_calls", true); + if (shouldBlockBinderThreadOnIncomingCalls) { + // we want to ensure we block this binder thread until incoming call setup completes + // as to avoid race conditions where the ImsService tries to update the state of the + // call before the listeners have been attached. -+ executeAndWait(()-> processIncomingCall(c, extras)); ++ return executeAndWaitForReturn(()-> processIncomingCall(c, callId, extras)); + } else { + // for legacy IMS we want to avoid blocking the binder thread, otherwise + // we end up with half dead incoming calls with unattached call session -+ TelephonyUtils.runWithCleanCallingIdentity(()-> processIncomingCall(c, extras), ++ return TelephonyUtils.runWithCleanCallingIdentity(()-> processIncomingCall(c, callId, extras), + mExecutor); + } } @Override -- -2.40.0 +2.41.0 diff --git a/frameworks/opt/telephony/0005-SubscriptionController-Do-not-override-default-calli.patch b/frameworks/opt/telephony/0005-SubscriptionController-Do-not-override-default-calli.patch new file mode 100644 index 0000000..32fe8b6 --- /dev/null +++ b/frameworks/opt/telephony/0005-SubscriptionController-Do-not-override-default-calli.patch @@ -0,0 +1,58 @@ +From 2685c843046fcfb12b42f530ed4d5b8fa28cdc9e Mon Sep 17 00:00:00 2001 +From: Peter Cai +Date: Mon, 5 Sep 2022 14:02:37 -0400 +Subject: [PATCH 5/5] SubscriptionController: Do not override default calling + account from third-party apps + +When the user has selected a calling account from a third-party app as +default, it should not be overridden by the rest of the telephony +subsystem (e.g. SIM subcription updates, or default SIM slot selection). + +Otherwise, it creates a somewhat annoying situation where the user has +to keep re-selecting the desired calling account after every reboot. + +Test: manual +Change-Id: Iccab64e9b3b3ab4773bd8944d47c2006f229d472 +--- + .../SubscriptionManagerService.java | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +index 8e773c072d..1efe9ba3b4 100644 +--- a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java ++++ b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +@@ -78,6 +78,7 @@ import android.util.Base64; + import android.util.EventLog; + import android.util.IndentingPrintWriter; + import android.util.LocalLog; ++import android.util.Log; + + import com.android.internal.R; + import com.android.internal.annotations.VisibleForTesting; +@@ -2839,7 +2840,22 @@ public class SubscriptionManagerService extends ISub.Stub { + + TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class); + if (telecomManager != null) { +- telecomManager.setUserSelectedOutgoingPhoneAccount(newHandle); ++ PhoneAccountHandle currentHandle = telecomManager.getUserSelectedOutgoingPhoneAccount(); ++ log("[setDefaultVoiceSubId] current phoneAccountHandle=" + currentHandle); ++ ++ String currentPackageName = ++ currentHandle == null ? null : currentHandle.getComponentName().getPackageName(); ++ boolean currentIsSim = "com.android.phone".equals(currentPackageName); ++ // Do not override user selected outgoing calling account ++ // if the user has selected a third-party app as default ++ boolean shouldKeepOutgoingAccount = currentHandle != null && !currentIsSim; ++ ++ if (!shouldKeepOutgoingAccount) { ++ telecomManager.setUserSelectedOutgoingPhoneAccount(newHandle); ++ log("[setDefaultVoiceSubId] change to phoneAccountHandle=" + newHandle); ++ } else { ++ log("[setDefaultVoiceSubId] default phoneAccountHandle not changed."); ++ } + } + + updateDefaultSubId(); +-- +2.41.0 + From c06b6e26a20913e1549bc6df3bb9f30081e0677f Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 7 Oct 2023 19:38:33 -0400 Subject: [PATCH 03/19] [3/n] Android 14 port More required fwb patches --- ...support-glob-matching-for-properties.patch | 2 +- ...d-support-for-app-signature-spoofing.patch | 2 +- ...PackageUtils-Add-glob-matching-suppo.patch | 2 +- .../base/0004-Global-VPN-feature-1-2.patch | 2 +- ...more-FDE-methods-from-StorageManager.patch | 110 ++++++++++++++++++ ...ze-boot-animation-to-match-screen-si.patch | 46 ++++++++ ...ateForSlotIndex-in-SubscriptionManag.patch | 40 +++++++ ...CallingIdentity-variant-with-both-ex.patch | 72 ++++++++++++ 8 files changed, 272 insertions(+), 4 deletions(-) create mode 100644 frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch create mode 100644 frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch create mode 100644 frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch create mode 100644 frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch diff --git a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch index cea0159..bedcf73 100644 --- a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch +++ b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch @@ -1,7 +1,7 @@ From c25e4bfafc3b0b9f44c9cd2b9fed590299480f71 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Oct 2021 21:37:22 -0400 -Subject: [PATCH 1/4] PackageParser: support glob matching for properties +Subject: [PATCH 1/8] PackageParser: support glob matching for properties Needed to make phh's vendor overlays work --- diff --git a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch index d2fe6b4..e986653 100644 --- a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch +++ b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch @@ -1,7 +1,7 @@ From 540857efdf49ba24121970d2b836eb38ab7e7b32 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Sat, 16 Oct 2021 05:27:57 -0700 -Subject: [PATCH 2/4] Add support for app signature spoofing +Subject: [PATCH 2/8] Add support for app signature spoofing This is needed by microG GmsCore to pretend to be the official Google Play Services package, because client apps check the package signature diff --git a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch index ccecbe6..4e6cc3c 100644 --- a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch +++ b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch @@ -1,7 +1,7 @@ From 148fe28e381f444f7d06ea611dbd82c1e1ae8573 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 2 Sep 2022 21:36:06 -0400 -Subject: [PATCH 3/4] FrameworkParsingPackageUtils: Add glob matching support +Subject: [PATCH 3/8] FrameworkParsingPackageUtils: Add glob matching support for properties This is now required in addition to the one in PackageParser in order diff --git a/frameworks/base/0004-Global-VPN-feature-1-2.patch b/frameworks/base/0004-Global-VPN-feature-1-2.patch index 173de2b..c777a2b 100644 --- a/frameworks/base/0004-Global-VPN-feature-1-2.patch +++ b/frameworks/base/0004-Global-VPN-feature-1-2.patch @@ -1,7 +1,7 @@ From 00b72ce36c74f294e9823a41c0f50f73d435b1dd Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:41:43 -0400 -Subject: [PATCH 4/4] Global VPN feature [1/2] +Subject: [PATCH 4/8] Global VPN feature [1/2] * Modify existing VPN user range functions to conditionally have traffic from all users pass through the global VPN. diff --git a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch new file mode 100644 index 0000000..8f664c6 --- /dev/null +++ b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch @@ -0,0 +1,110 @@ +From aa7e0467d0c5c98a9de336ef8e3e635491c8395a Mon Sep 17 00:00:00 2001 +From: Andy CrossGate Yan +Date: Sat, 15 Oct 2022 09:33:56 +0000 +Subject: [PATCH 5/8] Revert "Remove more FDE methods from StorageManager" + +This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676. + +Change-Id: Ic394934ec27b1a486c60123130825d44dad73412 +--- + .../android/os/storage/StorageManager.java | 57 +++++++++++++++++++ + .../internal/os/RoSystemProperties.java | 4 ++ + 2 files changed, 61 insertions(+) + +diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java +index 80dd48825ba7..cb4769ff4ec3 100644 +--- a/core/java/android/os/storage/StorageManager.java ++++ b/core/java/android/os/storage/StorageManager.java +@@ -1660,6 +1660,15 @@ public class StorageManager { + return false; + } + ++ /** {@hide} ++ * Is this device encryptable or already encrypted? ++ * @return true for encryptable or encrypted ++ * false not encrypted and not encryptable ++ */ ++ public static boolean isEncryptable() { ++ return RoSystemProperties.CRYPTO_ENCRYPTABLE; ++ } ++ + /** {@hide} + * Is this device encrypted? + *

+@@ -1693,6 +1702,54 @@ public class StorageManager { + return isFileEncrypted(); + } + ++ /** {@hide} ++ * Is this device block encrypted? ++ * @return true for block encrypted. (Implies isEncrypted() == true) ++ * false not encrypted or file encrypted ++ */ ++ public static boolean isBlockEncrypted() { ++ return false; ++ } ++ ++ /** {@hide} ++ * Is this device block encrypted with credentials? ++ * @return true for crediential block encrypted. ++ * (Implies isBlockEncrypted() == true) ++ * false not encrypted, file encrypted or default block encrypted ++ */ ++ public static boolean isNonDefaultBlockEncrypted() { ++ return false; ++ } ++ ++ /** {@hide} ++ * Is this device in the process of being block encrypted? ++ * @return true for encrypting. ++ * false otherwise ++ * Whether device isEncrypted at this point is undefined ++ * Note that only system services and CryptKeeper will ever see this return ++ * true - no app will ever be launched in this state. ++ * Also note that this state will not change without a teardown of the ++ * framework, so no service needs to check for changes during their lifespan ++ */ ++ public static boolean isBlockEncrypting() { ++ return false; ++ } ++ ++ /** {@hide} ++ * Is this device non default block encrypted and in the process of ++ * prompting for credentials? ++ * @return true for prompting for credentials. ++ * (Implies isNonDefaultBlockEncrypted() == true) ++ * false otherwise ++ * Note that only system services and CryptKeeper will ever see this return ++ * true - no app will ever be launched in this state. ++ * Also note that this state will not change without a teardown of the ++ * framework, so no service needs to check for changes during their lifespan ++ */ ++ public static boolean inCryptKeeperBounce() { ++ return false; ++ } ++ + /** {@hide} + * @deprecated Use {@link #isFileEncrypted} instead, since emulated FBE is no longer supported. + */ +diff --git a/core/java/com/android/internal/os/RoSystemProperties.java b/core/java/com/android/internal/os/RoSystemProperties.java +index 40d5c4761dff..66288706b0f1 100644 +--- a/core/java/com/android/internal/os/RoSystemProperties.java ++++ b/core/java/com/android/internal/os/RoSystemProperties.java +@@ -68,10 +68,14 @@ public class RoSystemProperties { + public static final CryptoProperties.type_values CRYPTO_TYPE = + CryptoProperties.type().orElse(CryptoProperties.type_values.NONE); + // These are pseudo-properties ++ public static final boolean CRYPTO_ENCRYPTABLE = ++ CRYPTO_STATE != CryptoProperties.state_values.UNSUPPORTED; + public static final boolean CRYPTO_ENCRYPTED = + CRYPTO_STATE == CryptoProperties.state_values.ENCRYPTED; + public static final boolean CRYPTO_FILE_ENCRYPTED = + CRYPTO_TYPE == CryptoProperties.type_values.FILE; ++ public static final boolean CRYPTO_BLOCK_ENCRYPTED = ++ CRYPTO_TYPE == CryptoProperties.type_values.BLOCK; + + public static final boolean CONTROL_PRIVAPP_PERMISSIONS_LOG = + "log".equalsIgnoreCase(CONTROL_PRIVAPP_PERMISSIONS); +-- +2.41.0 + diff --git a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch new file mode 100644 index 0000000..ac1b186 --- /dev/null +++ b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch @@ -0,0 +1,46 @@ +From 5c0f50bd093ad8fa878b79d124942d1a5bceef00 Mon Sep 17 00:00:00 2001 +From: Pierre-Hugues Husson +Date: Mon, 20 Dec 2021 15:01:41 -0500 +Subject: [PATCH 6/8] Dynamically resize boot animation to match screen size + +Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205 +--- + cmds/bootanimation/BootAnimation.cpp | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp +index a8b6c0b70804..9c50e954cee5 100644 +--- a/cmds/bootanimation/BootAnimation.cpp ++++ b/cmds/bootanimation/BootAnimation.cpp +@@ -605,6 +605,28 @@ status_t BootAnimation::readyToRun() { + mFlingerSurface = s; + mTargetInset = -1; + ++ if ( mAnimation != nullptr ) { ++ SLOGE("Got screen size %d, animation size %d", mWidth, mAnimation->width); ++ int origWidth = mAnimation->width; ++ if ( mAnimation->width*2 < mWidth ) { ++ SLOGE("Making animation bigger"); ++ mAnimation->width *= 2; ++ mAnimation->height *= 2; ++ } else if ( mWidth < mAnimation->width ) { ++ SLOGE("Making animation smaller"); ++ mAnimation->width /= 2; ++ mAnimation->height /= 2; ++ } ++ for (Animation::Part& part : mAnimation->parts) { ++ for(auto& frame: part.frames) { ++ if(frame.trimWidth == origWidth && frame.trimX == 0 && frame.trimY == 0) { ++ frame.trimWidth = mAnimation->width; ++ frame.trimHeight = mAnimation->height; ++ } ++ } ++ } ++ } ++ + // Rotate the boot animation according to the value specified in the sysprop + // ro.bootanim.set_orientation_. Four values are supported: ORIENTATION_0, + // ORIENTATION_90, ORIENTATION_180 and ORIENTATION_270. +-- +2.41.0 + diff --git a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch new file mode 100644 index 0000000..6a120b5 --- /dev/null +++ b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch @@ -0,0 +1,40 @@ +From d2b69b92fe4f37f8bcfdd4b8e3b756e5ad253663 Mon Sep 17 00:00:00 2001 +From: Andy CrossGate Yan +Date: Wed, 2 Aug 2023 20:59:53 +0800 +Subject: [PATCH 7/8] Restore getSimStateForSlotIndex in SubscriptionManager + +MTK IMS still needs it here + +Change-Id: I41bac57c68055f369232359a464642daab94403b +--- + .../android/telephony/SubscriptionManager.java | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java +index 64e43568e4d6..cfb4f12815a2 100644 +--- a/telephony/java/android/telephony/SubscriptionManager.java ++++ b/telephony/java/android/telephony/SubscriptionManager.java +@@ -2549,6 +2549,20 @@ public class SubscriptionManager { + return TelephonyManager.getDefault().isNetworkRoaming(subId); + } + ++ /** ++ * Returns a constant indicating the state of sim for the slot index. ++ * ++ * @param slotIndex Logical SIM slot index. ++ * ++ * @see TelephonyManager.SimState ++ * ++ * @hide ++ */ ++ @TelephonyManager.SimState ++ public static int getSimStateForSlotIndex(int slotIndex) { ++ return TelephonyManager.getSimStateForSlotIndex(slotIndex); ++ } ++ + /** + * Set a field in the subscription database. Note not all fields are supported. + * +-- +2.41.0 + diff --git a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch new file mode 100644 index 0000000..ccf5495 --- /dev/null +++ b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch @@ -0,0 +1,72 @@ +From 8a8a763c989ddbf886288a130a66c39a4613c515 Mon Sep 17 00:00:00 2001 +From: Andy CrossGate Yan +Date: Sat, 12 Aug 2023 20:11:17 +0800 +Subject: [PATCH 8/8] Add runWithCleanCallingIdentity variant with both + executor and return value + +This complements the fixup to ImsPhoneCallTracker (in fw/o/t) for U + +Change-Id: If444290787025e130dce4bdeaf92372ae32793fe +--- + .../telephony/util/TelephonyUtils.java | 32 ++++++++++++++++++- + 1 file changed, 31 insertions(+), 1 deletion(-) + +diff --git a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java +index 9a8c9655375d..454080144d35 100644 +--- a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java ++++ b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java +@@ -42,7 +42,9 @@ import com.android.internal.telephony.ITelephony; + import java.io.PrintWriter; + import java.util.Collections; + import java.util.List; ++import java.util.concurrent.CompletableFuture; + import java.util.concurrent.CountDownLatch; ++import java.util.concurrent.ExecutionException; + import java.util.concurrent.Executor; + import java.util.concurrent.TimeUnit; + import java.util.function.Supplier; +@@ -151,6 +153,34 @@ public final class TelephonyUtils { + } + } + ++ /** ++ * Convenience method for running the provided action in the provided ++ * executor enclosed in ++ * {@link Binder#clearCallingIdentity}/{@link Binder#restoreCallingIdentity} and return ++ * the result. ++ * ++ * Any exception thrown by the given action will need to be handled by caller. ++ * ++ */ ++ public static T runWithCleanCallingIdentity( ++ @NonNull Supplier action, @NonNull Executor executor) { ++ if (action != null) { ++ if (executor != null) { ++ try { ++ return CompletableFuture.supplyAsync( ++ () -> runWithCleanCallingIdentity(action), executor).get(); ++ } catch (ExecutionException | InterruptedException e) { ++ Log.w(LOG_TAG, "TelephonyUtils : runWithCleanCallingIdentity exception: " ++ + e.getMessage()); ++ return null; ++ } ++ } else { ++ return runWithCleanCallingIdentity(action); ++ } ++ } ++ return null; ++ } ++ + /** + * Filter values in bundle to only basic types. + */ +@@ -319,4 +349,4 @@ public final class TelephonyUtils { + return false; + + } +-} +\ No newline at end of file ++} +-- +2.41.0 + From c4daf7d00466a059e8e84e66a365c90809f2503d Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 7 Oct 2023 20:22:56 -0400 Subject: [PATCH 04/19] [4/n] Android 14 port Refresh Bluetooth patches --- ...ck-le_set_event_mask-command-resturn.patch | 57 ------------------- ...hci-Ignore-unexpected-status-events.patch} | 20 +++---- ...interface-Optionally-use-sysbta-HAL.patch} | 12 ++-- 3 files changed, 16 insertions(+), 73 deletions(-) delete mode 100644 packages/modules/Bluetooth/0001-Additionally-check-le_set_event_mask-command-resturn.patch rename packages/modules/Bluetooth/{0002-gd-hci-Ignore-unexpected-status-events.patch => 0001-gd-hci-Ignore-unexpected-status-events.patch} (72%) rename packages/modules/Bluetooth/{0003-audio_hal_interface-Optionally-use-sysbta-HAL.patch => 0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch} (94%) diff --git a/packages/modules/Bluetooth/0001-Additionally-check-le_set_event_mask-command-resturn.patch b/packages/modules/Bluetooth/0001-Additionally-check-le_set_event_mask-command-resturn.patch deleted file mode 100644 index 5d8eb45..0000000 --- a/packages/modules/Bluetooth/0001-Additionally-check-le_set_event_mask-command-resturn.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 08cae5289428f6a99f2a6d28145fa542d1288916 Mon Sep 17 00:00:00 2001 -From: "tzu-hsien.huang" -Date: Wed, 20 Jul 2022 15:12:01 +0800 -Subject: [PATCH 1/3] Additionally check le_set_event_mask command resturn - status with UNSUPPORTED_LMP_OR_LL_PARAMETER -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In GD BT stack, stack will check each return status of HCI Commands. E.g. reset , le_set_event_mask, set_event_mask …etc. -In BT spec 5.2, SIG add some parameters for le_set_event_mask for le audio, like LE Terminate BIG Complete event: Supported. -However, some legacy chips do not support LE Audio feature, and controller will return Status: Unsupported LMP Parameter Value when it receives this HCI Command -When it checks the return value and find the status is not SUCCESS, it will cause FAIL and cannot be compatible with old legacy chip. -After brushing GSI, Bluetooth will turn off automatically when it is turned on. -So all CTS test will always fail. - -Check le_set_event_mask command return status with SUCCESS or UNSUPPORTED_LMP_OR_LL_PARAMETER - -Bug: 239662211 -Test: CtsBluetoothTestCases -Change-Id: I2b0cede7f47eecd2124a386e958773289eb6f11c ---- - system/gd/hci/controller.cc | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/system/gd/hci/controller.cc b/system/gd/hci/controller.cc -index 9dac2b6a84..50342d639e 100644 ---- a/system/gd/hci/controller.cc -+++ b/system/gd/hci/controller.cc -@@ -548,7 +548,7 @@ struct Controller::impl { - void le_set_event_mask(uint64_t le_event_mask) { - std::unique_ptr packet = LeSetEventMaskBuilder::Create(le_event_mask); - hci_->EnqueueCommand(std::move(packet), module_.GetHandler()->BindOnceOn( -- this, &Controller::impl::check_status)); -+ this, &Controller::impl::check_event_mask_status)); - } - - template -@@ -559,6 +559,15 @@ struct Controller::impl { - ASSERT(status_view.GetStatus() == ErrorCode::SUCCESS); - } - -+ template -+ void check_event_mask_status(CommandCompleteView view) { -+ ASSERT(view.IsValid()); -+ auto status_view = T::Create(view); -+ ASSERT(status_view.IsValid()); -+ ASSERT(status_view.GetStatus() == ErrorCode::SUCCESS || -+ status_view.GetStatus() == ErrorCode::UNSUPPORTED_LMP_OR_LL_PARAMETER); -+ } -+ - #define OP_CODE_MAPPING(name) \ - case OpCode::name: { \ - uint16_t index = (uint16_t)OpCodeIndex::name; \ --- -2.40.1 - diff --git a/packages/modules/Bluetooth/0002-gd-hci-Ignore-unexpected-status-events.patch b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch similarity index 72% rename from packages/modules/Bluetooth/0002-gd-hci-Ignore-unexpected-status-events.patch rename to packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch index 319c7f4..214a703 100644 --- a/packages/modules/Bluetooth/0002-gd-hci-Ignore-unexpected-status-events.patch +++ b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch @@ -1,7 +1,7 @@ -From 55a4e7e7158f50f3e8840b526e15d7c9f10423de Mon Sep 17 00:00:00 2001 +From 184dbd4770340934511622b0bac58eb45d0cb905 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 10:41:29 -0400 -Subject: [PATCH 2/3] gd: hci: Ignore unexpected status events +Subject: [PATCH 1/2] gd: hci: Ignore unexpected status events For some reason, on some old devices, the controller will report a remote to support SNIFF_SUBRATING even when it does not. Just ignore the @@ -13,12 +13,12 @@ Change-Id: Ifb9a65fd77f21d15a8dc1ced9240194d38218ef6 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/system/gd/hci/hci_layer.cc b/system/gd/hci/hci_layer.cc -index 5def729ac8..9c235294bb 100644 +index c3312a557c..3e8ab78371 100644 --- a/system/gd/hci/hci_layer.cc +++ b/system/gd/hci/hci_layer.cc -@@ -195,14 +195,13 @@ struct HciLayer::impl { - EventView::Create(PacketView(std::make_shared>(std::vector())))); - command_queue_.front().GetCallback()->Invoke(move(command_complete_view)); +@@ -211,14 +211,13 @@ struct HciLayer::impl { + command_queue_.front().GetCallback()->Invoke( + std::move(command_complete_view)); } else { - ASSERT_LOG( - command_queue_.front().waiting_for_status_ == is_status, @@ -27,17 +27,17 @@ index 5def729ac8..9c235294bb 100644 - OpCodeText(op_code).c_str(), - logging_id.c_str()); - -- command_queue_.front().GetCallback()->Invoke(move(response_view)); +- command_queue_.front().GetCallback()->Invoke(std::move(response_view)); + if (command_queue_.front().waiting_for_status_ == is_status) { -+ command_queue_.front().GetCallback()->Invoke(move(response_view)); ++ command_queue_.front().GetCallback()->Invoke(std::move(response_view)); + } else { + CommandCompleteView command_complete_view = CommandCompleteView::Create( + EventView::Create(PacketView(std::make_shared>(std::vector())))); -+ command_queue_.front().GetCallback()->Invoke(move(command_complete_view)); ++ command_queue_.front().GetCallback()->Invoke(std::move(command_complete_view)); + } } command_queue_.pop_front(); -- -2.40.1 +2.41.0 diff --git a/packages/modules/Bluetooth/0003-audio_hal_interface-Optionally-use-sysbta-HAL.patch b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch similarity index 94% rename from packages/modules/Bluetooth/0003-audio_hal_interface-Optionally-use-sysbta-HAL.patch rename to packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch index 0dca5de..57ca3c3 100644 --- a/packages/modules/Bluetooth/0003-audio_hal_interface-Optionally-use-sysbta-HAL.patch +++ b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch @@ -1,7 +1,7 @@ -From f2d820597f4dcbb08e4e0c9026dc1d56fe7b3bfd Mon Sep 17 00:00:00 2001 +From 9524502060facedcba0682c61b4b94340d082f36 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:45:18 -0400 -Subject: [PATCH 3/3] audio_hal_interface: Optionally use sysbta HAL +Subject: [PATCH 2/2] audio_hal_interface: Optionally use sysbta HAL Required to support sysbta, our system-side bt audio implementation. @@ -13,7 +13,7 @@ Change-Id: I59973e6ec84c5923be8a7c67b36b2e237f000860 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.cc b/system/audio_hal_interface/aidl/client_interface_aidl.cc -index 9af28031f7..5a9dbbccad 100644 +index 897b891aa7..660a141894 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.cc +++ b/system/audio_hal_interface/aidl/client_interface_aidl.cc @@ -56,7 +56,7 @@ BluetoothAudioClientInterface::BluetoothAudioClientInterface( @@ -44,7 +44,7 @@ index 9af28031f7..5a9dbbccad 100644 if (provider_factory == nullptr) { LOG(ERROR) << __func__ << ", can't get capability from unknown factory"; diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.h b/system/audio_hal_interface/aidl/client_interface_aidl.h -index 17abefe8fe..07dd11266f 100644 +index 8a40c1d7d7..6d962d3473 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.h +++ b/system/audio_hal_interface/aidl/client_interface_aidl.h @@ -28,6 +28,7 @@ @@ -55,7 +55,7 @@ index 17abefe8fe..07dd11266f 100644 #define BLUETOOTH_AUDIO_HAL_PROP_DISABLED \ "persist.bluetooth.bluetooth_audio_hal.disabled" -@@ -117,6 +118,12 @@ class BluetoothAudioClientInterface { +@@ -119,6 +120,12 @@ class BluetoothAudioClientInterface { // "android.hardware.bluetooth.audio.IBluetoothAudioProviderFactory/default"; static inline const std::string kDefaultAudioProviderFactoryInterface = std::string() + IBluetoothAudioProviderFactory::descriptor + "/default"; @@ -103,5 +103,5 @@ index a2c192f37d..c3d1cf35c2 100644 return; } -- -2.40.1 +2.41.0 From ccca70ec25a27a235d0ac8954d4758d060e52ba5 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 7 Oct 2023 23:19:37 -0400 Subject: [PATCH 05/19] Fixup sysbta for Android 14 --- ...al_interface-Optionally-use-sysbta-HAL.patch | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch index 57ca3c3..f5032de 100644 --- a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch +++ b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch @@ -1,4 +1,4 @@ -From 9524502060facedcba0682c61b4b94340d082f36 Mon Sep 17 00:00:00 2001 +From a105602829eba6d179d3bfd4f117f2169f724b91 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:45:18 -0400 Subject: [PATCH 2/2] audio_hal_interface: Optionally use sysbta HAL @@ -7,13 +7,13 @@ Required to support sysbta, our system-side bt audio implementation. Change-Id: I59973e6ec84c5923be8a7c67b36b2e237f000860 --- - system/audio_hal_interface/aidl/client_interface_aidl.cc | 6 +++--- + system/audio_hal_interface/aidl/client_interface_aidl.cc | 8 ++++---- system/audio_hal_interface/aidl/client_interface_aidl.h | 7 +++++++ system/audio_hal_interface/hal_version_manager.cc | 9 ++++++++- - 3 files changed, 18 insertions(+), 4 deletions(-) + 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.cc b/system/audio_hal_interface/aidl/client_interface_aidl.cc -index 897b891aa7..660a141894 100644 +index 897b891aa7..ed41627c3e 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.cc +++ b/system/audio_hal_interface/aidl/client_interface_aidl.cc @@ -56,7 +56,7 @@ BluetoothAudioClientInterface::BluetoothAudioClientInterface( @@ -43,6 +43,15 @@ index 897b891aa7..660a141894 100644 if (provider_factory == nullptr) { LOG(ERROR) << __func__ << ", can't get capability from unknown factory"; +@@ -266,7 +266,7 @@ int BluetoothAudioClientInterface::GetAidlInterfaceVersion() { + + auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( + ::ndk::SpAIBinder(AServiceManager_waitForService( +- kDefaultAudioProviderFactoryInterface.c_str()))); ++ audioProviderFactoryInterface().c_str()))); + + if (provider_factory == nullptr) { + LOG(ERROR) << __func__ << ", can't get aidl version from unknown factory"; diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.h b/system/audio_hal_interface/aidl/client_interface_aidl.h index 8a40c1d7d7..6d962d3473 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.h From 4b704639a2685f3f73714781b1ad998827643455 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 8 Oct 2023 10:39:23 -0400 Subject: [PATCH 06/19] Add patch for qcom voip_rx pitch issue --- ...orce-load-audio-policy-for-system-si.patch | 2 +- ...2DP-audio-ports-from-the-primary-HAL.patch | 2 +- ...gh-pitched-voice-on-Qualcomm-devices.patch | 56 +++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch diff --git a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch index 334fb3b..a0a77cf 100644 --- a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch +++ b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch @@ -1,7 +1,7 @@ From f8b9cb1d3cdf0274414bb7d100844d2707999558 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:42:39 -0400 -Subject: [PATCH 1/2] APM: Optionally force-load audio policy for system-side +Subject: [PATCH 1/3] APM: Optionally force-load audio policy for system-side bt audio HAL Required to support our system-side bt audio implementation, i.e. diff --git a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch index aa0b992..a20824d 100644 --- a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch +++ b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch @@ -1,7 +1,7 @@ From d60a1b5fc58a7cc84b48c554cb2cffaeff14d86e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 25 Aug 2022 13:30:29 -0400 -Subject: [PATCH 2/2] APM: Remove A2DP audio ports from the primary HAL +Subject: [PATCH 2/3] APM: Remove A2DP audio ports from the primary HAL These ports defined in the primary HAL are intended for A2DP offloading, however they do not work in general on GSIs, and will interfere with diff --git a/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch new file mode 100644 index 0000000..2021695 --- /dev/null +++ b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch @@ -0,0 +1,56 @@ +From aa1f3595b06e6d3d7027a5dd40ae183d71d032f0 Mon Sep 17 00:00:00 2001 +From: ponces +Date: Mon, 24 Oct 2022 09:38:34 +0100 +Subject: [PATCH 3/3] voip: Fix high pitched voice on Qualcomm devices + +Change-Id: I6d314912169776b76d07d8c0301ec5249c1870a2 +--- + .../common/managerdefinitions/src/Serializer.cpp | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +index 8519cfdc04..d23d55677d 100644 +--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp ++++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +@@ -252,6 +252,7 @@ private: + std::string mChannelMasksSeparator = ","; + std::string mSamplingRatesSeparator = ","; + std::string mFlagsSeparator = "|"; ++ std::string mMixPortName = ""; + + // Children: ModulesTraits, VolumeTraits, SurroundSoundTraits (optional) + }; +@@ -426,13 +427,21 @@ PolicySerializer::deserialize( + std::string samplingRates = getXmlAttribute(cur, Attributes::samplingRates); + std::string format = getXmlAttribute(cur, Attributes::format); + std::string channels = getXmlAttribute(cur, Attributes::channelMasks); ++ ChannelTraits::Collection channelsMask = channelMasksFromString(channels, mChannelMasksSeparator.c_str()); ++ ++ // This breaks in-game voice chat and audio in some messaging apps causing it to play with a higher pitch and speed ++ bool disableStereoVoip = property_get_bool("persist.sys.phh.disable_stereo_voip", false); ++ if (disableStereoVoip && mMixPortName == "voip_rx") { ++ ALOGI("%s: disabling stereo support on voip_rx", __func__); ++ channelsMask = channelMasksFromString("AUDIO_CHANNEL_OUT_MONO", ","); ++ } + + if (mIgnoreVendorExtensions && maybeVendorExtension(format)) { + ALOGI("%s: vendor extension format \"%s\" skipped", __func__, format.c_str()); + return NO_INIT; + } + AudioProfileTraits::Element profile = new AudioProfile(formatFromString(format, gDynamicFormat), +- channelMasksFromString(channels, mChannelMasksSeparator.c_str()), ++ channelsMask, + samplingRatesFromString(samplingRates, mSamplingRatesSeparator.c_str())); + + profile->setDynamicFormat(profile->getFormat() == gDynamicFormat); +@@ -449,6 +458,7 @@ std::variant PolicySerializer::deserialize Date: Sun, 8 Oct 2023 10:42:20 -0400 Subject: [PATCH 07/19] frameworks/av: Include more forward-ports from TD --- ...orce-load-audio-policy-for-system-si.patch | 2 +- ...2DP-audio-ports-from-the-primary-HAL.patch | 2 +- ...gh-pitched-voice-on-Qualcomm-devices.patch | 2 +- ...and-Q-behavior-respectively-for-tele.patch | 326 ++++++++++++++++++ .../0005-Fix-BT-in-call-on-CAF-devices.patch | 131 +++++++ 5 files changed, 460 insertions(+), 3 deletions(-) create mode 100644 frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch create mode 100644 frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch diff --git a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch index a0a77cf..25c41ad 100644 --- a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch +++ b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch @@ -1,7 +1,7 @@ From f8b9cb1d3cdf0274414bb7d100844d2707999558 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:42:39 -0400 -Subject: [PATCH 1/3] APM: Optionally force-load audio policy for system-side +Subject: [PATCH 1/5] APM: Optionally force-load audio policy for system-side bt audio HAL Required to support our system-side bt audio implementation, i.e. diff --git a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch index a20824d..3da3764 100644 --- a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch +++ b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch @@ -1,7 +1,7 @@ From d60a1b5fc58a7cc84b48c554cb2cffaeff14d86e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 25 Aug 2022 13:30:29 -0400 -Subject: [PATCH 2/3] APM: Remove A2DP audio ports from the primary HAL +Subject: [PATCH 2/5] APM: Remove A2DP audio ports from the primary HAL These ports defined in the primary HAL are intended for A2DP offloading, however they do not work in general on GSIs, and will interfere with diff --git a/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch index 2021695..ac07cfd 100644 --- a/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch +++ b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch @@ -1,7 +1,7 @@ From aa1f3595b06e6d3d7027a5dd40ae183d71d032f0 Mon Sep 17 00:00:00 2001 From: ponces Date: Mon, 24 Oct 2022 09:38:34 +0100 -Subject: [PATCH 3/3] voip: Fix high pitched voice on Qualcomm devices +Subject: [PATCH 3/5] voip: Fix high pitched voice on Qualcomm devices Change-Id: I6d314912169776b76d07d8c0301ec5249c1870a2 --- diff --git a/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch new file mode 100644 index 0000000..ad766d2 --- /dev/null +++ b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch @@ -0,0 +1,326 @@ +From 1a9a9faca4d5c28747a3b7d9843b67c641ed91c9 Mon Sep 17 00:00:00 2001 +From: Peter Cai +Date: Thu, 18 Aug 2022 15:44:46 -0400 +Subject: [PATCH 4/5] APM: Restore S, R and Q behavior respectively for + telephony audio + +This conditionally reverts part of b2e5cb (T), 51c9cc (S) and afd4ce (R) +when the VNDK version is equal to or before S, R and Q respectively. + +On R, commit afd4ce made it so that both HW and SW bridging go through +`createAudioPatch()`, which is broken on some devices such as on MTK Q +vendor, because their HAL do not support HW patching via the newer +`createAudioPatch()` method. Instead, the patching on Q was done through +`setOutputDevices()`. + +On S, commit 51c9cc refactored the related code again such that HW +bridging for the Rx direction is essentially removed, replaced with SW +bridging through `startAudioSource()`. This is, again, broken on MTK R +vendor devices. + +On T, commit b2e5cb applied the same SW bridging to the Tx direction. + +All of these commits rely on assumptions that are not tested through +VTS and just presumed to be true. Although we can blame MTK for not +supporting all the possible cases in their HAL, it will not fix +anything, and really frameworks code should not depend on such untested +assumptions. + +To work around said issues, we restore old behavior from S, R and Q +relying on the value of `ro.vndk.version`. + +Change-Id: I56d36d2aef4319935cb88a3e4771b23c6d5b2145 +--- + .../managerdefault/AudioPolicyManager.cpp | 206 ++++++++++++------ + .../managerdefault/AudioPolicyManager.h | 3 + + 2 files changed, 147 insertions(+), 62 deletions(-) + +diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +index f093e685ba..9a90009f9e 100644 +--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp ++++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +@@ -689,6 +689,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal( + disconnectTelephonyAudioSource(mCallRxSourceClient); + disconnectTelephonyAudioSource(mCallTxSourceClient); + ++ // release existing RX patch if any ++ if (mCallRxPatch != 0) { ++ releaseAudioPatchInternal(mCallRxPatch->getHandle()); ++ mCallRxPatch.clear(); ++ } ++ // release TX patch if any ++ if (mCallTxPatch != 0) { ++ releaseAudioPatchInternal(mCallTxPatch->getHandle()); ++ mCallTxPatch.clear(); ++ } ++ + auto telephonyRxModule = + mHwModules.getModuleForDeviceType(AUDIO_DEVICE_IN_TELEPHONY_RX, AUDIO_FORMAT_DEFAULT); + auto telephonyTxModule = +@@ -711,9 +722,20 @@ status_t AudioPolicyManager::updateCallRoutingInternal( + ALOGE("%s() no telephony Tx and/or RX device", __func__); + return INVALID_OPERATION; + } +- // createAudioPatchInternal now supports both HW / SW bridging +- createRxPatch = true; +- createTxPatch = true; ++ if (property_get_int32("ro.vndk.version", 31) >= 30) { ++ // createAudioPatchInternal now supports both HW / SW bridging ++ createRxPatch = true; ++ createTxPatch = true; ++ } else { ++ // pre-R behavior: some devices before VNDK 30 do not support createAudioPatch correctly ++ // for HW bridging even though they declare support for it ++ // do not create a patch (aka Sw Bridging) if Primary HW module has declared supporting a ++ // route between telephony RX to Sink device and Source device to telephony TX ++ ALOGI("%s() Using pre-R behavior for createRxPatch and createTxPatch", __func__); ++ const auto &primaryModule = telephonyRxModule; ++ createRxPatch = !primaryModule->supportsPatch(rxSourceDevice, rxDevices.itemAt(0)); ++ createTxPatch = !primaryModule->supportsPatch(txSourceDevice, txSinkDevice); ++ } + } else { + // If the RX device is on the primary HW module, then use legacy routing method for + // voice calls via setOutputDevice() on primary output. +@@ -730,7 +752,14 @@ status_t AudioPolicyManager::updateCallRoutingInternal( + if (!createRxPatch) { + muteWaitMs = setOutputDevices(mPrimaryOutput, rxDevices, true, delayMs); + } else { // create RX path audio patch +- connectTelephonyRxAudioSource(); ++ if (property_get_int32("ro.vndk.version", 31) >= 31) { ++ connectTelephonyRxAudioSource(); ++ } else { ++ // pre-S behavior: some devices do not support SW bridging correctly when HW bridge is ++ // available through createAudioPatch(); startAudioSource() forces SW bridging. ++ ALOGI("%s() Using pre-S behavior to create HW Rx patch", __func__); ++ mCallRxPatch = createTelephonyPatch(true /*isRx*/, rxDevices.itemAt(0), delayMs); ++ } + // If the TX device is on the primary HW module but RX device is + // on other HW module, SinkMetaData of telephony input should handle it + // assuming the device uses audio HAL V5.0 and above +@@ -745,7 +774,12 @@ status_t AudioPolicyManager::updateCallRoutingInternal( + closeActiveClients(activeDesc); + } + } +- connectTelephonyTxAudioSource(txSourceDevice, txSinkDevice, delayMs); ++ if (property_get_int32("ro.vndk.version", 33) >= 33) { ++ connectTelephonyTxAudioSource(txSourceDevice, txSinkDevice, delayMs); ++ } else { ++ // pre-T behavior: hw bridging for tx too; skip the SwOutput ++ mCallTxPatch = createTelephonyPatch(false /*isRx*/, txSourceDevice, delayMs); ++ } + } + if (waitMs != nullptr) { + *waitMs = muteWaitMs; +@@ -753,6 +787,36 @@ status_t AudioPolicyManager::updateCallRoutingInternal( + return NO_ERROR; + } + ++sp AudioPolicyManager::createTelephonyPatch( ++ bool isRx, const sp &device, uint32_t delayMs) { ++ PatchBuilder patchBuilder; ++ ++ if (device == nullptr) { ++ return nullptr; ++ } ++ ++ // @TODO: still ignoring the address, or not dealing platform with multiple telephony devices ++ if (isRx) { ++ patchBuilder.addSink(device). ++ addSource(mAvailableInputDevices.getDevice( ++ AUDIO_DEVICE_IN_TELEPHONY_RX, String8(), AUDIO_FORMAT_DEFAULT)); ++ } else { ++ patchBuilder.addSource(device). ++ addSink(mAvailableOutputDevices.getDevice( ++ AUDIO_DEVICE_OUT_TELEPHONY_TX, String8(), AUDIO_FORMAT_DEFAULT)); ++ } ++ ++ audio_patch_handle_t patchHandle = AUDIO_PATCH_HANDLE_NONE; ++ status_t status = ++ createAudioPatchInternal(patchBuilder.patch(), &patchHandle, mUidCached, delayMs, nullptr); ++ ssize_t index = mAudioPatches.indexOfKey(patchHandle); ++ if (status != NO_ERROR || index < 0) { ++ ALOGW("%s() error %d creating %s audio patch", __func__, status, isRx ? "RX" : "TX"); ++ return nullptr; ++ } ++ return mAudioPatches.valueAt(index); ++} ++ + bool AudioPolicyManager::isDeviceOfModule( + const sp& devDesc, const char *moduleId) const { + sp module = mHwModules.getModuleFromName(moduleId); +@@ -4958,83 +5022,101 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch * + // in config XML to reach the sink so that is can be declared as available. + audio_io_handle_t output = AUDIO_IO_HANDLE_NONE; + sp outputDesc; +- if (!sourceDesc->isInternal()) { +- // take care of dynamic routing for SwOutput selection, +- audio_attributes_t attributes = sourceDesc->attributes(); +- audio_stream_type_t stream = sourceDesc->stream(); +- audio_attributes_t resultAttr; +- audio_config_t config = AUDIO_CONFIG_INITIALIZER; +- config.sample_rate = sourceDesc->config().sample_rate; +- audio_channel_mask_t sourceMask = sourceDesc->config().channel_mask; +- config.channel_mask = +- (audio_channel_mask_get_representation(sourceMask) +- == AUDIO_CHANNEL_REPRESENTATION_INDEX) ? sourceMask +- : audio_channel_mask_in_to_out(sourceMask); +- config.format = sourceDesc->config().format; +- audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE; +- audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE; +- bool isRequestedDeviceForExclusiveUse = false; +- output_type_t outputType; +- bool isSpatialized; +- bool isBitPerfect; +- getOutputForAttrInt(&resultAttr, &output, AUDIO_SESSION_NONE, &attributes, +- &stream, sourceDesc->uid(), &config, &flags, +- &selectedDeviceId, &isRequestedDeviceForExclusiveUse, +- nullptr, &outputType, &isSpatialized, &isBitPerfect); +- if (output == AUDIO_IO_HANDLE_NONE) { +- ALOGV("%s no output for device %s", +- __FUNCTION__, sinkDevice->toString().c_str()); +- return INVALID_OPERATION; +- } +- outputDesc = mOutputs.valueFor(output); +- if (outputDesc->isDuplicated()) { +- ALOGE("%s output is duplicated", __func__); +- return INVALID_OPERATION; +- } +- bool closeOutput = outputDesc->mDirectOpenCount != 0; +- sourceDesc->setSwOutput(outputDesc, closeOutput); +- } else { +- // Same for "raw patches" aka created from createAudioPatch API +- SortedVector outputs = +- getOutputsForDevices(DeviceVector(sinkDevice), mOutputs); +- // if the sink device is reachable via an opened output stream, request to +- // go via this output stream by adding a second source to the patch +- // description +- output = selectOutput(outputs); +- if (output == AUDIO_IO_HANDLE_NONE) { +- ALOGE("%s no output available for internal patch sink", __func__); +- return INVALID_OPERATION; +- } +- outputDesc = mOutputs.valueFor(output); +- if (outputDesc->isDuplicated()) { +- ALOGV("%s output for device %s is duplicated", +- __func__, sinkDevice->toString().c_str()); +- return INVALID_OPERATION; ++ if (sourceDesc != nullptr) { ++ if (!sourceDesc->isInternal()) { ++ // take care of dynamic routing for SwOutput selection, ++ audio_attributes_t attributes = sourceDesc->attributes(); ++ audio_stream_type_t stream = sourceDesc->stream(); ++ audio_attributes_t resultAttr; ++ audio_config_t config = AUDIO_CONFIG_INITIALIZER; ++ config.sample_rate = sourceDesc->config().sample_rate; ++ audio_channel_mask_t sourceMask = sourceDesc->config().channel_mask; ++ config.channel_mask = ++ (audio_channel_mask_get_representation(sourceMask) ++ == AUDIO_CHANNEL_REPRESENTATION_INDEX) ? sourceMask ++ : audio_channel_mask_in_to_out(sourceMask); ++ config.format = sourceDesc->config().format; ++ audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE; ++ audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE; ++ bool isRequestedDeviceForExclusiveUse = false; ++ output_type_t outputType; ++ bool isSpatialized; ++ bool isBitPerfect; ++ getOutputForAttrInt(&resultAttr, &output, AUDIO_SESSION_NONE, &attributes, ++ &stream, sourceDesc->uid(), &config, &flags, ++ &selectedDeviceId, &isRequestedDeviceForExclusiveUse, ++ nullptr, &outputType, &isSpatialized, &isBitPerfect); ++ if (output == AUDIO_IO_HANDLE_NONE) { ++ ALOGV("%s no output for device %s", ++ __FUNCTION__, sinkDevice->toString().c_str()); ++ return INVALID_OPERATION; ++ } ++ outputDesc = mOutputs.valueFor(output); ++ if (outputDesc->isDuplicated()) { ++ ALOGE("%s output is duplicated", __func__); ++ return INVALID_OPERATION; ++ } ++ bool closeOutput = outputDesc->mDirectOpenCount != 0; ++ sourceDesc->setSwOutput(outputDesc, closeOutput); ++ } else { ++ // Same for "raw patches" aka created from createAudioPatch API ++ SortedVector outputs = ++ getOutputsForDevices(DeviceVector(sinkDevice), mOutputs); ++ // if the sink device is reachable via an opened output stream, request to ++ // go via this output stream by adding a second source to the patch ++ // description ++ output = selectOutput(outputs); ++ if (output == AUDIO_IO_HANDLE_NONE) { ++ ALOGE("%s no output available for internal patch sink", __func__); ++ return INVALID_OPERATION; ++ } ++ outputDesc = mOutputs.valueFor(output); ++ if (outputDesc->isDuplicated()) { ++ ALOGV("%s output for device %s is duplicated", ++ __func__, sinkDevice->toString().c_str()); ++ return INVALID_OPERATION; ++ } + } +- sourceDesc->setSwOutput(outputDesc, /* closeOutput= */ false); + } + // create a software bridge in PatchPanel if: + // - source and sink devices are on different HW modules OR + // - audio HAL version is < 3.0 + // - audio HAL version is >= 3.0 but no route has been declared between devices +- // - called from startAudioSource (aka sourceDesc is not internal) and source device ++ // - called from startAudioSource (aka sourceDesc is neither null nor internal) and source device + // does not have a gain controller + if (!srcDevice->hasSameHwModuleAs(sinkDevice) || + (srcDevice->getModuleVersionMajor() < 3) || + !srcDevice->getModule()->supportsPatch(srcDevice, sinkDevice) || +- (!sourceDesc->isInternal() && ++ ((sourceDesc != nullptr && !sourceDesc->isInternal()) && + srcDevice->getAudioPort()->getGains().size() == 0)) { + // support only one sink device for now to simplify output selection logic + if (patch->num_sinks > 1) { + return INVALID_OPERATION; + } +- sourceDesc->setUseSwBridge(); ++ if (sourceDesc == nullptr) { ++ SortedVector outputs = ++ getOutputsForDevices(DeviceVector(sinkDevice), mOutputs); ++ // if the sink device is reachable via an opened output stream, request to ++ // go via this output stream by adding a second source to the patch ++ // description ++ output = selectOutput(outputs); ++ if (output != AUDIO_IO_HANDLE_NONE) { ++ outputDesc = mOutputs.valueFor(output); ++ if (outputDesc->isDuplicated()) { ++ ALOGV("%s output for device %s is duplicated", ++ __FUNCTION__, sinkDevice->toString().c_str()); ++ return INVALID_OPERATION; ++ } ++ } ++ } else { ++ sourceDesc->setUseSwBridge(); ++ } + if (outputDesc != nullptr) { + audio_port_config srcMixPortConfig = {}; + outputDesc->toAudioPortConfig(&srcMixPortConfig, nullptr); + // for volume control, we may need a valid stream + srcMixPortConfig.ext.mix.usecase.stream = +- (!sourceDesc->isInternal() || isCallTxAudioSource(sourceDesc)) ? ++ (sourceDesc != nullptr && (!sourceDesc->isInternal() || isCallTxAudioSource(sourceDesc))) ? + mEngine->getStreamTypeForAttributes(sourceDesc->attributes()) : + AUDIO_STREAM_PATCH; + patchBuilder.addSource(srcMixPortConfig); +diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h +index 88bafefdb1..188b5732b3 100644 +--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h ++++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h +@@ -953,6 +953,9 @@ protected: + + SoundTriggerSessionCollection mSoundTriggerSessions; + ++ sp mCallTxPatch; ++ sp mCallRxPatch; ++ + HwAudioOutputCollection mHwOutputs; + SourceClientCollection mAudioSources; + +-- +2.41.0 + diff --git a/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch new file mode 100644 index 0000000..04a2722 --- /dev/null +++ b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch @@ -0,0 +1,131 @@ +From 97421e35dd716c9b07ec44ec05265944efc96294 Mon Sep 17 00:00:00 2001 +From: Pierre-Hugues Husson +Date: Mon, 5 Aug 2019 18:09:50 +0200 +Subject: [PATCH 5/5] Fix BT in-call on CAF devices + +See https://github.com/phhusson/treble_experimentations/issues/374 + +In Qualcomm's BSP audio_policy_configuration.xml, one route is missing, +from primary output and telephony to BT SCO. + +Add it if we detect telephony and bt sco, but no such route. + +Change-Id: Ifea0f88276ec9a0811f3cb1973c4b06f2c82077b +--- + .../managerdefinitions/src/Serializer.cpp | 93 +++++++++++++++++++ + 1 file changed, 93 insertions(+) + +diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +index d23d55677d..4f896111cb 100644 +--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp ++++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +@@ -672,6 +672,98 @@ std::variant PolicySerializer::deserialize primary input mix ++ // But Telephony Rx => BT SCO Headset route is missing ++ // When we detect such case, add the missing route ++ ++ // If we have: ++ // ++ // ++ // ++ // And no ++ ++ // Add: ++ // ++ bool foundBtScoHeadsetDevice = false; ++ for(const auto& device: devicePorts) { ++ if(device->getTagName() == "BT SCO Headset") { ++ foundBtScoHeadsetDevice = true; ++ break; ++ } ++ } ++ if(!foundBtScoHeadsetDevice) { ++ ALOGE("No BT SCO Headset device found, don't patch policy"); ++ return; ++ } ++ ++ bool foundTelephony = false; ++ bool foundBtScoInput = false; ++ bool foundScoHeadsetRoute = false; ++ for(const auto& route: routes) { ++ ALOGE("Looking at route %d\n", route->getType()); ++ if(route->getType() != AUDIO_ROUTE_MIX) ++ continue; ++ auto sink = route->getSink(); ++ ALOGE("... With sink %s\n", sink->getTagName().c_str()); ++ if(sink->getTagName() == "Telephony Tx") { ++ foundTelephony = true; ++ continue; ++ } ++ if(sink->getTagName() == "BT SCO Headset") { ++ foundScoHeadsetRoute = true; ++ break; ++ } ++ for(const auto& source: route->getSources()) { ++ ALOGE("... With source %s\n", source->getTagName().c_str()); ++ if(source->getTagName() == "BT SCO Headset Mic") { ++ foundBtScoInput = true; ++ break; ++ } ++ } ++ } ++ //The route we want to add is already there ++ ALOGE("Done looking for existing routes"); ++ if(foundScoHeadsetRoute) ++ return; ++ ++ ALOGE("No existing route found... %d %d", foundTelephony ? 1 : 0, foundBtScoInput ? 1 : 0); ++ //We couldn't find the routes we assume are required for the function we want to add ++ if(!foundTelephony || !foundBtScoInput) ++ return; ++ ALOGE("Adding our own."); ++ ++ // Add: ++ // ++ AudioRoute *newRoute = new AudioRoute(AUDIO_ROUTE_MIX); ++ ++ auto sink = ctx->findPortByTagName("BT SCO Headset"); ++ ALOGE("Got sink %p\n", sink.get()); ++ newRoute->setSink(sink); ++ ++ Vector> sources; ++ for(const auto& sourceName: { ++ "primary output", ++ "deep_buffer", ++ "compressed_offload", ++ "Telephony Rx" ++ }) { ++ auto source = ctx->findPortByTagName(sourceName); ++ ALOGE("Got source %p\n", source.get()); ++ if (source.get() != nullptr) { ++ sources.add(source); ++ source->addRoute(newRoute); ++ } ++ } ++ ++ newRoute->setSources(sources); ++ ++ sink->addRoute(newRoute); ++ ++ auto ret = routes.add(newRoute); ++ ALOGE("route add returned %zd", ret); ++} ++ + template<> + std::variant PolicySerializer::deserialize( + const xmlNode *cur, ModuleTraits::PtrSerializingCtx ctx) +@@ -739,6 +831,7 @@ std::variant PolicySerializer::deserializesetRoutes(routes); + + for (const xmlNode *children = cur->xmlChildrenNode; children != NULL; +-- +2.41.0 + From 87b06501bc8403e4204fb80ef98f704a30e9255e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 8 Oct 2023 10:50:51 -0400 Subject: [PATCH 08/19] [5/n] Android 14 port --- ...001-Expose-themed-icon-setting-in-ThemePicker.patch | 4 ++-- ...02-Properly-expose-GridCustomizationsProvider.patch | 6 +++--- .../0003-Fix-all-apps-header-color-in-dark-mode.patch | 10 +++++----- .../Launcher3/0004-Disable-QSB-in-BuildConfig.patch | 4 ++-- .../0001-Add-wallpaper-privapp-whitelist.patch | 8 ++++---- .../0002-Override-legacy-WallpaperPicker-app.patch | 8 ++++---- .../0003-Add-wallpaper-default-permissions.patch | 10 +++++----- ...4-Specify-we-read-and-write-launcher-settings.patch | 4 ++-- ...Add-permission-for-launcher-preview-rendering.patch | 4 ++-- 9 files changed, 29 insertions(+), 29 deletions(-) diff --git a/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch b/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch index c93a740..021c20b 100644 --- a/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch +++ b/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch @@ -1,4 +1,4 @@ -From 8cd54396bbf29cc977497b53c1464a80aea69825 Mon Sep 17 00:00:00 2001 +From ca78711f5e5f3d23d11955f1f7368a3b4297ba40 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Mon, 11 Oct 2021 20:48:44 -0700 Subject: [PATCH 1/4] Expose themed icon setting in ThemePicker @@ -38,5 +38,5 @@ index 7d7054f5a5..d2955c4327 100644 -- -2.40.1 +2.41.0 diff --git a/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch b/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch index a67fa4c..7fc75a2 100644 --- a/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch +++ b/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch @@ -1,4 +1,4 @@ -From 0d97b73a079dd81b0dd8c0bb512a926d37f76cf9 Mon Sep 17 00:00:00 2001 +From 2e42cd9a638142a055e3ce55cfe767ff21e44cad Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Fri, 1 Nov 2019 23:17:59 +0100 Subject: [PATCH 2/4] Properly expose GridCustomizationsProvider @@ -9,7 +9,7 @@ Change-Id: I8268a215257ae0e399c56ac8b44cdfdff8cc92a0 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml -index 0c7b48fe66..1fe86ad022 100644 +index 14605d8053..89ebe026f9 100644 --- a/AndroidManifest-common.xml +++ b/AndroidManifest-common.xml @@ -137,7 +137,9 @@ @@ -24,5 +24,5 @@ index 0c7b48fe66..1fe86ad022 100644 - QR code isn\u0027t a valid format +@@ -12129,4 +12129,10 @@ + + "This app can only be opened in 1 window" ++ + + Global VPN + Force all traffic on the device through this VPN, including work profile and other users. @@ -29,12 +30,12 @@ index 28b35b3fcf..29ca3882e9 100644 + You need to disable all active VPN connections first to enable this diff --git a/res/xml/vpn_app_management.xml b/res/xml/vpn_app_management.xml -index adc441d846..e00f23ccfa 100644 +index dffbbbe311..93df378fd7 100644 --- a/res/xml/vpn_app_management.xml +++ b/res/xml/vpn_app_management.xml -@@ -31,6 +31,12 @@ +@@ -23,6 +23,12 @@ + android:key="version" android:selectable="false"/> - --> + + Date: Sat, 14 Oct 2023 15:50:39 -0400 Subject: [PATCH 10/19] fw/b: Add patch for proper upgrades --- ...support-glob-matching-for-properties.patch | 4 +- ...d-support-for-app-signature-spoofing.patch | 4 +- ...PackageUtils-Add-glob-matching-suppo.patch | 4 +- .../base/0004-Global-VPN-feature-1-2.patch | 4 +- ...more-FDE-methods-from-StorageManager.patch | 4 +- ...ze-boot-animation-to-match-screen-si.patch | 4 +- ...ateForSlotIndex-in-SubscriptionManag.patch | 4 +- ...CallingIdentity-variant-with-both-ex.patch | 4 +- ...d.version.incremental-to-signal-OTA-.patch | 239 ++++++++++++++++++ 9 files changed, 255 insertions(+), 16 deletions(-) create mode 100644 frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch diff --git a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch index bedcf73..c880193 100644 --- a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch +++ b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch @@ -1,7 +1,7 @@ -From c25e4bfafc3b0b9f44c9cd2b9fed590299480f71 Mon Sep 17 00:00:00 2001 +From 68cd896eee1f2b1ba313b82d7fa466333fd6f157 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Oct 2021 21:37:22 -0400 -Subject: [PATCH 1/8] PackageParser: support glob matching for properties +Subject: [PATCH 1/9] PackageParser: support glob matching for properties Needed to make phh's vendor overlays work --- diff --git a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch index e986653..9df9ac7 100644 --- a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch +++ b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch @@ -1,7 +1,7 @@ -From 540857efdf49ba24121970d2b836eb38ab7e7b32 Mon Sep 17 00:00:00 2001 +From 2f4174b9b2e8f23fb893a74f1cf7649714ea7758 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Sat, 16 Oct 2021 05:27:57 -0700 -Subject: [PATCH 2/8] Add support for app signature spoofing +Subject: [PATCH 2/9] Add support for app signature spoofing This is needed by microG GmsCore to pretend to be the official Google Play Services package, because client apps check the package signature diff --git a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch index 4e6cc3c..6f7258d 100644 --- a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch +++ b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch @@ -1,7 +1,7 @@ -From 148fe28e381f444f7d06ea611dbd82c1e1ae8573 Mon Sep 17 00:00:00 2001 +From 5d662f5b7e2410564d76b8424957707203ec52b6 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 2 Sep 2022 21:36:06 -0400 -Subject: [PATCH 3/8] FrameworkParsingPackageUtils: Add glob matching support +Subject: [PATCH 3/9] FrameworkParsingPackageUtils: Add glob matching support for properties This is now required in addition to the one in PackageParser in order diff --git a/frameworks/base/0004-Global-VPN-feature-1-2.patch b/frameworks/base/0004-Global-VPN-feature-1-2.patch index c777a2b..8cd13b1 100644 --- a/frameworks/base/0004-Global-VPN-feature-1-2.patch +++ b/frameworks/base/0004-Global-VPN-feature-1-2.patch @@ -1,7 +1,7 @@ -From 00b72ce36c74f294e9823a41c0f50f73d435b1dd Mon Sep 17 00:00:00 2001 +From a7bc80200ad51943936eae7db443913c9a0cd6dc Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:41:43 -0400 -Subject: [PATCH 4/8] Global VPN feature [1/2] +Subject: [PATCH 4/9] Global VPN feature [1/2] * Modify existing VPN user range functions to conditionally have traffic from all users pass through the global VPN. diff --git a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch index 8f664c6..bcd25ae 100644 --- a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch +++ b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch @@ -1,7 +1,7 @@ -From aa7e0467d0c5c98a9de336ef8e3e635491c8395a Mon Sep 17 00:00:00 2001 +From d83831158f32f782a856e37cc23bd7fcc0f293ca Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 15 Oct 2022 09:33:56 +0000 -Subject: [PATCH 5/8] Revert "Remove more FDE methods from StorageManager" +Subject: [PATCH 5/9] Revert "Remove more FDE methods from StorageManager" This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676. diff --git a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch index ac1b186..f21eb9b 100644 --- a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch +++ b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch @@ -1,7 +1,7 @@ -From 5c0f50bd093ad8fa878b79d124942d1a5bceef00 Mon Sep 17 00:00:00 2001 +From a4fa97491d1b55e49e29af49eae58f03e42eb642 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 20 Dec 2021 15:01:41 -0500 -Subject: [PATCH 6/8] Dynamically resize boot animation to match screen size +Subject: [PATCH 6/9] Dynamically resize boot animation to match screen size Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205 --- diff --git a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch index 6a120b5..b1752ab 100644 --- a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch +++ b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch @@ -1,7 +1,7 @@ -From d2b69b92fe4f37f8bcfdd4b8e3b756e5ad253663 Mon Sep 17 00:00:00 2001 +From 407e57ccb7dcf4fdd4c260c6e6b5972abc9177e7 Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Wed, 2 Aug 2023 20:59:53 +0800 -Subject: [PATCH 7/8] Restore getSimStateForSlotIndex in SubscriptionManager +Subject: [PATCH 7/9] Restore getSimStateForSlotIndex in SubscriptionManager MTK IMS still needs it here diff --git a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch index ccf5495..dcee571 100644 --- a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch +++ b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch @@ -1,7 +1,7 @@ -From 8a8a763c989ddbf886288a130a66c39a4613c515 Mon Sep 17 00:00:00 2001 +From 989c6bc643e6e3b6ffd47d15267433b70faa6141 Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 12 Aug 2023 20:11:17 +0800 -Subject: [PATCH 8/8] Add runWithCleanCallingIdentity variant with both +Subject: [PATCH 8/9] Add runWithCleanCallingIdentity variant with both executor and return value This complements the fixup to ImsPhoneCallTracker (in fw/o/t) for U diff --git a/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch b/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch new file mode 100644 index 0000000..e0935a0 --- /dev/null +++ b/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch @@ -0,0 +1,239 @@ +From c9d2c616f979b05ef609e5b8e890471b7b246beb Mon Sep 17 00:00:00 2001 +From: dhacker29 +Date: Tue, 24 Nov 2015 01:53:47 -0500 +Subject: [PATCH 9/9] fw/b: Use ro.build.version.incremental to signal OTA + upgrades + +Squash of: + +Author: dhacker29 +Date: Tue Nov 24 01:53:47 2015 -0500 + Core: Use ro.build.date to signal mIsUpgrade + + M: We use a static fingerprint that is only changed when a new OEM build is released, so + every flash shows Android is starting instead of upgrading. This will fix that. + N: even though we dont have the dexopt sceen on N, this is still needed to delete the + correct caches, and grant/deny specific runtime permissions like a true oem update + would do. + Updated for Nougat By: BeansTown106 + + Change-Id: I0e3ed5c8f0351e48944432ae6a0c5194ddeff1fa + +Author: Sam Mortimer +Date: Fri Sep 28 13:45:00 2018 -0700 + fw/b UserManagerService: Use ro.build.date to signal upgrades + + *) We changed PackageManagerService to use Build.DATE instead of + Build.FINGERPRINT to detect upgrade. Do the same for + UserManagerService. + *) Affects generation of preboot intent and app data migration. + + Change-Id: I56887b7ca842afdcf3cf84b27b4c04667cf43307 + +Author: Wang Han <416810799@qq.com> +Date: Sat Dec 29 23:33:20 2018 +0800 + ShortcutService: Use ro.build.date to signal package scanning + + * Affects system apps scanning. + + Change-Id: I5f6d6647929f5b5ae7e820b18e95bf5ed2ec8d1c + +Author: maxwen +Date: Tue Nov 19 01:02:01 2019 +0100 + base: Use ro.build.date to clear cache dirs on update + + instead of using ro.build.fingerprint we explictly need to use ro.build.date + + Change-Id: Ib3e80e58eb8c9a21c108e9f5cd2dbdb7ada8e3a4 + +Author: maxwen +Date: Wed Oct 28 07:07:10 2020 -0400 + One more Build.FINGERPRINT to Build.DATE change + + Change-Id: I13dbf3d7f6587d3fcd6591cc0f861b34b6d5561c + +Change-Id: If0eb969ba509981f9209ffa37a949d9042ef4c2a +--- + core/java/android/app/admin/SystemUpdateInfo.java | 4 ++-- + .../com/android/server/am/UserController.java | 3 ++- + .../android/server/pm/PackageManagerService.java | 15 +++++++-------- + .../core/java/com/android/server/pm/Settings.java | 4 ++-- + .../com/android/server/pm/ShortcutService.java | 2 +- + .../com/android/server/pm/UserManagerService.java | 8 ++++---- + 6 files changed, 18 insertions(+), 18 deletions(-) + +diff --git a/core/java/android/app/admin/SystemUpdateInfo.java b/core/java/android/app/admin/SystemUpdateInfo.java +index 9e6c91f4ec31..7459b0e05e3a 100644 +--- a/core/java/android/app/admin/SystemUpdateInfo.java ++++ b/core/java/android/app/admin/SystemUpdateInfo.java +@@ -133,7 +133,7 @@ public final class SystemUpdateInfo implements Parcelable { + out.startTag(null, tag); + out.attributeLong(null, ATTR_RECEIVED_TIME, mReceivedTime); + out.attributeInt(null, ATTR_SECURITY_PATCH_STATE, mSecurityPatchState); +- out.attribute(null, ATTR_ORIGINAL_BUILD , Build.FINGERPRINT); ++ out.attribute(null, ATTR_ORIGINAL_BUILD , Build.VERSION.INCREMENTAL); + out.endTag(null, tag); + } + +@@ -142,7 +142,7 @@ public final class SystemUpdateInfo implements Parcelable { + public static SystemUpdateInfo readFromXml(TypedXmlPullParser parser) { + // If an OTA has been applied (build fingerprint has changed), discard stale info. + final String buildFingerprint = parser.getAttributeValue(null, ATTR_ORIGINAL_BUILD ); +- if (!Build.FINGERPRINT.equals(buildFingerprint)) { ++ if (!Build.VERSION.INCREMENTAL.equals(buildFingerprint)) { + return null; + } + try { +diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java +index 76a994ec63e9..f8d1f8178871 100644 +--- a/services/core/java/com/android/server/am/UserController.java ++++ b/services/core/java/com/android/server/am/UserController.java +@@ -90,6 +90,7 @@ import android.content.pm.UserInfo; + import android.content.pm.UserProperties; + import android.os.BatteryStats; + import android.os.Binder; ++import android.os.Build; + import android.os.Bundle; + import android.os.Debug; + import android.os.Handler; +@@ -753,7 +754,7 @@ class UserController implements Handler.Callback { + // purposefully block sending BOOT_COMPLETED until after all + // PRE_BOOT receivers are finished to avoid ANR'ing apps + final UserInfo info = getUserInfo(userId); +- if (!Objects.equals(info.lastLoggedInFingerprint, PackagePartitions.FINGERPRINT) ++ if (!Objects.equals(info.lastLoggedInFingerprint, Build.VERSION.INCREMENTAL) + || SystemProperties.getBoolean("persist.pm.mock-upgrade", false)) { + // Suppress double notifications for managed profiles that + // were unlocked automatically as part of their parent user being +diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java +index f2b62eaf25f8..c721e5474317 100644 +--- a/services/core/java/com/android/server/pm/PackageManagerService.java ++++ b/services/core/java/com/android/server/pm/PackageManagerService.java +@@ -1615,7 +1615,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService + } + + PackageManagerService m = new PackageManagerService(injector, factoryTest, +- PackagePartitions.FINGERPRINT, Build.IS_ENG, Build.IS_USERDEBUG, ++ Build.VERSION.INCREMENTAL, Build.IS_ENG, Build.IS_USERDEBUG, + Build.VERSION.SDK_INT, Build.VERSION.INCREMENTAL); + t.traceEnd(); // "create package manager" + +@@ -2082,9 +2082,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService + mIsUpgrade = + !partitionsFingerprint.equals(ver.fingerprint); + if (mIsUpgrade) { +- PackageManagerServiceUtils.logCriticalInfo(Log.INFO, +- "Upgrading from " + ver.fingerprint + " (" + ver.buildFingerprint + ") to " +- + PackagePartitions.FINGERPRINT + " (" + Build.FINGERPRINT + ")"); ++ PackageManagerServiceUtils.logCriticalInfo(Log.INFO, "Upgrading from " ++ + ver.fingerprint + " to " + Build.VERSION.INCREMENTAL); + } + + mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper, +@@ -2221,8 +2220,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService + // allow... it would be nice to have some better way to handle + // this situation. + if (mIsUpgrade) { +- Slog.i(TAG, "Partitions fingerprint changed from " + ver.fingerprint + " to " +- + PackagePartitions.FINGERPRINT ++ Slog.i(TAG, "Build incremental version changed from " + ver.fingerprint + " to " ++ + Build.VERSION.INCREMENTAL + + "; regranting permissions for internal storage"); + } + mPermissionManager.onStorageVolumeMounted( +@@ -2242,7 +2241,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService + // across OTAs and are used to drive profile verification (post OTA) and + // profile compilation (without waiting to collect a fresh set of profiles). + if (mIsUpgrade) { +- Slog.i(TAG, "Build fingerprint changed; clearing code caches"); ++ Slog.i(TAG, "Build incremental version changed; clearing code caches"); + for (int i = 0; i < packageSettings.size(); i++) { + final PackageSetting ps = packageSettings.valueAt(i); + if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, ps.getVolumeUuid())) { +@@ -2254,7 +2253,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService + } + } + ver.buildFingerprint = Build.FINGERPRINT; +- ver.fingerprint = PackagePartitions.FINGERPRINT; ++ ver.fingerprint = Build.VERSION.INCREMENTAL; + } + + // Defer the app data fixup until we are done with app data clearing above. +diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java +index aaf13ebeff2a..8fc6492ae873 100644 +--- a/services/core/java/com/android/server/pm/Settings.java ++++ b/services/core/java/com/android/server/pm/Settings.java +@@ -464,7 +464,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile + sdkVersion = Build.VERSION.SDK_INT; + databaseVersion = CURRENT_DATABASE_VERSION; + buildFingerprint = Build.FINGERPRINT; +- fingerprint = PackagePartitions.FINGERPRINT; ++ fingerprint = Build.VERSION.INCREMENTAL; + } + } + +@@ -5692,7 +5692,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile + } + + private String getExtendedFingerprint(long version) { +- return PackagePartitions.FINGERPRINT + "?pc_version=" + version; ++ return Build.VERSION.INCREMENTAL + "?pc_version=" + version; + } + + private static long uniformRandom(double low, double high) { +diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java +index 5b3514c01f9f..265125987be1 100644 +--- a/services/core/java/com/android/server/pm/ShortcutService.java ++++ b/services/core/java/com/android/server/pm/ShortcutService.java +@@ -5175,7 +5175,7 @@ public class ShortcutService extends IShortcutService.Stub { + + // Injection point. + String injectBuildFingerprint() { +- return Build.FINGERPRINT; ++ return Build.VERSION.INCREMENTAL; + } + + final void wtf(String message) { +diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java +index 7e88e13e1788..9d8ace530d26 100644 +--- a/services/core/java/com/android/server/pm/UserManagerService.java ++++ b/services/core/java/com/android/server/pm/UserManagerService.java +@@ -4876,7 +4876,7 @@ public class UserManagerService extends IUserManager.Stub { + userInfo.creationTime = getCreationTime(); + userInfo.partial = true; + userInfo.preCreated = preCreate; +- userInfo.lastLoggedInFingerprint = PackagePartitions.FINGERPRINT; ++ userInfo.lastLoggedInFingerprint = Build.VERSION.INCREMENTAL; + if (userTypeDetails.hasBadge() && parentId != UserHandle.USER_NULL) { + userInfo.profileBadge = getFreeProfileBadgeLU(parentId, userType); + } +@@ -6200,7 +6200,7 @@ public class UserManagerService extends IUserManager.Stub { + t.traceBegin("onBeforeStartUser-" + userId); + final int userSerial = userInfo.serialNumber; + // Migrate only if build fingerprints mismatch +- boolean migrateAppsData = !PackagePartitions.FINGERPRINT.equals( ++ boolean migrateAppsData = !Build.VERSION.INCREMENTAL.equals( + userInfo.lastLoggedInFingerprint); + t.traceBegin("prepareUserData"); + mUserDataPreparer.prepareUserData(userId, userSerial, StorageManager.FLAG_STORAGE_DE); +@@ -6231,7 +6231,7 @@ public class UserManagerService extends IUserManager.Stub { + } + final int userSerial = userInfo.serialNumber; + // Migrate only if build fingerprints mismatch +- boolean migrateAppsData = !PackagePartitions.FINGERPRINT.equals( ++ boolean migrateAppsData = !Build.VERSION.INCREMENTAL.equals( + userInfo.lastLoggedInFingerprint); + + final TimingsTraceAndSlog t = new TimingsTraceAndSlog(); +@@ -6276,7 +6276,7 @@ public class UserManagerService extends IUserManager.Stub { + if (now > EPOCH_PLUS_30_YEARS) { + userData.info.lastLoggedInTime = now; + } +- userData.info.lastLoggedInFingerprint = PackagePartitions.FINGERPRINT; ++ userData.info.lastLoggedInFingerprint = Build.VERSION.INCREMENTAL; + scheduleWriteUser(userId); + } + +-- +2.41.0 + From 09dbc007f53685671085e99d9c0b21b3c95fe617 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 9 Dec 2023 18:34:42 -0500 Subject: [PATCH 11/19] Refresh patches for r17 --- ...support-glob-matching-for-properties.patch | 4 +- ...d-support-for-app-signature-spoofing.patch | 10 +-- ...PackageUtils-Add-glob-matching-suppo.patch | 4 +- .../base/0004-Global-VPN-feature-1-2.patch | 34 ++++----- ...more-FDE-methods-from-StorageManager.patch | 10 +-- ...ze-boot-animation-to-match-screen-si.patch | 4 +- ...ateForSlotIndex-in-SubscriptionManag.patch | 8 +- ...CallingIdentity-variant-with-both-ex.patch | 4 +- ...d.version.incremental-to-signal-OTA-.patch | 38 +++++----- ...ubbleDataRepositoryTest-to-use-mocki.patch | 75 +++++++++++++++++++ ...e-themed-icon-setting-in-ThemePicker.patch | 8 +- ...ly-expose-GridCustomizationsProvider.patch | 4 +- ... => 0003-Disable-QSB-in-BuildConfig.patch} | 4 +- ...x-all-apps-header-color-in-dark-mode.patch | 25 ------- 14 files changed, 141 insertions(+), 91 deletions(-) create mode 100644 frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch rename packages/apps/Launcher3/{0004-Disable-QSB-in-BuildConfig.patch => 0003-Disable-QSB-in-BuildConfig.patch} (89%) delete mode 100644 packages/apps/Launcher3/0003-Fix-all-apps-header-color-in-dark-mode.patch diff --git a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch index c880193..0da3ae4 100644 --- a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch +++ b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch @@ -1,7 +1,7 @@ -From 68cd896eee1f2b1ba313b82d7fa466333fd6f157 Mon Sep 17 00:00:00 2001 +From 8def4ecfdf6f04417ba886679e386be40fc713ec Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Oct 2021 21:37:22 -0400 -Subject: [PATCH 1/9] PackageParser: support glob matching for properties +Subject: [PATCH 01/10] PackageParser: support glob matching for properties Needed to make phh's vendor overlays work --- diff --git a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch index 9df9ac7..a753bda 100644 --- a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch +++ b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch @@ -1,7 +1,7 @@ -From 2f4174b9b2e8f23fb893a74f1cf7649714ea7758 Mon Sep 17 00:00:00 2001 +From db57e0cf315286e83e3855d8aaf465fe5ea22dcb Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Sat, 16 Oct 2021 05:27:57 -0700 -Subject: [PATCH 2/9] Add support for app signature spoofing +Subject: [PATCH 02/10] Add support for app signature spoofing This is needed by microG GmsCore to pretend to be the official Google Play Services package, because client apps check the package signature @@ -58,10 +58,10 @@ index 288ab479c0fb..2124d89c6e6f 100644 field public static final String MICROPHONE = "android.permission-group.MICROPHONE"; field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES"; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml -index 2f9f6ae3f3c4..c4cde374ce58 100644 +index 8c9a3ff5149f..4a55643dc503 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml -@@ -4251,6 +4251,21 @@ +@@ -4250,6 +4250,21 @@ android:description="@string/permdesc_getPackageSize" android:protectionLevel="normal" /> @@ -84,7 +84,7 @@ index 2f9f6ae3f3c4..c4cde374ce58 100644 {@link android.content.pm.PackageManager#addPackageToPreferred} for details. --> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml -index a5b2b853fddd..f8b48c55ce21 100644 +index 9c018c30f9e3..966fec172070 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -991,6 +991,18 @@ diff --git a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch index 6f7258d..02369b5 100644 --- a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch +++ b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch @@ -1,7 +1,7 @@ -From 5d662f5b7e2410564d76b8424957707203ec52b6 Mon Sep 17 00:00:00 2001 +From 3df53ee5075cc7db5065531a157f97960097cfb3 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 2 Sep 2022 21:36:06 -0400 -Subject: [PATCH 3/9] FrameworkParsingPackageUtils: Add glob matching support +Subject: [PATCH 03/10] FrameworkParsingPackageUtils: Add glob matching support for properties This is now required in addition to the one in PackageParser in order diff --git a/frameworks/base/0004-Global-VPN-feature-1-2.patch b/frameworks/base/0004-Global-VPN-feature-1-2.patch index 8cd13b1..f8b0756 100644 --- a/frameworks/base/0004-Global-VPN-feature-1-2.patch +++ b/frameworks/base/0004-Global-VPN-feature-1-2.patch @@ -1,7 +1,7 @@ -From a7bc80200ad51943936eae7db443913c9a0cd6dc Mon Sep 17 00:00:00 2001 +From 7b3ac6fb32bc619235aab6d06c2ed356dd684b4d Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:41:43 -0400 -Subject: [PATCH 4/9] Global VPN feature [1/2] +Subject: [PATCH 04/10] Global VPN feature [1/2] * Modify existing VPN user range functions to conditionally have traffic from all users pass through the global VPN. @@ -28,10 +28,10 @@ Signed-off-by: Mohammad Hasan Keramat J 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java -index d695c0cb3760..5c705aa14d44 100644 +index a55183c0f7c5..faa16d0c8aad 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java -@@ -16734,6 +16734,12 @@ public final class Settings { +@@ -16838,6 +16838,12 @@ public final class Settings { CLOCKWORK_HOME_READY, }; @@ -72,10 +72,10 @@ index 03656f000c07..fddf8167beb5 100644 mVpnUserId = newUserInfo.restrictedProfileParentId; } else { diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java -index e85eee817d29..2a731532b8d2 100644 +index e3262cfbd30b..614628f42e39 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java -@@ -909,6 +909,15 @@ public class Vpn { +@@ -915,6 +915,15 @@ public class Vpn { return mAlwaysOn; } @@ -91,7 +91,7 @@ index e85eee817d29..2a731532b8d2 100644 /** * Checks if a VPN app supports always-on mode. * -@@ -1855,6 +1864,7 @@ public class Vpn { +@@ -1864,6 +1873,7 @@ public class Vpn { try { // Restricted users are not allowed to create VPNs, they are tied to Owner enforceNotRestrictedUser(); @@ -99,7 +99,7 @@ index e85eee817d29..2a731532b8d2 100644 final PackageManager packageManager = mUserIdContext.getPackageManager(); if (packageManager == null) { -@@ -2007,7 +2017,7 @@ public class Vpn { +@@ -2016,7 +2026,7 @@ public class Vpn { addUserToRanges(ranges, userId, allowedApplications, disallowedApplications); // If the user can have restricted profiles, assign all its restricted profiles too @@ -108,7 +108,7 @@ index e85eee817d29..2a731532b8d2 100644 final long token = Binder.clearCallingIdentity(); List users; try { -@@ -2016,7 +2026,8 @@ public class Vpn { +@@ -2025,7 +2035,8 @@ public class Vpn { Binder.restoreCallingIdentity(token); } for (UserInfo user : users) { @@ -118,7 +118,7 @@ index e85eee817d29..2a731532b8d2 100644 addUserToRanges(ranges, user.id, allowedApplications, disallowedApplications); } } -@@ -2097,7 +2108,8 @@ public class Vpn { +@@ -2106,7 +2117,8 @@ public class Vpn { public void onUserAdded(int userId) { // If the user is restricted tie them to the parent user's VPN UserInfo user = mUserManager.getUserInfo(userId); @@ -128,7 +128,7 @@ index e85eee817d29..2a731532b8d2 100644 synchronized(Vpn.this) { final Set> existingRanges = mNetworkCapabilities.getUids(); if (existingRanges != null) { -@@ -2126,7 +2138,8 @@ public class Vpn { +@@ -2135,7 +2147,8 @@ public class Vpn { public void onUserRemoved(int userId) { // clean up if restricted UserInfo user = mUserManager.getUserInfo(userId); @@ -138,7 +138,7 @@ index e85eee817d29..2a731532b8d2 100644 synchronized(Vpn.this) { final Set> existingRanges = mNetworkCapabilities.getUids(); if (existingRanges != null) { -@@ -2565,6 +2578,17 @@ public class Vpn { +@@ -2580,6 +2593,17 @@ public class Vpn { } } @@ -156,7 +156,7 @@ index e85eee817d29..2a731532b8d2 100644 /** * Start legacy VPN, controlling native daemons as needed. Creates a * secondary thread to perform connection work, returning quickly. -@@ -2649,6 +2673,7 @@ public class Vpn { +@@ -2664,6 +2688,7 @@ public class Vpn { new UserHandle(mUserId))) { throw new SecurityException("Restricted users cannot establish VPNs"); } @@ -164,7 +164,7 @@ index e85eee817d29..2a731532b8d2 100644 final RouteInfo ipv4DefaultRoute = findIPv4DefaultRoute(egress); final String gateway = ipv4DefaultRoute.getGateway().getHostAddress(); -@@ -4627,6 +4652,7 @@ public class Vpn { +@@ -4621,6 +4646,7 @@ public class Vpn { verifyCallingUidAndPackage(packageName); enforceNotRestrictedUser(); @@ -172,7 +172,7 @@ index e85eee817d29..2a731532b8d2 100644 validateRequiredFeatures(profile); if (profile.isRestrictedToTestNetworks) { -@@ -4669,6 +4695,7 @@ public class Vpn { +@@ -4663,6 +4689,7 @@ public class Vpn { verifyCallingUidAndPackage(packageName); enforceNotRestrictedUser(); @@ -180,7 +180,7 @@ index e85eee817d29..2a731532b8d2 100644 final long token = Binder.clearCallingIdentity(); try { -@@ -4738,6 +4765,7 @@ public class Vpn { +@@ -4732,6 +4759,7 @@ public class Vpn { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); @@ -188,7 +188,7 @@ index e85eee817d29..2a731532b8d2 100644 // Prepare VPN for startup if (!prepare(packageName, null /* newPackage */, VpnManager.TYPE_VPN_PLATFORM)) { -@@ -4860,6 +4888,7 @@ public class Vpn { +@@ -4856,6 +4884,7 @@ public class Vpn { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); diff --git a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch index bcd25ae..96de0b7 100644 --- a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch +++ b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch @@ -1,7 +1,7 @@ -From d83831158f32f782a856e37cc23bd7fcc0f293ca Mon Sep 17 00:00:00 2001 +From 69e129d654ccc2fb9d364d64fe65e7ea7302f85a Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 15 Oct 2022 09:33:56 +0000 -Subject: [PATCH 5/9] Revert "Remove more FDE methods from StorageManager" +Subject: [PATCH 05/10] Revert "Remove more FDE methods from StorageManager" This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676. @@ -12,10 +12,10 @@ Change-Id: Ic394934ec27b1a486c60123130825d44dad73412 2 files changed, 61 insertions(+) diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java -index 80dd48825ba7..cb4769ff4ec3 100644 +index ee387e7c284f..0adc55598d9b 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java -@@ -1660,6 +1660,15 @@ public class StorageManager { +@@ -1669,6 +1669,15 @@ public class StorageManager { return false; } @@ -31,7 +31,7 @@ index 80dd48825ba7..cb4769ff4ec3 100644 /** {@hide} * Is this device encrypted? *

-@@ -1693,6 +1702,54 @@ public class StorageManager { +@@ -1702,6 +1711,54 @@ public class StorageManager { return isFileEncrypted(); } diff --git a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch index f21eb9b..a8ce6bb 100644 --- a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch +++ b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch @@ -1,7 +1,7 @@ -From a4fa97491d1b55e49e29af49eae58f03e42eb642 Mon Sep 17 00:00:00 2001 +From 37122c75c56d08b1c07d95f1d1ef040a7d9c6564 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 20 Dec 2021 15:01:41 -0500 -Subject: [PATCH 6/9] Dynamically resize boot animation to match screen size +Subject: [PATCH 06/10] Dynamically resize boot animation to match screen size Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205 --- diff --git a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch index b1752ab..6740fa2 100644 --- a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch +++ b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch @@ -1,7 +1,7 @@ -From 407e57ccb7dcf4fdd4c260c6e6b5972abc9177e7 Mon Sep 17 00:00:00 2001 +From 831c7dd6fbb57a3ccd722e5387f811dfd0e21349 Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Wed, 2 Aug 2023 20:59:53 +0800 -Subject: [PATCH 7/9] Restore getSimStateForSlotIndex in SubscriptionManager +Subject: [PATCH 07/10] Restore getSimStateForSlotIndex in SubscriptionManager MTK IMS still needs it here @@ -11,10 +11,10 @@ Change-Id: I41bac57c68055f369232359a464642daab94403b 1 file changed, 14 insertions(+) diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java -index 64e43568e4d6..cfb4f12815a2 100644 +index 8e4ec0914563..a65a7e9ec2e6 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java -@@ -2549,6 +2549,20 @@ public class SubscriptionManager { +@@ -2558,6 +2558,20 @@ public class SubscriptionManager { return TelephonyManager.getDefault().isNetworkRoaming(subId); } diff --git a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch index dcee571..c3f32fb 100644 --- a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch +++ b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch @@ -1,7 +1,7 @@ -From 989c6bc643e6e3b6ffd47d15267433b70faa6141 Mon Sep 17 00:00:00 2001 +From 28cd1a43c63151391142a54fe6c3067a0f40f73b Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 12 Aug 2023 20:11:17 +0800 -Subject: [PATCH 8/9] Add runWithCleanCallingIdentity variant with both +Subject: [PATCH 08/10] Add runWithCleanCallingIdentity variant with both executor and return value This complements the fixup to ImsPhoneCallTracker (in fw/o/t) for U diff --git a/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch b/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch index e0935a0..d0bbc7a 100644 --- a/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch +++ b/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch @@ -1,7 +1,7 @@ -From c9d2c616f979b05ef609e5b8e890471b7b246beb Mon Sep 17 00:00:00 2001 +From 8abbc55bf9452f935c59e869f6713da27fbec24f Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Tue, 24 Nov 2015 01:53:47 -0500 -Subject: [PATCH 9/9] fw/b: Use ro.build.version.incremental to signal OTA +Subject: [PATCH 09/10] fw/b: Use ro.build.version.incremental to signal OTA upgrades Squash of: @@ -85,7 +85,7 @@ index 9e6c91f4ec31..7459b0e05e3a 100644 } try { diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java -index 76a994ec63e9..f8d1f8178871 100644 +index 99c2f8a5cc56..d6b55f9d1e8c 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -90,6 +90,7 @@ import android.content.pm.UserInfo; @@ -106,10 +106,10 @@ index 76a994ec63e9..f8d1f8178871 100644 // Suppress double notifications for managed profiles that // were unlocked automatically as part of their parent user being diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java -index f2b62eaf25f8..c721e5474317 100644 +index c583f1767b41..912eaafc5b4a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java -@@ -1615,7 +1615,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -1616,7 +1616,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } PackageManagerService m = new PackageManagerService(injector, factoryTest, @@ -118,7 +118,7 @@ index f2b62eaf25f8..c721e5474317 100644 Build.VERSION.SDK_INT, Build.VERSION.INCREMENTAL); t.traceEnd(); // "create package manager" -@@ -2082,9 +2082,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2083,9 +2083,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService mIsUpgrade = !partitionsFingerprint.equals(ver.fingerprint); if (mIsUpgrade) { @@ -130,7 +130,7 @@ index f2b62eaf25f8..c721e5474317 100644 } mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper, -@@ -2221,8 +2220,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2222,8 +2221,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService // allow... it would be nice to have some better way to handle // this situation. if (mIsUpgrade) { @@ -141,7 +141,7 @@ index f2b62eaf25f8..c721e5474317 100644 + "; regranting permissions for internal storage"); } mPermissionManager.onStorageVolumeMounted( -@@ -2242,7 +2241,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2243,7 +2242,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService // across OTAs and are used to drive profile verification (post OTA) and // profile compilation (without waiting to collect a fresh set of profiles). if (mIsUpgrade) { @@ -150,7 +150,7 @@ index f2b62eaf25f8..c721e5474317 100644 for (int i = 0; i < packageSettings.size(); i++) { final PackageSetting ps = packageSettings.valueAt(i); if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, ps.getVolumeUuid())) { -@@ -2254,7 +2253,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2255,7 +2254,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } } ver.buildFingerprint = Build.FINGERPRINT; @@ -160,10 +160,10 @@ index f2b62eaf25f8..c721e5474317 100644 // Defer the app data fixup until we are done with app data clearing above. diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java -index aaf13ebeff2a..8fc6492ae873 100644 +index 677a5d11cc6b..3c7080996875 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java -@@ -464,7 +464,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile +@@ -465,7 +465,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile sdkVersion = Build.VERSION.SDK_INT; databaseVersion = CURRENT_DATABASE_VERSION; buildFingerprint = Build.FINGERPRINT; @@ -172,7 +172,7 @@ index aaf13ebeff2a..8fc6492ae873 100644 } } -@@ -5692,7 +5692,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile +@@ -5732,7 +5732,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile } private String getExtendedFingerprint(long version) { @@ -182,10 +182,10 @@ index aaf13ebeff2a..8fc6492ae873 100644 private static long uniformRandom(double low, double high) { diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java -index 5b3514c01f9f..265125987be1 100644 +index c6aba2ab9cbe..1aad29efa322 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java -@@ -5175,7 +5175,7 @@ public class ShortcutService extends IShortcutService.Stub { +@@ -5206,7 +5206,7 @@ public class ShortcutService extends IShortcutService.Stub { // Injection point. String injectBuildFingerprint() { @@ -195,10 +195,10 @@ index 5b3514c01f9f..265125987be1 100644 final void wtf(String message) { diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java -index 7e88e13e1788..9d8ace530d26 100644 +index d2929aef8a63..ba0b597bb2ce 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java -@@ -4876,7 +4876,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -4889,7 +4889,7 @@ public class UserManagerService extends IUserManager.Stub { userInfo.creationTime = getCreationTime(); userInfo.partial = true; userInfo.preCreated = preCreate; @@ -207,7 +207,7 @@ index 7e88e13e1788..9d8ace530d26 100644 if (userTypeDetails.hasBadge() && parentId != UserHandle.USER_NULL) { userInfo.profileBadge = getFreeProfileBadgeLU(parentId, userType); } -@@ -6200,7 +6200,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6219,7 +6219,7 @@ public class UserManagerService extends IUserManager.Stub { t.traceBegin("onBeforeStartUser-" + userId); final int userSerial = userInfo.serialNumber; // Migrate only if build fingerprints mismatch @@ -216,7 +216,7 @@ index 7e88e13e1788..9d8ace530d26 100644 userInfo.lastLoggedInFingerprint); t.traceBegin("prepareUserData"); mUserDataPreparer.prepareUserData(userId, userSerial, StorageManager.FLAG_STORAGE_DE); -@@ -6231,7 +6231,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6250,7 +6250,7 @@ public class UserManagerService extends IUserManager.Stub { } final int userSerial = userInfo.serialNumber; // Migrate only if build fingerprints mismatch @@ -225,7 +225,7 @@ index 7e88e13e1788..9d8ace530d26 100644 userInfo.lastLoggedInFingerprint); final TimingsTraceAndSlog t = new TimingsTraceAndSlog(); -@@ -6276,7 +6276,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6295,7 +6295,7 @@ public class UserManagerService extends IUserManager.Stub { if (now > EPOCH_PLUS_30_YEARS) { userData.info.lastLoggedInTime = now; } diff --git a/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch b/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch new file mode 100644 index 0000000..a2bb767 --- /dev/null +++ b/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch @@ -0,0 +1,75 @@ +From f35f1213d1221cde06ee24956649e5ecb4ac5277 Mon Sep 17 00:00:00 2001 +From: Peter Cai +Date: Sat, 9 Dec 2023 18:37:08 -0500 +Subject: [PATCH 10/10] Revert "Convert BubbleDataRepositoryTest to use + mockito-kotlin" + +This reverts commit 625a23ff22f0a9327b9a24341dfa0b8fbaf61a1b. +--- + .../Shell/tests/unittest/Android.bp | 1 - + .../shell/bubbles/BubbleDataRepositoryTest.kt | 17 ++++++++++------- + 2 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/libs/WindowManager/Shell/tests/unittest/Android.bp b/libs/WindowManager/Shell/tests/unittest/Android.bp +index c2f184a03380..ad4d97f6fe40 100644 +--- a/libs/WindowManager/Shell/tests/unittest/Android.bp ++++ b/libs/WindowManager/Shell/tests/unittest/Android.bp +@@ -43,7 +43,6 @@ android_test { + "frameworks-base-testutils", + "kotlinx-coroutines-android", + "kotlinx-coroutines-core", +- "mockito-kotlin2", + "mockito-target-extended-minus-junit4", + "truth-prebuilt", + "testables", +diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataRepositoryTest.kt +index e35995775f76..0e05e01a8da3 100644 +--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataRepositoryTest.kt ++++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataRepositoryTest.kt +@@ -29,11 +29,11 @@ import com.google.common.truth.Truth.assertThat + import org.junit.After + import org.junit.Before + import org.junit.Test +-import org.mockito.kotlin.any +-import org.mockito.kotlin.mock +-import org.mockito.kotlin.never +-import org.mockito.kotlin.spy +-import org.mockito.kotlin.verify ++import org.mockito.Mockito ++import org.mockito.Mockito.mock ++import org.mockito.Mockito.never ++import org.mockito.Mockito.spy ++import org.mockito.Mockito.verify + + class BubbleDataRepositoryTest : ShellTestCase() { + +@@ -124,7 +124,7 @@ class BubbleDataRepositoryTest : ShellTestCase() { + + private val testHandler = Handler(Looper.getMainLooper()) + private val mainExecutor = HandlerExecutor(testHandler) +- private val launcherApps = mock() ++ private val launcherApps = mock(LauncherApps::class.java) + + private val persistedBubbles = SparseArray>() + +@@ -158,7 +158,8 @@ class BubbleDataRepositoryTest : ShellTestCase() { + assertThat(persistedBubbles).isEqualTo(validEntitiesByUser) + + // No invalid users, so no persist to disk happened +- verify(dataRepository, never()).persistToDisk(any()) ++ verify(dataRepository, never()).persistToDisk( ++ any(SparseArray>()::class.java)) + } + + @Test +@@ -198,4 +199,6 @@ class BubbleDataRepositoryTest : ShellTestCase() { + // Verify that persist to disk happened with the new valid entities list. + verify(dataRepository).persistToDisk(validEntitiesByUser) + } ++ ++ fun any(type: Class): T = Mockito.any(type) + } +\ No newline at end of file +-- +2.41.0 + diff --git a/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch b/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch index 021c20b..854ac44 100644 --- a/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch +++ b/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch @@ -1,7 +1,7 @@ -From ca78711f5e5f3d23d11955f1f7368a3b4297ba40 Mon Sep 17 00:00:00 2001 +From 079ec0124a642a3a473697c23da5907380930dd0 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Mon, 11 Oct 2021 20:48:44 -0700 -Subject: [PATCH 1/4] Expose themed icon setting in ThemePicker +Subject: [PATCH 1/3] Expose themed icon setting in ThemePicker Change-Id: I44e9288c3de13a3604b7a03857ec400753317d9a --- @@ -24,10 +24,10 @@ index 4f580e0bd6..d5b14e5bb9 100644 diff --git a/quickstep/AndroidManifest-launcher.xml b/quickstep/AndroidManifest-launcher.xml -index 7d7054f5a5..d2955c4327 100644 +index c6e2d8cb74..1d7405e345 100644 --- a/quickstep/AndroidManifest-launcher.xml +++ b/quickstep/AndroidManifest-launcher.xml -@@ -66,6 +66,9 @@ +@@ -65,6 +65,9 @@ diff --git a/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch b/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch index 7fc75a2..2c628ca 100644 --- a/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch +++ b/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch @@ -1,7 +1,7 @@ -From 2e42cd9a638142a055e3ce55cfe767ff21e44cad Mon Sep 17 00:00:00 2001 +From f3f90de4d2440dcff4fab813b45862a9912bccf4 Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Fri, 1 Nov 2019 23:17:59 +0100 -Subject: [PATCH 2/4] Properly expose GridCustomizationsProvider +Subject: [PATCH 2/3] Properly expose GridCustomizationsProvider Change-Id: I8268a215257ae0e399c56ac8b44cdfdff8cc92a0 --- diff --git a/packages/apps/Launcher3/0004-Disable-QSB-in-BuildConfig.patch b/packages/apps/Launcher3/0003-Disable-QSB-in-BuildConfig.patch similarity index 89% rename from packages/apps/Launcher3/0004-Disable-QSB-in-BuildConfig.patch rename to packages/apps/Launcher3/0003-Disable-QSB-in-BuildConfig.patch index 9340d04..c0e04e7 100644 --- a/packages/apps/Launcher3/0004-Disable-QSB-in-BuildConfig.patch +++ b/packages/apps/Launcher3/0003-Disable-QSB-in-BuildConfig.patch @@ -1,7 +1,7 @@ -From a7449be810f87a28a97c88507f5ba5f9b9ae0ffa Mon Sep 17 00:00:00 2001 +From 6de82b193ca71f4e9c9f578b8168fcfd11d9a95b Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 7 Jul 2023 18:13:32 -0400 -Subject: [PATCH 4/4] Disable QSB in BuildConfig +Subject: [PATCH 3/3] Disable QSB in BuildConfig Change-Id: I3150ef1d9b8c161ed2a6569d1ae75bba0060b36f --- diff --git a/packages/apps/Launcher3/0003-Fix-all-apps-header-color-in-dark-mode.patch b/packages/apps/Launcher3/0003-Fix-all-apps-header-color-in-dark-mode.patch deleted file mode 100644 index 930750d..0000000 --- a/packages/apps/Launcher3/0003-Fix-all-apps-header-color-in-dark-mode.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 486d89b7393a33a3ebb8a1dd678c4f4c666e711e Mon Sep 17 00:00:00 2001 -From: Danny Lin -Date: Wed, 6 Oct 2021 22:45:33 -0700 -Subject: [PATCH 3/4] Fix all apps header color in dark mode - -Change-Id: Ib2ce7f6e3c9b87a4626699cb54673d88392a5f41 ---- - res/values/styles.xml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/res/values/styles.xml b/res/values/styles.xml -index c41f0e86e9..53a7498b3d 100644 ---- a/res/values/styles.xml -+++ b/res/values/styles.xml -@@ -151,6 +151,7 @@ - #19FFFFFF - #FF212121 - ?attr/materialColorSurfaceDim -+ @color/popup_color_tertiary_dark - #80000000 - @color/popup_color_primary_dark - @color/popup_color_secondary_dark --- -2.41.0 - From d05b445c89b96d5a14ce64debd1b383e48403132 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 15 Dec 2023 22:49:57 -0500 Subject: [PATCH 12/19] Fix fingerprint sensor error on Pixel 7 Pro --- ...support-glob-matching-for-properties.patch | 2 +- ...d-support-for-app-signature-spoofing.patch | 2 +- ...PackageUtils-Add-glob-matching-suppo.patch | 2 +- .../base/0004-Global-VPN-feature-1-2.patch | 2 +- ...more-FDE-methods-from-StorageManager.patch | 2 +- ...ze-boot-animation-to-match-screen-si.patch | 2 +- ...ateForSlotIndex-in-SubscriptionManag.patch | 2 +- ...CallingIdentity-variant-with-both-ex.patch | 2 +- ...d.version.incremental-to-signal-OTA-.patch | 2 +- ...ubbleDataRepositoryTest-to-use-mocki.patch | 2 +- ...ce-Do-not-use-HIDL-providers-when-AI.patch | 32 ++++++++++++++++ ...tart-console-service-when-debuggable.patch | 6 +-- ...ide-some-properties-ro.apex.updatabl.patch | 4 +- ...ide-ro.apex.updatable-for-newer-devi.patch | 38 +++++++++++++++++++ 14 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 frameworks/base/0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch create mode 100644 system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch diff --git a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch index 0da3ae4..3147cbb 100644 --- a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch +++ b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch @@ -1,7 +1,7 @@ From 8def4ecfdf6f04417ba886679e386be40fc713ec Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Oct 2021 21:37:22 -0400 -Subject: [PATCH 01/10] PackageParser: support glob matching for properties +Subject: [PATCH 01/11] PackageParser: support glob matching for properties Needed to make phh's vendor overlays work --- diff --git a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch index a753bda..cb66611 100644 --- a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch +++ b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch @@ -1,7 +1,7 @@ From db57e0cf315286e83e3855d8aaf465fe5ea22dcb Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Sat, 16 Oct 2021 05:27:57 -0700 -Subject: [PATCH 02/10] Add support for app signature spoofing +Subject: [PATCH 02/11] Add support for app signature spoofing This is needed by microG GmsCore to pretend to be the official Google Play Services package, because client apps check the package signature diff --git a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch index 02369b5..fdafb6f 100644 --- a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch +++ b/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch @@ -1,7 +1,7 @@ From 3df53ee5075cc7db5065531a157f97960097cfb3 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 2 Sep 2022 21:36:06 -0400 -Subject: [PATCH 03/10] FrameworkParsingPackageUtils: Add glob matching support +Subject: [PATCH 03/11] FrameworkParsingPackageUtils: Add glob matching support for properties This is now required in addition to the one in PackageParser in order diff --git a/frameworks/base/0004-Global-VPN-feature-1-2.patch b/frameworks/base/0004-Global-VPN-feature-1-2.patch index f8b0756..cab3b05 100644 --- a/frameworks/base/0004-Global-VPN-feature-1-2.patch +++ b/frameworks/base/0004-Global-VPN-feature-1-2.patch @@ -1,7 +1,7 @@ From 7b3ac6fb32bc619235aab6d06c2ed356dd684b4d Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:41:43 -0400 -Subject: [PATCH 04/10] Global VPN feature [1/2] +Subject: [PATCH 04/11] Global VPN feature [1/2] * Modify existing VPN user range functions to conditionally have traffic from all users pass through the global VPN. diff --git a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch index 96de0b7..0a0e909 100644 --- a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch +++ b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch @@ -1,7 +1,7 @@ From 69e129d654ccc2fb9d364d64fe65e7ea7302f85a Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 15 Oct 2022 09:33:56 +0000 -Subject: [PATCH 05/10] Revert "Remove more FDE methods from StorageManager" +Subject: [PATCH 05/11] Revert "Remove more FDE methods from StorageManager" This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676. diff --git a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch index a8ce6bb..4fcd28b 100644 --- a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch +++ b/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch @@ -1,7 +1,7 @@ From 37122c75c56d08b1c07d95f1d1ef040a7d9c6564 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 20 Dec 2021 15:01:41 -0500 -Subject: [PATCH 06/10] Dynamically resize boot animation to match screen size +Subject: [PATCH 06/11] Dynamically resize boot animation to match screen size Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205 --- diff --git a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch index 6740fa2..d16a9c8 100644 --- a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch +++ b/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch @@ -1,7 +1,7 @@ From 831c7dd6fbb57a3ccd722e5387f811dfd0e21349 Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Wed, 2 Aug 2023 20:59:53 +0800 -Subject: [PATCH 07/10] Restore getSimStateForSlotIndex in SubscriptionManager +Subject: [PATCH 07/11] Restore getSimStateForSlotIndex in SubscriptionManager MTK IMS still needs it here diff --git a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch index c3f32fb..ffd46e5 100644 --- a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch +++ b/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch @@ -1,7 +1,7 @@ From 28cd1a43c63151391142a54fe6c3067a0f40f73b Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 12 Aug 2023 20:11:17 +0800 -Subject: [PATCH 08/10] Add runWithCleanCallingIdentity variant with both +Subject: [PATCH 08/11] Add runWithCleanCallingIdentity variant with both executor and return value This complements the fixup to ImsPhoneCallTracker (in fw/o/t) for U diff --git a/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch b/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch index d0bbc7a..e018a96 100644 --- a/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch +++ b/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch @@ -1,7 +1,7 @@ From 8abbc55bf9452f935c59e869f6713da27fbec24f Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Tue, 24 Nov 2015 01:53:47 -0500 -Subject: [PATCH 09/10] fw/b: Use ro.build.version.incremental to signal OTA +Subject: [PATCH 09/11] fw/b: Use ro.build.version.incremental to signal OTA upgrades Squash of: diff --git a/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch b/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch index a2bb767..871fc89 100644 --- a/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch +++ b/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch @@ -1,7 +1,7 @@ From f35f1213d1221cde06ee24956649e5ecb4ac5277 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 9 Dec 2023 18:37:08 -0500 -Subject: [PATCH 10/10] Revert "Convert BubbleDataRepositoryTest to use +Subject: [PATCH 10/11] Revert "Convert BubbleDataRepositoryTest to use mockito-kotlin" This reverts commit 625a23ff22f0a9327b9a24341dfa0b8fbaf61a1b. diff --git a/frameworks/base/0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch b/frameworks/base/0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch new file mode 100644 index 0000000..a4b1b7a --- /dev/null +++ b/frameworks/base/0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch @@ -0,0 +1,32 @@ +From 3d3312bd96d2c8a74e4a27b5567a24f92ad8d243 Mon Sep 17 00:00:00 2001 +From: Peter Cai +Date: Fri, 15 Dec 2023 22:48:39 -0500 +Subject: [PATCH 11/11] FingerprintService: Do not use HIDL providers when AIDL + is present + +This fixes duplicated sensor ID when config_biometric_sensors is defined +on AIDL devices. + +Change-Id: I9942e91a95106a7a11ab7ddf145d87562d1b7c0d +--- + .../biometrics/sensors/fingerprint/FingerprintService.java | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +index 5ce0c8b384ef..a4e4a1b347d3 100644 +--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java ++++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +@@ -885,8 +885,9 @@ public class FingerprintService extends SystemService { + filteredInstances = filterAvailableHalInstances(hidlSensors, aidlSensors); + + final List providers = new ArrayList<>(); +- providers.addAll(getHidlProviders(filteredInstances.first)); + providers.addAll(getAidlProviders(filteredInstances.second)); ++ if (providers.isEmpty()) // Only use HIDL providers if AIDL ones are not found ++ providers.addAll(getHidlProviders(filteredInstances.first)); + + return providers; + }); +-- +2.41.0 + diff --git a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch index f543b89..2b08444 100644 --- a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch +++ b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch @@ -1,7 +1,7 @@ -From b370e176ea2fe56423d668a9c7a53000d6154b8a Mon Sep 17 00:00:00 2001 +From 332fec7a7f18271f42c50ad85d955604aaff8777 Mon Sep 17 00:00:00 2001 From: Isaac Chen Date: Wed, 23 Jun 2021 13:07:30 +0800 -Subject: [PATCH 1/2] init: Do not start console service when debuggable +Subject: [PATCH 1/3] init: Do not start console service when debuggable Google added a check for this in R, when it's running it will show a notification about that performance is impacted. @@ -13,7 +13,7 @@ Change-Id: I34cfd6b42d3b9aee4b3e63181480cfb8b1255f29 1 file changed, 3 deletions(-) diff --git a/rootdir/init.rc b/rootdir/init.rc -index 1e6918d00..8b48a9c87 100644 +index 7da264611..8b037bc9a 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -1312,9 +1312,6 @@ on property:ro.debuggable=1 diff --git a/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch b/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch index 85f37f0..820092b 100644 --- a/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch +++ b/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch @@ -1,7 +1,7 @@ -From 1b075ec9186fd7b8b501272370a7ebfe43fe2fb4 Mon Sep 17 00:00:00 2001 +From a644ef7d888b90a768564e0be805fd1975514e1a Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Fri, 21 Apr 2023 13:08:48 -0400 -Subject: [PATCH 2/2] Let system override some properties (ro.apex.updatable, +Subject: [PATCH 2/3] Let system override some properties (ro.apex.updatable, ro.adb.secure, etc.) Change-Id: I3c84fa617f0ab7990abb0d905230a8703cf39bf7 diff --git a/system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch b/system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch new file mode 100644 index 0000000..1ff3a3a --- /dev/null +++ b/system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch @@ -0,0 +1,38 @@ +From 896473ddb7ddc7eed869360ab2e06af6c5f882e1 Mon Sep 17 00:00:00 2001 +From: Peter Cai +Date: Fri, 15 Dec 2023 22:47:32 -0500 +Subject: [PATCH 3/3] init: Don't override ro.apex.updatable for newer devices + +...where apexes may be required for hardware features to work. + +Change-Id: Ieed7de617231c93419f03aa31c9182018df131ec +--- + init/property_service.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/init/property_service.cpp b/init/property_service.cpp +index 0680b8e06..5edf246a1 100644 +--- a/init/property_service.cpp ++++ b/init/property_service.cpp +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -787,7 +788,9 @@ static void LoadProperties(char* data, const char* filter, const char* filename, + } else if (it->second != value) { + LOG(WARNING) << "Overriding previous property '" << key << "':'" << it->second + << "' with new value '" << value << "'"; +- if (strcmp("ro.apex.updatable", key) == 0 || strcmp("ro.control_privapp_permissions", key) == 0 ++ struct utsname uts; ++ if ((strcmp("ro.apex.updatable", key) == 0 && !(uname(&uts) == 0 && atoi(uts.release) >= 5)) ++ || strcmp("ro.control_privapp_permissions", key) == 0 + || strstr(key, "adb") || strstr(key, "secure")) { + LOG(WARNING) << "... Ignored"; + } else { +-- +2.41.0 + From c5a6c7eb2aa39a812c7563b93aaac559562be2f9 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Mar 2024 19:41:47 -0400 Subject: [PATCH 13/19] Refresh patches for AOSP 14 r29 --- ...m-to-fake-vendor-props-on-a-per-proc.patch | 16 +- ...orce-load-audio-policy-for-system-si.patch | 8 +- ...2DP-audio-ports-from-the-primary-HAL.patch | 10 +- ...gh-pitched-voice-on-Qualcomm-devices.patch | 6 +- ...and-Q-behavior-respectively-for-tele.patch | 30 ++-- .../0005-Fix-BT-in-call-on-CAF-devices.patch | 10 +- ...support-glob-matching-for-properties.patch | 8 +- ...d-support-for-app-signature-spoofing.patch | 163 ------------------ ...ackageUtils-Add-glob-matching-suppo.patch} | 8 +- ...atch => 0003-Global-VPN-feature-1-2.patch} | 42 ++--- ...e-boot-animation-to-match-screen-si.patch} | 10 +- ...teForSlotIndex-in-SubscriptionManag.patch} | 10 +- ...more-FDE-methods-from-StorageManager.patch | 110 ------------ ...allingIdentity-variant-with-both-ex.patch} | 19 +- ....version.incremental-to-signal-OTA-.patch} | 50 +++--- ...bbleDataRepositoryTest-to-use-mocki.patch} | 12 +- ...e-Do-not-use-HIDL-providers-when-AI.patch} | 10 +- ...spoofing-for-microG-Companion-Servic.patch | 130 ++++++++++++++ ...ic-void-TelephonyMetrics.writeRilSen.patch | 6 +- ...g-too-long-to-fit-into-a-91-chars-p.patch} | 10 +- ...ue-to-setPreferredNetworkType-for-RI.patch | 53 ------ ...ert-Block-Binder-thread-until-incom.patch} | 10 +- ...oller-Do-not-override-default-calli.patch} | 12 +- ...e-themed-icon-setting-in-ThemePicker.patch | 4 +- ...ly-expose-GridCustomizationsProvider.patch | 8 +- .../0003-Disable-QSB-in-BuildConfig.patch | 8 +- .../0001-Global-VPN-feature-2-2.patch | 20 +-- ...0001-Add-wallpaper-privapp-whitelist.patch | 17 +- ...2-Add-wallpaper-default-permissions.patch} | 21 ++- ...-Override-legacy-WallpaperPicker-app.patch | 26 --- ...we-read-and-write-launcher-settings.patch} | 10 +- ...sion-for-launcher-preview-rendering.patch} | 8 +- ...-hci-Ignore-unexpected-status-events.patch | 8 +- ..._interface-Optionally-use-sysbta-HAL.patch | 54 +++--- ...ability-to-write-to-index-0-of-bpf-m.patch | 34 ---- ...tart-console-service-when-debuggable.patch | 10 +- ...ide-some-properties-ro.apex.updatabl.patch | 32 ---- ...it-Override-select-system-properties.patch | 87 ++++++++++ ...ide-ro.apex.updatable-for-newer-devi.patch | 38 ---- 39 files changed, 440 insertions(+), 688 deletions(-) delete mode 100644 frameworks/base/0002-Add-support-for-app-signature-spoofing.patch rename frameworks/base/{0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch => 0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch} (90%) rename frameworks/base/{0004-Global-VPN-feature-1-2.patch => 0003-Global-VPN-feature-1-2.patch} (89%) rename frameworks/base/{0006-Dynamically-resize-boot-animation-to-match-screen-si.patch => 0004-Dynamically-resize-boot-animation-to-match-screen-si.patch} (87%) rename frameworks/base/{0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch => 0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch} (83%) delete mode 100644 frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch rename frameworks/base/{0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch => 0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch} (84%) rename frameworks/base/{0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch => 0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch} (88%) rename frameworks/base/{0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch => 0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch} (92%) rename frameworks/base/{0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch => 0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch} (85%) create mode 100644 frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch rename frameworks/opt/telephony/{0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch => 0002-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch} (83%) delete mode 100644 frameworks/opt/telephony/0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch rename frameworks/opt/telephony/{0004-Conditionally-revert-Block-Binder-thread-until-incom.patch => 0003-Conditionally-revert-Block-Binder-thread-until-incom.patch} (91%) rename frameworks/opt/telephony/{0005-SubscriptionController-Do-not-override-default-calli.patch => 0004-SubscriptionController-Do-not-override-default-calli.patch} (90%) rename packages/apps/ThemePicker/{0003-Add-wallpaper-default-permissions.patch => 0002-Add-wallpaper-default-permissions.patch} (87%) delete mode 100644 packages/apps/ThemePicker/0002-Override-legacy-WallpaperPicker-app.patch rename packages/apps/ThemePicker/{0004-Specify-we-read-and-write-launcher-settings.patch => 0003-Specify-we-read-and-write-launcher-settings.patch} (77%) rename packages/apps/ThemePicker/{0005-Add-permission-for-launcher-preview-rendering.patch => 0004-Add-permission-for-launcher-preview-rendering.patch} (90%) delete mode 100644 system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch delete mode 100644 system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch create mode 100644 system/core/0002-init-Override-select-system-properties.patch delete mode 100644 system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch diff --git a/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch b/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch index 3b2f16f..f24e88b 100644 --- a/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch +++ b/bionic/0001-Add-new-mechanism-to-fake-vendor-props-on-a-per-proc.patch @@ -1,4 +1,4 @@ -From ee3be511ddfa2474c7c5890cea4725e908996b9f Mon Sep 17 00:00:00 2001 +From 13537c3a17b60050d431d7d5b9dbfc591ee41762 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Sat, 19 Feb 2022 08:20:25 -0500 Subject: [PATCH] Add new mechanism to fake vendor props on a per-process basis @@ -17,10 +17,10 @@ Squashed: Rework property overriding 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/libc/system_properties/system_properties.cpp b/libc/system_properties/system_properties.cpp -index 1cb15c3df..40ff48bad 100644 +index 9dd5e35ce..4524f8410 100644 --- a/libc/system_properties/system_properties.cpp +++ b/libc/system_properties/system_properties.cpp -@@ -35,6 +35,8 @@ +@@ -36,6 +36,8 @@ #include #include #include @@ -29,9 +29,9 @@ index 1cb15c3df..40ff48bad 100644 #include -@@ -50,6 +52,79 @@ - #define SERIAL_DIRTY(serial) ((serial)&1) +@@ -53,6 +55,79 @@ #define SERIAL_VALUE_LEN(serial) ((serial) >> 24) + #define APPCOMPAT_PREFIX "ro.appcompat_override." +static char comm[128]; +static bool self_ok = false; @@ -109,7 +109,7 @@ index 1cb15c3df..40ff48bad 100644 static bool is_dir(const char* pathname) { struct stat info; if (stat(pathname, &info) == -1) { -@@ -123,17 +198,19 @@ uint32_t SystemProperties::AreaSerial() { +@@ -156,17 +231,19 @@ uint32_t SystemProperties::AreaSerial() { } const prop_info* SystemProperties::Find(const char* name) { @@ -130,7 +130,7 @@ index 1cb15c3df..40ff48bad 100644 + return pa->find(newName); } - static bool is_read_only(const char* name) { + static bool is_appcompat_override(const char* name) { -- -2.41.0 +2.43.1 diff --git a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch index 25c41ad..47702a3 100644 --- a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch +++ b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch @@ -1,4 +1,4 @@ -From f8b9cb1d3cdf0274414bb7d100844d2707999558 Mon Sep 17 00:00:00 2001 +From ea475bf0af44eaaa124ce6113f9aa05d6d6daa1a Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:42:39 -0400 Subject: [PATCH 1/5] APM: Optionally force-load audio policy for system-side @@ -14,7 +14,7 @@ Change-Id: I279fff541a531f922f3fa55b8f14d00237db59ff 1 file changed, 25 insertions(+) diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp -index 3d5c1d2e42..881c188e4c 100644 +index 6f19a7a145..08836377b7 100644 --- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp @@ -25,6 +25,7 @@ @@ -25,7 +25,7 @@ index 3d5c1d2e42..881c188e4c 100644 #include #include #include -@@ -885,6 +886,30 @@ status_t PolicySerializer::deserialize(const char *configFile, AudioPolicyConfig +@@ -895,6 +896,30 @@ status_t PolicySerializer::deserialize(const char *configFile, AudioPolicyConfig if (status != NO_ERROR) { return status; } @@ -57,5 +57,5 @@ index 3d5c1d2e42..881c188e4c 100644 // Global Configuration -- -2.41.0 +2.43.1 diff --git a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch index 3da3764..b3c2e70 100644 --- a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch +++ b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch @@ -1,4 +1,4 @@ -From d60a1b5fc58a7cc84b48c554cb2cffaeff14d86e Mon Sep 17 00:00:00 2001 +From bb39db1a329a76edb2f936fbec305dc561638177 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 25 Aug 2022 13:30:29 -0400 Subject: [PATCH 2/5] APM: Remove A2DP audio ports from the primary HAL @@ -16,7 +16,7 @@ Change-Id: I3305594a17285da113167b419543543f0ef71122 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp -index 881c188e4c..8519cfdc04 100644 +index 08836377b7..0f7c903909 100644 --- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp @@ -26,6 +26,7 @@ @@ -40,7 +40,7 @@ index 881c188e4c..8519cfdc04 100644 } } if (!xmlStrcmp(cur->name, reinterpret_cast(Trait::tag))) { -@@ -679,6 +677,7 @@ std::variant PolicySerializer::deserialize PolicySerializer::deserialize PolicySerializer::deserialize PolicySerializer::deserialize Date: Mon, 24 Oct 2022 09:38:34 +0100 Subject: [PATCH 3/5] voip: Fix high pitched voice on Qualcomm devices @@ -9,7 +9,7 @@ Change-Id: I6d314912169776b76d07d8c0301ec5249c1870a2 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp -index 8519cfdc04..d23d55677d 100644 +index 0f7c903909..c4474cf1c2 100644 --- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp @@ -252,6 +252,7 @@ private: @@ -52,5 +52,5 @@ index 8519cfdc04..d23d55677d 100644 ALOGE("%s: No %s found", __func__, Attributes::name); return BAD_VALUE; -- -2.41.0 +2.43.1 diff --git a/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch index ad766d2..e808505 100644 --- a/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch +++ b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch @@ -1,4 +1,4 @@ -From 1a9a9faca4d5c28747a3b7d9843b67c641ed91c9 Mon Sep 17 00:00:00 2001 +From ecc5b31e7fbc1875deee1befd4d1b29e98db8836 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 18 Aug 2022 15:44:46 -0400 Subject: [PATCH 4/5] APM: Restore S, R and Q behavior respectively for @@ -36,12 +36,12 @@ Change-Id: I56d36d2aef4319935cb88a3e4771b23c6d5b2145 2 files changed, 147 insertions(+), 62 deletions(-) diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp -index f093e685ba..9a90009f9e 100644 +index 135548fb9c..fc99bdbd78 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp -@@ -689,6 +689,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal( - disconnectTelephonyAudioSource(mCallRxSourceClient); - disconnectTelephonyAudioSource(mCallTxSourceClient); +@@ -692,6 +692,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal( + ALOGV("%s device rxDevice %s txDevice %s", __func__, + rxDevices.itemAt(0)->toString().c_str(), txSourceDevice->toString().c_str()); + // release existing RX patch if any + if (mCallRxPatch != 0) { @@ -57,7 +57,7 @@ index f093e685ba..9a90009f9e 100644 auto telephonyRxModule = mHwModules.getModuleForDeviceType(AUDIO_DEVICE_IN_TELEPHONY_RX, AUDIO_FORMAT_DEFAULT); auto telephonyTxModule = -@@ -711,9 +722,20 @@ status_t AudioPolicyManager::updateCallRoutingInternal( +@@ -714,9 +725,20 @@ status_t AudioPolicyManager::updateCallRoutingInternal( ALOGE("%s() no telephony Tx and/or RX device", __func__); return INVALID_OPERATION; } @@ -81,9 +81,9 @@ index f093e685ba..9a90009f9e 100644 } else { // If the RX device is on the primary HW module, then use legacy routing method for // voice calls via setOutputDevice() on primary output. -@@ -730,7 +752,14 @@ status_t AudioPolicyManager::updateCallRoutingInternal( - if (!createRxPatch) { - muteWaitMs = setOutputDevices(mPrimaryOutput, rxDevices, true, delayMs); +@@ -737,7 +759,14 @@ status_t AudioPolicyManager::updateCallRoutingInternal( + } + muteWaitMs = setOutputDevices(__func__, mPrimaryOutput, rxDevices, true, delayMs); } else { // create RX path audio patch - connectTelephonyRxAudioSource(); + if (property_get_int32("ro.vndk.version", 31) >= 31) { @@ -97,7 +97,7 @@ index f093e685ba..9a90009f9e 100644 // If the TX device is on the primary HW module but RX device is // on other HW module, SinkMetaData of telephony input should handle it // assuming the device uses audio HAL V5.0 and above -@@ -745,7 +774,12 @@ status_t AudioPolicyManager::updateCallRoutingInternal( +@@ -752,7 +781,12 @@ status_t AudioPolicyManager::updateCallRoutingInternal( closeActiveClients(activeDesc); } } @@ -111,7 +111,7 @@ index f093e685ba..9a90009f9e 100644 } if (waitMs != nullptr) { *waitMs = muteWaitMs; -@@ -753,6 +787,36 @@ status_t AudioPolicyManager::updateCallRoutingInternal( +@@ -760,6 +794,36 @@ status_t AudioPolicyManager::updateCallRoutingInternal( return NO_ERROR; } @@ -148,7 +148,7 @@ index f093e685ba..9a90009f9e 100644 bool AudioPolicyManager::isDeviceOfModule( const sp& devDesc, const char *moduleId) const { sp module = mHwModules.getModuleFromName(moduleId); -@@ -4958,83 +5022,101 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch * +@@ -5087,83 +5151,101 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch * // in config XML to reach the sink so that is can be declared as available. audio_io_handle_t output = AUDIO_IO_HANDLE_NONE; sp outputDesc; @@ -308,10 +308,10 @@ index f093e685ba..9a90009f9e 100644 AUDIO_STREAM_PATCH; patchBuilder.addSource(srcMixPortConfig); diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h -index 88bafefdb1..188b5732b3 100644 +index a1c8f6202c..ee1b595e30 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.h +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h -@@ -953,6 +953,9 @@ protected: +@@ -964,6 +964,9 @@ protected: SoundTriggerSessionCollection mSoundTriggerSessions; @@ -322,5 +322,5 @@ index 88bafefdb1..188b5732b3 100644 SourceClientCollection mAudioSources; -- -2.41.0 +2.43.1 diff --git a/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch index 04a2722..0c614b7 100644 --- a/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch +++ b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch @@ -1,4 +1,4 @@ -From 97421e35dd716c9b07ec44ec05265944efc96294 Mon Sep 17 00:00:00 2001 +From 91ae0a3a9df1e37856cf0065bb24b7c27bb40ba4 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 5 Aug 2019 18:09:50 +0200 Subject: [PATCH 5/5] Fix BT in-call on CAF devices @@ -16,10 +16,10 @@ Change-Id: Ifea0f88276ec9a0811f3cb1973c4b06f2c82077b 1 file changed, 93 insertions(+) diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp -index d23d55677d..4f896111cb 100644 +index c4474cf1c2..c1df8f278b 100644 --- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp -@@ -672,6 +672,98 @@ std::variant PolicySerializer::deserialize PolicySerializer::deserialize std::variant PolicySerializer::deserialize( const xmlNode *cur, ModuleTraits::PtrSerializingCtx ctx) -@@ -739,6 +831,7 @@ std::variant PolicySerializer::deserialize PolicySerializer::deserializexmlChildrenNode; children != NULL; -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch index 3147cbb..971948f 100644 --- a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch +++ b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch @@ -1,7 +1,7 @@ -From 8def4ecfdf6f04417ba886679e386be40fc713ec Mon Sep 17 00:00:00 2001 +From ceeeecf00329e2b0c50aa71c7c4da5aec6a0080b Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Oct 2021 21:37:22 -0400 -Subject: [PATCH 01/11] PackageParser: support glob matching for properties +Subject: [PATCH 01/10] PackageParser: support glob matching for properties Needed to make phh's vendor overlays work --- @@ -9,7 +9,7 @@ Needed to make phh's vendor overlays work 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java -index 048289f56a0c..0d88d7ab97a4 100644 +index 4b579e7db9f8..8176cf8e8567 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -2545,8 +2545,16 @@ public class PackageParser { @@ -32,5 +32,5 @@ index 048289f56a0c..0d88d7ab97a4 100644 } return true; -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch b/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch deleted file mode 100644 index cb66611..0000000 --- a/frameworks/base/0002-Add-support-for-app-signature-spoofing.patch +++ /dev/null @@ -1,163 +0,0 @@ -From db57e0cf315286e83e3855d8aaf465fe5ea22dcb Mon Sep 17 00:00:00 2001 -From: Danny Lin -Date: Sat, 16 Oct 2021 05:27:57 -0700 -Subject: [PATCH 02/11] Add support for app signature spoofing - -This is needed by microG GmsCore to pretend to be the official Google -Play Services package, because client apps check the package signature -to make sure it matches Google's official certificate. - -This was forward-ported from the Android 10 patch by gudenau: -https://github.com/microg/android_packages_apps_GmsCore/pull/957 - -Changes made for Android 11: - - Updated PackageInfo calls - - Added new permission to public API surface, needed for - PermissionController which is now an updatable APEX on 11 - - Added a dummy permission group to allow users to manage the - permission through the PermissionController UI - (by Vachounet ) - - Updated location provider comment for conciseness - -Changes made for Android 12: - - Moved mayFakeSignature into lock-free Computer subclass - - Always get permissions for packages that request signature spoofing - (otherwise permissions are usually ommitted and thus the permission - check doesn't work properly) - - Optimize mayFakeSignature check order to improve performance - -Changes made for Android 13: - - Computer subclass is now an independent class. - -Change-Id: Ied7d6ce0b83a2d2345c3abba0429998d86494a88 ---- - core/api/current.txt | 2 ++ - core/res/AndroidManifest.xml | 15 ++++++++++ - core/res/res/values/strings.xml | 12 ++++++++ - .../com/android/server/pm/ComputerEngine.java | 30 +++++++++++++++++-- - 4 files changed, 56 insertions(+), 3 deletions(-) - -diff --git a/core/api/current.txt b/core/api/current.txt -index 288ab479c0fb..2124d89c6e6f 100644 ---- a/core/api/current.txt -+++ b/core/api/current.txt -@@ -95,6 +95,7 @@ package android { - field public static final String EXECUTE_APP_ACTION = "android.permission.EXECUTE_APP_ACTION"; - field public static final String EXPAND_STATUS_BAR = "android.permission.EXPAND_STATUS_BAR"; - field public static final String FACTORY_TEST = "android.permission.FACTORY_TEST"; -+ field public static final String FAKE_PACKAGE_SIGNATURE = "android.permission.FAKE_PACKAGE_SIGNATURE"; - field public static final String FOREGROUND_SERVICE = "android.permission.FOREGROUND_SERVICE"; - field public static final String FOREGROUND_SERVICE_CAMERA = "android.permission.FOREGROUND_SERVICE_CAMERA"; - field public static final String FOREGROUND_SERVICE_CONNECTED_DEVICE = "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"; -@@ -326,6 +327,7 @@ package android { - field public static final String CALL_LOG = "android.permission-group.CALL_LOG"; - field public static final String CAMERA = "android.permission-group.CAMERA"; - field public static final String CONTACTS = "android.permission-group.CONTACTS"; -+ field public static final String FAKE_PACKAGE = "android.permission-group.FAKE_PACKAGE"; - field public static final String LOCATION = "android.permission-group.LOCATION"; - field public static final String MICROPHONE = "android.permission-group.MICROPHONE"; - field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES"; -diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml -index 8c9a3ff5149f..4a55643dc503 100644 ---- a/core/res/AndroidManifest.xml -+++ b/core/res/AndroidManifest.xml -@@ -4250,6 +4250,21 @@ - android:description="@string/permdesc_getPackageSize" - android:protectionLevel="normal" /> - -+ -+ -+ -+ -+ -+ - -diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml -index 9c018c30f9e3..966fec172070 100644 ---- a/core/res/res/values/strings.xml -+++ b/core/res/res/values/strings.xml -@@ -991,6 +991,18 @@ - - - -+ -+ Spoof package signature -+ -+ Allows the app to pretend to be a different app. Malicious applications might be able to use this to access private application data. Legitimate uses include an emulator pretending to be what it emulates. Grant this permission with caution only! -+ -+ Spoof package signature -+ -+ allow to spoof package signature -+ -+ Allow -+ <b>%1$s</b> to spoof package signature? -+ - - disable or modify status bar - -diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java -index 78f1fa60b69f..fb2f7da97cda 100644 ---- a/services/core/java/com/android/server/pm/ComputerEngine.java -+++ b/services/core/java/com/android/server/pm/ComputerEngine.java -@@ -1450,6 +1450,29 @@ public class ComputerEngine implements Computer { - return result; - } - -+ private boolean requestsFakeSignature(AndroidPackage p) { -+ return p.getMetaData() != null && -+ p.getMetaData().getString("fake-signature") != null; -+ } -+ -+ private PackageInfo mayFakeSignature(AndroidPackage p, PackageInfo pi, -+ Set permissions) { -+ try { -+ if (p.getMetaData() != null && -+ p.getTargetSdkVersion() > Build.VERSION_CODES.LOLLIPOP_MR1) { -+ String sig = p.getMetaData().getString("fake-signature"); -+ if (sig != null && -+ permissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE")) { -+ pi.signatures = new Signature[] {new Signature(sig)}; -+ } -+ } -+ } catch (Throwable t) { -+ // We should never die because of any failures, this is system code! -+ Log.w("PackageManagerService.FAKE_PACKAGE_SIGNATURE", t); -+ } -+ return pi; -+ } -+ - public final PackageInfo generatePackageInfo(PackageStateInternal ps, - @PackageManager.PackageInfoFlagsBits long flags, int userId) { - if (!mUserManager.exists(userId)) return null; -@@ -1483,13 +1506,14 @@ public class ComputerEngine implements Computer { - || ArrayUtils.isEmpty(p.getPermissions())) ? Collections.emptySet() - : mPermissionManager.getInstalledPermissions(ps.getPackageName()); - // Compute granted permissions only if package has requested permissions -- final Set grantedPermissions = ((flags & PackageManager.GET_PERMISSIONS) == 0 -+ final Set grantedPermissions = (((flags & PackageManager.GET_PERMISSIONS) == 0 -+ && !requestsFakeSignature(p)) - || ArrayUtils.isEmpty(p.getRequestedPermissions())) ? Collections.emptySet() - : mPermissionManager.getGrantedPermissions(ps.getPackageName(), userId); - -- PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags, -+ PackageInfo packageInfo = mayFakeSignature(p, PackageInfoUtils.generate(p, gids, flags, - state.getFirstInstallTimeMillis(), ps.getLastUpdateTime(), installedPermissions, -- grantedPermissions, state, userId, ps); -+ grantedPermissions, state, userId, ps), grantedPermissions); - - if (packageInfo == null) { - return null; --- -2.41.0 - diff --git a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch b/frameworks/base/0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch similarity index 90% rename from frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch rename to frameworks/base/0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch index fdafb6f..1d8f58b 100644 --- a/frameworks/base/0003-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch +++ b/frameworks/base/0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch @@ -1,7 +1,7 @@ -From 3df53ee5075cc7db5065531a157f97960097cfb3 Mon Sep 17 00:00:00 2001 +From a16e57cffc48223fb6e756b03ebbd16d6d7f1276 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 2 Sep 2022 21:36:06 -0400 -Subject: [PATCH 03/11] FrameworkParsingPackageUtils: Add glob matching support +Subject: [PATCH 02/10] FrameworkParsingPackageUtils: Add glob matching support for properties This is now required in addition to the one in PackageParser in order @@ -13,7 +13,7 @@ Change-Id: Ie8679c0ffe03cead4a68bd2d0eb429f05af2d417 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java b/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java -index 3e1c5bb3d7ec..f15978c57574 100644 +index 153dd9a93490..900151440ca9 100644 --- a/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java +++ b/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java @@ -215,8 +215,16 @@ public class FrameworkParsingPackageUtils { @@ -36,5 +36,5 @@ index 3e1c5bb3d7ec..f15978c57574 100644 } return true; -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0004-Global-VPN-feature-1-2.patch b/frameworks/base/0003-Global-VPN-feature-1-2.patch similarity index 89% rename from frameworks/base/0004-Global-VPN-feature-1-2.patch rename to frameworks/base/0003-Global-VPN-feature-1-2.patch index cab3b05..473451d 100644 --- a/frameworks/base/0004-Global-VPN-feature-1-2.patch +++ b/frameworks/base/0003-Global-VPN-feature-1-2.patch @@ -1,7 +1,7 @@ -From 7b3ac6fb32bc619235aab6d06c2ed356dd684b4d Mon Sep 17 00:00:00 2001 +From 2d871d0c51d43d0c3e4ce15a3f811fd5a9c316ad Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:41:43 -0400 -Subject: [PATCH 04/11] Global VPN feature [1/2] +Subject: [PATCH 03/10] Global VPN feature [1/2] * Modify existing VPN user range functions to conditionally have traffic from all users pass through the global VPN. @@ -28,10 +28,10 @@ Signed-off-by: Mohammad Hasan Keramat J 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java -index a55183c0f7c5..faa16d0c8aad 100644 +index 2cc56d838b79..af98f07e9669 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java -@@ -16838,6 +16838,12 @@ public final class Settings { +@@ -17352,6 +17352,12 @@ public final class Settings { CLOCKWORK_HOME_READY, }; @@ -45,7 +45,7 @@ index a55183c0f7c5..faa16d0c8aad 100644 * Keys we no longer back up under the current schema, but want to continue to * process when restoring historical backup datasets. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java -index 03656f000c07..fddf8167beb5 100644 +index 4a4d4e1f27b2..a5e06164d0b8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java @@ -39,6 +39,7 @@ import android.os.Handler; @@ -72,10 +72,10 @@ index 03656f000c07..fddf8167beb5 100644 mVpnUserId = newUserInfo.restrictedProfileParentId; } else { diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java -index e3262cfbd30b..614628f42e39 100644 +index c5170585a1b3..53d1f6c2c52f 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java -@@ -915,6 +915,15 @@ public class Vpn { +@@ -776,6 +776,15 @@ public class Vpn { return mAlwaysOn; } @@ -91,7 +91,7 @@ index e3262cfbd30b..614628f42e39 100644 /** * Checks if a VPN app supports always-on mode. * -@@ -1864,6 +1873,7 @@ public class Vpn { +@@ -1718,6 +1727,7 @@ public class Vpn { try { // Restricted users are not allowed to create VPNs, they are tied to Owner enforceNotRestrictedUser(); @@ -99,7 +99,7 @@ index e3262cfbd30b..614628f42e39 100644 final PackageManager packageManager = mUserIdContext.getPackageManager(); if (packageManager == null) { -@@ -2016,7 +2026,7 @@ public class Vpn { +@@ -1868,7 +1878,7 @@ public class Vpn { addUserToRanges(ranges, userId, allowedApplications, disallowedApplications); // If the user can have restricted profiles, assign all its restricted profiles too @@ -108,7 +108,7 @@ index e3262cfbd30b..614628f42e39 100644 final long token = Binder.clearCallingIdentity(); List users; try { -@@ -2025,7 +2035,8 @@ public class Vpn { +@@ -1877,7 +1887,8 @@ public class Vpn { Binder.restoreCallingIdentity(token); } for (UserInfo user : users) { @@ -118,7 +118,7 @@ index e3262cfbd30b..614628f42e39 100644 addUserToRanges(ranges, user.id, allowedApplications, disallowedApplications); } } -@@ -2106,7 +2117,8 @@ public class Vpn { +@@ -1958,7 +1969,8 @@ public class Vpn { public void onUserAdded(int userId) { // If the user is restricted tie them to the parent user's VPN UserInfo user = mUserManager.getUserInfo(userId); @@ -128,7 +128,7 @@ index e3262cfbd30b..614628f42e39 100644 synchronized(Vpn.this) { final Set> existingRanges = mNetworkCapabilities.getUids(); if (existingRanges != null) { -@@ -2135,7 +2147,8 @@ public class Vpn { +@@ -1987,7 +1999,8 @@ public class Vpn { public void onUserRemoved(int userId) { // clean up if restricted UserInfo user = mUserManager.getUserInfo(userId); @@ -138,7 +138,7 @@ index e3262cfbd30b..614628f42e39 100644 synchronized(Vpn.this) { final Set> existingRanges = mNetworkCapabilities.getUids(); if (existingRanges != null) { -@@ -2580,6 +2593,17 @@ public class Vpn { +@@ -2412,6 +2425,17 @@ public class Vpn { } } @@ -156,15 +156,15 @@ index e3262cfbd30b..614628f42e39 100644 /** * Start legacy VPN, controlling native daemons as needed. Creates a * secondary thread to perform connection work, returning quickly. -@@ -2664,6 +2688,7 @@ public class Vpn { +@@ -2495,6 +2519,7 @@ public class Vpn { new UserHandle(mUserId))) { throw new SecurityException("Restricted users cannot establish VPNs"); } + enforceNotGlobalVpn(); - final RouteInfo ipv4DefaultRoute = findIPv4DefaultRoute(egress); - final String gateway = ipv4DefaultRoute.getGateway().getHostAddress(); -@@ -4621,6 +4646,7 @@ public class Vpn { + // Load certificates. + String privateKey = ""; +@@ -4029,6 +4054,7 @@ public class Vpn { verifyCallingUidAndPackage(packageName); enforceNotRestrictedUser(); @@ -172,7 +172,7 @@ index e3262cfbd30b..614628f42e39 100644 validateRequiredFeatures(profile); if (profile.isRestrictedToTestNetworks) { -@@ -4663,6 +4689,7 @@ public class Vpn { +@@ -4071,6 +4097,7 @@ public class Vpn { verifyCallingUidAndPackage(packageName); enforceNotRestrictedUser(); @@ -180,7 +180,7 @@ index e3262cfbd30b..614628f42e39 100644 final long token = Binder.clearCallingIdentity(); try { -@@ -4732,6 +4759,7 @@ public class Vpn { +@@ -4140,6 +4167,7 @@ public class Vpn { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); @@ -188,7 +188,7 @@ index e3262cfbd30b..614628f42e39 100644 // Prepare VPN for startup if (!prepare(packageName, null /* newPackage */, VpnManager.TYPE_VPN_PLATFORM)) { -@@ -4856,6 +4884,7 @@ public class Vpn { +@@ -4262,6 +4290,7 @@ public class Vpn { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); @@ -197,5 +197,5 @@ index e3262cfbd30b..614628f42e39 100644 // To stop the VPN profile, the caller must be the current prepared package and must be // running an Ikev2VpnProfile. -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch b/frameworks/base/0004-Dynamically-resize-boot-animation-to-match-screen-si.patch similarity index 87% rename from frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch rename to frameworks/base/0004-Dynamically-resize-boot-animation-to-match-screen-si.patch index 4fcd28b..5a3dc12 100644 --- a/frameworks/base/0006-Dynamically-resize-boot-animation-to-match-screen-si.patch +++ b/frameworks/base/0004-Dynamically-resize-boot-animation-to-match-screen-si.patch @@ -1,7 +1,7 @@ -From 37122c75c56d08b1c07d95f1d1ef040a7d9c6564 Mon Sep 17 00:00:00 2001 +From 46413dd5f5d3ea13e25327b95f087b063006887d Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 20 Dec 2021 15:01:41 -0500 -Subject: [PATCH 06/11] Dynamically resize boot animation to match screen size +Subject: [PATCH 04/10] Dynamically resize boot animation to match screen size Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205 --- @@ -9,10 +9,10 @@ Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205 1 file changed, 22 insertions(+) diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp -index a8b6c0b70804..9c50e954cee5 100644 +index 820d2b0d607e..56dfa8af31c4 100644 --- a/cmds/bootanimation/BootAnimation.cpp +++ b/cmds/bootanimation/BootAnimation.cpp -@@ -605,6 +605,28 @@ status_t BootAnimation::readyToRun() { +@@ -618,6 +618,28 @@ status_t BootAnimation::readyToRun() { mFlingerSurface = s; mTargetInset = -1; @@ -42,5 +42,5 @@ index a8b6c0b70804..9c50e954cee5 100644 // ro.bootanim.set_orientation_. Four values are supported: ORIENTATION_0, // ORIENTATION_90, ORIENTATION_180 and ORIENTATION_270. -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch b/frameworks/base/0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch similarity index 83% rename from frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch rename to frameworks/base/0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch index d16a9c8..8f9cbad 100644 --- a/frameworks/base/0007-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch +++ b/frameworks/base/0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch @@ -1,7 +1,7 @@ -From 831c7dd6fbb57a3ccd722e5387f811dfd0e21349 Mon Sep 17 00:00:00 2001 +From 4b49ad5b8f7401ec6ae02a4db674721ce10ac4ea Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Wed, 2 Aug 2023 20:59:53 +0800 -Subject: [PATCH 07/11] Restore getSimStateForSlotIndex in SubscriptionManager +Subject: [PATCH 05/10] Restore getSimStateForSlotIndex in SubscriptionManager MTK IMS still needs it here @@ -11,10 +11,10 @@ Change-Id: I41bac57c68055f369232359a464642daab94403b 1 file changed, 14 insertions(+) diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java -index 8e4ec0914563..a65a7e9ec2e6 100644 +index 326b6f5af613..b994888362b0 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java -@@ -2558,6 +2558,20 @@ public class SubscriptionManager { +@@ -2693,6 +2693,20 @@ public class SubscriptionManager { return TelephonyManager.getDefault().isNetworkRoaming(subId); } @@ -36,5 +36,5 @@ index 8e4ec0914563..a65a7e9ec2e6 100644 * Set a field in the subscription database. Note not all fields are supported. * -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch b/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch deleted file mode 100644 index 0a0e909..0000000 --- a/frameworks/base/0005-Revert-Remove-more-FDE-methods-from-StorageManager.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 69e129d654ccc2fb9d364d64fe65e7ea7302f85a Mon Sep 17 00:00:00 2001 -From: Andy CrossGate Yan -Date: Sat, 15 Oct 2022 09:33:56 +0000 -Subject: [PATCH 05/11] Revert "Remove more FDE methods from StorageManager" - -This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676. - -Change-Id: Ic394934ec27b1a486c60123130825d44dad73412 ---- - .../android/os/storage/StorageManager.java | 57 +++++++++++++++++++ - .../internal/os/RoSystemProperties.java | 4 ++ - 2 files changed, 61 insertions(+) - -diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java -index ee387e7c284f..0adc55598d9b 100644 ---- a/core/java/android/os/storage/StorageManager.java -+++ b/core/java/android/os/storage/StorageManager.java -@@ -1669,6 +1669,15 @@ public class StorageManager { - return false; - } - -+ /** {@hide} -+ * Is this device encryptable or already encrypted? -+ * @return true for encryptable or encrypted -+ * false not encrypted and not encryptable -+ */ -+ public static boolean isEncryptable() { -+ return RoSystemProperties.CRYPTO_ENCRYPTABLE; -+ } -+ - /** {@hide} - * Is this device encrypted? - *

-@@ -1702,6 +1711,54 @@ public class StorageManager { - return isFileEncrypted(); - } - -+ /** {@hide} -+ * Is this device block encrypted? -+ * @return true for block encrypted. (Implies isEncrypted() == true) -+ * false not encrypted or file encrypted -+ */ -+ public static boolean isBlockEncrypted() { -+ return false; -+ } -+ -+ /** {@hide} -+ * Is this device block encrypted with credentials? -+ * @return true for crediential block encrypted. -+ * (Implies isBlockEncrypted() == true) -+ * false not encrypted, file encrypted or default block encrypted -+ */ -+ public static boolean isNonDefaultBlockEncrypted() { -+ return false; -+ } -+ -+ /** {@hide} -+ * Is this device in the process of being block encrypted? -+ * @return true for encrypting. -+ * false otherwise -+ * Whether device isEncrypted at this point is undefined -+ * Note that only system services and CryptKeeper will ever see this return -+ * true - no app will ever be launched in this state. -+ * Also note that this state will not change without a teardown of the -+ * framework, so no service needs to check for changes during their lifespan -+ */ -+ public static boolean isBlockEncrypting() { -+ return false; -+ } -+ -+ /** {@hide} -+ * Is this device non default block encrypted and in the process of -+ * prompting for credentials? -+ * @return true for prompting for credentials. -+ * (Implies isNonDefaultBlockEncrypted() == true) -+ * false otherwise -+ * Note that only system services and CryptKeeper will ever see this return -+ * true - no app will ever be launched in this state. -+ * Also note that this state will not change without a teardown of the -+ * framework, so no service needs to check for changes during their lifespan -+ */ -+ public static boolean inCryptKeeperBounce() { -+ return false; -+ } -+ - /** {@hide} - * @deprecated Use {@link #isFileEncrypted} instead, since emulated FBE is no longer supported. - */ -diff --git a/core/java/com/android/internal/os/RoSystemProperties.java b/core/java/com/android/internal/os/RoSystemProperties.java -index 40d5c4761dff..66288706b0f1 100644 ---- a/core/java/com/android/internal/os/RoSystemProperties.java -+++ b/core/java/com/android/internal/os/RoSystemProperties.java -@@ -68,10 +68,14 @@ public class RoSystemProperties { - public static final CryptoProperties.type_values CRYPTO_TYPE = - CryptoProperties.type().orElse(CryptoProperties.type_values.NONE); - // These are pseudo-properties -+ public static final boolean CRYPTO_ENCRYPTABLE = -+ CRYPTO_STATE != CryptoProperties.state_values.UNSUPPORTED; - public static final boolean CRYPTO_ENCRYPTED = - CRYPTO_STATE == CryptoProperties.state_values.ENCRYPTED; - public static final boolean CRYPTO_FILE_ENCRYPTED = - CRYPTO_TYPE == CryptoProperties.type_values.FILE; -+ public static final boolean CRYPTO_BLOCK_ENCRYPTED = -+ CRYPTO_TYPE == CryptoProperties.type_values.BLOCK; - - public static final boolean CONTROL_PRIVAPP_PERMISSIONS_LOG = - "log".equalsIgnoreCase(CONTROL_PRIVAPP_PERMISSIONS); --- -2.41.0 - diff --git a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch b/frameworks/base/0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch similarity index 84% rename from frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch rename to frameworks/base/0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch index ffd46e5..031aeab 100644 --- a/frameworks/base/0008-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch +++ b/frameworks/base/0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch @@ -1,18 +1,18 @@ -From 28cd1a43c63151391142a54fe6c3067a0f40f73b Mon Sep 17 00:00:00 2001 +From 1d03233fbd587b33b92c1017f5682db1a7887692 Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 12 Aug 2023 20:11:17 +0800 -Subject: [PATCH 08/11] Add runWithCleanCallingIdentity variant with both +Subject: [PATCH 06/10] Add runWithCleanCallingIdentity variant with both executor and return value This complements the fixup to ImsPhoneCallTracker (in fw/o/t) for U Change-Id: If444290787025e130dce4bdeaf92372ae32793fe --- - .../telephony/util/TelephonyUtils.java | 32 ++++++++++++++++++- - 1 file changed, 31 insertions(+), 1 deletion(-) + .../telephony/util/TelephonyUtils.java | 30 +++++++++++++++++++ + 1 file changed, 30 insertions(+) diff --git a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java -index 9a8c9655375d..454080144d35 100644 +index aed8fb8c4503..1467e7f2fc29 100644 --- a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java +++ b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java @@ -42,7 +42,9 @@ import com.android.internal.telephony.ITelephony; @@ -60,13 +60,6 @@ index 9a8c9655375d..454080144d35 100644 /** * Filter values in bundle to only basic types. */ -@@ -319,4 +349,4 @@ public final class TelephonyUtils { - return false; - - } --} -\ No newline at end of file -+} -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch b/frameworks/base/0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch similarity index 88% rename from frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch rename to frameworks/base/0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch index e018a96..e0c74fb 100644 --- a/frameworks/base/0009-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch +++ b/frameworks/base/0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch @@ -1,7 +1,7 @@ -From 8abbc55bf9452f935c59e869f6713da27fbec24f Mon Sep 17 00:00:00 2001 +From 696e378fac49c9a90032b588dd4bb0887b44452f Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Tue, 24 Nov 2015 01:53:47 -0500 -Subject: [PATCH 09/11] fw/b: Use ro.build.version.incremental to signal OTA +Subject: [PATCH 07/10] fw/b: Use ro.build.version.incremental to signal OTA upgrades Squash of: @@ -85,10 +85,10 @@ index 9e6c91f4ec31..7459b0e05e3a 100644 } try { diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java -index 99c2f8a5cc56..d6b55f9d1e8c 100644 +index a6b532cdef09..7f41474c63f4 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java -@@ -90,6 +90,7 @@ import android.content.pm.UserInfo; +@@ -89,6 +89,7 @@ import android.content.pm.UserInfo; import android.content.pm.UserProperties; import android.os.BatteryStats; import android.os.Binder; @@ -96,7 +96,7 @@ index 99c2f8a5cc56..d6b55f9d1e8c 100644 import android.os.Bundle; import android.os.Debug; import android.os.Handler; -@@ -753,7 +754,7 @@ class UserController implements Handler.Callback { +@@ -774,7 +775,7 @@ class UserController implements Handler.Callback { // purposefully block sending BOOT_COMPLETED until after all // PRE_BOOT receivers are finished to avoid ANR'ing apps final UserInfo info = getUserInfo(userId); @@ -106,10 +106,10 @@ index 99c2f8a5cc56..d6b55f9d1e8c 100644 // Suppress double notifications for managed profiles that // were unlocked automatically as part of their parent user being diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java -index c583f1767b41..912eaafc5b4a 100644 +index bc441b84c58b..68e3f9f73c74 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java -@@ -1616,7 +1616,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -1746,7 +1746,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } PackageManagerService m = new PackageManagerService(injector, factoryTest, @@ -118,7 +118,7 @@ index c583f1767b41..912eaafc5b4a 100644 Build.VERSION.SDK_INT, Build.VERSION.INCREMENTAL); t.traceEnd(); // "create package manager" -@@ -2083,9 +2083,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2225,9 +2225,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService mIsUpgrade = !partitionsFingerprint.equals(ver.fingerprint); if (mIsUpgrade) { @@ -130,7 +130,7 @@ index c583f1767b41..912eaafc5b4a 100644 } mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper, -@@ -2222,8 +2221,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2364,8 +2363,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService // allow... it would be nice to have some better way to handle // this situation. if (mIsUpgrade) { @@ -141,7 +141,7 @@ index c583f1767b41..912eaafc5b4a 100644 + "; regranting permissions for internal storage"); } mPermissionManager.onStorageVolumeMounted( -@@ -2243,7 +2242,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2387,7 +2386,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService // across OTAs and are used to drive profile verification (post OTA) and // profile compilation (without waiting to collect a fresh set of profiles). if (mIsUpgrade) { @@ -150,7 +150,7 @@ index c583f1767b41..912eaafc5b4a 100644 for (int i = 0; i < packageSettings.size(); i++) { final PackageSetting ps = packageSettings.valueAt(i); if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, ps.getVolumeUuid())) { -@@ -2255,7 +2254,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2399,7 +2398,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } } ver.buildFingerprint = Build.FINGERPRINT; @@ -160,10 +160,10 @@ index c583f1767b41..912eaafc5b4a 100644 // Defer the app data fixup until we are done with app data clearing above. diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java -index 677a5d11cc6b..3c7080996875 100644 +index d6952262d82e..d03a3522a67a 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java -@@ -465,7 +465,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile +@@ -481,7 +481,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile sdkVersion = Build.VERSION.SDK_INT; databaseVersion = CURRENT_DATABASE_VERSION; buildFingerprint = Build.FINGERPRINT; @@ -172,7 +172,7 @@ index 677a5d11cc6b..3c7080996875 100644 } } -@@ -5732,7 +5732,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile +@@ -5983,7 +5983,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile } private String getExtendedFingerprint(long version) { @@ -182,10 +182,10 @@ index 677a5d11cc6b..3c7080996875 100644 private static long uniformRandom(double low, double high) { diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java -index c6aba2ab9cbe..1aad29efa322 100644 +index 3adeb4b5925f..4895a71c1322 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java -@@ -5206,7 +5206,7 @@ public class ShortcutService extends IShortcutService.Stub { +@@ -5208,7 +5208,7 @@ public class ShortcutService extends IShortcutService.Stub { // Injection point. String injectBuildFingerprint() { @@ -195,10 +195,10 @@ index c6aba2ab9cbe..1aad29efa322 100644 final void wtf(String message) { diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java -index d2929aef8a63..ba0b597bb2ce 100644 +index c48eccf2aac5..9033d8ee5e7a 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java -@@ -4889,7 +4889,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -5100,7 +5100,7 @@ public class UserManagerService extends IUserManager.Stub { userInfo.creationTime = getCreationTime(); userInfo.partial = true; userInfo.preCreated = preCreate; @@ -207,25 +207,25 @@ index d2929aef8a63..ba0b597bb2ce 100644 if (userTypeDetails.hasBadge() && parentId != UserHandle.USER_NULL) { userInfo.profileBadge = getFreeProfileBadgeLU(parentId, userType); } -@@ -6219,7 +6219,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6401,7 +6401,7 @@ public class UserManagerService extends IUserManager.Stub { + TimingsTraceAndSlog t = new TimingsTraceAndSlog(); t.traceBegin("onBeforeStartUser-" + userId); - final int userSerial = userInfo.serialNumber; // Migrate only if build fingerprints mismatch - boolean migrateAppsData = !PackagePartitions.FINGERPRINT.equals( + boolean migrateAppsData = !Build.VERSION.INCREMENTAL.equals( userInfo.lastLoggedInFingerprint); t.traceBegin("prepareUserData"); - mUserDataPreparer.prepareUserData(userId, userSerial, StorageManager.FLAG_STORAGE_DE); -@@ -6250,7 +6250,7 @@ public class UserManagerService extends IUserManager.Stub { + mUserDataPreparer.prepareUserData(userInfo, StorageManager.FLAG_STORAGE_DE); +@@ -6431,7 +6431,7 @@ public class UserManagerService extends IUserManager.Stub { + return; } - final int userSerial = userInfo.serialNumber; // Migrate only if build fingerprints mismatch - boolean migrateAppsData = !PackagePartitions.FINGERPRINT.equals( + boolean migrateAppsData = !Build.VERSION.INCREMENTAL.equals( userInfo.lastLoggedInFingerprint); final TimingsTraceAndSlog t = new TimingsTraceAndSlog(); -@@ -6295,7 +6295,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6476,7 +6476,7 @@ public class UserManagerService extends IUserManager.Stub { if (now > EPOCH_PLUS_30_YEARS) { userData.info.lastLoggedInTime = now; } @@ -235,5 +235,5 @@ index d2929aef8a63..ba0b597bb2ce 100644 } -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch b/frameworks/base/0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch similarity index 92% rename from frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch rename to frameworks/base/0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch index 871fc89..5a271e5 100644 --- a/frameworks/base/0010-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch +++ b/frameworks/base/0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch @@ -1,7 +1,7 @@ -From f35f1213d1221cde06ee24956649e5ecb4ac5277 Mon Sep 17 00:00:00 2001 +From eeeb323b495245354be3b98089a430ee04f67ae5 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 9 Dec 2023 18:37:08 -0500 -Subject: [PATCH 10/11] Revert "Convert BubbleDataRepositoryTest to use +Subject: [PATCH 08/10] Revert "Convert BubbleDataRepositoryTest to use mockito-kotlin" This reverts commit 625a23ff22f0a9327b9a24341dfa0b8fbaf61a1b. @@ -11,16 +11,16 @@ This reverts commit 625a23ff22f0a9327b9a24341dfa0b8fbaf61a1b. 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/libs/WindowManager/Shell/tests/unittest/Android.bp b/libs/WindowManager/Shell/tests/unittest/Android.bp -index c2f184a03380..ad4d97f6fe40 100644 +index aadadd604d3e..70106c3d41b4 100644 --- a/libs/WindowManager/Shell/tests/unittest/Android.bp +++ b/libs/WindowManager/Shell/tests/unittest/Android.bp -@@ -43,7 +43,6 @@ android_test { +@@ -44,7 +44,6 @@ android_test { "frameworks-base-testutils", "kotlinx-coroutines-android", "kotlinx-coroutines-core", - "mockito-kotlin2", "mockito-target-extended-minus-junit4", - "truth-prebuilt", + "truth", "testables", diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataRepositoryTest.kt index e35995775f76..0e05e01a8da3 100644 @@ -71,5 +71,5 @@ index e35995775f76..0e05e01a8da3 100644 } \ No newline at end of file -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch b/frameworks/base/0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch similarity index 85% rename from frameworks/base/0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch rename to frameworks/base/0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch index a4b1b7a..2af5671 100644 --- a/frameworks/base/0011-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch +++ b/frameworks/base/0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch @@ -1,7 +1,7 @@ -From 3d3312bd96d2c8a74e4a27b5567a24f92ad8d243 Mon Sep 17 00:00:00 2001 +From 9c7aba6023ca7fe010300d1c92af0c9e461afd10 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 15 Dec 2023 22:48:39 -0500 -Subject: [PATCH 11/11] FingerprintService: Do not use HIDL providers when AIDL +Subject: [PATCH 09/10] FingerprintService: Do not use HIDL providers when AIDL is present This fixes duplicated sensor ID when config_biometric_sensors is defined @@ -13,10 +13,10 @@ Change-Id: I9942e91a95106a7a11ab7ddf145d87562d1b7c0d 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java -index 5ce0c8b384ef..a4e4a1b347d3 100644 +index 83b306b07c27..7f144a0f615f 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java -@@ -885,8 +885,9 @@ public class FingerprintService extends SystemService { +@@ -889,8 +889,9 @@ public class FingerprintService extends SystemService { filteredInstances = filterAvailableHalInstances(hidlSensors, aidlSensors); final List providers = new ArrayList<>(); @@ -28,5 +28,5 @@ index 5ce0c8b384ef..a4e4a1b347d3 100644 return providers; }); -- -2.41.0 +2.43.1 diff --git a/frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch b/frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch new file mode 100644 index 0000000..7463878 --- /dev/null +++ b/frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch @@ -0,0 +1,130 @@ +From ae82395ce31a35c73b817fc25b8b7d5f96c32770 Mon Sep 17 00:00:00 2001 +From: LuK1337 +Date: Mon, 19 Feb 2024 16:20:04 +0100 +Subject: [PATCH 10/10] Allow signature spoofing for microG Companion/Services + +This patch enables signature spoofing when the following conditions are +met: +* Build is debuggable (userdebug/eng) +* Package name is com.android.vending or com.google.android.gms +* Package is signed with microG release keys +* Fake signature is correct + +Additionally, we let these apps be forceQueryable if they so desire. + +phh change: No need to be debuggable + +Change-Id: I8fc82ed266a2cc59636b662c7ea7e29c94f509b5 +--- + .../com/android/server/pm/AppsFilterImpl.java | 2 + + .../com/android/server/pm/ComputerEngine.java | 46 +++++++++++++++++++ + 2 files changed, 48 insertions(+) + +diff --git a/services/core/java/com/android/server/pm/AppsFilterImpl.java b/services/core/java/com/android/server/pm/AppsFilterImpl.java +index 82622d9a4ea8..277c9abe2e1c 100644 +--- a/services/core/java/com/android/server/pm/AppsFilterImpl.java ++++ b/services/core/java/com/android/server/pm/AppsFilterImpl.java +@@ -36,6 +36,7 @@ import static com.android.server.pm.AppsFilterUtils.canQueryAsUpdateOwner; + import static com.android.server.pm.AppsFilterUtils.canQueryViaComponents; + import static com.android.server.pm.AppsFilterUtils.canQueryViaPackage; + import static com.android.server.pm.AppsFilterUtils.canQueryViaUsesLibrary; ++import static com.android.server.pm.ComputerEngine.isMicrogSigned; + + import android.annotation.NonNull; + import android.annotation.Nullable; +@@ -599,6 +600,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable, + newIsForceQueryable = mForceQueryable.contains(newPkgSetting.getAppId()) + /* shared user that is already force queryable */ + || newPkgSetting.isForceQueryableOverride() /* adb override */ ++ || (newPkg.isForceQueryable() && isMicrogSigned(newPkg)) + || (newPkgSetting.isSystem() && (mSystemAppsQueryable + || newPkg.isForceQueryable() + || ArrayUtils.contains(mForceQueryableByDevicePackageNames, +diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java +index 3cb2420cd223..b0d9be30edc1 100644 +--- a/services/core/java/com/android/server/pm/ComputerEngine.java ++++ b/services/core/java/com/android/server/pm/ComputerEngine.java +@@ -100,6 +100,7 @@ import android.content.pm.UserPackage; + import android.content.pm.VersionedPackage; + import android.os.Binder; + import android.os.Build; ++import android.os.Bundle; + import android.os.IBinder; + import android.os.ParcelableException; + import android.os.PatternMatcher; +@@ -172,6 +173,7 @@ import java.util.Collections; + import java.util.Comparator; + import java.util.List; + import java.util.Objects; ++import java.util.Optional; + import java.util.Set; + import java.util.UUID; + +@@ -421,6 +423,10 @@ public class ComputerEngine implements Computer { + private final PackageManagerInternal.ExternalSourcesPolicy mExternalSourcesPolicy; + private final CrossProfileIntentResolverEngine mCrossProfileIntentResolverEngine; + ++ // Signatures used by microG ++ private static final Signature MICROG_FAKE_SIGNATURE = new Signature("308204433082032ba003020102020900c2e08746644a308d300d06092a864886f70d01010405003074310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f69643110300e06035504031307416e64726f6964301e170d3038303832313233313333345a170d3336303130373233313333345a3074310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f69643110300e06035504031307416e64726f696430820120300d06092a864886f70d01010105000382010d00308201080282010100ab562e00d83ba208ae0a966f124e29da11f2ab56d08f58e2cca91303e9b754d372f640a71b1dcb130967624e4656a7776a92193db2e5bfb724a91e77188b0e6a47a43b33d9609b77183145ccdf7b2e586674c9e1565b1f4c6a5955bff251a63dabf9c55c27222252e875e4f8154a645f897168c0b1bfc612eabf785769bb34aa7984dc7e2ea2764cae8307d8c17154d7ee5f64a51a44a602c249054157dc02cd5f5c0e55fbef8519fbe327f0b1511692c5a06f19d18385f5c4dbc2d6b93f68cc2979c70e18ab93866b3bd5db8999552a0e3b4c99df58fb918bedc182ba35e003c1b4b10dd244a8ee24fffd333872ab5221985edab0fc0d0b145b6aa192858e79020103a381d93081d6301d0603551d0e04160414c77d8cc2211756259a7fd382df6be398e4d786a53081a60603551d2304819e30819b8014c77d8cc2211756259a7fd382df6be398e4d786a5a178a4763074310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f69643110300e06035504031307416e64726f6964820900c2e08746644a308d300c0603551d13040530030101ff300d06092a864886f70d010104050003820101006dd252ceef85302c360aaace939bcff2cca904bb5d7a1661f8ae46b2994204d0ff4a68c7ed1a531ec4595a623ce60763b167297a7ae35712c407f208f0cb109429124d7b106219c084ca3eb3f9ad5fb871ef92269a8be28bf16d44c8d9a08e6cb2f005bb3fe2cb96447e868e731076ad45b33f6009ea19c161e62641aa99271dfd5228c5c587875ddb7f452758d661f6cc0cccb7352e424cc4365c523532f7325137593c4ae341f4db41edda0d0b1071a7c440f0fe9ea01cb627ca674369d084bd2fd911ff06cdbf2cfa10dc0f893ae35762919048c7efc64c7144178342f70581c9de573af55b390dd7fdb9418631895d5f759f30112687ff621410c069308a"); ++ private static final Signature MICROG_REAL_SIGNATURE = new Signature("308202ed308201d5a003020102020426ffa009300d06092a864886f70d01010b05003027310b300906035504061302444531183016060355040a130f4e4f47415050532050726f6a656374301e170d3132313030363132303533325a170d3337303933303132303533325a3027310b300906035504061302444531183016060355040a130f4e4f47415050532050726f6a65637430820122300d06092a864886f70d01010105000382010f003082010a02820101009a8d2a5336b0eaaad89ce447828c7753b157459b79e3215dc962ca48f58c2cd7650df67d2dd7bda0880c682791f32b35c504e43e77b43c3e4e541f86e35a8293a54fb46e6b16af54d3a4eda458f1a7c8bc1b7479861ca7043337180e40079d9cdccb7e051ada9b6c88c9ec635541e2ebf0842521c3024c826f6fd6db6fd117c74e859d5af4db04448965ab5469b71ce719939a06ef30580f50febf96c474a7d265bb63f86a822ff7b643de6b76e966a18553c2858416cf3309dd24278374bdd82b4404ef6f7f122cec93859351fc6e5ea947e3ceb9d67374fe970e593e5cd05c905e1d24f5a5484f4aadef766e498adf64f7cf04bddd602ae8137b6eea40722d0203010001a321301f301d0603551d0e04160414110b7aa9ebc840b20399f69a431f4dba6ac42a64300d06092a864886f70d01010b0500038201010007c32ad893349cf86952fb5a49cfdc9b13f5e3c800aece77b2e7e0e9c83e34052f140f357ec7e6f4b432dc1ed542218a14835acd2df2deea7efd3fd5e8f1c34e1fb39ec6a427c6e6f4178b609b369040ac1f8844b789f3694dc640de06e44b247afed11637173f36f5886170fafd74954049858c6096308fc93c1bc4dd5685fa7a1f982a422f2a3b36baa8c9500474cf2af91c39cbec1bc898d10194d368aa5e91f1137ec115087c31962d8f76cd120d28c249cf76f4c70f5baa08c70a7234ce4123be080cee789477401965cfe537b924ef36747e8caca62dfefdd1a6288dcb1c4fd2aaa6131a7ad254e9742022cfd597d2ca5c660ce9e41ff537e5a4041e37"); ++ + // PackageManagerService attributes that are primitives are referenced through the + // pms object directly. Primitives are the only attributes so referenced. + protected final PackageManagerService mService; +@@ -1463,6 +1469,42 @@ public class ComputerEngine implements Computer { + return result; + } + ++ public static boolean isMicrogSigned(AndroidPackage p) { ++ // Allowlist the following apps: ++ // * com.android.vending - microG Companion ++ // * com.google.android.gms - microG Services ++ if (!p.getPackageName().equals("com.android.vending") && ++ !p.getPackageName().equals("com.google.android.gms")) { ++ return false; ++ } ++ return Signature.areExactMatch( ++ p.getSigningDetails(), new Signature[]{MICROG_REAL_SIGNATURE}); ++ } ++ ++ private static Optional generateFakeSignature(AndroidPackage p) { ++ if (!isMicrogSigned(p)) { ++ return Optional.empty(); ++ } ++ ++ Bundle metadata = p.getMetaData(); ++ if (metadata == null) { ++ return Optional.empty(); ++ } ++ ++ String fakeSignatureStr = metadata.getString("fake-signature"); ++ if (TextUtils.isEmpty(fakeSignatureStr)) { ++ return Optional.empty(); ++ } ++ ++ // Only MICROG_FAKE_SIGNATURE can be faked ++ Signature fakeSignature = new Signature(fakeSignatureStr); ++ if (!fakeSignature.equals(MICROG_FAKE_SIGNATURE)) { ++ return Optional.empty(); ++ } ++ ++ return Optional.of(fakeSignature); ++ } ++ + public final PackageInfo generatePackageInfo(PackageStateInternal ps, + @PackageManager.PackageInfoFlagsBits long flags, int userId) { + if (!mUserManager.exists(userId)) return null; +@@ -1511,6 +1553,10 @@ public class ComputerEngine implements Computer { + packageInfo.packageName = packageInfo.applicationInfo.packageName = + resolveExternalPackageName(p); + ++ generateFakeSignature(p).ifPresent(fakeSignature -> { ++ packageInfo.signatures = new Signature[]{fakeSignature}; ++ }); ++ + return packageInfo; + } else if ((flags & (MATCH_UNINSTALLED_PACKAGES | MATCH_ARCHIVED_PACKAGES)) != 0 + && PackageUserStateUtils.isAvailable(state, flags)) { +-- +2.43.1 + diff --git a/frameworks/opt/telephony/0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch b/frameworks/opt/telephony/0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch index c7c6822..c36dff6 100644 --- a/frameworks/opt/telephony/0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch +++ b/frameworks/opt/telephony/0001-Reintroduce-public-void-TelephonyMetrics.writeRilSen.patch @@ -1,7 +1,7 @@ -From d8c305abadf223aef7237029d9b58c6756922a7d Mon Sep 17 00:00:00 2001 +From ab08eec99a802be5014b876823cab89c2d2e9ef6 Mon Sep 17 00:00:00 2001 From: ironydelerium <42721860+ironydelerium@users.noreply.github.com> Date: Fri, 31 Dec 2021 02:20:28 -0800 -Subject: [PATCH 1/5] Reintroduce 'public void +Subject: [PATCH 1/4] Reintroduce 'public void TelephonyMetrics.writeRilSendSms(int, int, int, int)'. (#8) The MediaTek IMS package for Android Q, at the very least (likely for the rest, too) @@ -42,5 +42,5 @@ index 3fdbfe0ed7..fb8011c3df 100644 * Write Send SMS event using ImsService. Expecting response from * {@link #writeOnSmsSolicitedResponse}. -- -2.41.0 +2.43.1 diff --git a/frameworks/opt/telephony/0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch b/frameworks/opt/telephony/0002-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch similarity index 83% rename from frameworks/opt/telephony/0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch rename to frameworks/opt/telephony/0002-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch index a7f9bd6..0426c7b 100644 --- a/frameworks/opt/telephony/0003-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch +++ b/frameworks/opt/telephony/0002-Fix-baseband-being-too-long-to-fit-into-a-91-chars-p.patch @@ -1,7 +1,7 @@ -From 2861b7ed720286f3a69782d4fc18128e742d8949 Mon Sep 17 00:00:00 2001 +From ca7d875358b275da98fcd55d583a9121bb68f309 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 6 Dec 2021 16:28:22 -0500 -Subject: [PATCH 3/5] Fix baseband being too long to fit into a 91 chars +Subject: [PATCH 2/4] Fix baseband being too long to fit into a 91 chars property, preventing telephony subsystem from starting Change-Id: I1762e4a8cc137626be89f350229d6be162bdaf57 @@ -10,10 +10,10 @@ Change-Id: I1762e4a8cc137626be89f350229d6be162bdaf57 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java -index 5eae06112c..d5302413bc 100644 +index 620b8711e2..951ef23115 100644 --- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java +++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java -@@ -3282,7 +3282,7 @@ public class GsmCdmaPhone extends Phone { +@@ -3373,7 +3373,7 @@ public class GsmCdmaPhone extends Phone { String version = (String)ar.result; if (version != null) { int length = version.length(); @@ -23,5 +23,5 @@ index 5eae06112c..d5302413bc 100644 length <= MAX_VERSION_LEN ? version : version.substring(length - MAX_VERSION_LEN, length)); -- -2.41.0 +2.43.1 diff --git a/frameworks/opt/telephony/0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch b/frameworks/opt/telephony/0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch deleted file mode 100644 index 7eba6ed..0000000 --- a/frameworks/opt/telephony/0002-Pass-correct-value-to-setPreferredNetworkType-for-RI.patch +++ /dev/null @@ -1,53 +0,0 @@ -From b299cb6cb26268d1a0a58b8df42ea334d7bdc950 Mon Sep 17 00:00:00 2001 -From: LuK1337 -Date: Fri, 21 Oct 2022 20:55:05 +0200 -Subject: [PATCH 2/5] Pass correct value to setPreferredNetworkType() for RIL - version < 1.4 - -Change-Id: Id14be66a2ea4e85b6504bc03fd7d2f038185c17d ---- - src/java/com/android/internal/telephony/RIL.java | 3 ++- - .../com/android/internal/telephony/RadioNetworkProxy.java | 5 +++-- - 2 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java -index 5ecdfcbbd4..174b89c141 100644 ---- a/src/java/com/android/internal/telephony/RIL.java -+++ b/src/java/com/android/internal/telephony/RIL.java -@@ -3027,7 +3027,8 @@ public class RIL extends BaseCommands implements CommandsInterface { - mMetrics.writeSetPreferredNetworkType(mPhoneId, networkType); - - try { -- networkProxy.setPreferredNetworkTypeBitmap(rr.mSerial, mAllowedNetworkTypesBitmask); -+ networkProxy.setPreferredNetworkTypeBitmap( -+ rr.mSerial, mAllowedNetworkTypesBitmask, networkType); - } catch (RemoteException | RuntimeException e) { - handleRadioProxyExceptionForRR(HAL_SERVICE_NETWORK, "setPreferredNetworkType", e); - } -diff --git a/src/java/com/android/internal/telephony/RadioNetworkProxy.java b/src/java/com/android/internal/telephony/RadioNetworkProxy.java -index 246c2e0204..2e352a96b4 100644 ---- a/src/java/com/android/internal/telephony/RadioNetworkProxy.java -+++ b/src/java/com/android/internal/telephony/RadioNetworkProxy.java -@@ -389,16 +389,17 @@ public class RadioNetworkProxy extends RadioServiceProxy { - * Call IRadioNetwork#setPreferredNetworkTypeBitmap - * @param serial Serial number of request - * @param networkTypesBitmask Preferred network types bitmask to set -+ * @param networkType Preferred network type to set for RIL version < 1.4 - * @throws RemoteException - */ -- public void setPreferredNetworkTypeBitmap(int serial, int networkTypesBitmask) -+ public void setPreferredNetworkTypeBitmap(int serial, int networkTypesBitmask, int networkType) - throws RemoteException { - if (isEmpty() || mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_6)) return; - if (mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_4)) { - ((android.hardware.radio.V1_4.IRadio) mRadioProxy).setPreferredNetworkTypeBitmap(serial, - RILUtils.convertToHalRadioAccessFamily(networkTypesBitmask)); - } else { -- mRadioProxy.setPreferredNetworkType(serial, networkTypesBitmask); -+ mRadioProxy.setPreferredNetworkType(serial, networkType); - } - } - --- -2.41.0 - diff --git a/frameworks/opt/telephony/0004-Conditionally-revert-Block-Binder-thread-until-incom.patch b/frameworks/opt/telephony/0003-Conditionally-revert-Block-Binder-thread-until-incom.patch similarity index 91% rename from frameworks/opt/telephony/0004-Conditionally-revert-Block-Binder-thread-until-incom.patch rename to frameworks/opt/telephony/0003-Conditionally-revert-Block-Binder-thread-until-incom.patch index 8870493..eb703a0 100644 --- a/frameworks/opt/telephony/0004-Conditionally-revert-Block-Binder-thread-until-incom.patch +++ b/frameworks/opt/telephony/0003-Conditionally-revert-Block-Binder-thread-until-incom.patch @@ -1,7 +1,7 @@ -From ec5993b869fc758bd48c1636ee009bad8d4205bf Mon Sep 17 00:00:00 2001 +From 8a28ea8c3ecb378dba2aff1d93e87095d71df873 Mon Sep 17 00:00:00 2001 From: ExactExampl Date: Tue, 11 Oct 2022 12:38:00 +0300 -Subject: [PATCH 4/5] Conditionally revert "Block Binder thread until incoming +Subject: [PATCH 3/4] Conditionally revert "Block Binder thread until incoming call process completes" * Legacy IMS packages handling incoming calls in such a way that @@ -17,7 +17,7 @@ Change-Id: I55a8f3bbca4a2b9a6bc7511e9fe2d0884a8818e5 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java -index c3ee0f6060..f11b921c08 100644 +index e95433c2ee..7e4fdf6b41 100644 --- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java @@ -70,6 +70,7 @@ import android.os.Registrant; @@ -28,7 +28,7 @@ index c3ee0f6060..f11b921c08 100644 import android.preference.PreferenceManager; import android.provider.Settings; import android.sysprop.TelephonyProperties; -@@ -385,7 +386,19 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { +@@ -389,7 +390,19 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { @Nullable public IImsCallSessionListener onIncomingCall( @NonNull IImsCallSession c, @Nullable String callId, @Nullable Bundle extras) { @@ -50,5 +50,5 @@ index c3ee0f6060..f11b921c08 100644 @Override -- -2.41.0 +2.43.1 diff --git a/frameworks/opt/telephony/0005-SubscriptionController-Do-not-override-default-calli.patch b/frameworks/opt/telephony/0004-SubscriptionController-Do-not-override-default-calli.patch similarity index 90% rename from frameworks/opt/telephony/0005-SubscriptionController-Do-not-override-default-calli.patch rename to frameworks/opt/telephony/0004-SubscriptionController-Do-not-override-default-calli.patch index 32fe8b6..391932b 100644 --- a/frameworks/opt/telephony/0005-SubscriptionController-Do-not-override-default-calli.patch +++ b/frameworks/opt/telephony/0004-SubscriptionController-Do-not-override-default-calli.patch @@ -1,7 +1,7 @@ -From 2685c843046fcfb12b42f530ed4d5b8fa28cdc9e Mon Sep 17 00:00:00 2001 +From d7626b9015a9505c225254dcf36e5472f4c4e4a8 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 5 Sep 2022 14:02:37 -0400 -Subject: [PATCH 5/5] SubscriptionController: Do not override default calling +Subject: [PATCH 4/4] SubscriptionController: Do not override default calling account from third-party apps When the user has selected a calling account from a third-party app as @@ -18,10 +18,10 @@ Change-Id: Iccab64e9b3b3ab4773bd8944d47c2006f229d472 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java -index 8e773c072d..1efe9ba3b4 100644 +index a8d05a334b..42310ccc3f 100644 --- a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +++ b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java -@@ -78,6 +78,7 @@ import android.util.Base64; +@@ -81,6 +81,7 @@ import android.util.Base64; import android.util.EventLog; import android.util.IndentingPrintWriter; import android.util.LocalLog; @@ -29,7 +29,7 @@ index 8e773c072d..1efe9ba3b4 100644 import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; -@@ -2839,7 +2840,22 @@ public class SubscriptionManagerService extends ISub.Stub { +@@ -3023,7 +3024,22 @@ public class SubscriptionManagerService extends ISub.Stub { TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class); if (telecomManager != null) { @@ -54,5 +54,5 @@ index 8e773c072d..1efe9ba3b4 100644 updateDefaultSubId(); -- -2.41.0 +2.43.1 diff --git a/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch b/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch index 854ac44..a62384f 100644 --- a/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch +++ b/packages/apps/Launcher3/0001-Expose-themed-icon-setting-in-ThemePicker.patch @@ -1,4 +1,4 @@ -From 079ec0124a642a3a473697c23da5907380930dd0 Mon Sep 17 00:00:00 2001 +From ab27acf28b7e01c2fe9933849eaeb1622f5dfb6a Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Mon, 11 Oct 2021 20:48:44 -0700 Subject: [PATCH 1/3] Expose themed icon setting in ThemePicker @@ -38,5 +38,5 @@ index c6e2d8cb74..1d7405e345 100644 -- -2.41.0 +2.43.1 diff --git a/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch b/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch index 2c628ca..f5eb255 100644 --- a/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch +++ b/packages/apps/Launcher3/0002-Properly-expose-GridCustomizationsProvider.patch @@ -1,4 +1,4 @@ -From f3f90de4d2440dcff4fab813b45862a9912bccf4 Mon Sep 17 00:00:00 2001 +From 910c5a085260dfd33a0a2377b03a3c0eeb647cc5 Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Fri, 1 Nov 2019 23:17:59 +0100 Subject: [PATCH 2/3] Properly expose GridCustomizationsProvider @@ -9,10 +9,10 @@ Change-Id: I8268a215257ae0e399c56ac8b44cdfdff8cc92a0 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml -index 14605d8053..89ebe026f9 100644 +index 7e824ec15c..b87972e0ac 100644 --- a/AndroidManifest-common.xml +++ b/AndroidManifest-common.xml -@@ -137,7 +137,9 @@ +@@ -138,7 +138,9 @@ Date: Fri, 7 Jul 2023 18:13:32 -0400 Subject: [PATCH 3/3] Disable QSB in BuildConfig @@ -9,7 +9,7 @@ Change-Id: I3150ef1d9b8c161ed2a6569d1ae75bba0060b36f 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_build_config/com/android/launcher3/BuildConfig.java b/src_build_config/com/android/launcher3/BuildConfig.java -index 1f2e0e5387..ab6c528580 100644 +index 3841969e9d..ae151abe75 100644 --- a/src_build_config/com/android/launcher3/BuildConfig.java +++ b/src_build_config/com/android/launcher3/BuildConfig.java @@ -24,7 +24,7 @@ public final class BuildConfig { @@ -20,7 +20,7 @@ index 1f2e0e5387..ab6c528580 100644 + public static final boolean QSB_ON_FIRST_SCREEN = false; /** - * Flag to control various developer centric features + * Flag to state if the widget on the top of the first screen should be shown. -- -2.41.0 +2.43.1 diff --git a/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch b/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch index cf646b4..444a88d 100644 --- a/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch +++ b/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch @@ -1,4 +1,4 @@ -From a70d53f488f7cfc9e5296df4fbc23e1c8a3955b3 Mon Sep 17 00:00:00 2001 +From 22b752c0770f00c92ad91ab2c17b52a1c2c651a9 Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:40:49 -0400 Subject: [PATCH] Global VPN feature [2/2] @@ -15,13 +15,13 @@ Signed-off-by: Mohammad Hasan Keramat J 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml -index fa79cbbb33..d14a25abd1 100644 +index 630aeed0049..20902850060 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml -@@ -12129,4 +12129,10 @@ - - - "This app can only be opened in 1 window" +@@ -12633,4 +12633,10 @@ + + + + + + Global VPN @@ -30,7 +30,7 @@ index fa79cbbb33..d14a25abd1 100644 + You need to disable all active VPN connections first to enable this diff --git a/res/xml/vpn_app_management.xml b/res/xml/vpn_app_management.xml -index dffbbbe311..93df378fd7 100644 +index dffbbbe3116..93df378fd76 100644 --- a/res/xml/vpn_app_management.xml +++ b/res/xml/vpn_app_management.xml @@ -23,6 +23,12 @@ @@ -47,7 +47,7 @@ index dffbbbe311..93df378fd7 100644 android:key="always_on_vpn" android:title="@string/vpn_menu_lockdown" diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java -index 7d17541fd9..260d3ad94d 100644 +index 1d5b3cc6d51..c1180ea1a8e 100644 --- a/src/com/android/settings/vpn2/AppManagementFragment.java +++ b/src/com/android/settings/vpn2/AppManagementFragment.java @@ -28,10 +28,12 @@ import android.content.pm.ApplicationInfo; @@ -88,7 +88,7 @@ index 7d17541fd9..260d3ad94d 100644 private RestrictedSwitchPreference mPreferenceLockdown; private RestrictedPreference mPreferenceForget; @@ -126,10 +131,16 @@ public class AppManagementFragment extends SettingsPreferenceFragment - mFeatureProvider = FeatureFactory.getFactory(getContext()).getAdvancedVpnFeatureProvider(); + mFeatureProvider = FeatureFactory.getFeatureFactory().getAdvancedVpnFeatureProvider(); mPreferenceVersion = findPreference(KEY_VERSION); + mPreferenceGlobal = (SwitchPreference) findPreference(KEY_GLOBAL_VPN); @@ -177,5 +177,5 @@ index 7d17541fd9..260d3ad94d 100644 private static final String TAG = "CannotConnect"; private static final String ARG_VPN_LABEL = "label"; -- -2.41.0 +2.43.1 diff --git a/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch b/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch index a6c4777..b375179 100644 --- a/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch +++ b/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch @@ -1,26 +1,25 @@ -From 1752966cf96e7c037db368e62f93233b5905ed64 Mon Sep 17 00:00:00 2001 +From d5cd47a4f197ab1d30b3ab03adfa27a602e94d70 Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Fri, 1 Nov 2019 21:14:29 +0100 -Subject: [PATCH 1/5] Add wallpaper privapp whitelist +Subject: [PATCH 1/4] Add wallpaper privapp whitelist Change-Id: I044b1d9201ac0b8780fc37a387f401f3dd0ddeac --- - Android.bp | 10 +++++++++ + Android.bp | 9 ++++++++ privapp_whitelist_com.android.wallpaper.xml | 24 +++++++++++++++++++++ - 2 files changed, 34 insertions(+) + 2 files changed, 33 insertions(+) create mode 100644 privapp_whitelist_com.android.wallpaper.xml diff --git a/Android.bp b/Android.bp -index f6c85581..e25c6e3d 100644 +index d3a7c514..e23d0c84 100644 --- a/Android.bp +++ b/Android.bp -@@ -118,5 +118,15 @@ android_app { +@@ -141,5 +141,14 @@ android_app { platform_apis: true, manifest: "AndroidManifest.xml", additional_manifests: [":WallpaperPicker2_Manifest"], -+ + required: ["privapp_whitelist_com.android.wallpaper.xml"], - overrides: ["WallpaperPicker2"], + overrides: ["WallpaperPicker", "WallpaperPicker2"], } + +prebuilt_etc_xml { @@ -61,5 +60,5 @@ index 00000000..e3f3b658 + + -- -2.41.0 +2.43.1 diff --git a/packages/apps/ThemePicker/0003-Add-wallpaper-default-permissions.patch b/packages/apps/ThemePicker/0002-Add-wallpaper-default-permissions.patch similarity index 87% rename from packages/apps/ThemePicker/0003-Add-wallpaper-default-permissions.patch rename to packages/apps/ThemePicker/0002-Add-wallpaper-default-permissions.patch index bfff5fc..56865fd 100644 --- a/packages/apps/ThemePicker/0003-Add-wallpaper-default-permissions.patch +++ b/packages/apps/ThemePicker/0002-Add-wallpaper-default-permissions.patch @@ -1,33 +1,32 @@ -From 0c493c5d97381bc1f809f15a4c948b47631a4346 Mon Sep 17 00:00:00 2001 +From 17911eaa692b1b4db729ab0662827a50f9e7e2ff Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Tue, 15 Sep 2020 03:27:19 +0200 -Subject: [PATCH 3/5] Add wallpaper default permissions +Subject: [PATCH 2/4] Add wallpaper default permissions Change-Id: If43a594da31fbab9280ce45b049737f6c534b620 --- - Android.bp | 14 ++++++- + Android.bp | 13 ++++++- default_permissions_com.android.wallpaper.xml | 37 +++++++++++++++++++ - 2 files changed, 50 insertions(+), 1 deletion(-) + 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 default_permissions_com.android.wallpaper.xml diff --git a/Android.bp b/Android.bp -index f2efc94e..1a525b0e 100644 +index e23d0c84..44319052 100644 --- a/Android.bp +++ b/Android.bp -@@ -119,7 +119,11 @@ android_app { +@@ -141,7 +141,10 @@ android_app { + platform_apis: true, manifest: "AndroidManifest.xml", additional_manifests: [":WallpaperPicker2_Manifest"], - - required: ["privapp_whitelist_com.android.wallpaper.xml"], + required: [ + "privapp_whitelist_com.android.wallpaper.xml", + "default_permissions_com.android.wallpaper.xml", + ], -+ - overrides: ["WallpaperPicker2", "WallpaperPicker"], + overrides: ["WallpaperPicker", "WallpaperPicker2"], } -@@ -130,3 +134,11 @@ prebuilt_etc_xml { +@@ -152,3 +155,11 @@ prebuilt_etc_xml { filename_from_src: true, sub_dir: "permissions", } @@ -83,5 +82,5 @@ index 00000000..41b23ce1 + + -- -2.41.0 +2.43.1 diff --git a/packages/apps/ThemePicker/0002-Override-legacy-WallpaperPicker-app.patch b/packages/apps/ThemePicker/0002-Override-legacy-WallpaperPicker-app.patch deleted file mode 100644 index 8462956..0000000 --- a/packages/apps/ThemePicker/0002-Override-legacy-WallpaperPicker-app.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e2fec57334a92244d36ba79cbdd25a469400603b Mon Sep 17 00:00:00 2001 -From: Danny Lin -Date: Tue, 5 Oct 2021 19:00:36 -0700 -Subject: [PATCH 2/5] Override legacy WallpaperPicker app - -Change-Id: I9a1907527eea0e8e7cd10bab64ba79c2c4006c59 ---- - Android.bp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Android.bp b/Android.bp -index e25c6e3d..f2efc94e 100644 ---- a/Android.bp -+++ b/Android.bp -@@ -120,7 +120,7 @@ android_app { - additional_manifests: [":WallpaperPicker2_Manifest"], - - required: ["privapp_whitelist_com.android.wallpaper.xml"], -- overrides: ["WallpaperPicker2"], -+ overrides: ["WallpaperPicker2", "WallpaperPicker"], - } - - prebuilt_etc_xml { --- -2.41.0 - diff --git a/packages/apps/ThemePicker/0004-Specify-we-read-and-write-launcher-settings.patch b/packages/apps/ThemePicker/0003-Specify-we-read-and-write-launcher-settings.patch similarity index 77% rename from packages/apps/ThemePicker/0004-Specify-we-read-and-write-launcher-settings.patch rename to packages/apps/ThemePicker/0003-Specify-we-read-and-write-launcher-settings.patch index 5c38345..af530ec 100644 --- a/packages/apps/ThemePicker/0004-Specify-we-read-and-write-launcher-settings.patch +++ b/packages/apps/ThemePicker/0003-Specify-we-read-and-write-launcher-settings.patch @@ -1,7 +1,7 @@ -From bb52f513459c59ad25248dc98c632ed455dfd4c5 Mon Sep 17 00:00:00 2001 +From b20465459c5c8848bd4c31ff4499f5bbb51afc48 Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Fri, 1 Nov 2019 23:17:08 +0100 -Subject: [PATCH 4/5] Specify we read and write launcher settings +Subject: [PATCH 3/4] Specify we read and write launcher settings Change-Id: Ifc8196588443b007602118389ca76d34ab531f14 --- @@ -9,10 +9,10 @@ Change-Id: Ifc8196588443b007602118389ca76d34ab531f14 1 file changed, 3 insertions(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml -index 4e71bcc6..26f4fce0 100755 +index b8126e55..2dd11fbb 100755 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml -@@ -45,6 +45,9 @@ +@@ -54,6 +54,9 @@ @@ -23,5 +23,5 @@ index 4e71bcc6..26f4fce0 100755 tools:replace="android:icon,android:name" android:extractNativeLibs="false" -- -2.41.0 +2.43.1 diff --git a/packages/apps/ThemePicker/0005-Add-permission-for-launcher-preview-rendering.patch b/packages/apps/ThemePicker/0004-Add-permission-for-launcher-preview-rendering.patch similarity index 90% rename from packages/apps/ThemePicker/0005-Add-permission-for-launcher-preview-rendering.patch rename to packages/apps/ThemePicker/0004-Add-permission-for-launcher-preview-rendering.patch index 1e4ac4a..68301ac 100644 --- a/packages/apps/ThemePicker/0005-Add-permission-for-launcher-preview-rendering.patch +++ b/packages/apps/ThemePicker/0004-Add-permission-for-launcher-preview-rendering.patch @@ -1,7 +1,7 @@ -From 0226fd9e4610eb6db37426afe6c7cb05e31aa5e6 Mon Sep 17 00:00:00 2001 +From 20d38bfa9324501ac1c1c183c72427f2662bcd28 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Tue, 5 Oct 2021 22:40:58 -0700 -Subject: [PATCH 5/5] Add permission for launcher preview rendering +Subject: [PATCH 4/4] Add permission for launcher preview rendering Change-Id: Ie707dcd98161e8f5993b0504295fddc3f395cd20 --- @@ -10,7 +10,7 @@ Change-Id: Ie707dcd98161e8f5993b0504295fddc3f395cd20 2 files changed, 2 insertions(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml -index 26f4fce0..40281cf9 100755 +index 2dd11fbb..63d76b8e 100755 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -8,6 +8,7 @@ @@ -33,5 +33,5 @@ index e3f3b658..47133be8 100644 -- -2.41.0 +2.43.1 diff --git a/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch index 214a703..f17ccff 100644 --- a/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch +++ b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch @@ -1,4 +1,4 @@ -From 184dbd4770340934511622b0bac58eb45d0cb905 Mon Sep 17 00:00:00 2001 +From 638bd11ae1854619a40a5abbedcfdf397e2e1f53 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 10:41:29 -0400 Subject: [PATCH 1/2] gd: hci: Ignore unexpected status events @@ -13,10 +13,10 @@ Change-Id: Ifb9a65fd77f21d15a8dc1ced9240194d38218ef6 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/system/gd/hci/hci_layer.cc b/system/gd/hci/hci_layer.cc -index c3312a557c..3e8ab78371 100644 +index 0889aa69e9..0b61fd4a4a 100644 --- a/system/gd/hci/hci_layer.cc +++ b/system/gd/hci/hci_layer.cc -@@ -211,14 +211,13 @@ struct HciLayer::impl { +@@ -213,14 +213,13 @@ struct HciLayer::impl { command_queue_.front().GetCallback()->Invoke( std::move(command_complete_view)); } else { @@ -39,5 +39,5 @@ index c3312a557c..3e8ab78371 100644 command_queue_.pop_front(); -- -2.41.0 +2.43.1 diff --git a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch index f5032de..35f8b8a 100644 --- a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch +++ b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch @@ -1,4 +1,4 @@ -From a105602829eba6d179d3bfd4f117f2169f724b91 Mon Sep 17 00:00:00 2001 +From 1e1aee85f08b67be4b8805c9c0727ce826b0793a Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:45:18 -0400 Subject: [PATCH 2/2] audio_hal_interface: Optionally use sysbta HAL @@ -7,16 +7,16 @@ Required to support sysbta, our system-side bt audio implementation. Change-Id: I59973e6ec84c5923be8a7c67b36b2e237f000860 --- - system/audio_hal_interface/aidl/client_interface_aidl.cc | 8 ++++---- - system/audio_hal_interface/aidl/client_interface_aidl.h | 7 +++++++ - system/audio_hal_interface/hal_version_manager.cc | 9 ++++++++- + .../audio_hal_interface/aidl/client_interface_aidl.cc | 6 +++--- + .../audio_hal_interface/aidl/client_interface_aidl.h | 7 +++++++ + system/audio_hal_interface/hal_version_manager.cc | 11 +++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.cc b/system/audio_hal_interface/aidl/client_interface_aidl.cc -index 897b891aa7..ed41627c3e 100644 +index 9faa725022..f6706d98f1 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.cc +++ b/system/audio_hal_interface/aidl/client_interface_aidl.cc -@@ -56,7 +56,7 @@ BluetoothAudioClientInterface::BluetoothAudioClientInterface( +@@ -58,7 +58,7 @@ BluetoothAudioClientInterface::BluetoothAudioClientInterface( bool BluetoothAudioClientInterface::is_aidl_available() { return AServiceManager_isDeclared( @@ -25,7 +25,7 @@ index 897b891aa7..ed41627c3e 100644 } std::vector -@@ -72,7 +72,7 @@ BluetoothAudioClientInterface::GetAudioCapabilities(SessionType session_type) { +@@ -74,7 +74,7 @@ BluetoothAudioClientInterface::GetAudioCapabilities(SessionType session_type) { } auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( ::ndk::SpAIBinder(AServiceManager_waitForService( @@ -34,7 +34,7 @@ index 897b891aa7..ed41627c3e 100644 if (provider_factory == nullptr) { LOG(ERROR) << __func__ << ", can't get capability from unknown factory"; -@@ -99,7 +99,7 @@ void BluetoothAudioClientInterface::FetchAudioProvider() { +@@ -101,7 +101,7 @@ void BluetoothAudioClientInterface::FetchAudioProvider() { } auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( ::ndk::SpAIBinder(AServiceManager_waitForService( @@ -43,17 +43,8 @@ index 897b891aa7..ed41627c3e 100644 if (provider_factory == nullptr) { LOG(ERROR) << __func__ << ", can't get capability from unknown factory"; -@@ -266,7 +266,7 @@ int BluetoothAudioClientInterface::GetAidlInterfaceVersion() { - - auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( - ::ndk::SpAIBinder(AServiceManager_waitForService( -- kDefaultAudioProviderFactoryInterface.c_str()))); -+ audioProviderFactoryInterface().c_str()))); - - if (provider_factory == nullptr) { - LOG(ERROR) << __func__ << ", can't get aidl version from unknown factory"; diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.h b/system/audio_hal_interface/aidl/client_interface_aidl.h -index 8a40c1d7d7..6d962d3473 100644 +index 0dd9575acb..d28e8e46fb 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.h +++ b/system/audio_hal_interface/aidl/client_interface_aidl.h @@ -28,6 +28,7 @@ @@ -64,7 +55,7 @@ index 8a40c1d7d7..6d962d3473 100644 #define BLUETOOTH_AUDIO_HAL_PROP_DISABLED \ "persist.bluetooth.bluetooth_audio_hal.disabled" -@@ -119,6 +120,12 @@ class BluetoothAudioClientInterface { +@@ -160,6 +161,12 @@ class BluetoothAudioClientInterface { // "android.hardware.bluetooth.audio.IBluetoothAudioProviderFactory/default"; static inline const std::string kDefaultAudioProviderFactoryInterface = std::string() + IBluetoothAudioProviderFactory::descriptor + "/default"; @@ -78,18 +69,18 @@ index 8a40c1d7d7..6d962d3473 100644 private: IBluetoothTransportInstance* transport_; diff --git a/system/audio_hal_interface/hal_version_manager.cc b/system/audio_hal_interface/hal_version_manager.cc -index a2c192f37d..c3d1cf35c2 100644 +index 275bbb067e..032856ef0e 100644 --- a/system/audio_hal_interface/hal_version_manager.cc +++ b/system/audio_hal_interface/hal_version_manager.cc -@@ -24,6 +24,7 @@ - #include +@@ -25,6 +25,7 @@ #include "aidl/audio_aidl_interfaces.h" + #include "osi/include/log.h" +#include "osi/include/properties.h" namespace bluetooth { namespace audio { -@@ -33,6 +34,12 @@ using ::aidl::android::hardware::bluetooth::audio:: +@@ -34,6 +35,12 @@ using ::aidl::android::hardware::bluetooth::audio:: static const std::string kDefaultAudioProviderFactoryInterface = std::string() + IBluetoothAudioProviderFactory::descriptor + "/default"; @@ -102,15 +93,24 @@ index a2c192f37d..c3d1cf35c2 100644 std::unique_ptr HalVersionManager::instance_ptr = std::make_unique(); -@@ -92,7 +99,7 @@ HalVersionManager::GetProvidersFactory_2_0() { +@@ -88,7 +95,7 @@ BluetoothAudioHalVersion GetAidlInterfaceVersion() { + auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( + ::ndk::SpAIBinder(AServiceManager_waitForService( +- kDefaultAudioProviderFactoryInterface.c_str()))); ++ audioProviderFactoryInterface().c_str()))); + + if (provider_factory == nullptr) { + LOG_ERROR("Can't get aidl version from unknown factory"); +@@ -122,7 +129,7 @@ BluetoothAudioHalVersion GetAidlInterfaceVersion() { HalVersionManager::HalVersionManager() { + hal_transport_ = BluetoothAudioHalTransport::UNKNOWN; if (AServiceManager_checkService( - kDefaultAudioProviderFactoryInterface.c_str()) != nullptr) { + audioProviderFactoryInterface().c_str()) != nullptr) { - hal_version_ = BluetoothAudioHalVersion::VERSION_AIDL_V1; + hal_version_ = GetAidlInterfaceVersion(); + hal_transport_ = BluetoothAudioHalTransport::AIDL; return; - } -- -2.41.0 +2.43.1 diff --git a/system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch b/system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch deleted file mode 100644 index ae8b43c..0000000 --- a/system/bpf/0001-Revert-detect-inability-to-write-to-index-0-of-bpf-m.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 89613b61836c202b6ba3d3f35be16e24500ffe6c Mon Sep 17 00:00:00 2001 -From: Peter Cai -Date: Tue, 6 Dec 2022 18:30:32 -0500 -Subject: [PATCH] Revert "detect inability to write to index != 0 of bpf map - array" - -This reverts commit ead9d83423877458023056f6ccf9390950d6726f. ---- - bpfloader/BpfLoader.cpp | 9 --------- - 1 file changed, 9 deletions(-) - -diff --git a/bpfloader/BpfLoader.cpp b/bpfloader/BpfLoader.cpp -index e53669a..2816161 100644 ---- a/bpfloader/BpfLoader.cpp -+++ b/bpfloader/BpfLoader.cpp -@@ -307,15 +307,6 @@ int main(int argc, char** argv) { - } - } - -- int key = 1; -- int value = 123; -- android::base::unique_fd map( -- android::bpf::createMap(BPF_MAP_TYPE_ARRAY, sizeof(key), sizeof(value), 2, 0)); -- if (android::bpf::writeToMapEntry(map, &key, &value, BPF_ANY)) { -- ALOGE("Critical kernel bug - failure to write into index 1 of 2 element bpf map array."); -- return 1; -- } -- - if (android::base::SetProperty("bpf.progs_loaded", "1") == false) { - ALOGE("Failed to set bpf.progs_loaded property"); - return 1; --- -2.41.0 - diff --git a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch index 2b08444..d82a182 100644 --- a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch +++ b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch @@ -1,7 +1,7 @@ -From 332fec7a7f18271f42c50ad85d955604aaff8777 Mon Sep 17 00:00:00 2001 +From 9a08bf33057b2fe1ec3e4e2d922a67462bafe347 Mon Sep 17 00:00:00 2001 From: Isaac Chen Date: Wed, 23 Jun 2021 13:07:30 +0800 -Subject: [PATCH 1/3] init: Do not start console service when debuggable +Subject: [PATCH 1/2] init: Do not start console service when debuggable Google added a check for this in R, when it's running it will show a notification about that performance is impacted. @@ -13,10 +13,10 @@ Change-Id: I34cfd6b42d3b9aee4b3e63181480cfb8b1255f29 1 file changed, 3 deletions(-) diff --git a/rootdir/init.rc b/rootdir/init.rc -index 7da264611..8b037bc9a 100644 +index 317f80908..9dc09ea4a 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc -@@ -1312,9 +1312,6 @@ on property:ro.debuggable=1 +@@ -1290,9 +1290,6 @@ on property:ro.debuggable=1 # Give reads to anyone for the accessibility trace folder on debug builds. chmod 0775 /data/misc/a11ytrace @@ -27,5 +27,5 @@ index 7da264611..8b037bc9a 100644 # TODO(b/135984674): reset all necessary properties here. setprop sys.boot_completed "" -- -2.41.0 +2.43.1 diff --git a/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch b/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch deleted file mode 100644 index 820092b..0000000 --- a/system/core/0002-Let-system-override-some-properties-ro.apex.updatabl.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a644ef7d888b90a768564e0be805fd1975514e1a Mon Sep 17 00:00:00 2001 -From: Pierre-Hugues Husson -Date: Fri, 21 Apr 2023 13:08:48 -0400 -Subject: [PATCH 2/3] Let system override some properties (ro.apex.updatable, - ro.adb.secure, etc.) - -Change-Id: I3c84fa617f0ab7990abb0d905230a8703cf39bf7 ---- - init/property_service.cpp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/init/property_service.cpp b/init/property_service.cpp -index 8da69822c..0680b8e06 100644 ---- a/init/property_service.cpp -+++ b/init/property_service.cpp -@@ -787,7 +787,12 @@ static void LoadProperties(char* data, const char* filter, const char* filename, - } else if (it->second != value) { - LOG(WARNING) << "Overriding previous property '" << key << "':'" << it->second - << "' with new value '" << value << "'"; -- it->second = value; -+ if (strcmp("ro.apex.updatable", key) == 0 || strcmp("ro.control_privapp_permissions", key) == 0 -+ || strstr(key, "adb") || strstr(key, "secure")) { -+ LOG(WARNING) << "... Ignored"; -+ } else { -+ it->second = value; -+ } - } - } else { - LOG(ERROR) << "Do not have permissions to set '" << key << "' to '" << value --- -2.41.0 - diff --git a/system/core/0002-init-Override-select-system-properties.patch b/system/core/0002-init-Override-select-system-properties.patch new file mode 100644 index 0000000..ec54513 --- /dev/null +++ b/system/core/0002-init-Override-select-system-properties.patch @@ -0,0 +1,87 @@ +From a0aa4c41f921134482737cf32437854816aba057 Mon Sep 17 00:00:00 2001 +From: Pierre-Hugues Husson +Date: Wed, 23 Feb 2022 17:37:47 -0500 +Subject: [PATCH 2/2] init: Override select system properties + +* ro.apex.updatable is overridden based on the kernel version and + vendor. +* adb secure props and logd can be overridden from system. + +Change-Id: I94efa3f108ae97711026f099f367b6bea325629f +--- + init/property_service.cpp | 42 +++++++++++++++++++++++++++++++++++---- + 1 file changed, 38 insertions(+), 4 deletions(-) + +diff --git a/init/property_service.cpp b/init/property_service.cpp +index 013924778..90c6fa538 100644 +--- a/init/property_service.cpp ++++ b/init/property_service.cpp +@@ -64,6 +64,8 @@ + #include + #include + #include ++#include ++ + #include "debug_ramdisk.h" + #include "epoll.h" + #include "init.h" +@@ -704,6 +706,26 @@ uint32_t InitPropertySet(const std::string& name, const std::string& value) { + static Result load_properties_from_file(const char*, const char*, + std::map*); + ++static bool kernel_supports_capex() { ++ // Put a threshold at >= 5.0 ++ struct utsname buf; ++ uname(&buf); ++ const char *where = buf.release; ++ int a = atoi(where); ++ if (a >= 5) return true; ++ ++ // If there are vendor apexes, we most likely actually need them ++ auto dir = std::unique_ptr{opendir("/vendor/apex"), closedir}; ++ if (!dir) { ++ return false; ++ } ++ for (struct dirent* ent = readdir(dir.get()); ent; ent = readdir(dir.get())) { ++ if(strstr(ent->d_name, "apex")) return true; ++ } ++ ++ return false; ++} ++ + /* + * Filter is used to decide which properties to load: NULL loads all keys, + * "ro.foo.*" is a prefix match, and "ro.foo.bar" is an exact match. +@@ -796,13 +818,25 @@ static void LoadProperties(char* data, const char* filter, const char* filename, + std::string error; + if (CheckPermissions(key, value, context, cr, &error) == PROP_SUCCESS) { + auto it = properties->find(key); ++ const char *new_value = value; ++ ++ if (strcmp("ro.apex.updatable", key) == 0) { ++ new_value = kernel_supports_capex() ? "true" : "false"; ++ } + if (it == properties->end()) { +- (*properties)[key] = value; +- } else if (it->second != value) { ++ (*properties)[key] = new_value; ++ } else if (it->second != new_value) { + LOG(WARNING) << "Overriding previous property '" << key << "':'" << it->second + << "' with new value '" << value << "'"; +- it->second = value; +- } ++ if (strcmp("ro.apex.updatable", key) == 0) { ++ LOG(WARNING) << "... Ignored apex by kernel version"; ++ } else if (strstr(key, "adb") || strstr(key, "secure") || strstr(key, "ro.logd.kernel") ++ || strcmp("ro.control_privapp_permissions", key) == 0) { ++ LOG(WARNING) << "... Ignored"; ++ } else { ++ it->second = new_value; ++ } ++ } + } else { + LOG(ERROR) << "Do not have permissions to set '" << key << "' to '" << value + << "' in property file '" << filename << "': " << error; +-- +2.43.1 + diff --git a/system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch b/system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch deleted file mode 100644 index 1ff3a3a..0000000 --- a/system/core/0003-init-Don-t-override-ro.apex.updatable-for-newer-devi.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 896473ddb7ddc7eed869360ab2e06af6c5f882e1 Mon Sep 17 00:00:00 2001 -From: Peter Cai -Date: Fri, 15 Dec 2023 22:47:32 -0500 -Subject: [PATCH 3/3] init: Don't override ro.apex.updatable for newer devices - -...where apexes may be required for hardware features to work. - -Change-Id: Ieed7de617231c93419f03aa31c9182018df131ec ---- - init/property_service.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/init/property_service.cpp b/init/property_service.cpp -index 0680b8e06..5edf246a1 100644 ---- a/init/property_service.cpp -+++ b/init/property_service.cpp -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -787,7 +788,9 @@ static void LoadProperties(char* data, const char* filter, const char* filename, - } else if (it->second != value) { - LOG(WARNING) << "Overriding previous property '" << key << "':'" << it->second - << "' with new value '" << value << "'"; -- if (strcmp("ro.apex.updatable", key) == 0 || strcmp("ro.control_privapp_permissions", key) == 0 -+ struct utsname uts; -+ if ((strcmp("ro.apex.updatable", key) == 0 && !(uname(&uts) == 0 && atoi(uts.release) >= 5)) -+ || strcmp("ro.control_privapp_permissions", key) == 0 - || strstr(key, "adb") || strstr(key, "secure")) { - LOG(WARNING) << "... Ignored"; - } else { --- -2.41.0 - From 6e4f421edbe70cb3e8ee2f965fce1d76f671ebff Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Mar 2024 22:50:46 -0400 Subject: [PATCH 14/19] bluetooth: Revert utterly broken MTK patch MTK please stop sending completely broken patches to AOSP thanks --- ...-hci-Ignore-unexpected-status-events.patch | 2 +- ..._interface-Optionally-use-sysbta-HAL.patch | 2 +- ...ow-latency-flow-for-Mediatek-BT-Chip.patch | 91 +++++++++++++++++++ 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch diff --git a/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch index f17ccff..932f845 100644 --- a/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch +++ b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch @@ -1,7 +1,7 @@ From 638bd11ae1854619a40a5abbedcfdf397e2e1f53 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 10:41:29 -0400 -Subject: [PATCH 1/2] gd: hci: Ignore unexpected status events +Subject: [PATCH 1/3] gd: hci: Ignore unexpected status events For some reason, on some old devices, the controller will report a remote to support SNIFF_SUBRATING even when it does not. Just ignore the diff --git a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch index 35f8b8a..68c9a01 100644 --- a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch +++ b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch @@ -1,7 +1,7 @@ From 1e1aee85f08b67be4b8805c9c0727ce826b0793a Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:45:18 -0400 -Subject: [PATCH 2/2] audio_hal_interface: Optionally use sysbta HAL +Subject: [PATCH 2/3] audio_hal_interface: Optionally use sysbta HAL Required to support sysbta, our system-side bt audio implementation. diff --git a/packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch b/packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch new file mode 100644 index 0000000..67b667c --- /dev/null +++ b/packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch @@ -0,0 +1,91 @@ +From b2dff222788e6fe7e28e27f277980025f9548fa3 Mon Sep 17 00:00:00 2001 +From: Peter Cai +Date: Tue, 12 Mar 2024 22:33:37 -0400 +Subject: [PATCH 3/3] Revert "BT: Add Low latency flow for Mediatek BT Chip" + +This reverts commit 78b3684eb205e1b4bc0aa3e12138687e73f78ebe. +--- + system/stack/include/hcidefs.h | 9 --------- + system/stack/l2cap/l2c_utils.cc | 32 -------------------------------- + 2 files changed, 41 deletions(-) + +diff --git a/system/stack/include/hcidefs.h b/system/stack/include/hcidefs.h +index a8ad4499bf..344507f76d 100644 +--- a/system/stack/include/hcidefs.h ++++ b/system/stack/include/hcidefs.h +@@ -916,9 +916,6 @@ typedef struct { + // TODO Remove this once all UNISOC specific hacks are removed. + #define LMP_COMPID_UNISOC 0x073F + +-// TODO Remove this once all Mediatek specific hacks are removed. +-#define LMP_COMPID_MEDIATEK 0x0046 +- + /* Parameter information for HCI_SYNA_SET_ACL_PRIORITY */ + #define HCI_SYNA_ACL_PRIORITY_PARAM_SIZE 3 + #define HCI_SYNA_ACL_NORMAL_PRIORITY 0xF0 +@@ -932,12 +929,6 @@ typedef struct { + #define HCI_UNISOC_ACL_NORMAL_PRIORITY 0x00 + #define HCI_UNISOC_ACL_HIGH_PRIORITY 0xFF + +-/* Parameter information for HCI_MTK_SET_ACL_PRIORITY */ +-#define HCI_MTK_ACL_PRIORITY_PARAM_SIZE 1 +-#define HCI_MTK_SET_ACL_PRIORITY (0xFD95 | HCI_GRP_VENDOR_SPECIFIC) +-#define HCI_MTK_ACL_NORMAL_PRIORITY 0x00 +-#define HCI_MTK_ACL_HIGH_PRIORITY 0x01 +- + /* + * Define packet size + */ +diff --git a/system/stack/l2cap/l2c_utils.cc b/system/stack/l2cap/l2c_utils.cc +index 7b722f426a..ef213c4de6 100644 +--- a/system/stack/l2cap/l2c_utils.cc ++++ b/system/stack/l2cap/l2c_utils.cc +@@ -2338,34 +2338,6 @@ static void l2cu_set_acl_priority_unisoc(tL2C_LCB* p_lcb, + HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE, command, NULL); + } + +-/******************************************************************************* +- * +- * Function l2cu_set_acl_priority_latency_mtk +- * +- * Description Sends a VSC to set the ACL priority and recorded latency on +- * Mediatek chip. +- * +- * Returns void +- * +- ******************************************************************************/ +- +-static void l2cu_set_acl_priority_latency_mtk(tL2C_LCB* p_lcb, +- tL2CAP_PRIORITY priority) { +- uint8_t vs_param; +- if (priority == L2CAP_PRIORITY_HIGH) { +- // priority to high, if using latency mode check preset latency +- LOG_INFO("Set ACL priority: High Priority Mode"); +- vs_param = HCI_MTK_ACL_HIGH_PRIORITY; +- } else { +- // priority to normal +- LOG_INFO("Set ACL priority: Normal Mode"); +- vs_param = HCI_MTK_ACL_NORMAL_PRIORITY; +- } +- +- BTM_VendorSpecificCommand(HCI_MTK_SET_ACL_PRIORITY, +- HCI_MTK_ACL_PRIORITY_PARAM_SIZE, &vs_param, NULL); +-} +- + /******************************************************************************* + * + * Function l2cu_set_acl_priority +@@ -2410,10 +2382,6 @@ bool l2cu_set_acl_priority(const RawAddress& bd_addr, tL2CAP_PRIORITY priority, + l2cu_set_acl_priority_unisoc(p_lcb, priority); + break; + +- case LMP_COMPID_MEDIATEK: +- l2cu_set_acl_priority_latency_mtk(p_lcb, priority); +- break; +- + default: + /* Not supported/required for other vendors */ + break; +-- +2.43.1 + From bc7032fc5460df8007f925b555f053ffed273a30 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 16 Mar 2024 15:40:07 -0400 Subject: [PATCH 15/19] packages/modules/Connectivity: Fix for R vendors with 4.19 kernels --- ...ort-for-V-gsi-on-pixel-5-R-base-kern.patch | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 packages/modules/Connectivity/0001-Revert-drop-support-for-V-gsi-on-pixel-5-R-base-kern.patch diff --git a/packages/modules/Connectivity/0001-Revert-drop-support-for-V-gsi-on-pixel-5-R-base-kern.patch b/packages/modules/Connectivity/0001-Revert-drop-support-for-V-gsi-on-pixel-5-R-base-kern.patch new file mode 100644 index 0000000..43f61ca --- /dev/null +++ b/packages/modules/Connectivity/0001-Revert-drop-support-for-V-gsi-on-pixel-5-R-base-kern.patch @@ -0,0 +1,44 @@ +From 7c61a53d73e8ac2903653d92fdd2aad8e38ffad3 Mon Sep 17 00:00:00 2001 +From: Peter Cai +Date: Sat, 16 Mar 2024 15:27:27 -0400 +Subject: [PATCH] Revert "drop support for V gsi on pixel 5 R base kernel" + +This reverts commit bbbd18a71368a80f689b924dcf82062c2ee351b2. +--- + ..._android_server_connectivity_ClatCoordinator.cpp | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/service/jni/com_android_server_connectivity_ClatCoordinator.cpp b/service/jni/com_android_server_connectivity_ClatCoordinator.cpp +index c125bd6479..787ef8fd69 100644 +--- a/service/jni/com_android_server_connectivity_ClatCoordinator.cpp ++++ b/service/jni/com_android_server_connectivity_ClatCoordinator.cpp +@@ -90,6 +90,11 @@ static void verifyPerms(const char * const path, + + #undef ALOGF + ++bool isGsiImage() { ++ // this implementation matches 2 other places in the codebase (same function name too) ++ return !access("/system/system_ext/etc/init/init.gsi.rc", F_OK); ++} ++ + static const char* kClatdDir = "/apex/com.android.tethering/bin/for-system"; + static const char* kClatdBin = "/apex/com.android.tethering/bin/for-system/clatd"; + +@@ -130,6 +135,14 @@ static void verifyClatPerms() { + + #undef V2 + ++ // HACK: Some old vendor kernels lack ~5.10 backport of 'bpffs selinux genfscon' support. ++ // This is *NOT* supported, but let's allow, at least for now, U+ GSI to boot on them. ++ // (without this hack pixel5 R vendor + U gsi breaks) ++ if (isGsiImage() && !bpf::isAtLeastKernelVersion(5, 10, 0)) { ++ ALOGE("GSI with *BAD* pre-5.10 kernel lacking bpffs selinux genfscon support."); ++ return; ++ } ++ + if (fatal) abort(); + } + +-- +2.43.1 + From 23d4cb289cf4ffe123610f7612fb2a9416e4316c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 27 Mar 2024 20:13:12 -0400 Subject: [PATCH 16/19] f/a: Add Lineage patch for camera service --- ...orce-load-audio-policy-for-system-si.patch | 4 +- ...2DP-audio-ports-from-the-primary-HAL.patch | 4 +- ...gh-pitched-voice-on-Qualcomm-devices.patch | 4 +- ...and-Q-behavior-respectively-for-tele.patch | 4 +- .../0005-Fix-BT-in-call-on-CAF-devices.patch | 4 +- ...-Use-the-correct-vendor-tag-id-type-.patch | 48 +++++++++++++++++++ 6 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch diff --git a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch index 47702a3..3fc31ef 100644 --- a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch +++ b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch @@ -1,7 +1,7 @@ -From ea475bf0af44eaaa124ce6113f9aa05d6d6daa1a Mon Sep 17 00:00:00 2001 +From 8ce083670ba59e4ddd33895d491a050744dcc134 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:42:39 -0400 -Subject: [PATCH 1/5] APM: Optionally force-load audio policy for system-side +Subject: [PATCH 1/6] APM: Optionally force-load audio policy for system-side bt audio HAL Required to support our system-side bt audio implementation, i.e. diff --git a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch index b3c2e70..6788055 100644 --- a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch +++ b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch @@ -1,7 +1,7 @@ -From bb39db1a329a76edb2f936fbec305dc561638177 Mon Sep 17 00:00:00 2001 +From 54dd7999a1345914fed398daf604522f0e177227 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 25 Aug 2022 13:30:29 -0400 -Subject: [PATCH 2/5] APM: Remove A2DP audio ports from the primary HAL +Subject: [PATCH 2/6] APM: Remove A2DP audio ports from the primary HAL These ports defined in the primary HAL are intended for A2DP offloading, however they do not work in general on GSIs, and will interfere with diff --git a/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch index 4edd366..c2c6384 100644 --- a/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch +++ b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch @@ -1,7 +1,7 @@ -From b0898400ce6154291505edb284a63f2991cac382 Mon Sep 17 00:00:00 2001 +From fc5eda105a6c5bdc57a75d6fc459c7041dc87dde Mon Sep 17 00:00:00 2001 From: ponces Date: Mon, 24 Oct 2022 09:38:34 +0100 -Subject: [PATCH 3/5] voip: Fix high pitched voice on Qualcomm devices +Subject: [PATCH 3/6] voip: Fix high pitched voice on Qualcomm devices Change-Id: I6d314912169776b76d07d8c0301ec5249c1870a2 --- diff --git a/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch index e808505..e156d06 100644 --- a/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch +++ b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch @@ -1,7 +1,7 @@ -From ecc5b31e7fbc1875deee1befd4d1b29e98db8836 Mon Sep 17 00:00:00 2001 +From a7b1332761ec195370f701ec38d81d37c7fb082c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 18 Aug 2022 15:44:46 -0400 -Subject: [PATCH 4/5] APM: Restore S, R and Q behavior respectively for +Subject: [PATCH 4/6] APM: Restore S, R and Q behavior respectively for telephony audio This conditionally reverts part of b2e5cb (T), 51c9cc (S) and afd4ce (R) diff --git a/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch index 0c614b7..9137f75 100644 --- a/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch +++ b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch @@ -1,7 +1,7 @@ -From 91ae0a3a9df1e37856cf0065bb24b7c27bb40ba4 Mon Sep 17 00:00:00 2001 +From d118ce30ea1536f2883e23636d74b90973e3ebf5 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 5 Aug 2019 18:09:50 +0200 -Subject: [PATCH 5/5] Fix BT in-call on CAF devices +Subject: [PATCH 5/6] Fix BT in-call on CAF devices See https://github.com/phhusson/treble_experimentations/issues/374 diff --git a/frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch b/frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch new file mode 100644 index 0000000..845ef65 --- /dev/null +++ b/frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch @@ -0,0 +1,48 @@ +From ab96b0bbaa4bd636121f8015cf9b0406625513d2 Mon Sep 17 00:00:00 2001 +From: danielml +Date: Tue, 26 Mar 2024 11:49:00 +0100 +Subject: [PATCH 6/6] libcameraservice: Use the correct vendor tag id type on + filterParameters + +This fixes an overflow caused by using the `int` type, thus breaking +the camera on cases where the actual vendor tag id is bigger than the +maximum value `int` can hold. + +Test: Open camera, make sure that preview shows correctly and that + there are no vendor tag errors in logs. +Change-Id: Ia00e9e3fcc737bfaf0a917f11690f15d686441ba +Signed-off-by: danielml +--- + .../camera/libcameraservice/utils/SessionConfigurationUtils.cpp | 2 +- + .../camera/libcameraservice/utils/SessionConfigurationUtils.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp b/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp +index 3be8e15161..384f53e23d 100644 +--- a/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp ++++ b/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp +@@ -1133,7 +1133,7 @@ status_t mapRequestTemplateToAidl(camera_request_template_t templateId, + } + + void filterParameters(const CameraMetadata& src, const CameraMetadata& deviceInfo, +- int vendorTagId, CameraMetadata& dst) { ++ metadata_vendor_id_t vendorTagId, CameraMetadata& dst) { + const CameraMetadata params(src); + camera_metadata_ro_entry_t availableSessionKeys = deviceInfo.find( + ANDROID_REQUEST_AVAILABLE_SESSION_KEYS); +diff --git a/services/camera/libcameraservice/utils/SessionConfigurationUtils.h b/services/camera/libcameraservice/utils/SessionConfigurationUtils.h +index 29e3eca9af..5b2ea5c06f 100644 +--- a/services/camera/libcameraservice/utils/SessionConfigurationUtils.h ++++ b/services/camera/libcameraservice/utils/SessionConfigurationUtils.h +@@ -177,7 +177,7 @@ status_t mapRequestTemplateToAidl(camera_request_template_t templateId, + aidl::android::hardware::camera::device::RequestTemplate* tempId /*out*/); + + void filterParameters(const CameraMetadata& src, const CameraMetadata& deviceInfo, +- int vendorTagId, CameraMetadata& dst); ++ metadata_vendor_id_t vendorTagId, CameraMetadata& dst); + + constexpr int32_t MAX_SURFACES_PER_STREAM = 4; + +-- +2.43.1 + From 2eb02ceb6b107d3e81ed23f42b1408cf9bc98601 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 5 Apr 2024 20:06:11 -0400 Subject: [PATCH 17/19] f/av: Remove unneeded vendor tag id fix for r31 --- ...orce-load-audio-policy-for-system-si.patch | 6 +-- ...2DP-audio-ports-from-the-primary-HAL.patch | 6 +-- ...gh-pitched-voice-on-Qualcomm-devices.patch | 6 +-- ...and-Q-behavior-respectively-for-tele.patch | 6 +-- .../0005-Fix-BT-in-call-on-CAF-devices.patch | 6 +-- ...-Use-the-correct-vendor-tag-id-type-.patch | 48 ------------------- 6 files changed, 15 insertions(+), 63 deletions(-) delete mode 100644 frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch diff --git a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch index 3fc31ef..6f098ec 100644 --- a/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch +++ b/frameworks/av/0001-APM-Optionally-force-load-audio-policy-for-system-si.patch @@ -1,7 +1,7 @@ -From 8ce083670ba59e4ddd33895d491a050744dcc134 Mon Sep 17 00:00:00 2001 +From 682110b814e507f7ab30f0027fb3d41519fc809d Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:42:39 -0400 -Subject: [PATCH 1/6] APM: Optionally force-load audio policy for system-side +Subject: [PATCH 1/5] APM: Optionally force-load audio policy for system-side bt audio HAL Required to support our system-side bt audio implementation, i.e. @@ -57,5 +57,5 @@ index 6f19a7a145..08836377b7 100644 // Global Configuration -- -2.43.1 +2.44.0 diff --git a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch index 6788055..5858af4 100644 --- a/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch +++ b/frameworks/av/0002-APM-Remove-A2DP-audio-ports-from-the-primary-HAL.patch @@ -1,7 +1,7 @@ -From 54dd7999a1345914fed398daf604522f0e177227 Mon Sep 17 00:00:00 2001 +From 4dc4f2ff0eb1df7d8bfaab7d5d6a006035c3b403 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 25 Aug 2022 13:30:29 -0400 -Subject: [PATCH 2/6] APM: Remove A2DP audio ports from the primary HAL +Subject: [PATCH 2/5] APM: Remove A2DP audio ports from the primary HAL These ports defined in the primary HAL are intended for A2DP offloading, however they do not work in general on GSIs, and will interfere with @@ -75,5 +75,5 @@ index 08836377b7..0f7c903909 100644 RouteTraits::Collection routes; -- -2.43.1 +2.44.0 diff --git a/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch index c2c6384..77a5202 100644 --- a/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch +++ b/frameworks/av/0003-voip-Fix-high-pitched-voice-on-Qualcomm-devices.patch @@ -1,7 +1,7 @@ -From fc5eda105a6c5bdc57a75d6fc459c7041dc87dde Mon Sep 17 00:00:00 2001 +From 819c95781f525035656b02f00d5251d1328f5073 Mon Sep 17 00:00:00 2001 From: ponces Date: Mon, 24 Oct 2022 09:38:34 +0100 -Subject: [PATCH 3/6] voip: Fix high pitched voice on Qualcomm devices +Subject: [PATCH 3/5] voip: Fix high pitched voice on Qualcomm devices Change-Id: I6d314912169776b76d07d8c0301ec5249c1870a2 --- @@ -52,5 +52,5 @@ index 0f7c903909..c4474cf1c2 100644 ALOGE("%s: No %s found", __func__, Attributes::name); return BAD_VALUE; -- -2.43.1 +2.44.0 diff --git a/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch index e156d06..d62e793 100644 --- a/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch +++ b/frameworks/av/0004-APM-Restore-S-R-and-Q-behavior-respectively-for-tele.patch @@ -1,7 +1,7 @@ -From a7b1332761ec195370f701ec38d81d37c7fb082c Mon Sep 17 00:00:00 2001 +From 96765f345007ee59522f839a6e994f571dc782d3 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 18 Aug 2022 15:44:46 -0400 -Subject: [PATCH 4/6] APM: Restore S, R and Q behavior respectively for +Subject: [PATCH 4/5] APM: Restore S, R and Q behavior respectively for telephony audio This conditionally reverts part of b2e5cb (T), 51c9cc (S) and afd4ce (R) @@ -322,5 +322,5 @@ index a1c8f6202c..ee1b595e30 100644 SourceClientCollection mAudioSources; -- -2.43.1 +2.44.0 diff --git a/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch index 9137f75..7a7b206 100644 --- a/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch +++ b/frameworks/av/0005-Fix-BT-in-call-on-CAF-devices.patch @@ -1,7 +1,7 @@ -From d118ce30ea1536f2883e23636d74b90973e3ebf5 Mon Sep 17 00:00:00 2001 +From caaf4d4bd4fcc3fd59a2185b69ba0d77fe2e66c6 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 5 Aug 2019 18:09:50 +0200 -Subject: [PATCH 5/6] Fix BT in-call on CAF devices +Subject: [PATCH 5/5] Fix BT in-call on CAF devices See https://github.com/phhusson/treble_experimentations/issues/374 @@ -127,5 +127,5 @@ index c4474cf1c2..c1df8f278b 100644 for (const xmlNode *children = cur->xmlChildrenNode; children != NULL; -- -2.43.1 +2.44.0 diff --git a/frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch b/frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch deleted file mode 100644 index 845ef65..0000000 --- a/frameworks/av/0006-libcameraservice-Use-the-correct-vendor-tag-id-type-.patch +++ /dev/null @@ -1,48 +0,0 @@ -From ab96b0bbaa4bd636121f8015cf9b0406625513d2 Mon Sep 17 00:00:00 2001 -From: danielml -Date: Tue, 26 Mar 2024 11:49:00 +0100 -Subject: [PATCH 6/6] libcameraservice: Use the correct vendor tag id type on - filterParameters - -This fixes an overflow caused by using the `int` type, thus breaking -the camera on cases where the actual vendor tag id is bigger than the -maximum value `int` can hold. - -Test: Open camera, make sure that preview shows correctly and that - there are no vendor tag errors in logs. -Change-Id: Ia00e9e3fcc737bfaf0a917f11690f15d686441ba -Signed-off-by: danielml ---- - .../camera/libcameraservice/utils/SessionConfigurationUtils.cpp | 2 +- - .../camera/libcameraservice/utils/SessionConfigurationUtils.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp b/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp -index 3be8e15161..384f53e23d 100644 ---- a/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp -+++ b/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp -@@ -1133,7 +1133,7 @@ status_t mapRequestTemplateToAidl(camera_request_template_t templateId, - } - - void filterParameters(const CameraMetadata& src, const CameraMetadata& deviceInfo, -- int vendorTagId, CameraMetadata& dst) { -+ metadata_vendor_id_t vendorTagId, CameraMetadata& dst) { - const CameraMetadata params(src); - camera_metadata_ro_entry_t availableSessionKeys = deviceInfo.find( - ANDROID_REQUEST_AVAILABLE_SESSION_KEYS); -diff --git a/services/camera/libcameraservice/utils/SessionConfigurationUtils.h b/services/camera/libcameraservice/utils/SessionConfigurationUtils.h -index 29e3eca9af..5b2ea5c06f 100644 ---- a/services/camera/libcameraservice/utils/SessionConfigurationUtils.h -+++ b/services/camera/libcameraservice/utils/SessionConfigurationUtils.h -@@ -177,7 +177,7 @@ status_t mapRequestTemplateToAidl(camera_request_template_t templateId, - aidl::android::hardware::camera::device::RequestTemplate* tempId /*out*/); - - void filterParameters(const CameraMetadata& src, const CameraMetadata& deviceInfo, -- int vendorTagId, CameraMetadata& dst); -+ metadata_vendor_id_t vendorTagId, CameraMetadata& dst); - - constexpr int32_t MAX_SURFACES_PER_STREAM = 4; - --- -2.43.1 - From 714720852efdd8abc2d97e8aba3cde0d26776e48 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 5 Apr 2024 20:09:08 -0400 Subject: [PATCH 18/19] s/core: Remove useless ro.apex.updatable override This doesn't work anymore on r29; remove it. If we want to boot on devices where apexes are broken, we have to find another way. --- ...tart-console-service-when-debuggable.patch | 4 +- ...it-Override-select-system-properties.patch | 51 +++---------------- 2 files changed, 10 insertions(+), 45 deletions(-) diff --git a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch index d82a182..e5d4383 100644 --- a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch +++ b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch @@ -1,4 +1,4 @@ -From 9a08bf33057b2fe1ec3e4e2d922a67462bafe347 Mon Sep 17 00:00:00 2001 +From ce23dec99926b3e688ae5cd85f5da71c8765f89c Mon Sep 17 00:00:00 2001 From: Isaac Chen Date: Wed, 23 Jun 2021 13:07:30 +0800 Subject: [PATCH 1/2] init: Do not start console service when debuggable @@ -27,5 +27,5 @@ index 317f80908..9dc09ea4a 100644 # TODO(b/135984674): reset all necessary properties here. setprop sys.boot_completed "" -- -2.43.1 +2.44.0 diff --git a/system/core/0002-init-Override-select-system-properties.patch b/system/core/0002-init-Override-select-system-properties.patch index ec54513..631840d 100644 --- a/system/core/0002-init-Override-select-system-properties.patch +++ b/system/core/0002-init-Override-select-system-properties.patch @@ -1,66 +1,33 @@ -From a0aa4c41f921134482737cf32437854816aba057 Mon Sep 17 00:00:00 2001 +From b5256522214257f1a5f8ee5ecac84609993f8129 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Wed, 23 Feb 2022 17:37:47 -0500 Subject: [PATCH 2/2] init: Override select system properties -* ro.apex.updatable is overridden based on the kernel version and - vendor. * adb secure props and logd can be overridden from system. Change-Id: I94efa3f108ae97711026f099f367b6bea325629f --- - init/property_service.cpp | 42 +++++++++++++++++++++++++++++++++++---- - 1 file changed, 38 insertions(+), 4 deletions(-) + init/property_service.cpp | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/init/property_service.cpp b/init/property_service.cpp -index 013924778..90c6fa538 100644 +index 013924778..ce164372a 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp -@@ -64,6 +64,8 @@ +@@ -64,6 +64,7 @@ #include #include #include -+#include + #include "debug_ramdisk.h" #include "epoll.h" #include "init.h" -@@ -704,6 +706,26 @@ uint32_t InitPropertySet(const std::string& name, const std::string& value) { - static Result load_properties_from_file(const char*, const char*, - std::map*); - -+static bool kernel_supports_capex() { -+ // Put a threshold at >= 5.0 -+ struct utsname buf; -+ uname(&buf); -+ const char *where = buf.release; -+ int a = atoi(where); -+ if (a >= 5) return true; -+ -+ // If there are vendor apexes, we most likely actually need them -+ auto dir = std::unique_ptr{opendir("/vendor/apex"), closedir}; -+ if (!dir) { -+ return false; -+ } -+ for (struct dirent* ent = readdir(dir.get()); ent; ent = readdir(dir.get())) { -+ if(strstr(ent->d_name, "apex")) return true; -+ } -+ -+ return false; -+} -+ - /* - * Filter is used to decide which properties to load: NULL loads all keys, - * "ro.foo.*" is a prefix match, and "ro.foo.bar" is an exact match. -@@ -796,13 +818,25 @@ static void LoadProperties(char* data, const char* filter, const char* filename, +@@ -796,13 +797,20 @@ static void LoadProperties(char* data, const char* filter, const char* filename, std::string error; if (CheckPermissions(key, value, context, cr, &error) == PROP_SUCCESS) { auto it = properties->find(key); + const char *new_value = value; + -+ if (strcmp("ro.apex.updatable", key) == 0) { -+ new_value = kernel_supports_capex() ? "true" : "false"; -+ } if (it == properties->end()) { - (*properties)[key] = value; - } else if (it->second != value) { @@ -70,9 +37,7 @@ index 013924778..90c6fa538 100644 << "' with new value '" << value << "'"; - it->second = value; - } -+ if (strcmp("ro.apex.updatable", key) == 0) { -+ LOG(WARNING) << "... Ignored apex by kernel version"; -+ } else if (strstr(key, "adb") || strstr(key, "secure") || strstr(key, "ro.logd.kernel") ++ if (strstr(key, "adb") || strstr(key, "secure") || strstr(key, "ro.logd.kernel") + || strcmp("ro.control_privapp_permissions", key) == 0) { + LOG(WARNING) << "... Ignored"; + } else { @@ -83,5 +48,5 @@ index 013924778..90c6fa538 100644 LOG(ERROR) << "Do not have permissions to set '" << key << "' to '" << value << "' in property file '" << filename << "': " << error; -- -2.43.1 +2.44.0 From 18c3fbb0b5094a51bdc248c0a493c2034acdf73c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 15 Jun 2024 13:24:08 -0400 Subject: [PATCH 19/19] Refresh patches for r50 --- ...support-glob-matching-for-properties.patch | 4 +- ...PackageUtils-Add-glob-matching-suppo.patch | 4 +- .../base/0003-Global-VPN-feature-1-2.patch | 16 ++-- ...ze-boot-animation-to-match-screen-si.patch | 6 +- ...ateForSlotIndex-in-SubscriptionManag.patch | 8 +- ...CallingIdentity-variant-with-both-ex.patch | 10 +- ...d.version.incremental-to-signal-OTA-.patch | 42 ++++----- ...ubbleDataRepositoryTest-to-use-mocki.patch | 8 +- ...ce-Do-not-use-HIDL-providers-when-AI.patch | 8 +- ...spoofing-for-microG-Companion-Servic.patch | 30 +++--- .../0001-Global-VPN-feature-2-2.patch | 18 ++-- ...0001-Add-wallpaper-privapp-whitelist.patch | 9 +- ...02-Add-wallpaper-default-permissions.patch | 12 +-- ...-we-read-and-write-launcher-settings.patch | 8 +- ...ssion-for-launcher-preview-rendering.patch | 8 +- ...-hci-Ignore-unexpected-status-events.patch | 12 +-- ..._interface-Optionally-use-sysbta-HAL.patch | 67 ++++++++------ ...ow-latency-flow-for-Mediatek-BT-Chip.patch | 91 ------------------- ...tart-console-service-when-debuggable.patch | 6 +- ...it-Override-select-system-properties.patch | 18 +--- 20 files changed, 152 insertions(+), 233 deletions(-) delete mode 100644 packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch diff --git a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch index 971948f..db89d83 100644 --- a/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch +++ b/frameworks/base/0001-PackageParser-support-glob-matching-for-properties.patch @@ -1,4 +1,4 @@ -From ceeeecf00329e2b0c50aa71c7c4da5aec6a0080b Mon Sep 17 00:00:00 2001 +From 01d09cb926af28c390360747b7e4ce78d913ba5d Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 12 Oct 2021 21:37:22 -0400 Subject: [PATCH 01/10] PackageParser: support glob matching for properties @@ -32,5 +32,5 @@ index 4b579e7db9f8..8176cf8e8567 100644 } return true; -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch b/frameworks/base/0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch index 1d8f58b..3838bab 100644 --- a/frameworks/base/0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch +++ b/frameworks/base/0002-FrameworkParsingPackageUtils-Add-glob-matching-suppo.patch @@ -1,4 +1,4 @@ -From a16e57cffc48223fb6e756b03ebbd16d6d7f1276 Mon Sep 17 00:00:00 2001 +From e9c04f963f87ed7c44c63017f34e24a450c3a3c9 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 2 Sep 2022 21:36:06 -0400 Subject: [PATCH 02/10] FrameworkParsingPackageUtils: Add glob matching support @@ -36,5 +36,5 @@ index 153dd9a93490..900151440ca9 100644 } return true; -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0003-Global-VPN-feature-1-2.patch b/frameworks/base/0003-Global-VPN-feature-1-2.patch index 473451d..d9fbccd 100644 --- a/frameworks/base/0003-Global-VPN-feature-1-2.patch +++ b/frameworks/base/0003-Global-VPN-feature-1-2.patch @@ -1,4 +1,4 @@ -From 2d871d0c51d43d0c3e4ce15a3f811fd5a9c316ad Mon Sep 17 00:00:00 2001 +From 55faa21dece9f9eafdfed5506c6c72130ccf9704 Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:41:43 -0400 Subject: [PATCH 03/10] Global VPN feature [1/2] @@ -28,10 +28,10 @@ Signed-off-by: Mohammad Hasan Keramat J 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java -index 2cc56d838b79..af98f07e9669 100644 +index 51585af10f5d..4603fc609f3d 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java -@@ -17352,6 +17352,12 @@ public final class Settings { +@@ -17696,6 +17696,12 @@ public final class Settings { CLOCKWORK_HOME_READY, }; @@ -45,10 +45,10 @@ index 2cc56d838b79..af98f07e9669 100644 * Keys we no longer back up under the current schema, but want to continue to * process when restoring historical backup datasets. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java -index 4a4d4e1f27b2..a5e06164d0b8 100644 +index f39762766633..c7dc809c986d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java -@@ -39,6 +39,7 @@ import android.os.Handler; +@@ -44,6 +44,7 @@ import android.os.Handler; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; @@ -56,7 +56,7 @@ index 4a4d4e1f27b2..a5e06164d0b8 100644 import android.security.KeyChain; import android.util.ArrayMap; import android.util.Log; -@@ -338,8 +339,13 @@ public class SecurityControllerImpl implements SecurityController { +@@ -383,8 +384,13 @@ public class SecurityControllerImpl implements SecurityController { @Override public void onUserSwitched(int newUserId) { mCurrentUserId = newUserId; @@ -72,7 +72,7 @@ index 4a4d4e1f27b2..a5e06164d0b8 100644 mVpnUserId = newUserInfo.restrictedProfileParentId; } else { diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java -index c5170585a1b3..53d1f6c2c52f 100644 +index b7ece2ea65b1..82a3f45ca993 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -776,6 +776,15 @@ public class Vpn { @@ -197,5 +197,5 @@ index c5170585a1b3..53d1f6c2c52f 100644 // To stop the VPN profile, the caller must be the current prepared package and must be // running an Ikev2VpnProfile. -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0004-Dynamically-resize-boot-animation-to-match-screen-si.patch b/frameworks/base/0004-Dynamically-resize-boot-animation-to-match-screen-si.patch index 5a3dc12..793fe73 100644 --- a/frameworks/base/0004-Dynamically-resize-boot-animation-to-match-screen-si.patch +++ b/frameworks/base/0004-Dynamically-resize-boot-animation-to-match-screen-si.patch @@ -1,4 +1,4 @@ -From 46413dd5f5d3ea13e25327b95f087b063006887d Mon Sep 17 00:00:00 2001 +From 30aef337016de69871d0bdd70568cd7d018540d7 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 20 Dec 2021 15:01:41 -0500 Subject: [PATCH 04/10] Dynamically resize boot animation to match screen size @@ -9,7 +9,7 @@ Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205 1 file changed, 22 insertions(+) diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp -index 820d2b0d607e..56dfa8af31c4 100644 +index 77b74e9898b8..ba14cc03fccb 100644 --- a/cmds/bootanimation/BootAnimation.cpp +++ b/cmds/bootanimation/BootAnimation.cpp @@ -618,6 +618,28 @@ status_t BootAnimation::readyToRun() { @@ -42,5 +42,5 @@ index 820d2b0d607e..56dfa8af31c4 100644 // ro.bootanim.set_orientation_. Four values are supported: ORIENTATION_0, // ORIENTATION_90, ORIENTATION_180 and ORIENTATION_270. -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch b/frameworks/base/0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch index 8f9cbad..085efd7 100644 --- a/frameworks/base/0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch +++ b/frameworks/base/0005-Restore-getSimStateForSlotIndex-in-SubscriptionManag.patch @@ -1,4 +1,4 @@ -From 4b49ad5b8f7401ec6ae02a4db674721ce10ac4ea Mon Sep 17 00:00:00 2001 +From a8cddefcb64fad404a0af0358505057f8890ef1d Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Wed, 2 Aug 2023 20:59:53 +0800 Subject: [PATCH 05/10] Restore getSimStateForSlotIndex in SubscriptionManager @@ -11,10 +11,10 @@ Change-Id: I41bac57c68055f369232359a464642daab94403b 1 file changed, 14 insertions(+) diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java -index 326b6f5af613..b994888362b0 100644 +index c5f2d42389e5..1324741145bd 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java -@@ -2693,6 +2693,20 @@ public class SubscriptionManager { +@@ -2902,6 +2902,20 @@ public class SubscriptionManager { return TelephonyManager.getDefault().isNetworkRoaming(subId); } @@ -36,5 +36,5 @@ index 326b6f5af613..b994888362b0 100644 * Set a field in the subscription database. Note not all fields are supported. * -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch b/frameworks/base/0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch index 031aeab..4fb8474 100644 --- a/frameworks/base/0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch +++ b/frameworks/base/0006-Add-runWithCleanCallingIdentity-variant-with-both-ex.patch @@ -1,4 +1,4 @@ -From 1d03233fbd587b33b92c1017f5682db1a7887692 Mon Sep 17 00:00:00 2001 +From 3090e1f2fc65eb525db64ff05c7a13f1e328deaf Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 12 Aug 2023 20:11:17 +0800 Subject: [PATCH 06/10] Add runWithCleanCallingIdentity variant with both @@ -12,10 +12,10 @@ Change-Id: If444290787025e130dce4bdeaf92372ae32793fe 1 file changed, 30 insertions(+) diff --git a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java -index aed8fb8c4503..1467e7f2fc29 100644 +index a63db88cb614..1d5a36885307 100644 --- a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java +++ b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java -@@ -42,7 +42,9 @@ import com.android.internal.telephony.ITelephony; +@@ -44,7 +44,9 @@ import com.android.internal.telephony.ITelephony; import java.io.PrintWriter; import java.util.Collections; import java.util.List; @@ -25,7 +25,7 @@ index aed8fb8c4503..1467e7f2fc29 100644 import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; -@@ -151,6 +153,34 @@ public final class TelephonyUtils { +@@ -153,6 +155,34 @@ public final class TelephonyUtils { } } @@ -61,5 +61,5 @@ index aed8fb8c4503..1467e7f2fc29 100644 * Filter values in bundle to only basic types. */ -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch b/frameworks/base/0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch index e0c74fb..9463a5b 100644 --- a/frameworks/base/0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch +++ b/frameworks/base/0007-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch @@ -1,4 +1,4 @@ -From 696e378fac49c9a90032b588dd4bb0887b44452f Mon Sep 17 00:00:00 2001 +From da661076da778c1ea9b9ef4411b386e445ab1675 Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Tue, 24 Nov 2015 01:53:47 -0500 Subject: [PATCH 07/10] fw/b: Use ro.build.version.incremental to signal OTA @@ -85,7 +85,7 @@ index 9e6c91f4ec31..7459b0e05e3a 100644 } try { diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java -index a6b532cdef09..7f41474c63f4 100644 +index 3abfe082db27..a6dbeb4bd051 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -89,6 +89,7 @@ import android.content.pm.UserInfo; @@ -96,7 +96,7 @@ index a6b532cdef09..7f41474c63f4 100644 import android.os.Bundle; import android.os.Debug; import android.os.Handler; -@@ -774,7 +775,7 @@ class UserController implements Handler.Callback { +@@ -775,7 +776,7 @@ class UserController implements Handler.Callback { // purposefully block sending BOOT_COMPLETED until after all // PRE_BOOT receivers are finished to avoid ANR'ing apps final UserInfo info = getUserInfo(userId); @@ -106,10 +106,10 @@ index a6b532cdef09..7f41474c63f4 100644 // Suppress double notifications for managed profiles that // were unlocked automatically as part of their parent user being diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java -index bc441b84c58b..68e3f9f73c74 100644 +index c814a1ef1c13..441d0163cf1a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java -@@ -1746,7 +1746,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -1789,7 +1789,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } PackageManagerService m = new PackageManagerService(injector, factoryTest, @@ -118,7 +118,7 @@ index bc441b84c58b..68e3f9f73c74 100644 Build.VERSION.SDK_INT, Build.VERSION.INCREMENTAL); t.traceEnd(); // "create package manager" -@@ -2225,9 +2225,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2269,9 +2269,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService mIsUpgrade = !partitionsFingerprint.equals(ver.fingerprint); if (mIsUpgrade) { @@ -128,9 +128,9 @@ index bc441b84c58b..68e3f9f73c74 100644 + PackageManagerServiceUtils.logCriticalInfo(Log.INFO, "Upgrading from " + + ver.fingerprint + " to " + Build.VERSION.INCREMENTAL); } - + mPriorSdkVersion = mIsUpgrade ? ver.sdkVersion : -1; mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper, -@@ -2364,8 +2363,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2408,8 +2407,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService // allow... it would be nice to have some better way to handle // this situation. if (mIsUpgrade) { @@ -141,7 +141,7 @@ index bc441b84c58b..68e3f9f73c74 100644 + "; regranting permissions for internal storage"); } mPermissionManager.onStorageVolumeMounted( -@@ -2387,7 +2386,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2431,7 +2430,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService // across OTAs and are used to drive profile verification (post OTA) and // profile compilation (without waiting to collect a fresh set of profiles). if (mIsUpgrade) { @@ -150,7 +150,7 @@ index bc441b84c58b..68e3f9f73c74 100644 for (int i = 0; i < packageSettings.size(); i++) { final PackageSetting ps = packageSettings.valueAt(i); if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, ps.getVolumeUuid())) { -@@ -2399,7 +2398,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService +@@ -2443,7 +2442,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } } ver.buildFingerprint = Build.FINGERPRINT; @@ -160,10 +160,10 @@ index bc441b84c58b..68e3f9f73c74 100644 // Defer the app data fixup until we are done with app data clearing above. diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java -index d6952262d82e..d03a3522a67a 100644 +index fe65010b7281..04a8e24839e9 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java -@@ -481,7 +481,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile +@@ -482,7 +482,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile sdkVersion = Build.VERSION.SDK_INT; databaseVersion = CURRENT_DATABASE_VERSION; buildFingerprint = Build.FINGERPRINT; @@ -172,7 +172,7 @@ index d6952262d82e..d03a3522a67a 100644 } } -@@ -5983,7 +5983,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile +@@ -6020,7 +6020,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile } private String getExtendedFingerprint(long version) { @@ -182,10 +182,10 @@ index d6952262d82e..d03a3522a67a 100644 private static long uniformRandom(double low, double high) { diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java -index 3adeb4b5925f..4895a71c1322 100644 +index c1ab3f9e3eb9..1b0c9917f43e 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java -@@ -5208,7 +5208,7 @@ public class ShortcutService extends IShortcutService.Stub { +@@ -5230,7 +5230,7 @@ public class ShortcutService extends IShortcutService.Stub { // Injection point. String injectBuildFingerprint() { @@ -195,10 +195,10 @@ index 3adeb4b5925f..4895a71c1322 100644 final void wtf(String message) { diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java -index c48eccf2aac5..9033d8ee5e7a 100644 +index 7349755402b1..8ff9359c98e7 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java -@@ -5100,7 +5100,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -5420,7 +5420,7 @@ public class UserManagerService extends IUserManager.Stub { userInfo.creationTime = getCreationTime(); userInfo.partial = true; userInfo.preCreated = preCreate; @@ -207,7 +207,7 @@ index c48eccf2aac5..9033d8ee5e7a 100644 if (userTypeDetails.hasBadge() && parentId != UserHandle.USER_NULL) { userInfo.profileBadge = getFreeProfileBadgeLU(parentId, userType); } -@@ -6401,7 +6401,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6722,7 +6722,7 @@ public class UserManagerService extends IUserManager.Stub { TimingsTraceAndSlog t = new TimingsTraceAndSlog(); t.traceBegin("onBeforeStartUser-" + userId); // Migrate only if build fingerprints mismatch @@ -216,7 +216,7 @@ index c48eccf2aac5..9033d8ee5e7a 100644 userInfo.lastLoggedInFingerprint); t.traceBegin("prepareUserData"); mUserDataPreparer.prepareUserData(userInfo, StorageManager.FLAG_STORAGE_DE); -@@ -6431,7 +6431,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6752,7 +6752,7 @@ public class UserManagerService extends IUserManager.Stub { return; } // Migrate only if build fingerprints mismatch @@ -225,7 +225,7 @@ index c48eccf2aac5..9033d8ee5e7a 100644 userInfo.lastLoggedInFingerprint); final TimingsTraceAndSlog t = new TimingsTraceAndSlog(); -@@ -6476,7 +6476,7 @@ public class UserManagerService extends IUserManager.Stub { +@@ -6797,7 +6797,7 @@ public class UserManagerService extends IUserManager.Stub { if (now > EPOCH_PLUS_30_YEARS) { userData.info.lastLoggedInTime = now; } @@ -235,5 +235,5 @@ index c48eccf2aac5..9033d8ee5e7a 100644 } -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch b/frameworks/base/0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch index 5a271e5..a6f52d9 100644 --- a/frameworks/base/0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch +++ b/frameworks/base/0008-Revert-Convert-BubbleDataRepositoryTest-to-use-mocki.patch @@ -1,4 +1,4 @@ -From eeeb323b495245354be3b98089a430ee04f67ae5 Mon Sep 17 00:00:00 2001 +From 52196edce8f30a2b061beb934f477eec673ef43e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 9 Dec 2023 18:37:08 -0500 Subject: [PATCH 08/10] Revert "Convert BubbleDataRepositoryTest to use @@ -11,10 +11,10 @@ This reverts commit 625a23ff22f0a9327b9a24341dfa0b8fbaf61a1b. 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/libs/WindowManager/Shell/tests/unittest/Android.bp b/libs/WindowManager/Shell/tests/unittest/Android.bp -index aadadd604d3e..70106c3d41b4 100644 +index 32c070305e05..6eaf19953093 100644 --- a/libs/WindowManager/Shell/tests/unittest/Android.bp +++ b/libs/WindowManager/Shell/tests/unittest/Android.bp -@@ -44,7 +44,6 @@ android_test { +@@ -48,7 +48,6 @@ android_test { "frameworks-base-testutils", "kotlinx-coroutines-android", "kotlinx-coroutines-core", @@ -71,5 +71,5 @@ index e35995775f76..0e05e01a8da3 100644 } \ No newline at end of file -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch b/frameworks/base/0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch index 2af5671..d84c410 100644 --- a/frameworks/base/0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch +++ b/frameworks/base/0009-FingerprintService-Do-not-use-HIDL-providers-when-AI.patch @@ -1,4 +1,4 @@ -From 9c7aba6023ca7fe010300d1c92af0c9e461afd10 Mon Sep 17 00:00:00 2001 +From 0f6bac48544a7b15180fe62f970c6c9760d12b5c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 15 Dec 2023 22:48:39 -0500 Subject: [PATCH 09/10] FingerprintService: Do not use HIDL providers when AIDL @@ -13,10 +13,10 @@ Change-Id: I9942e91a95106a7a11ab7ddf145d87562d1b7c0d 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java -index 83b306b07c27..7f144a0f615f 100644 +index 1ba12134ab29..09a24052e18f 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java -@@ -889,8 +889,9 @@ public class FingerprintService extends SystemService { +@@ -913,8 +913,9 @@ public class FingerprintService extends SystemService { filteredInstances = filterAvailableHalInstances(hidlSensors, aidlSensors); final List providers = new ArrayList<>(); @@ -28,5 +28,5 @@ index 83b306b07c27..7f144a0f615f 100644 return providers; }); -- -2.43.1 +2.44.0 diff --git a/frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch b/frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch index 7463878..6ac22c9 100644 --- a/frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch +++ b/frameworks/base/0010-Allow-signature-spoofing-for-microG-Companion-Servic.patch @@ -1,4 +1,4 @@ -From ae82395ce31a35c73b817fc25b8b7d5f96c32770 Mon Sep 17 00:00:00 2001 +From 3b581eb494050e35ba1e044898bb85811bc4ec61 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Mon, 19 Feb 2024 16:20:04 +0100 Subject: [PATCH 10/10] Allow signature spoofing for microG Companion/Services @@ -17,11 +17,11 @@ phh change: No need to be debuggable Change-Id: I8fc82ed266a2cc59636b662c7ea7e29c94f509b5 --- .../com/android/server/pm/AppsFilterImpl.java | 2 + - .../com/android/server/pm/ComputerEngine.java | 46 +++++++++++++++++++ - 2 files changed, 48 insertions(+) + .../com/android/server/pm/ComputerEngine.java | 47 +++++++++++++++++++ + 2 files changed, 49 insertions(+) diff --git a/services/core/java/com/android/server/pm/AppsFilterImpl.java b/services/core/java/com/android/server/pm/AppsFilterImpl.java -index 82622d9a4ea8..277c9abe2e1c 100644 +index cc4c2b5bf893..57263da936d6 100644 --- a/services/core/java/com/android/server/pm/AppsFilterImpl.java +++ b/services/core/java/com/android/server/pm/AppsFilterImpl.java @@ -36,6 +36,7 @@ import static com.android.server.pm.AppsFilterUtils.canQueryAsUpdateOwner; @@ -41,10 +41,10 @@ index 82622d9a4ea8..277c9abe2e1c 100644 || newPkg.isForceQueryable() || ArrayUtils.contains(mForceQueryableByDevicePackageNames, diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java -index 3cb2420cd223..b0d9be30edc1 100644 +index 9afdde53643c..fe73eadb3352 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java -@@ -100,6 +100,7 @@ import android.content.pm.UserPackage; +@@ -102,6 +102,7 @@ import android.content.pm.UserPackage; import android.content.pm.VersionedPackage; import android.os.Binder; import android.os.Build; @@ -52,7 +52,7 @@ index 3cb2420cd223..b0d9be30edc1 100644 import android.os.IBinder; import android.os.ParcelableException; import android.os.PatternMatcher; -@@ -172,6 +173,7 @@ import java.util.Collections; +@@ -174,6 +175,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Objects; @@ -60,7 +60,7 @@ index 3cb2420cd223..b0d9be30edc1 100644 import java.util.Set; import java.util.UUID; -@@ -421,6 +423,10 @@ public class ComputerEngine implements Computer { +@@ -423,6 +425,10 @@ public class ComputerEngine implements Computer { private final PackageManagerInternal.ExternalSourcesPolicy mExternalSourcesPolicy; private final CrossProfileIntentResolverEngine mCrossProfileIntentResolverEngine; @@ -71,7 +71,7 @@ index 3cb2420cd223..b0d9be30edc1 100644 // PackageManagerService attributes that are primitives are referenced through the // pms object directly. Primitives are the only attributes so referenced. protected final PackageManagerService mService; -@@ -1463,6 +1469,42 @@ public class ComputerEngine implements Computer { +@@ -1465,6 +1471,42 @@ public class ComputerEngine implements Computer { return result; } @@ -114,17 +114,25 @@ index 3cb2420cd223..b0d9be30edc1 100644 public final PackageInfo generatePackageInfo(PackageStateInternal ps, @PackageManager.PackageInfoFlagsBits long flags, int userId) { if (!mUserManager.exists(userId)) return null; -@@ -1511,6 +1553,10 @@ public class ComputerEngine implements Computer { +@@ -1513,6 +1555,10 @@ public class ComputerEngine implements Computer { packageInfo.packageName = packageInfo.applicationInfo.packageName = resolveExternalPackageName(p); + generateFakeSignature(p).ifPresent(fakeSignature -> { + packageInfo.signatures = new Signature[]{fakeSignature}; + }); ++ + if (Flags.provideInfoOfApkInApex()) { + final String apexModuleName = ps.getApexModuleName(); + if (apexModuleName != null) { +@@ -1520,6 +1566,7 @@ public class ComputerEngine implements Computer { + mApexManager.getActivePackageNameForApexModuleName(apexModuleName)); + } + } + return packageInfo; } else if ((flags & (MATCH_UNINSTALLED_PACKAGES | MATCH_ARCHIVED_PACKAGES)) != 0 && PackageUserStateUtils.isAvailable(state, flags)) { -- -2.43.1 +2.44.0 diff --git a/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch b/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch index 444a88d..19033f9 100644 --- a/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch +++ b/packages/apps/Settings/0001-Global-VPN-feature-2-2.patch @@ -1,4 +1,4 @@ -From 22b752c0770f00c92ad91ab2c17b52a1c2c651a9 Mon Sep 17 00:00:00 2001 +From ef5e90c542a7cffcaabfbe76ffc3a6826587ede8 Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Thu, 8 Jul 2021 10:40:49 -0400 Subject: [PATCH] Global VPN feature [2/2] @@ -15,13 +15,13 @@ Signed-off-by: Mohammad Hasan Keramat J 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml -index 630aeed0049..20902850060 100644 +index ef93ba71132..a83c8de557e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml -@@ -12633,4 +12633,10 @@ - - - +@@ -13017,4 +13017,10 @@ + + + Show pointer while hovering + + + Global VPN @@ -47,10 +47,10 @@ index dffbbbe3116..93df378fd76 100644 android:key="always_on_vpn" android:title="@string/vpn_menu_lockdown" diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java -index 1d5b3cc6d51..c1180ea1a8e 100644 +index 00c8f5994ce..c4f447f44fb 100644 --- a/src/com/android/settings/vpn2/AppManagementFragment.java +++ b/src/com/android/settings/vpn2/AppManagementFragment.java -@@ -28,10 +28,12 @@ import android.content.pm.ApplicationInfo; +@@ -27,10 +27,12 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; @@ -177,5 +177,5 @@ index 1d5b3cc6d51..c1180ea1a8e 100644 private static final String TAG = "CannotConnect"; private static final String ARG_VPN_LABEL = "label"; -- -2.43.1 +2.44.0 diff --git a/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch b/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch index b375179..0133d64 100644 --- a/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch +++ b/packages/apps/ThemePicker/0001-Add-wallpaper-privapp-whitelist.patch @@ -1,4 +1,4 @@ -From d5cd47a4f197ab1d30b3ab03adfa27a602e94d70 Mon Sep 17 00:00:00 2001 +From 51bbaa3c11244498aec37e305716eaaa08c9fa5f Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Fri, 1 Nov 2019 21:14:29 +0100 Subject: [PATCH 1/4] Add wallpaper privapp whitelist @@ -11,15 +11,16 @@ Change-Id: I044b1d9201ac0b8780fc37a387f401f3dd0ddeac create mode 100644 privapp_whitelist_com.android.wallpaper.xml diff --git a/Android.bp b/Android.bp -index d3a7c514..e23d0c84 100644 +index 8676f26c..a61ee790 100644 --- a/Android.bp +++ b/Android.bp -@@ -141,5 +141,14 @@ android_app { +@@ -133,6 +133,15 @@ android_app { platform_apis: true, manifest: "AndroidManifest.xml", additional_manifests: [":WallpaperPicker2_Manifest"], + required: ["privapp_whitelist_com.android.wallpaper.xml"], overrides: ["WallpaperPicker", "WallpaperPicker2"], + static_libs: ["ThemePickerApplicationLib"], } + +prebuilt_etc_xml { @@ -60,5 +61,5 @@ index 00000000..e3f3b658 + + -- -2.43.1 +2.44.0 diff --git a/packages/apps/ThemePicker/0002-Add-wallpaper-default-permissions.patch b/packages/apps/ThemePicker/0002-Add-wallpaper-default-permissions.patch index 56865fd..cb81161 100644 --- a/packages/apps/ThemePicker/0002-Add-wallpaper-default-permissions.patch +++ b/packages/apps/ThemePicker/0002-Add-wallpaper-default-permissions.patch @@ -1,4 +1,4 @@ -From 17911eaa692b1b4db729ab0662827a50f9e7e2ff Mon Sep 17 00:00:00 2001 +From cc2bdac1523f69e04f4e9e919e6f9aa6056cfd01 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Tue, 15 Sep 2020 03:27:19 +0200 Subject: [PATCH 2/4] Add wallpaper default permissions @@ -11,10 +11,10 @@ Change-Id: If43a594da31fbab9280ce45b049737f6c534b620 create mode 100644 default_permissions_com.android.wallpaper.xml diff --git a/Android.bp b/Android.bp -index e23d0c84..44319052 100644 +index a61ee790..c07b2ee1 100644 --- a/Android.bp +++ b/Android.bp -@@ -141,7 +141,10 @@ android_app { +@@ -133,7 +133,10 @@ android_app { platform_apis: true, manifest: "AndroidManifest.xml", additional_manifests: [":WallpaperPicker2_Manifest"], @@ -24,9 +24,9 @@ index e23d0c84..44319052 100644 + "default_permissions_com.android.wallpaper.xml", + ], overrides: ["WallpaperPicker", "WallpaperPicker2"], + static_libs: ["ThemePickerApplicationLib"], } - -@@ -152,3 +155,11 @@ prebuilt_etc_xml { +@@ -145,3 +148,11 @@ prebuilt_etc_xml { filename_from_src: true, sub_dir: "permissions", } @@ -82,5 +82,5 @@ index 00000000..41b23ce1 + + -- -2.43.1 +2.44.0 diff --git a/packages/apps/ThemePicker/0003-Specify-we-read-and-write-launcher-settings.patch b/packages/apps/ThemePicker/0003-Specify-we-read-and-write-launcher-settings.patch index af530ec..5461d71 100644 --- a/packages/apps/ThemePicker/0003-Specify-we-read-and-write-launcher-settings.patch +++ b/packages/apps/ThemePicker/0003-Specify-we-read-and-write-launcher-settings.patch @@ -1,4 +1,4 @@ -From b20465459c5c8848bd4c31ff4499f5bbb51afc48 Mon Sep 17 00:00:00 2001 +From c6f2fb731c84223bb5790241d5d901908f40f2ca Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Fri, 1 Nov 2019 23:17:08 +0100 Subject: [PATCH 3/4] Specify we read and write launcher settings @@ -9,10 +9,10 @@ Change-Id: Ifc8196588443b007602118389ca76d34ab531f14 1 file changed, 3 insertions(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml -index b8126e55..2dd11fbb 100755 +index 6e5844de..555d3b63 100755 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml -@@ -54,6 +54,9 @@ +@@ -60,6 +60,9 @@ @@ -23,5 +23,5 @@ index b8126e55..2dd11fbb 100755 tools:replace="android:icon,android:name" android:extractNativeLibs="false" -- -2.43.1 +2.44.0 diff --git a/packages/apps/ThemePicker/0004-Add-permission-for-launcher-preview-rendering.patch b/packages/apps/ThemePicker/0004-Add-permission-for-launcher-preview-rendering.patch index 68301ac..6084efd 100644 --- a/packages/apps/ThemePicker/0004-Add-permission-for-launcher-preview-rendering.patch +++ b/packages/apps/ThemePicker/0004-Add-permission-for-launcher-preview-rendering.patch @@ -1,4 +1,4 @@ -From 20d38bfa9324501ac1c1c183c72427f2662bcd28 Mon Sep 17 00:00:00 2001 +From cb6fbb5ce4555504bb2bf317a694f52a1c2dcd6a Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Tue, 5 Oct 2021 22:40:58 -0700 Subject: [PATCH 4/4] Add permission for launcher preview rendering @@ -10,10 +10,10 @@ Change-Id: Ie707dcd98161e8f5993b0504295fddc3f395cd20 2 files changed, 2 insertions(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml -index 2dd11fbb..63d76b8e 100755 +index 555d3b63..02fa70f1 100755 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml -@@ -8,6 +8,7 @@ +@@ -13,6 +13,7 @@ @@ -33,5 +33,5 @@ index e3f3b658..47133be8 100644 -- -2.43.1 +2.44.0 diff --git a/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch index 932f845..344eacc 100644 --- a/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch +++ b/packages/modules/Bluetooth/0001-gd-hci-Ignore-unexpected-status-events.patch @@ -1,7 +1,7 @@ -From 638bd11ae1854619a40a5abbedcfdf397e2e1f53 Mon Sep 17 00:00:00 2001 +From a4c4caca86ecfe7f0dfce67fc479f9777be26410 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 10:41:29 -0400 -Subject: [PATCH 1/3] gd: hci: Ignore unexpected status events +Subject: [PATCH 1/2] gd: hci: Ignore unexpected status events For some reason, on some old devices, the controller will report a remote to support SNIFF_SUBRATING even when it does not. Just ignore the @@ -13,10 +13,10 @@ Change-Id: Ifb9a65fd77f21d15a8dc1ced9240194d38218ef6 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/system/gd/hci/hci_layer.cc b/system/gd/hci/hci_layer.cc -index 0889aa69e9..0b61fd4a4a 100644 +index 5ae661cb75..d91bb1480d 100644 --- a/system/gd/hci/hci_layer.cc +++ b/system/gd/hci/hci_layer.cc -@@ -213,14 +213,13 @@ struct HciLayer::impl { +@@ -218,14 +218,13 @@ struct HciLayer::impl { command_queue_.front().GetCallback()->Invoke( std::move(command_complete_view)); } else { @@ -37,7 +37,7 @@ index 0889aa69e9..0b61fd4a4a 100644 + } } - command_queue_.pop_front(); + #ifdef TARGET_FLOSS -- -2.43.1 +2.44.0 diff --git a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch index 68c9a01..46f6904 100644 --- a/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch +++ b/packages/modules/Bluetooth/0002-audio_hal_interface-Optionally-use-sysbta-HAL.patch @@ -1,22 +1,22 @@ -From 1e1aee85f08b67be4b8805c9c0727ce826b0793a Mon Sep 17 00:00:00 2001 +From 16e6571d11f6a2509a496e84e0d08ebae3b39254 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 24 Aug 2022 15:45:18 -0400 -Subject: [PATCH 2/3] audio_hal_interface: Optionally use sysbta HAL +Subject: [PATCH 2/2] audio_hal_interface: Optionally use sysbta HAL Required to support sysbta, our system-side bt audio implementation. Change-Id: I59973e6ec84c5923be8a7c67b36b2e237f000860 --- - .../audio_hal_interface/aidl/client_interface_aidl.cc | 6 +++--- + .../audio_hal_interface/aidl/client_interface_aidl.cc | 8 ++++---- .../audio_hal_interface/aidl/client_interface_aidl.h | 7 +++++++ system/audio_hal_interface/hal_version_manager.cc | 11 +++++++++-- - 3 files changed, 19 insertions(+), 5 deletions(-) + 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.cc b/system/audio_hal_interface/aidl/client_interface_aidl.cc -index 9faa725022..f6706d98f1 100644 +index 76e8788d02..a990422993 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.cc +++ b/system/audio_hal_interface/aidl/client_interface_aidl.cc -@@ -58,7 +58,7 @@ BluetoothAudioClientInterface::BluetoothAudioClientInterface( +@@ -63,7 +63,7 @@ BluetoothAudioClientInterface::BluetoothAudioClientInterface( bool BluetoothAudioClientInterface::is_aidl_available() { return AServiceManager_isDeclared( @@ -25,7 +25,7 @@ index 9faa725022..f6706d98f1 100644 } std::vector -@@ -74,7 +74,7 @@ BluetoothAudioClientInterface::GetAudioCapabilities(SessionType session_type) { +@@ -79,7 +79,7 @@ BluetoothAudioClientInterface::GetAudioCapabilities(SessionType session_type) { } auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( ::ndk::SpAIBinder(AServiceManager_waitForService( @@ -34,7 +34,16 @@ index 9faa725022..f6706d98f1 100644 if (provider_factory == nullptr) { LOG(ERROR) << __func__ << ", can't get capability from unknown factory"; -@@ -101,7 +101,7 @@ void BluetoothAudioClientInterface::FetchAudioProvider() { +@@ -108,7 +108,7 @@ BluetoothAudioClientInterface::GetProviderInfo( + if (provider_factory == nullptr) { + provider_factory = IBluetoothAudioProviderFactory::fromBinder( + ::ndk::SpAIBinder(AServiceManager_waitForService( +- kDefaultAudioProviderFactoryInterface.c_str()))); ++ audioProviderFactoryInterface().c_str()))); + } + + if (provider_factory == nullptr) { +@@ -192,7 +192,7 @@ void BluetoothAudioClientInterface::FetchAudioProvider() { } auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( ::ndk::SpAIBinder(AServiceManager_waitForService( @@ -44,18 +53,18 @@ index 9faa725022..f6706d98f1 100644 if (provider_factory == nullptr) { LOG(ERROR) << __func__ << ", can't get capability from unknown factory"; diff --git a/system/audio_hal_interface/aidl/client_interface_aidl.h b/system/audio_hal_interface/aidl/client_interface_aidl.h -index 0dd9575acb..d28e8e46fb 100644 +index c191e4054e..99d5192376 100644 --- a/system/audio_hal_interface/aidl/client_interface_aidl.h +++ b/system/audio_hal_interface/aidl/client_interface_aidl.h -@@ -28,6 +28,7 @@ +@@ -27,6 +27,7 @@ + #include "audio_ctrl_ack.h" #include "bluetooth_audio_port_impl.h" - #include "common/message_loop_thread.h" #include "transport_instance.h" +#include "osi/include/properties.h" #define BLUETOOTH_AUDIO_HAL_PROP_DISABLED \ "persist.bluetooth.bluetooth_audio_hal.disabled" -@@ -160,6 +161,12 @@ class BluetoothAudioClientInterface { +@@ -175,6 +176,12 @@ class BluetoothAudioClientInterface { // "android.hardware.bluetooth.audio.IBluetoothAudioProviderFactory/default"; static inline const std::string kDefaultAudioProviderFactoryInterface = std::string() + IBluetoothAudioProviderFactory::descriptor + "/default"; @@ -69,18 +78,18 @@ index 0dd9575acb..d28e8e46fb 100644 private: IBluetoothTransportInstance* transport_; diff --git a/system/audio_hal_interface/hal_version_manager.cc b/system/audio_hal_interface/hal_version_manager.cc -index 275bbb067e..032856ef0e 100644 +index 36672cb32c..d2b75e7891 100644 --- a/system/audio_hal_interface/hal_version_manager.cc +++ b/system/audio_hal_interface/hal_version_manager.cc -@@ -25,6 +25,7 @@ - +@@ -26,6 +26,7 @@ #include "aidl/audio_aidl_interfaces.h" - #include "osi/include/log.h" + #include "include/check.h" + #include "os/log.h" +#include "osi/include/properties.h" namespace bluetooth { namespace audio { -@@ -34,6 +35,12 @@ using ::aidl::android::hardware::bluetooth::audio:: +@@ -35,6 +36,12 @@ using ::aidl::android::hardware::bluetooth::audio:: static const std::string kDefaultAudioProviderFactoryInterface = std::string() + IBluetoothAudioProviderFactory::descriptor + "/default"; @@ -91,18 +100,18 @@ index 275bbb067e..032856ef0e 100644 + ? kSystemAudioProviderFactoryInterface : kDefaultAudioProviderFactoryInterface; +} - std::unique_ptr HalVersionManager::instance_ptr = - std::make_unique(); -@@ -88,7 +95,7 @@ BluetoothAudioHalVersion GetAidlInterfaceVersion() { + std::string toString(BluetoothAudioHalTransport transport) { + switch (transport) { +@@ -76,7 +83,7 @@ BluetoothAudioHalVersion GetAidlInterfaceVersion() { + int version = 0; + auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( + ::ndk::SpAIBinder(AServiceManager_waitForService( +- kDefaultAudioProviderFactoryInterface.c_str()))); ++ audioProviderFactoryInterface().c_str()))); - auto provider_factory = IBluetoothAudioProviderFactory::fromBinder( - ::ndk::SpAIBinder(AServiceManager_waitForService( -- kDefaultAudioProviderFactoryInterface.c_str()))); -+ audioProviderFactoryInterface().c_str()))); - - if (provider_factory == nullptr) { - LOG_ERROR("Can't get aidl version from unknown factory"); -@@ -122,7 +129,7 @@ BluetoothAudioHalVersion GetAidlInterfaceVersion() { + if (provider_factory == nullptr) { + LOG_ERROR( +@@ -146,7 +153,7 @@ HalVersionManager::GetProvidersFactory_2_0() { HalVersionManager::HalVersionManager() { hal_transport_ = BluetoothAudioHalTransport::UNKNOWN; if (AServiceManager_checkService( @@ -112,5 +121,5 @@ index 275bbb067e..032856ef0e 100644 hal_transport_ = BluetoothAudioHalTransport::AIDL; return; -- -2.43.1 +2.44.0 diff --git a/packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch b/packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch deleted file mode 100644 index 67b667c..0000000 --- a/packages/modules/Bluetooth/0003-Revert-BT-Add-Low-latency-flow-for-Mediatek-BT-Chip.patch +++ /dev/null @@ -1,91 +0,0 @@ -From b2dff222788e6fe7e28e27f277980025f9548fa3 Mon Sep 17 00:00:00 2001 -From: Peter Cai -Date: Tue, 12 Mar 2024 22:33:37 -0400 -Subject: [PATCH 3/3] Revert "BT: Add Low latency flow for Mediatek BT Chip" - -This reverts commit 78b3684eb205e1b4bc0aa3e12138687e73f78ebe. ---- - system/stack/include/hcidefs.h | 9 --------- - system/stack/l2cap/l2c_utils.cc | 32 -------------------------------- - 2 files changed, 41 deletions(-) - -diff --git a/system/stack/include/hcidefs.h b/system/stack/include/hcidefs.h -index a8ad4499bf..344507f76d 100644 ---- a/system/stack/include/hcidefs.h -+++ b/system/stack/include/hcidefs.h -@@ -916,9 +916,6 @@ typedef struct { - // TODO Remove this once all UNISOC specific hacks are removed. - #define LMP_COMPID_UNISOC 0x073F - --// TODO Remove this once all Mediatek specific hacks are removed. --#define LMP_COMPID_MEDIATEK 0x0046 -- - /* Parameter information for HCI_SYNA_SET_ACL_PRIORITY */ - #define HCI_SYNA_ACL_PRIORITY_PARAM_SIZE 3 - #define HCI_SYNA_ACL_NORMAL_PRIORITY 0xF0 -@@ -932,12 +929,6 @@ typedef struct { - #define HCI_UNISOC_ACL_NORMAL_PRIORITY 0x00 - #define HCI_UNISOC_ACL_HIGH_PRIORITY 0xFF - --/* Parameter information for HCI_MTK_SET_ACL_PRIORITY */ --#define HCI_MTK_ACL_PRIORITY_PARAM_SIZE 1 --#define HCI_MTK_SET_ACL_PRIORITY (0xFD95 | HCI_GRP_VENDOR_SPECIFIC) --#define HCI_MTK_ACL_NORMAL_PRIORITY 0x00 --#define HCI_MTK_ACL_HIGH_PRIORITY 0x01 -- - /* - * Define packet size - */ -diff --git a/system/stack/l2cap/l2c_utils.cc b/system/stack/l2cap/l2c_utils.cc -index 7b722f426a..ef213c4de6 100644 ---- a/system/stack/l2cap/l2c_utils.cc -+++ b/system/stack/l2cap/l2c_utils.cc -@@ -2338,34 +2338,6 @@ static void l2cu_set_acl_priority_unisoc(tL2C_LCB* p_lcb, - HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE, command, NULL); - } - --/******************************************************************************* -- * -- * Function l2cu_set_acl_priority_latency_mtk -- * -- * Description Sends a VSC to set the ACL priority and recorded latency on -- * Mediatek chip. -- * -- * Returns void -- * -- ******************************************************************************/ -- --static void l2cu_set_acl_priority_latency_mtk(tL2C_LCB* p_lcb, -- tL2CAP_PRIORITY priority) { -- uint8_t vs_param; -- if (priority == L2CAP_PRIORITY_HIGH) { -- // priority to high, if using latency mode check preset latency -- LOG_INFO("Set ACL priority: High Priority Mode"); -- vs_param = HCI_MTK_ACL_HIGH_PRIORITY; -- } else { -- // priority to normal -- LOG_INFO("Set ACL priority: Normal Mode"); -- vs_param = HCI_MTK_ACL_NORMAL_PRIORITY; -- } -- -- BTM_VendorSpecificCommand(HCI_MTK_SET_ACL_PRIORITY, -- HCI_MTK_ACL_PRIORITY_PARAM_SIZE, &vs_param, NULL); --} -- - /******************************************************************************* - * - * Function l2cu_set_acl_priority -@@ -2410,10 +2382,6 @@ bool l2cu_set_acl_priority(const RawAddress& bd_addr, tL2CAP_PRIORITY priority, - l2cu_set_acl_priority_unisoc(p_lcb, priority); - break; - -- case LMP_COMPID_MEDIATEK: -- l2cu_set_acl_priority_latency_mtk(p_lcb, priority); -- break; -- - default: - /* Not supported/required for other vendors */ - break; --- -2.43.1 - diff --git a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch index e5d4383..c9319b1 100644 --- a/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch +++ b/system/core/0001-init-Do-not-start-console-service-when-debuggable.patch @@ -1,4 +1,4 @@ -From ce23dec99926b3e688ae5cd85f5da71c8765f89c Mon Sep 17 00:00:00 2001 +From 5452f9228873c2e00897aeb74e8b453d939d2e4c Mon Sep 17 00:00:00 2001 From: Isaac Chen Date: Wed, 23 Jun 2021 13:07:30 +0800 Subject: [PATCH 1/2] init: Do not start console service when debuggable @@ -13,10 +13,10 @@ Change-Id: I34cfd6b42d3b9aee4b3e63181480cfb8b1255f29 1 file changed, 3 deletions(-) diff --git a/rootdir/init.rc b/rootdir/init.rc -index 317f80908..9dc09ea4a 100644 +index 8a2ed9fac..960534805 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc -@@ -1290,9 +1290,6 @@ on property:ro.debuggable=1 +@@ -1306,9 +1306,6 @@ on property:ro.debuggable=1 # Give reads to anyone for the accessibility trace folder on debug builds. chmod 0775 /data/misc/a11ytrace diff --git a/system/core/0002-init-Override-select-system-properties.patch b/system/core/0002-init-Override-select-system-properties.patch index 631840d..d86947a 100644 --- a/system/core/0002-init-Override-select-system-properties.patch +++ b/system/core/0002-init-Override-select-system-properties.patch @@ -1,4 +1,4 @@ -From b5256522214257f1a5f8ee5ecac84609993f8129 Mon Sep 17 00:00:00 2001 +From ddaa66e3cdc62f065143b1a8eb3f06bec65ff651 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Wed, 23 Feb 2022 17:37:47 -0500 Subject: [PATCH 2/2] init: Override select system properties @@ -7,22 +7,14 @@ Subject: [PATCH 2/2] init: Override select system properties Change-Id: I94efa3f108ae97711026f099f367b6bea325629f --- - init/property_service.cpp | 16 ++++++++++++---- - 1 file changed, 12 insertions(+), 4 deletions(-) + init/property_service.cpp | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/init/property_service.cpp b/init/property_service.cpp -index 013924778..ce164372a 100644 +index 157fc709c..7ec3c0b10 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp -@@ -64,6 +64,7 @@ - #include - #include - #include -+ - #include "debug_ramdisk.h" - #include "epoll.h" - #include "init.h" -@@ -796,13 +797,20 @@ static void LoadProperties(char* data, const char* filter, const char* filename, +@@ -797,13 +797,20 @@ static void LoadProperties(char* data, const char* filter, const char* filename, std::string error; if (CheckPermissions(key, value, context, cr, &error) == PROP_SUCCESS) { auto it = properties->find(key);