Loading media/libaudioclient/AudioSystem.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -1479,6 +1479,14 @@ status_t AudioSystem::setA11yServicesUids(const std::vector<uid_t>& uids) return aps->setA11yServicesUids(uids); } status_t AudioSystem::setCurrentImeUid(uid_t uid) { const sp <IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; return aps->setCurrentImeUid(uid); } bool AudioSystem::isHapticPlaybackSupported() { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); Loading media/libaudioclient/IAudioPolicyService.cpp +27 −1 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ enum { GET_PREFERRED_DEVICE_FOR_PRODUCT_STRATEGY, GET_DEVICES_FOR_ATTRIBUTES, AUDIO_MODULES_UPDATED, // oneway SET_CURRENT_IME_UID, }; #define MAX_ITEMS_PER_LIST 1024 Loading Loading @@ -1145,6 +1146,18 @@ public: return static_cast <status_t> (reply.readInt32()); } virtual status_t setCurrentImeUid(uid_t uid) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(uid); status_t status = remote()->transact(SET_CURRENT_IME_UID, data, &reply); if (status != NO_ERROR) { return status; } return static_cast <status_t> (reply.readInt32()); } virtual bool isHapticPlaybackSupported() { Parcel data, reply; Loading Loading @@ -1529,7 +1542,8 @@ status_t BnAudioPolicyService::onTransact( case GET_PREFERRED_DEVICE_FOR_PRODUCT_STRATEGY: case GET_DEVICES_FOR_ATTRIBUTES: case SET_ALLOWED_CAPTURE_POLICY: case AUDIO_MODULES_UPDATED: { case AUDIO_MODULES_UPDATED: case SET_CURRENT_IME_UID: { if (!isServiceUid(IPCThreadState::self()->getCallingUid())) { ALOGW("%s: transaction %d received from PID %d unauthorized UID %d", __func__, code, IPCThreadState::self()->getCallingPid(), Loading Loading @@ -2680,6 +2694,18 @@ status_t BnAudioPolicyService::onTransact( return NO_ERROR; } break; case SET_CURRENT_IME_UID: { CHECK_INTERFACE(IAudioPolicyService, data, reply); int32_t uid; status_t status = data.readInt32(&uid); if (status != NO_ERROR) { return status; } status = setCurrentImeUid(uid); reply->writeInt32(static_cast <int32_t>(status)); return NO_ERROR; } default: return BBinder::onTransact(code, data, reply, flags); } Loading media/libaudioclient/include/media/AudioSystem.h +1 −0 Original line number Diff line number Diff line Loading @@ -399,6 +399,7 @@ public: static status_t setAssistantUid(uid_t uid); static status_t setA11yServicesUids(const std::vector<uid_t>& uids); static status_t setCurrentImeUid(uid_t uid); static bool isHapticPlaybackSupported(); Loading media/libaudioclient/include/media/IAudioPolicyService.h +1 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,7 @@ public: virtual status_t setAssistantUid(uid_t uid) = 0; virtual status_t setA11yServicesUids(const std::vector<uid_t>& uids) = 0; virtual status_t setCurrentImeUid(uid_t uid) = 0; virtual bool isHapticPlaybackSupported() = 0; virtual status_t listAudioProductStrategies(AudioProductStrategyVector &strategies) = 0; Loading services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -1420,6 +1420,13 @@ status_t AudioPolicyService::setA11yServicesUids(const std::vector<uid_t>& uids) return NO_ERROR; } status_t AudioPolicyService::setCurrentImeUid(uid_t uid) { Mutex::Autolock _l(mLock); mUidPolicy->setCurrentImeUid(uid); return NO_ERROR; } bool AudioPolicyService::isHapticPlaybackSupported() { if (mAudioPolicyManager == NULL) { Loading Loading
media/libaudioclient/AudioSystem.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -1479,6 +1479,14 @@ status_t AudioSystem::setA11yServicesUids(const std::vector<uid_t>& uids) return aps->setA11yServicesUids(uids); } status_t AudioSystem::setCurrentImeUid(uid_t uid) { const sp <IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; return aps->setCurrentImeUid(uid); } bool AudioSystem::isHapticPlaybackSupported() { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); Loading
media/libaudioclient/IAudioPolicyService.cpp +27 −1 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ enum { GET_PREFERRED_DEVICE_FOR_PRODUCT_STRATEGY, GET_DEVICES_FOR_ATTRIBUTES, AUDIO_MODULES_UPDATED, // oneway SET_CURRENT_IME_UID, }; #define MAX_ITEMS_PER_LIST 1024 Loading Loading @@ -1145,6 +1146,18 @@ public: return static_cast <status_t> (reply.readInt32()); } virtual status_t setCurrentImeUid(uid_t uid) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(uid); status_t status = remote()->transact(SET_CURRENT_IME_UID, data, &reply); if (status != NO_ERROR) { return status; } return static_cast <status_t> (reply.readInt32()); } virtual bool isHapticPlaybackSupported() { Parcel data, reply; Loading Loading @@ -1529,7 +1542,8 @@ status_t BnAudioPolicyService::onTransact( case GET_PREFERRED_DEVICE_FOR_PRODUCT_STRATEGY: case GET_DEVICES_FOR_ATTRIBUTES: case SET_ALLOWED_CAPTURE_POLICY: case AUDIO_MODULES_UPDATED: { case AUDIO_MODULES_UPDATED: case SET_CURRENT_IME_UID: { if (!isServiceUid(IPCThreadState::self()->getCallingUid())) { ALOGW("%s: transaction %d received from PID %d unauthorized UID %d", __func__, code, IPCThreadState::self()->getCallingPid(), Loading Loading @@ -2680,6 +2694,18 @@ status_t BnAudioPolicyService::onTransact( return NO_ERROR; } break; case SET_CURRENT_IME_UID: { CHECK_INTERFACE(IAudioPolicyService, data, reply); int32_t uid; status_t status = data.readInt32(&uid); if (status != NO_ERROR) { return status; } status = setCurrentImeUid(uid); reply->writeInt32(static_cast <int32_t>(status)); return NO_ERROR; } default: return BBinder::onTransact(code, data, reply, flags); } Loading
media/libaudioclient/include/media/AudioSystem.h +1 −0 Original line number Diff line number Diff line Loading @@ -399,6 +399,7 @@ public: static status_t setAssistantUid(uid_t uid); static status_t setA11yServicesUids(const std::vector<uid_t>& uids); static status_t setCurrentImeUid(uid_t uid); static bool isHapticPlaybackSupported(); Loading
media/libaudioclient/include/media/IAudioPolicyService.h +1 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,7 @@ public: virtual status_t setAssistantUid(uid_t uid) = 0; virtual status_t setA11yServicesUids(const std::vector<uid_t>& uids) = 0; virtual status_t setCurrentImeUid(uid_t uid) = 0; virtual bool isHapticPlaybackSupported() = 0; virtual status_t listAudioProductStrategies(AudioProductStrategyVector &strategies) = 0; Loading
services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -1420,6 +1420,13 @@ status_t AudioPolicyService::setA11yServicesUids(const std::vector<uid_t>& uids) return NO_ERROR; } status_t AudioPolicyService::setCurrentImeUid(uid_t uid) { Mutex::Autolock _l(mLock); mUidPolicy->setCurrentImeUid(uid); return NO_ERROR; } bool AudioPolicyService::isHapticPlaybackSupported() { if (mAudioPolicyManager == NULL) { Loading