rosemary: Add shim for proprietary AudioTrack constructor

Change-Id: Icc7a1f9c748578f5b58499e7a76213673c4bcf54
Signed-off-by: bengris32 <bengris32@protonmail.ch>
This commit is contained in:
bengris32
2023-07-25 09:35:55 +01:00
committed by Matsvei Niaverau
parent dad12723d2
commit a3b88a8eda
6 changed files with 64 additions and 2 deletions

View File

@@ -166,7 +166,7 @@ SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/public
# SPL
VENDOR_SECURITY_PATCH := 2023-02-01
VENDOR_SECURITY_PATCH := 2022-05-01
# Verified Boot
BOARD_AVB_ENABLE := true

View File

@@ -220,6 +220,9 @@ PRODUCT_BOOT_JARS += \
mediatek-telephony-base \
mediatek-telephony-common
PRODUCT_PACKAGES += \
libshim_sink
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/permissions/privapp-permissions-com.mediatek.ims.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/privapp-permissions-com.mediatek.ims.xml

View File

@@ -87,6 +87,9 @@ function blob_fixup {
vendor/lib64/hw/fingerprint.fpc.default.so)
sed -i 's/\xff\x43\x01\xd1\xfd\x7b\x02\xa9/\xc0\x03\x5f\xd6\xfd\x7b\x02\xa9/g' "${2}"
;;
lib64/libsink.so)
"${PATCHELF}" --add-needed "libshim_sink.so" "$2"
;;
esac
}

View File

@@ -5,3 +5,17 @@ cc_library_shared {
"libui",
]
}
cc_library_shared {
name: "libshim_sink",
srcs: ["libshim_sink.cpp"],
compile_multilib: "64",
shared_libs: [
"libaudioclient",
],
header_libs: [
"libaudioclient_headers",
"libmedia_headers",
],
}

42
libshims/libshim_sink.cpp Normal file
View File

@@ -0,0 +1,42 @@
/*
* Copyright (C) 2023 The LineageOS Project
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <media/AudioTrack.h>
using namespace android;
extern "C" {
void _ZN7android10AudioTrackC1E19audio_stream_type_tj14audio_format_t20audio_channel_mask_tm20audio_output_flags_tRKNS_2wpINS0_19IAudioTrackCallbackEEEi15audio_session_tNS0_13transfer_typeEPK20audio_offload_info_tRKNS_7content22AttributionSourceStateEPK18audio_attributes_tbfi(
void *thisptr, audio_stream_type_t streamType, uint32_t sampleRate,
audio_format_t format, audio_channel_mask_t channelMask, size_t frameCount,
audio_output_flags_t flags,
const wp<AudioTrack::IAudioTrackCallback> &callback,
int32_t notificationFrames, audio_session_t sessionId,
AudioTrack::transfer_type transferType,
const audio_offload_info_t *offloadInfo,
const AttributionSourceState &attributionSource,
const audio_attributes_t *pAttributes, bool doNotReconnect,
float maxRequiredSpeed, audio_port_handle_t selectedDeviceId);
void _ZN7android10AudioTrackC1E19audio_stream_type_tj14audio_format_t20audio_channel_mask_tm20audio_output_flags_tRKNS_2wpINS0_19IAudioTrackCallbackEEEi15audio_session_tNS0_13transfer_typeEPK20audio_offload_info_tRKNS_7content22AttributionSourceStateEPK18audio_attributes_tbfiRKNSt3__112basic_stringIcNSM_11char_traitsIcEENSM_9allocatorIcEEEE(
void *thisptr, audio_stream_type_t streamType, uint32_t sampleRate,
audio_format_t format, audio_channel_mask_t channelMask, size_t frameCount,
audio_output_flags_t flags,
const wp<AudioTrack::IAudioTrackCallback> &callback,
int32_t notificationFrames, audio_session_t sessionId,
AudioTrack::transfer_type transferType,
const audio_offload_info_t *offloadInfo,
const AttributionSourceState &attributionSource,
const audio_attributes_t *pAttributes, bool doNotReconnect,
float maxRequiredSpeed, audio_port_handle_t selectedDeviceId,
const std::string& /* unknown */) {
_ZN7android10AudioTrackC1E19audio_stream_type_tj14audio_format_t20audio_channel_mask_tm20audio_output_flags_tRKNS_2wpINS0_19IAudioTrackCallbackEEEi15audio_session_tNS0_13transfer_typeEPK20audio_offload_info_tRKNS_7content22AttributionSourceStateEPK18audio_attributes_tbfi(
thisptr, streamType, sampleRate, format, channelMask, frameCount, flags,
callback, notificationFrames, sessionId, transferType, offloadInfo,
attributionSource, pAttributes, doNotReconnect, maxRequiredSpeed,
selectedDeviceId);
}
}

View File

@@ -1884,7 +1884,7 @@ lib64/libmtk_vt_wrapper.so
lib64/libmtk_vt_wrapper.so
lib64/libmtkavenhancements.so
lib64/libsignal.so
lib64/libsink.so
lib64/libsink.so|39b1be64f613b83cdd460740de04da814565c414
lib64/libsource.so
lib64/libvcodec_cap.so
lib64/libvcodec_capenc.so