Refresh patches for r35
This commit is contained in:
parent
eb831a8f3b
commit
a898fa0bea
|
@ -1,7 +1,7 @@
|
||||||
From 51deb8e31ca57f19420277cc92b26375233e9050 Mon Sep 17 00:00:00 2001
|
From f9be27ef60cd4ccca6803458ff29ee7a2236769c Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Thu, 18 Aug 2022 15:44:46 -0400
|
Date: Thu, 18 Aug 2022 15:44:46 -0400
|
||||||
Subject: [PATCH 1/5] APM: Restore S, R and Q behavior respectively for
|
Subject: [PATCH 1/4] APM: Restore S, R and Q behavior respectively for
|
||||||
telephony audio
|
telephony audio
|
||||||
|
|
||||||
This conditionally reverts part of b2e5cb (T), 51c9cc (S) and afd4ce (R)
|
This conditionally reverts part of b2e5cb (T), 51c9cc (S) and afd4ce (R)
|
||||||
|
@ -31,12 +31,12 @@ relying on the value of `ro.vndk.version`.
|
||||||
|
|
||||||
Change-Id: I56d36d2aef4319935cb88a3e4771b23c6d5b2145
|
Change-Id: I56d36d2aef4319935cb88a3e4771b23c6d5b2145
|
||||||
---
|
---
|
||||||
.../managerdefault/AudioPolicyManager.cpp | 193 +++++++++++++-----
|
.../managerdefault/AudioPolicyManager.cpp | 103 ++++++++++++++++--
|
||||||
.../managerdefault/AudioPolicyManager.h | 3 +
|
.../managerdefault/AudioPolicyManager.h | 3 +
|
||||||
2 files changed, 141 insertions(+), 55 deletions(-)
|
2 files changed, 96 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
||||||
index 744609f27b..224dae3820 100644
|
index 4573382a06..c218c7ce2d 100644
|
||||||
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
||||||
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
|
||||||
@@ -675,6 +675,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
|
@@ -675,6 +675,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
|
||||||
|
@ -148,107 +148,25 @@ index 744609f27b..224dae3820 100644
|
||||||
bool AudioPolicyManager::isDeviceOfModule(
|
bool AudioPolicyManager::isDeviceOfModule(
|
||||||
const sp<DeviceDescriptor>& devDesc, const char *moduleId) const {
|
const sp<DeviceDescriptor>& devDesc, const char *moduleId) const {
|
||||||
sp<HwModule> module = mHwModules.getModuleFromName(moduleId);
|
sp<HwModule> module = mHwModules.getModuleFromName(moduleId);
|
||||||
@@ -4520,76 +4584,95 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch *
|
@@ -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.
|
// in config XML to reach the sink so that is can be declared as available.
|
||||||
audio_io_handle_t output = AUDIO_IO_HANDLE_NONE;
|
audio_io_handle_t output = AUDIO_IO_HANDLE_NONE;
|
||||||
sp<SwAudioOutputDescriptor> outputDesc = nullptr;
|
sp<SwAudioOutputDescriptor> outputDesc;
|
||||||
- if (!sourceDesc->isInternal()) {
|
+ if (sourceDesc != nullptr) { // Ignore indentation, we don't want to cuase huge conflicts...
|
||||||
- // take care of dynamic routing for SwOutput selection,
|
if (!sourceDesc->isInternal()) {
|
||||||
- audio_attributes_t attributes = sourceDesc->attributes();
|
// take care of dynamic routing for SwOutput selection,
|
||||||
- audio_stream_type_t stream = sourceDesc->stream();
|
audio_attributes_t attributes = sourceDesc->attributes();
|
||||||
- audio_attributes_t resultAttr;
|
@@ -4586,33 +4651,51 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch *
|
||||||
- audio_config_t config = AUDIO_CONFIG_INITIALIZER;
|
outputDesc = mOutputs.valueFor(output);
|
||||||
- config.sample_rate = sourceDesc->config().sample_rate;
|
if (outputDesc->isDuplicated()) {
|
||||||
- config.channel_mask = sourceDesc->config().channel_mask;
|
ALOGV("%s output for device %s is duplicated",
|
||||||
- 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;
|
|
||||||
- getOutputForAttrInt(&resultAttr, &output, AUDIO_SESSION_NONE, &attributes,
|
|
||||||
- &stream, sourceDesc->uid(), &config, &flags,
|
|
||||||
- &selectedDeviceId, &isRequestedDeviceForExclusiveUse,
|
|
||||||
- nullptr, &outputType, &isSpatialized);
|
|
||||||
- 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;
|
|
||||||
- }
|
|
||||||
- sourceDesc->setSwOutput(outputDesc);
|
|
||||||
- } else {
|
|
||||||
- // Same for "raw patches" aka created from createAudioPatch API
|
|
||||||
- SortedVector<audio_io_handle_t> outputs =
|
|
||||||
+ 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;
|
|
||||||
+ config.channel_mask = sourceDesc->config().channel_mask;
|
|
||||||
+ 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;
|
|
||||||
+ getOutputForAttrInt(&resultAttr, &output, AUDIO_SESSION_NONE, &attributes,
|
|
||||||
+ &stream, sourceDesc->uid(), &config, &flags,
|
|
||||||
+ &selectedDeviceId, &isRequestedDeviceForExclusiveUse,
|
|
||||||
+ nullptr, &outputType, &isSpatialized);
|
|
||||||
+ 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;
|
|
||||||
+ }
|
|
||||||
+ sourceDesc->setSwOutput(outputDesc);
|
|
||||||
+ } else {
|
|
||||||
+ // Same for "raw patches" aka created from createAudioPatch API
|
|
||||||
+ SortedVector<audio_io_handle_t> 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());
|
- __func__, sinkDevice->toString().c_str());
|
||||||
- return INVALID_OPERATION;
|
|
||||||
+ // 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());
|
+ __func__, sinkDevice->toString().c_str());
|
||||||
+ return INVALID_OPERATION;
|
return INVALID_OPERATION;
|
||||||
|
}
|
||||||
|
sourceDesc->setSwOutput(outputDesc, /* closeOutput= */ false);
|
||||||
|
}
|
||||||
+ }
|
+ }
|
||||||
+ sourceDesc->setSwOutput(outputDesc);
|
|
||||||
}
|
|
||||||
- sourceDesc->setSwOutput(outputDesc);
|
|
||||||
}
|
|
||||||
// create a software bridge in PatchPanel if:
|
// create a software bridge in PatchPanel if:
|
||||||
// - source and sink devices are on different HW modules OR
|
// - source and sink devices are on different HW modules OR
|
||||||
// - audio HAL version is < 3.0
|
// - audio HAL version is < 3.0
|
||||||
|
@ -289,16 +207,17 @@ index 744609f27b..224dae3820 100644
|
||||||
audio_port_config srcMixPortConfig = {};
|
audio_port_config srcMixPortConfig = {};
|
||||||
outputDesc->toAudioPortConfig(&srcMixPortConfig, nullptr);
|
outputDesc->toAudioPortConfig(&srcMixPortConfig, nullptr);
|
||||||
// for volume control, we may need a valid stream
|
// for volume control, we may need a valid stream
|
||||||
- srcMixPortConfig.ext.mix.usecase.stream = !sourceDesc->isInternal() ?
|
srcMixPortConfig.ext.mix.usecase.stream =
|
||||||
+ srcMixPortConfig.ext.mix.usecase.stream = (sourceDesc != nullptr && !sourceDesc->isInternal()) ?
|
- (!sourceDesc->isInternal() || isCallTxAudioSource(sourceDesc)) ?
|
||||||
|
+ ((sourceDesc != nullptr && !sourceDesc->isInternal()) || isCallTxAudioSource(sourceDesc)) ?
|
||||||
mEngine->getStreamTypeForAttributes(sourceDesc->attributes()) :
|
mEngine->getStreamTypeForAttributes(sourceDesc->attributes()) :
|
||||||
AUDIO_STREAM_PATCH;
|
AUDIO_STREAM_PATCH;
|
||||||
patchBuilder.addSource(srcMixPortConfig);
|
patchBuilder.addSource(srcMixPortConfig);
|
||||||
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
|
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
|
||||||
index db0ee15de8..97fa6f6f81 100644
|
index a69e08871b..f8762016db 100644
|
||||||
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
|
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
|
||||||
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
|
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
|
||||||
@@ -938,6 +938,9 @@ protected:
|
@@ -944,6 +944,9 @@ protected:
|
||||||
|
|
||||||
SoundTriggerSessionCollection mSoundTriggerSessions;
|
SoundTriggerSessionCollection mSoundTriggerSessions;
|
||||||
|
|
||||||
|
@ -309,5 +228,5 @@ index db0ee15de8..97fa6f6f81 100644
|
||||||
SourceClientCollection mAudioSources;
|
SourceClientCollection mAudioSources;
|
||||||
|
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 5def9ad1a26e28d517666e34301dc725c1660e36 Mon Sep 17 00:00:00 2001
|
From 5ae18168ff97d9e4eb66fc6dc8e087bd0ead8f31 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Wed, 24 Aug 2022 15:42:39 -0400
|
Date: Wed, 24 Aug 2022 15:42:39 -0400
|
||||||
Subject: [PATCH 2/5] APM: Optionally force-load audio policy for system-side
|
Subject: [PATCH 2/4] APM: Optionally force-load audio policy for system-side
|
||||||
bt audio HAL
|
bt audio HAL
|
||||||
|
|
||||||
Required to support our system-side bt audio implementation, i.e.
|
Required to support our system-side bt audio implementation, i.e.
|
||||||
|
@ -57,5 +57,5 @@ index d446e9667b..f5233f2a42 100644
|
||||||
|
|
||||||
// Global Configuration
|
// Global Configuration
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From e31fc6f3f79848e6f7e7b1b4abe82aa26571cf7b Mon Sep 17 00:00:00 2001
|
From d11e204968cbf01851042f03fe2a12aabbe84a93 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Thu, 25 Aug 2022 13:30:29 -0400
|
Date: Thu, 25 Aug 2022 13:30:29 -0400
|
||||||
Subject: [PATCH 3/5] APM: Remove A2DP audio ports from the primary HAL
|
Subject: [PATCH 3/4] APM: Remove A2DP audio ports from the primary HAL
|
||||||
|
|
||||||
These ports defined in the primary HAL are intended for A2DP offloading,
|
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
|
however they do not work in general on GSIs, and will interfere with
|
||||||
|
@ -75,5 +75,5 @@ index f5233f2a42..6630d06f6d 100644
|
||||||
|
|
||||||
RouteTraits::Collection routes;
|
RouteTraits::Collection routes;
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d68bf009f5f9065163ae6ece838cdb77784e3595 Mon Sep 17 00:00:00 2001
|
From 628ff965d6ade74843a58cab6fe58069ef0ec3ad Mon Sep 17 00:00:00 2001
|
||||||
From: Emilian Peev <epeev@google.com>
|
From: Emilian Peev <epeev@google.com>
|
||||||
Date: Fri, 5 Aug 2022 17:28:06 -0700
|
Date: Fri, 5 Aug 2022 17:28:06 -0700
|
||||||
Subject: [PATCH 5/5] Camera: Avoid unnecessary close of buffer acquire fence
|
Subject: [PATCH 4/4] Camera: Avoid unnecessary close of buffer acquire fence
|
||||||
fds
|
fds
|
||||||
|
|
||||||
According to the gralloc lock documentation:
|
According to the gralloc lock documentation:
|
||||||
|
@ -17,10 +17,10 @@ Merged-In: Ieec34b54aaa7f0d773eccb593c3daaa3e41bae0b
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
|
diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
|
||||||
index 1e20ee0eb8..f23a2de340 100644
|
index 396104c4fd..c725aadb79 100644
|
||||||
--- a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
|
--- a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
|
||||||
+++ b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
|
+++ b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
|
||||||
@@ -327,7 +327,7 @@ status_t Camera3OutputStream::fixUpHidlJpegBlobHeader(ANativeWindowBuffer* anwBu
|
@@ -331,7 +331,7 @@ status_t Camera3OutputStream::fixUpHidlJpegBlobHeader(ANativeWindowBuffer* anwBu
|
||||||
status_t res =
|
status_t res =
|
||||||
gbLocker.lockAsync(
|
gbLocker.lockAsync(
|
||||||
GraphicBuffer::USAGE_SW_READ_OFTEN | GraphicBuffer::USAGE_SW_WRITE_RARELY,
|
GraphicBuffer::USAGE_SW_READ_OFTEN | GraphicBuffer::USAGE_SW_WRITE_RARELY,
|
||||||
|
@ -29,7 +29,7 @@ index 1e20ee0eb8..f23a2de340 100644
|
||||||
if (res != OK) {
|
if (res != OK) {
|
||||||
ALOGE("%s: Failed to lock the buffer: %s (%d)", __FUNCTION__, strerror(-res), res);
|
ALOGE("%s: Failed to lock the buffer: %s (%d)", __FUNCTION__, strerror(-res), res);
|
||||||
return res;
|
return res;
|
||||||
@@ -1298,7 +1298,7 @@ void Camera3OutputStream::dumpImageToDisk(nsecs_t timestamp,
|
@@ -1327,7 +1327,7 @@ void Camera3OutputStream::dumpImageToDisk(nsecs_t timestamp,
|
||||||
void* mapped = nullptr;
|
void* mapped = nullptr;
|
||||||
base::unique_fd fenceFd(dup(fence));
|
base::unique_fd fenceFd(dup(fence));
|
||||||
status_t res = graphicBuffer->lockAsync(GraphicBuffer::USAGE_SW_READ_OFTEN, &mapped,
|
status_t res = graphicBuffer->lockAsync(GraphicBuffer::USAGE_SW_READ_OFTEN, &mapped,
|
||||||
|
@ -39,5 +39,5 @@ index 1e20ee0eb8..f23a2de340 100644
|
||||||
ALOGE("%s: Failed to lock the buffer: %s (%d)", __FUNCTION__, strerror(-res), res);
|
ALOGE("%s: Failed to lock the buffer: %s (%d)", __FUNCTION__, strerror(-res), res);
|
||||||
return;
|
return;
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
From 9d5b1f22e00167bd6f75fde20ace1c1d1e964318 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Cai <peter@typeblog.net>
|
|
||||||
Date: Wed, 1 Jun 2022 16:56:46 -0400
|
|
||||||
Subject: [PATCH 4/5] camera: Implement property to override default camera
|
|
||||||
|
|
||||||
Complement to the frameworks/base patch.
|
|
||||||
|
|
||||||
Change-Id: I002bfa974bafc2cc01365eeea31c7a5dcb5a2028
|
|
||||||
---
|
|
||||||
.../common/CameraProviderManager.cpp | 22 +++++++++++++++++++
|
|
||||||
1 file changed, 22 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
|
|
||||||
index abaea6639f..59b59f44fb 100644
|
|
||||||
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
|
|
||||||
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
|
|
||||||
@@ -36,6 +36,7 @@
|
|
||||||
#include <functional>
|
|
||||||
#include <camera_metadata_hidden.h>
|
|
||||||
#include <android-base/parseint.h>
|
|
||||||
+#include <android-base/properties.h>
|
|
||||||
#include <android-base/logging.h>
|
|
||||||
#include <cutils/properties.h>
|
|
||||||
#include <hwbinder/IPCThreadState.h>
|
|
||||||
@@ -205,6 +206,15 @@ std::vector<std::string> CameraProviderManager::getCameraDeviceIds() const {
|
|
||||||
deviceIds.push_back(id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ int32_t altPrimaryCamera = property_get_int32("persist.sys.alt_primary_camera", 0);
|
|
||||||
+
|
|
||||||
+ if (altPrimaryCamera != 0 && deviceIds.size() > (size_t) altPrimaryCamera) {
|
|
||||||
+ const std::string origPrimary = deviceIds[0];
|
|
||||||
+ deviceIds[0] = deviceIds[altPrimaryCamera];
|
|
||||||
+ deviceIds[altPrimaryCamera] = origPrimary;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return deviceIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -271,6 +281,18 @@ std::vector<std::string> CameraProviderManager::getAPI1CompatibleCameraDeviceIds
|
|
||||||
std::sort(systemDeviceIds.begin(), systemDeviceIds.end(), sortFunc);
|
|
||||||
deviceIds.insert(deviceIds.end(), publicDeviceIds.begin(), publicDeviceIds.end());
|
|
||||||
deviceIds.insert(deviceIds.end(), systemDeviceIds.begin(), systemDeviceIds.end());
|
|
||||||
+
|
|
||||||
+ // Default camera ID hack should match with android.hardware.camera2.CameraManager.sortCameraIds
|
|
||||||
+ // Note that the alt primary camera may not be available here due to filterLogicalCameraIdsLocked()
|
|
||||||
+ // in which case we will just ignore it.
|
|
||||||
+ int altPrimaryCameraId = base::GetIntProperty("persist.sys.alt_primary_camera", -1);
|
|
||||||
+
|
|
||||||
+ if (altPrimaryCameraId > 0 && altPrimaryCameraId < (int) deviceIds.size()) {
|
|
||||||
+ std::string origPrimary = deviceIds[0];
|
|
||||||
+ deviceIds[0] = deviceIds[altPrimaryCameraId];
|
|
||||||
+ deviceIds[altPrimaryCameraId] = origPrimary;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return deviceIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.37.2
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 0f7b66cc9930141f645569f354e901bef5ae384b Mon Sep 17 00:00:00 2001
|
From b2a523bde06164be9431c4e5f51d3acd2b459bd5 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Tue, 12 Oct 2021 21:37:22 -0400
|
Date: Tue, 12 Oct 2021 21:37:22 -0400
|
||||||
Subject: [PATCH 1/5] PackageParser: support glob matching for properties
|
Subject: [PATCH 1/4] PackageParser: support glob matching for properties
|
||||||
|
|
||||||
Needed to make phh's vendor overlays work
|
Needed to make phh's vendor overlays work
|
||||||
---
|
---
|
||||||
|
@ -9,10 +9,10 @@ Needed to make phh's vendor overlays work
|
||||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
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
|
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
|
||||||
index 44dc28d2b0fa..27c0795d47d2 100644
|
index c15b3e0b80c3..05bb843c0c4d 100644
|
||||||
--- a/core/java/android/content/pm/PackageParser.java
|
--- a/core/java/android/content/pm/PackageParser.java
|
||||||
+++ b/core/java/android/content/pm/PackageParser.java
|
+++ b/core/java/android/content/pm/PackageParser.java
|
||||||
@@ -2535,8 +2535,16 @@ public class PackageParser {
|
@@ -2545,8 +2545,16 @@ public class PackageParser {
|
||||||
for (int i = 0; i < propNames.length; i++) {
|
for (int i = 0; i < propNames.length; i++) {
|
||||||
// Check property value: make sure it is both set and equal to expected value
|
// Check property value: make sure it is both set and equal to expected value
|
||||||
final String currValue = SystemProperties.get(propNames[i]);
|
final String currValue = SystemProperties.get(propNames[i]);
|
||||||
|
@ -32,5 +32,5 @@ index 44dc28d2b0fa..27c0795d47d2 100644
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 381aa92ab038fc6c0157c5b9396218e80ed3ae65 Mon Sep 17 00:00:00 2001
|
From d5d5ffd0bdf5be719f18b972706948aa87135934 Mon Sep 17 00:00:00 2001
|
||||||
From: dhacker29 <dhackerdvm@gmail.com>
|
From: dhacker29 <dhackerdvm@gmail.com>
|
||||||
Date: Tue, 24 Nov 2015 01:53:47 -0500
|
Date: Tue, 24 Nov 2015 01:53:47 -0500
|
||||||
Subject: [PATCH 2/5] fw/b: Use ro.build.version.incremental to signal OTA
|
Subject: [PATCH 2/4] fw/b: Use ro.build.version.incremental to signal OTA
|
||||||
upgrades
|
upgrades
|
||||||
|
|
||||||
[PeterCxy]: On T, there is a new class PackagePartitions that is
|
[PeterCxy]: On T, there is a new class PackagePartitions that is
|
||||||
|
@ -104,10 +104,10 @@ index ff80e614be58..8bf0d5ffff76 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
|
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
|
||||||
index f2bcf5e461a7..0e66d1a7a7ef 100644
|
index 0b20683185f0..fdc2b4c11fd1 100644
|
||||||
--- a/services/core/java/com/android/server/pm/ShortcutService.java
|
--- a/services/core/java/com/android/server/pm/ShortcutService.java
|
||||||
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
|
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
|
||||||
@@ -5136,7 +5136,7 @@ public class ShortcutService extends IShortcutService.Stub {
|
@@ -5139,7 +5139,7 @@ public class ShortcutService extends IShortcutService.Stub {
|
||||||
|
|
||||||
// Injection point.
|
// Injection point.
|
||||||
String injectBuildFingerprint() {
|
String injectBuildFingerprint() {
|
||||||
|
@ -117,5 +117,5 @@ index f2bcf5e461a7..0e66d1a7a7ef 100644
|
||||||
|
|
||||||
final void wtf(String message) {
|
final void wtf(String message) {
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From effc76211ce9b665c4f9418d86d2b1a8aa67d42b Mon Sep 17 00:00:00 2001
|
From 61fc857a22f3e11f2d8095041ee7b006106064f0 Mon Sep 17 00:00:00 2001
|
||||||
From: Danny Lin <danny@kdrag0n.dev>
|
From: Danny Lin <danny@kdrag0n.dev>
|
||||||
Date: Sat, 16 Oct 2021 05:27:57 -0700
|
Date: Sat, 16 Oct 2021 05:27:57 -0700
|
||||||
Subject: [PATCH 3/5] Add support for app signature spoofing
|
Subject: [PATCH 3/4] Add support for app signature spoofing
|
||||||
|
|
||||||
This is needed by microG GmsCore to pretend to be the official Google
|
This is needed by microG GmsCore to pretend to be the official Google
|
||||||
Play Services package, because client apps check the package signature
|
Play Services package, because client apps check the package signature
|
||||||
|
@ -38,7 +38,7 @@ Change-Id: Ied7d6ce0b83a2d2345c3abba0429998d86494a88
|
||||||
4 files changed, 56 insertions(+), 3 deletions(-)
|
4 files changed, 56 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/core/api/current.txt b/core/api/current.txt
|
diff --git a/core/api/current.txt b/core/api/current.txt
|
||||||
index c8a43db2f9c2..277183036c60 100644
|
index 487e57d114c9..04e69741b9fd 100644
|
||||||
--- a/core/api/current.txt
|
--- a/core/api/current.txt
|
||||||
+++ b/core/api/current.txt
|
+++ b/core/api/current.txt
|
||||||
@@ -87,6 +87,7 @@ package android {
|
@@ -87,6 +87,7 @@ package android {
|
||||||
|
@ -58,10 +58,10 @@ index c8a43db2f9c2..277183036c60 100644
|
||||||
field public static final String MICROPHONE = "android.permission-group.MICROPHONE";
|
field public static final String MICROPHONE = "android.permission-group.MICROPHONE";
|
||||||
field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES";
|
field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES";
|
||||||
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
|
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
|
||||||
index 7439b2f0921f..eadcac3af765 100644
|
index 6a80d1cb62a7..189c5c223cd0 100644
|
||||||
--- a/core/res/AndroidManifest.xml
|
--- a/core/res/AndroidManifest.xml
|
||||||
+++ b/core/res/AndroidManifest.xml
|
+++ b/core/res/AndroidManifest.xml
|
||||||
@@ -3534,6 +3534,21 @@
|
@@ -3564,6 +3564,21 @@
|
||||||
android:description="@string/permdesc_getPackageSize"
|
android:description="@string/permdesc_getPackageSize"
|
||||||
android:protectionLevel="normal" />
|
android:protectionLevel="normal" />
|
||||||
|
|
||||||
|
@ -84,10 +84,10 @@ index 7439b2f0921f..eadcac3af765 100644
|
||||||
{@link android.content.pm.PackageManager#addPackageToPreferred}
|
{@link android.content.pm.PackageManager#addPackageToPreferred}
|
||||||
for details. -->
|
for details. -->
|
||||||
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
|
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
|
||||||
index e5d90f00f327..7ac26e536f2a 100644
|
index 9410e0682106..7ed7a03f1b61 100644
|
||||||
--- a/core/res/res/values/strings.xml
|
--- a/core/res/res/values/strings.xml
|
||||||
+++ b/core/res/res/values/strings.xml
|
+++ b/core/res/res/values/strings.xml
|
||||||
@@ -974,6 +974,18 @@
|
@@ -977,6 +977,18 @@
|
||||||
|
|
||||||
<!-- Permissions -->
|
<!-- Permissions -->
|
||||||
|
|
||||||
|
@ -107,10 +107,10 @@ index e5d90f00f327..7ac26e536f2a 100644
|
||||||
<string name="permlab_statusBar">disable or modify status bar</string>
|
<string name="permlab_statusBar">disable or modify status bar</string>
|
||||||
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||||
diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java
|
diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java
|
||||||
index 259ca655d2b9..674b22e28a83 100644
|
index 46b7460dff1b..40549962436f 100644
|
||||||
--- a/services/core/java/com/android/server/pm/ComputerEngine.java
|
--- a/services/core/java/com/android/server/pm/ComputerEngine.java
|
||||||
+++ b/services/core/java/com/android/server/pm/ComputerEngine.java
|
+++ b/services/core/java/com/android/server/pm/ComputerEngine.java
|
||||||
@@ -1591,6 +1591,29 @@ public class ComputerEngine implements Computer {
|
@@ -1603,6 +1603,29 @@ public class ComputerEngine implements Computer {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ index 259ca655d2b9..674b22e28a83 100644
|
||||||
public final PackageInfo generatePackageInfo(PackageStateInternal ps,
|
public final PackageInfo generatePackageInfo(PackageStateInternal ps,
|
||||||
@PackageManager.PackageInfoFlagsBits long flags, int userId) {
|
@PackageManager.PackageInfoFlagsBits long flags, int userId) {
|
||||||
if (!mUserManager.exists(userId)) return null;
|
if (!mUserManager.exists(userId)) return null;
|
||||||
@@ -1620,13 +1643,14 @@ public class ComputerEngine implements Computer {
|
@@ -1632,13 +1655,14 @@ public class ComputerEngine implements Computer {
|
||||||
final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY
|
final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY
|
||||||
: mPermissionManager.getGidsForUid(UserHandle.getUid(userId, ps.getAppId()));
|
: mPermissionManager.getGidsForUid(UserHandle.getUid(userId, ps.getAppId()));
|
||||||
// Compute granted permissions only if package has requested permissions
|
// Compute granted permissions only if package has requested permissions
|
||||||
|
@ -159,5 +159,5 @@ index 259ca655d2b9..674b22e28a83 100644
|
||||||
if (packageInfo == null) {
|
if (packageInfo == null) {
|
||||||
return null;
|
return null;
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From f95505e81e0c4064eb5c78a62ed6257530734b37 Mon Sep 17 00:00:00 2001
|
From 7cd264509a929835a1770e931e3ec8001da7aecb Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Fri, 2 Sep 2022 21:36:06 -0400
|
Date: Fri, 2 Sep 2022 21:36:06 -0400
|
||||||
Subject: [PATCH 5/5] FrameworkParsingPackageUtils: Add glob matching support
|
Subject: [PATCH 4/4] FrameworkParsingPackageUtils: Add glob matching support
|
||||||
for properties
|
for properties
|
||||||
|
|
||||||
This is now required in addition to the one in PackageParser in order
|
This is now required in addition to the one in PackageParser in order
|
||||||
|
@ -36,5 +36,5 @@ index 3e1c5bb3d7ec..f15978c57574 100644
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
From bd9fc170c2125e142f19805cceaaabe354ba6da8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Cai <peter@typeblog.net>
|
|
||||||
Date: Wed, 1 Jun 2022 16:56:20 -0400
|
|
||||||
Subject: [PATCH 4/5] Implement a persistent property to override the default
|
|
||||||
primary camera (0)
|
|
||||||
|
|
||||||
Change-Id: I49b45d00bf71d7932591b3516d49a680e1b6568b
|
|
||||||
---
|
|
||||||
core/java/android/hardware/Camera.java | 6 ++++++
|
|
||||||
core/java/android/hardware/camera2/CameraManager.java | 9 +++++++++
|
|
||||||
2 files changed, 15 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
|
|
||||||
index 3bdd39f5d7d7..fff46f20342b 100644
|
|
||||||
--- a/core/java/android/hardware/Camera.java
|
|
||||||
+++ b/core/java/android/hardware/Camera.java
|
|
||||||
@@ -45,6 +45,7 @@ import android.os.Message;
|
|
||||||
import android.os.Process;
|
|
||||||
import android.os.RemoteException;
|
|
||||||
import android.os.ServiceManager;
|
|
||||||
+import android.os.SystemProperties;
|
|
||||||
import android.renderscript.Allocation;
|
|
||||||
import android.renderscript.Element;
|
|
||||||
import android.renderscript.RSIllegalArgumentException;
|
|
||||||
@@ -408,6 +409,11 @@ public class Camera {
|
|
||||||
* @see #open(int)
|
|
||||||
*/
|
|
||||||
public static Camera open() {
|
|
||||||
+ int altPrimaryCamera = SystemProperties.getInt("persist.sys.alt_primary_camera", -1);
|
|
||||||
+ if (altPrimaryCamera > 0) {
|
|
||||||
+ return new Camera(altPrimaryCamera);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
int numberOfCameras = getNumberOfCameras();
|
|
||||||
CameraInfo cameraInfo = new CameraInfo();
|
|
||||||
for (int i = 0; i < numberOfCameras; i++) {
|
|
||||||
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
|
|
||||||
index d6d3a97687b5..c86c909a4109 100644
|
|
||||||
--- a/core/java/android/hardware/camera2/CameraManager.java
|
|
||||||
+++ b/core/java/android/hardware/camera2/CameraManager.java
|
|
||||||
@@ -1723,6 +1723,15 @@ public final class CameraManager {
|
|
||||||
}
|
|
||||||
}});
|
|
||||||
|
|
||||||
+ // HAXX: Allow overriding default primary camera (assumed to be camera 0) via property
|
|
||||||
+ // Should match with libcameraservice/common/CameraProviderManager.cpp
|
|
||||||
+ int altPrimaryCamera = SystemProperties.getInt("persist.sys.alt_primary_camera", -1);
|
|
||||||
+ if (altPrimaryCamera > 0 && altPrimaryCamera < cameraIds.length) {
|
|
||||||
+ String origPrimary = cameraIds[0];
|
|
||||||
+ cameraIds[0] = cameraIds[altPrimaryCamera];
|
|
||||||
+ cameraIds[altPrimaryCamera] = origPrimary;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean cameraStatusesContains(CameraStatus[] cameraStatuses, String id) {
|
|
||||||
--
|
|
||||||
2.37.2
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 2de099f8a86c02bc74b28beb7fbf8ccc71b17922 Mon Sep 17 00:00:00 2001
|
From 9990507a53c8bc7ac154f78ed260fea6be30f252 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Mon, 5 Sep 2022 14:02:37 -0400
|
Date: Mon, 5 Sep 2022 14:02:37 -0400
|
||||||
Subject: [PATCH] SubscriptionController: Do not override default calling
|
Subject: [PATCH] SubscriptionController: Do not override default calling
|
||||||
|
@ -14,29 +14,32 @@ to keep re-selecting the desired calling account after every reboot.
|
||||||
Test: manual
|
Test: manual
|
||||||
Change-Id: Iccab64e9b3b3ab4773bd8944d47c2006f229d472
|
Change-Id: Iccab64e9b3b3ab4773bd8944d47c2006f229d472
|
||||||
---
|
---
|
||||||
.../internal/telephony/SubscriptionController.java | 9 ++++++++-
|
.../internal/telephony/SubscriptionController.java | 11 ++++++++++-
|
||||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
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
|
diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java
|
||||||
index 7e762d7af0..f2bff8b15f 100644
|
index 82799bea8b..5105d3a183 100644
|
||||||
--- a/src/java/com/android/internal/telephony/SubscriptionController.java
|
--- a/src/java/com/android/internal/telephony/SubscriptionController.java
|
||||||
+++ b/src/java/com/android/internal/telephony/SubscriptionController.java
|
+++ b/src/java/com/android/internal/telephony/SubscriptionController.java
|
||||||
@@ -2846,7 +2846,14 @@ public class SubscriptionController extends ISub.Stub {
|
@@ -2855,8 +2855,17 @@ public class SubscriptionController extends ISub.Stub {
|
||||||
PhoneAccountHandle currentHandle = telecomManager.getUserSelectedOutgoingPhoneAccount();
|
subId);
|
||||||
logd("[setDefaultVoiceSubId] current phoneAccountHandle=" + currentHandle);
|
|
||||||
|
|
||||||
- if (!Objects.equals(currentHandle, newHandle)) {
|
TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class);
|
||||||
|
+ PhoneAccountHandle currentHandle = telecomManager.getUserSelectedOutgoingPhoneAccount();
|
||||||
+ String currentPackageName =
|
+ String currentPackageName =
|
||||||
+ currentHandle == null ? null : currentHandle.getComponentName().getPackageName();
|
+ currentHandle == null ? null : currentHandle.getComponentName().getPackageName();
|
||||||
+ boolean currentIsSim = "com.android.phone".equals(currentPackageName);
|
+ boolean currentIsSim = "com.android.phone".equals(currentPackageName);
|
||||||
+ // Do not override user selected outgoing calling account
|
+ // Do not override user selected outgoing calling account
|
||||||
+ // if the user has selected a third-party app as default
|
+ // if the user has selected a third-party app as default
|
||||||
+ boolean shouldKeepOutgoingAccount = currentHandle != null && !currentIsSim;
|
+ boolean shouldKeepOutgoingAccount = currentHandle != null && !currentIsSim;
|
||||||
+
|
|
||||||
+ if (!Objects.equals(currentHandle, newHandle) && !shouldKeepOutgoingAccount) {
|
- telecomManager.setUserSelectedOutgoingPhoneAccount(newHandle);
|
||||||
telecomManager.setUserSelectedOutgoingPhoneAccount(newHandle);
|
+ if (!shouldKeepOutgoingAccount) {
|
||||||
logd("[setDefaultVoiceSubId] change to phoneAccountHandle=" + newHandle);
|
+ telecomManager.setUserSelectedOutgoingPhoneAccount(newHandle);
|
||||||
} else {
|
+ }
|
||||||
--
|
logd("[setDefaultVoiceSubId] requesting change to phoneAccountHandle=" + newHandle);
|
||||||
2.37.2
|
|
||||||
|
if (previousDefaultSub != getDefaultSubId()) {
|
||||||
|
--
|
||||||
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From f11b5953c3d3a4e69fcf91eb5642d5e7e37fe398 Mon Sep 17 00:00:00 2001
|
From 4cc2be49efa697ff1d581b272f53b41348684e09 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Wed, 17 Aug 2022 22:02:33 -0400
|
Date: Wed, 17 Aug 2022 22:02:33 -0400
|
||||||
Subject: [PATCH 1/5] Disable QSB in BuildConfig
|
Subject: [PATCH 1/4] Disable QSB in BuildConfig
|
||||||
|
|
||||||
Change-Id: I3150ef1d9b8c161ed2a6569d1ae75bba0060b36f
|
Change-Id: I3150ef1d9b8c161ed2a6569d1ae75bba0060b36f
|
||||||
---
|
---
|
||||||
|
@ -20,5 +20,5 @@ index 9a81d3f54c..8c83bcc372 100644
|
||||||
+ public static final boolean QSB_ON_FIRST_SCREEN = false;
|
+ public static final boolean QSB_ON_FIRST_SCREEN = false;
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 8d396831eabfaa0859313db9598a5641f51493e6 Mon Sep 17 00:00:00 2001
|
From ae423b97721ce943c74a9e2a8a94d6160c56da4b Mon Sep 17 00:00:00 2001
|
||||||
From: Danny Lin <danny@kdrag0n.dev>
|
From: Danny Lin <danny@kdrag0n.dev>
|
||||||
Date: Mon, 11 Oct 2021 20:48:44 -0700
|
Date: Mon, 11 Oct 2021 20:48:44 -0700
|
||||||
Subject: [PATCH 2/5] Expose themed icon setting in ThemePicker
|
Subject: [PATCH 2/4] Expose themed icon setting in ThemePicker
|
||||||
|
|
||||||
Change-Id: I44e9288c3de13a3604b7a03857ec400753317d9a
|
Change-Id: I44e9288c3de13a3604b7a03857ec400753317d9a
|
||||||
---
|
---
|
||||||
|
@ -38,5 +38,5 @@ index 7d7054f5a5..d2955c4327 100644
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From c304a46115f8244f55f38b85ca68613905c6c015 Mon Sep 17 00:00:00 2001
|
From 47d4a143786047a8ed00b00c046b996091f90191 Mon Sep 17 00:00:00 2001
|
||||||
From: Luca Stefani <luca.stefani.ge1@gmail.com>
|
From: Luca Stefani <luca.stefani.ge1@gmail.com>
|
||||||
Date: Fri, 1 Nov 2019 23:17:59 +0100
|
Date: Fri, 1 Nov 2019 23:17:59 +0100
|
||||||
Subject: [PATCH 3/5] Properly expose GridCustomizationsProvider
|
Subject: [PATCH 3/4] Properly expose GridCustomizationsProvider
|
||||||
|
|
||||||
Change-Id: I8268a215257ae0e399c56ac8b44cdfdff8cc92a0
|
Change-Id: I8268a215257ae0e399c56ac8b44cdfdff8cc92a0
|
||||||
---
|
---
|
||||||
|
@ -9,10 +9,10 @@ Change-Id: I8268a215257ae0e399c56ac8b44cdfdff8cc92a0
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml
|
diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml
|
||||||
index 02b83fe889..00e7fc35ad 100644
|
index 951be4e54e..49007bd00d 100644
|
||||||
--- a/AndroidManifest-common.xml
|
--- a/AndroidManifest-common.xml
|
||||||
+++ b/AndroidManifest-common.xml
|
+++ b/AndroidManifest-common.xml
|
||||||
@@ -135,7 +135,9 @@
|
@@ -136,7 +136,9 @@
|
||||||
<provider
|
<provider
|
||||||
android:name="com.android.launcher3.graphics.GridCustomizationsProvider"
|
android:name="com.android.launcher3.graphics.GridCustomizationsProvider"
|
||||||
android:authorities="${packageName}.grid_control"
|
android:authorities="${packageName}.grid_control"
|
||||||
|
@ -24,5 +24,5 @@ index 02b83fe889..00e7fc35ad 100644
|
||||||
<!--
|
<!--
|
||||||
The settings activity. To extend point settings_fragment_name to appropriate fragment class
|
The settings activity. To extend point settings_fragment_name to appropriate fragment class
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From cf2a48c3b77753dbb850726495308dad64205497 Mon Sep 17 00:00:00 2001
|
From 9de3a5944dd2b232812bb2aef127e63486edc3f6 Mon Sep 17 00:00:00 2001
|
||||||
From: Danny Lin <danny@kdrag0n.dev>
|
From: Danny Lin <danny@kdrag0n.dev>
|
||||||
Date: Wed, 6 Oct 2021 22:45:33 -0700
|
Date: Wed, 6 Oct 2021 22:45:33 -0700
|
||||||
Subject: [PATCH 4/5] Fix all apps header color in dark mode
|
Subject: [PATCH 4/4] Fix all apps header color in dark mode
|
||||||
|
|
||||||
Change-Id: Ib2ce7f6e3c9b87a4626699cb54673d88392a5f41
|
Change-Id: Ib2ce7f6e3c9b87a4626699cb54673d88392a5f41
|
||||||
---
|
---
|
||||||
|
@ -9,17 +9,17 @@ Change-Id: Ib2ce7f6e3c9b87a4626699cb54673d88392a5f41
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/res/values/styles.xml b/res/values/styles.xml
|
diff --git a/res/values/styles.xml b/res/values/styles.xml
|
||||||
index 21095109a6..63f46e413d 100644
|
index 7582a30435..454db61d90 100644
|
||||||
--- a/res/values/styles.xml
|
--- a/res/values/styles.xml
|
||||||
+++ b/res/values/styles.xml
|
+++ b/res/values/styles.xml
|
||||||
@@ -99,6 +99,7 @@
|
@@ -95,6 +95,7 @@
|
||||||
<item name="android:colorControlHighlight">#19FFFFFF</item>
|
<item name="android:colorControlHighlight">#19FFFFFF</item>
|
||||||
<item name="android:colorPrimary">#FF212121</item>
|
<item name="android:colorPrimary">#FF212121</item>
|
||||||
<item name="allAppsScrimColor">?android:attr/colorBackgroundFloating</item>
|
<item name="allAppsScrimColor">?android:attr/colorBackgroundFloating</item>
|
||||||
+ <item name="allappsHeaderProtectionColor">@color/popup_color_tertiary_dark</item>
|
+ <item name="allappsHeaderProtectionColor">@color/popup_color_tertiary_dark</item>
|
||||||
<item name="allAppsNavBarScrimColor">#80000000</item>
|
<item name="allAppsNavBarScrimColor">#80000000</item>
|
||||||
<item name="allAppsTheme">@style/AllAppsTheme.Dark</item>
|
|
||||||
<item name="popupColorPrimary">@color/popup_color_primary_dark</item>
|
<item name="popupColorPrimary">@color/popup_color_primary_dark</item>
|
||||||
|
<item name="popupColorSecondary">@color/popup_color_secondary_dark</item>
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
From dbb30694c2cce4a5fb70ea6a8c5594bcca7cba4d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Danny Lin <danny@kdrag0n.dev>
|
|
||||||
Date: Sun, 10 Oct 2021 03:38:23 -0700
|
|
||||||
Subject: [PATCH 5/5] Fix Personal/Work profile tab colors in All Apps
|
|
||||||
|
|
||||||
The default AOSP colors are broken and result in poor contrast, among
|
|
||||||
other issues.
|
|
||||||
|
|
||||||
Change-Id: Id7824bc08cac0aad055f41c0b617e15300af05d4
|
|
||||||
---
|
|
||||||
res/color-night-v31/all_apps_tab_text.xml | 6 +++---
|
|
||||||
.../all_apps_tabs_background.xml | 18 ++++++++++++++++++
|
|
||||||
res/color-v31/all_apps_tab_text.xml | 6 +++---
|
|
||||||
3 files changed, 24 insertions(+), 6 deletions(-)
|
|
||||||
create mode 100644 res/color-night-v31/all_apps_tabs_background.xml
|
|
||||||
|
|
||||||
diff --git a/res/color-night-v31/all_apps_tab_text.xml b/res/color-night-v31/all_apps_tab_text.xml
|
|
||||||
index 83237b49e5..eaac621cfc 100644
|
|
||||||
--- a/res/color-night-v31/all_apps_tab_text.xml
|
|
||||||
+++ b/res/color-night-v31/all_apps_tab_text.xml
|
|
||||||
@@ -14,6 +14,6 @@
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
- <item android:color="@android:color/system_neutral1_50" android:state_selected="true"/>
|
|
||||||
- <item android:color="@android:color/system_neutral2_700"/>
|
|
||||||
-</selector>
|
|
||||||
\ No newline at end of file
|
|
||||||
+ <item android:color="?android:textColorPrimaryInverse" android:state_selected="true"/>
|
|
||||||
+ <item android:color="?android:textColorSecondary"/>
|
|
||||||
+</selector>
|
|
||||||
diff --git a/res/color-night-v31/all_apps_tabs_background.xml b/res/color-night-v31/all_apps_tabs_background.xml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..fc8a4d7d79
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/res/color-night-v31/all_apps_tabs_background.xml
|
|
||||||
@@ -0,0 +1,18 @@
|
|
||||||
+<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
+<!-- Copyright (C) 2021 The Android Open Source Project
|
|
||||||
+
|
|
||||||
+ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
+ you may not use this file except in compliance with the License.
|
|
||||||
+ You may obtain a copy of the License at
|
|
||||||
+
|
|
||||||
+ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
+
|
|
||||||
+ Unless required by applicable law or agreed to in writing, software
|
|
||||||
+ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
+ See the License for the specific language governing permissions and
|
|
||||||
+ limitations under the License.
|
|
||||||
+-->
|
|
||||||
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
+ <item android:color="@android:color/system_neutral1_800" />
|
|
||||||
+</selector>
|
|
||||||
diff --git a/res/color-v31/all_apps_tab_text.xml b/res/color-v31/all_apps_tab_text.xml
|
|
||||||
index c3520a7ab5..d133a31a2d 100644
|
|
||||||
--- a/res/color-v31/all_apps_tab_text.xml
|
|
||||||
+++ b/res/color-v31/all_apps_tab_text.xml
|
|
||||||
@@ -14,6 +14,6 @@
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
- <item android:color="@android:color/system_neutral1_900" android:state_selected="true"/>
|
|
||||||
- <item android:color="@android:color/system_neutral2_700"/>
|
|
||||||
-</selector>
|
|
||||||
\ No newline at end of file
|
|
||||||
+ <item android:color="?android:textColorPrimary" android:state_selected="true"/>
|
|
||||||
+ <item android:color="?android:textColorSecondary"/>
|
|
||||||
+</selector>
|
|
||||||
--
|
|
||||||
2.37.2
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d043802a9e21a05b3fda0d2c3c41a69e513248e0 Mon Sep 17 00:00:00 2001
|
From ab8f40929c16e56034811ab5de87a6d658ce70b5 Mon Sep 17 00:00:00 2001
|
||||||
From: Luca Stefani <luca.stefani.ge1@gmail.com>
|
From: Luca Stefani <luca.stefani.ge1@gmail.com>
|
||||||
Date: Fri, 1 Nov 2019 21:14:29 +0100
|
Date: Fri, 1 Nov 2019 21:14:29 +0100
|
||||||
Subject: [PATCH 1/6] Add wallpaper privapp whitelist
|
Subject: [PATCH 1/5] Add wallpaper privapp whitelist
|
||||||
|
|
||||||
Change-Id: I044b1d9201ac0b8780fc37a387f401f3dd0ddeac
|
Change-Id: I044b1d9201ac0b8780fc37a387f401f3dd0ddeac
|
||||||
---
|
---
|
||||||
|
@ -11,10 +11,10 @@ Change-Id: I044b1d9201ac0b8780fc37a387f401f3dd0ddeac
|
||||||
create mode 100644 privapp_whitelist_com.android.wallpaper.xml
|
create mode 100644 privapp_whitelist_com.android.wallpaper.xml
|
||||||
|
|
||||||
diff --git a/Android.bp b/Android.bp
|
diff --git a/Android.bp b/Android.bp
|
||||||
index c85fd2b..5c1f487 100644
|
index 6d9ff8f6..ff9413ac 100644
|
||||||
--- a/Android.bp
|
--- a/Android.bp
|
||||||
+++ b/Android.bp
|
+++ b/Android.bp
|
||||||
@@ -104,5 +104,15 @@ android_app {
|
@@ -117,5 +117,15 @@ android_app {
|
||||||
platform_apis: true,
|
platform_apis: true,
|
||||||
manifest: "AndroidManifest.xml",
|
manifest: "AndroidManifest.xml",
|
||||||
additional_manifests: [":WallpaperPicker2_Manifest"],
|
additional_manifests: [":WallpaperPicker2_Manifest"],
|
||||||
|
@ -32,7 +32,7 @@ index c85fd2b..5c1f487 100644
|
||||||
+}
|
+}
|
||||||
diff --git a/privapp_whitelist_com.android.wallpaper.xml b/privapp_whitelist_com.android.wallpaper.xml
|
diff --git a/privapp_whitelist_com.android.wallpaper.xml b/privapp_whitelist_com.android.wallpaper.xml
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..e3f3b65
|
index 00000000..e3f3b658
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/privapp_whitelist_com.android.wallpaper.xml
|
+++ b/privapp_whitelist_com.android.wallpaper.xml
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
|
@ -61,5 +61,5 @@ index 0000000..e3f3b65
|
||||||
+ </privapp-permissions>
|
+ </privapp-permissions>
|
||||||
+</permissions>
|
+</permissions>
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 5a3e22296f8de9fa21140cf28f622875928ba8ca Mon Sep 17 00:00:00 2001
|
From 4b8b458becc81bdf4171e40660c5e4b1073985fc Mon Sep 17 00:00:00 2001
|
||||||
From: Danny Lin <danny@kdrag0n.dev>
|
From: Danny Lin <danny@kdrag0n.dev>
|
||||||
Date: Tue, 5 Oct 2021 19:00:36 -0700
|
Date: Tue, 5 Oct 2021 19:00:36 -0700
|
||||||
Subject: [PATCH 2/6] Override legacy WallpaperPicker app
|
Subject: [PATCH 2/5] Override legacy WallpaperPicker app
|
||||||
|
|
||||||
Change-Id: I9a1907527eea0e8e7cd10bab64ba79c2c4006c59
|
Change-Id: I9a1907527eea0e8e7cd10bab64ba79c2c4006c59
|
||||||
---
|
---
|
||||||
|
@ -9,10 +9,10 @@ Change-Id: I9a1907527eea0e8e7cd10bab64ba79c2c4006c59
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Android.bp b/Android.bp
|
diff --git a/Android.bp b/Android.bp
|
||||||
index 5c1f487..ce850c5 100644
|
index ff9413ac..dee08f45 100644
|
||||||
--- a/Android.bp
|
--- a/Android.bp
|
||||||
+++ b/Android.bp
|
+++ b/Android.bp
|
||||||
@@ -106,7 +106,7 @@ android_app {
|
@@ -119,7 +119,7 @@ android_app {
|
||||||
additional_manifests: [":WallpaperPicker2_Manifest"],
|
additional_manifests: [":WallpaperPicker2_Manifest"],
|
||||||
|
|
||||||
required: ["privapp_whitelist_com.android.wallpaper.xml"],
|
required: ["privapp_whitelist_com.android.wallpaper.xml"],
|
||||||
|
@ -22,5 +22,5 @@ index 5c1f487..ce850c5 100644
|
||||||
|
|
||||||
prebuilt_etc_xml {
|
prebuilt_etc_xml {
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 75de47c866b31a8930bc7e58954928712dbcbe60 Mon Sep 17 00:00:00 2001
|
From 9ebd057db4adf880c69de6d3558bfbe6948d60ca Mon Sep 17 00:00:00 2001
|
||||||
From: LuK1337 <priv.luk@gmail.com>
|
From: LuK1337 <priv.luk@gmail.com>
|
||||||
Date: Tue, 15 Sep 2020 03:27:19 +0200
|
Date: Tue, 15 Sep 2020 03:27:19 +0200
|
||||||
Subject: [PATCH 3/6] Add wallpaper default permissions
|
Subject: [PATCH 3/5] Add wallpaper default permissions
|
||||||
|
|
||||||
Change-Id: If43a594da31fbab9280ce45b049737f6c534b620
|
Change-Id: If43a594da31fbab9280ce45b049737f6c534b620
|
||||||
---
|
---
|
||||||
|
@ -11,10 +11,10 @@ Change-Id: If43a594da31fbab9280ce45b049737f6c534b620
|
||||||
create mode 100644 default_permissions_com.android.wallpaper.xml
|
create mode 100644 default_permissions_com.android.wallpaper.xml
|
||||||
|
|
||||||
diff --git a/Android.bp b/Android.bp
|
diff --git a/Android.bp b/Android.bp
|
||||||
index ce850c5..8ad98d2 100644
|
index dee08f45..74479801 100644
|
||||||
--- a/Android.bp
|
--- a/Android.bp
|
||||||
+++ b/Android.bp
|
+++ b/Android.bp
|
||||||
@@ -105,7 +105,11 @@ android_app {
|
@@ -118,7 +118,11 @@ android_app {
|
||||||
manifest: "AndroidManifest.xml",
|
manifest: "AndroidManifest.xml",
|
||||||
additional_manifests: [":WallpaperPicker2_Manifest"],
|
additional_manifests: [":WallpaperPicker2_Manifest"],
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ index ce850c5..8ad98d2 100644
|
||||||
overrides: ["WallpaperPicker2", "WallpaperPicker"],
|
overrides: ["WallpaperPicker2", "WallpaperPicker"],
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,3 +120,11 @@ prebuilt_etc_xml {
|
@@ -129,3 +133,11 @@ prebuilt_etc_xml {
|
||||||
filename_from_src: true,
|
filename_from_src: true,
|
||||||
sub_dir: "permissions",
|
sub_dir: "permissions",
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ index ce850c5..8ad98d2 100644
|
||||||
+}
|
+}
|
||||||
diff --git a/default_permissions_com.android.wallpaper.xml b/default_permissions_com.android.wallpaper.xml
|
diff --git a/default_permissions_com.android.wallpaper.xml b/default_permissions_com.android.wallpaper.xml
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..41b23ce
|
index 00000000..41b23ce1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/default_permissions_com.android.wallpaper.xml
|
+++ b/default_permissions_com.android.wallpaper.xml
|
||||||
@@ -0,0 +1,37 @@
|
@@ -0,0 +1,37 @@
|
||||||
|
@ -83,5 +83,5 @@ index 0000000..41b23ce
|
||||||
+ </exception>
|
+ </exception>
|
||||||
+</exceptions>
|
+</exceptions>
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 0d59123442f547d1d3cbd5e4200d6f2ec6d4bed0 Mon Sep 17 00:00:00 2001
|
From 1814b701dfef99ecc9246620c33740ef466c9e71 Mon Sep 17 00:00:00 2001
|
||||||
From: Luca Stefani <luca.stefani.ge1@gmail.com>
|
From: Luca Stefani <luca.stefani.ge1@gmail.com>
|
||||||
Date: Fri, 1 Nov 2019 23:17:08 +0100
|
Date: Fri, 1 Nov 2019 23:17:08 +0100
|
||||||
Subject: [PATCH 4/6] Specify we read and write launcher settings
|
Subject: [PATCH 4/5] Specify we read and write launcher settings
|
||||||
|
|
||||||
Change-Id: Ifc8196588443b007602118389ca76d34ab531f14
|
Change-Id: Ifc8196588443b007602118389ca76d34ab531f14
|
||||||
---
|
---
|
||||||
|
@ -9,10 +9,10 @@ Change-Id: Ifc8196588443b007602118389ca76d34ab531f14
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||||
index ff8f187..cace7db 100755
|
index 4e71bcc6..26f4fce0 100755
|
||||||
--- a/AndroidManifest.xml
|
--- a/AndroidManifest.xml
|
||||||
+++ b/AndroidManifest.xml
|
+++ b/AndroidManifest.xml
|
||||||
@@ -37,6 +37,9 @@
|
@@ -45,6 +45,9 @@
|
||||||
</intent>
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
|
@ -23,5 +23,5 @@ index ff8f187..cace7db 100755
|
||||||
tools:replace="android:icon,android:name"
|
tools:replace="android:icon,android:name"
|
||||||
android:extractNativeLibs="false"
|
android:extractNativeLibs="false"
|
||||||
--
|
--
|
||||||
2.37.2
|
2.39.2
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
From 8ebb9654981aea1a79a4145eda7c55d2f5a02d1c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Danny Lin <danny@kdrag0n.dev>
|
||||||
|
Date: Tue, 5 Oct 2021 22:40:58 -0700
|
||||||
|
Subject: [PATCH 5/5] Add permission for launcher preview rendering
|
||||||
|
|
||||||
|
Change-Id: Ie707dcd98161e8f5993b0504295fddc3f395cd20
|
||||||
|
---
|
||||||
|
AndroidManifest.xml | 1 +
|
||||||
|
privapp_whitelist_com.android.wallpaper.xml | 1 +
|
||||||
|
2 files changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||||
|
index 26f4fce0..40281cf9 100755
|
||||||
|
--- a/AndroidManifest.xml
|
||||||
|
+++ b/AndroidManifest.xml
|
||||||
|
@@ -8,6 +8,7 @@
|
||||||
|
<uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES"/>
|
||||||
|
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
|
||||||
|
<uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" />
|
||||||
|
+ <uses-permission android:name="android.permission.BIND_WALLPAPER" />
|
||||||
|
<uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
|
||||||
|
<uses-permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE" />
|
||||||
|
<uses-permission android:name="android.permission.CUSTOMIZE_SYSTEM_UI" />
|
||||||
|
diff --git a/privapp_whitelist_com.android.wallpaper.xml b/privapp_whitelist_com.android.wallpaper.xml
|
||||||
|
index e3f3b658..47133be8 100644
|
||||||
|
--- a/privapp_whitelist_com.android.wallpaper.xml
|
||||||
|
+++ b/privapp_whitelist_com.android.wallpaper.xml
|
||||||
|
@@ -20,5 +20,6 @@
|
||||||
|
<permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
|
||||||
|
<permission name="android.permission.CHANGE_OVERLAY_PACKAGES"/>
|
||||||
|
<permission name="android.permission.WRITE_SECURE_SETTINGS" />
|
||||||
|
+ <permission name="android.permission.BIND_WALLPAPER"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
</permissions>
|
||||||
|
--
|
||||||
|
2.39.2
|
||||||
|
|
Loading…
Reference in a new issue