Loading media/libaudioclient/AudioSystem.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -1922,6 +1922,14 @@ status_t AudioSystem::setAssistantUid(uid_t uid) { return statusTFromBinderStatus(aps->setAssistantUid(uidAidl)); } status_t AudioSystem::setHotwordDetectionServiceUid(uid_t uid) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; int32_t uidAidl = VALUE_OR_RETURN_STATUS(legacy2aidl_uid_t_int32_t(uid)); return statusTFromBinderStatus(aps->setHotwordDetectionServiceUid(uidAidl)); } status_t AudioSystem::setA11yServicesUids(const std::vector<uid_t>& uids) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; Loading media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,8 @@ interface IAudioPolicyService { void setAssistantUid(int /* uid_t */ uid); void setHotwordDetectionServiceUid(int /* uid_t */ uid); void setA11yServicesUids(in int[] /* uid_t[] */ uids); void setCurrentImeUid(int /* uid_t */ uid); Loading media/libaudioclient/include/media/AudioSystem.h +1 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,7 @@ public: static status_t setSurroundFormatEnabled(audio_format_t audioFormat, bool enabled); static status_t setAssistantUid(uid_t uid); static status_t setHotwordDetectionServiceUid(uid_t uid); static status_t setA11yServicesUids(const std::vector<uid_t>& uids); static status_t setCurrentImeUid(uid_t uid); Loading services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -1916,6 +1916,14 @@ Status AudioPolicyService::setAssistantUid(int32_t uidAidl) return Status::ok(); } Status AudioPolicyService::setHotwordDetectionServiceUid(int32_t uidAidl) { uid_t uid = VALUE_OR_RETURN_BINDER_STATUS(aidl2legacy_int32_t_uid_t(uidAidl)); Mutex::Autolock _l(mLock); mUidPolicy->setHotwordDetectionServiceUid(uid); return Status::ok(); } Status AudioPolicyService::setA11yServicesUids(const std::vector<int32_t>& uidsAidl) { size_t size = uidsAidl.size(); Loading services/audiopolicy/service/AudioPolicyService.h +11 −3 Original line number Diff line number Diff line Loading @@ -199,6 +199,7 @@ public: binder::Status setSurroundFormatEnabled(media::audio::common::AudioFormat audioFormat, bool enabled) override; binder::Status setAssistantUid(int32_t uid) override; binder::Status setHotwordDetectionServiceUid(int32_t uid) override; binder::Status setA11yServicesUids(const std::vector<int32_t>& uids) override; binder::Status setCurrentImeUid(int32_t uid) override; binder::Status isHapticPlaybackSupported(bool* _aidl_return) override; Loading Loading @@ -376,7 +377,8 @@ private: public: explicit UidPolicy(wp<AudioPolicyService> service) : mService(service), mObserverRegistered(false), mAssistantUid(0), mCurrentImeUid(0), mRttEnabled(false) {} mAssistantUid(0), mHotwordDetectionServiceUid(0), mCurrentImeUid(0), mRttEnabled(false) {} void registerSelf(); void unregisterSelf(); Loading @@ -386,8 +388,13 @@ private: bool isUidActive(uid_t uid); int getUidState(uid_t uid); void setAssistantUid(uid_t uid) { mAssistantUid = uid; } bool isAssistantUid(uid_t uid) { return uid == mAssistantUid; } void setAssistantUid(uid_t uid) { mAssistantUid = uid; }; void setHotwordDetectionServiceUid(uid_t uid) { mHotwordDetectionServiceUid = uid; } bool isAssistantUid(uid_t uid) const { // The HotwordDetectionService is part of the Assistant package but runs with a separate // (isolated) uid, so we check for either uid here. return uid == mAssistantUid || uid == mHotwordDetectionServiceUid; } void setA11yUids(const std::vector<uid_t>& uids) { mA11yUids.clear(); mA11yUids = uids; } bool isA11yUid(uid_t uid); bool isA11yOnTop(); Loading Loading @@ -423,6 +430,7 @@ private: std::unordered_map<uid_t, std::pair<bool, int>> mOverrideUids; std::unordered_map<uid_t, std::pair<bool, int>> mCachedUids; uid_t mAssistantUid = -1; uid_t mHotwordDetectionServiceUid = -1; std::vector<uid_t> mA11yUids; uid_t mCurrentImeUid = -1; bool mRttEnabled = false; Loading Loading
media/libaudioclient/AudioSystem.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -1922,6 +1922,14 @@ status_t AudioSystem::setAssistantUid(uid_t uid) { return statusTFromBinderStatus(aps->setAssistantUid(uidAidl)); } status_t AudioSystem::setHotwordDetectionServiceUid(uid_t uid) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; int32_t uidAidl = VALUE_OR_RETURN_STATUS(legacy2aidl_uid_t_int32_t(uid)); return statusTFromBinderStatus(aps->setHotwordDetectionServiceUid(uidAidl)); } status_t AudioSystem::setA11yServicesUids(const std::vector<uid_t>& uids) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; Loading
media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,8 @@ interface IAudioPolicyService { void setAssistantUid(int /* uid_t */ uid); void setHotwordDetectionServiceUid(int /* uid_t */ uid); void setA11yServicesUids(in int[] /* uid_t[] */ uids); void setCurrentImeUid(int /* uid_t */ uid); Loading
media/libaudioclient/include/media/AudioSystem.h +1 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,7 @@ public: static status_t setSurroundFormatEnabled(audio_format_t audioFormat, bool enabled); static status_t setAssistantUid(uid_t uid); static status_t setHotwordDetectionServiceUid(uid_t uid); static status_t setA11yServicesUids(const std::vector<uid_t>& uids); static status_t setCurrentImeUid(uid_t uid); Loading
services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -1916,6 +1916,14 @@ Status AudioPolicyService::setAssistantUid(int32_t uidAidl) return Status::ok(); } Status AudioPolicyService::setHotwordDetectionServiceUid(int32_t uidAidl) { uid_t uid = VALUE_OR_RETURN_BINDER_STATUS(aidl2legacy_int32_t_uid_t(uidAidl)); Mutex::Autolock _l(mLock); mUidPolicy->setHotwordDetectionServiceUid(uid); return Status::ok(); } Status AudioPolicyService::setA11yServicesUids(const std::vector<int32_t>& uidsAidl) { size_t size = uidsAidl.size(); Loading
services/audiopolicy/service/AudioPolicyService.h +11 −3 Original line number Diff line number Diff line Loading @@ -199,6 +199,7 @@ public: binder::Status setSurroundFormatEnabled(media::audio::common::AudioFormat audioFormat, bool enabled) override; binder::Status setAssistantUid(int32_t uid) override; binder::Status setHotwordDetectionServiceUid(int32_t uid) override; binder::Status setA11yServicesUids(const std::vector<int32_t>& uids) override; binder::Status setCurrentImeUid(int32_t uid) override; binder::Status isHapticPlaybackSupported(bool* _aidl_return) override; Loading Loading @@ -376,7 +377,8 @@ private: public: explicit UidPolicy(wp<AudioPolicyService> service) : mService(service), mObserverRegistered(false), mAssistantUid(0), mCurrentImeUid(0), mRttEnabled(false) {} mAssistantUid(0), mHotwordDetectionServiceUid(0), mCurrentImeUid(0), mRttEnabled(false) {} void registerSelf(); void unregisterSelf(); Loading @@ -386,8 +388,13 @@ private: bool isUidActive(uid_t uid); int getUidState(uid_t uid); void setAssistantUid(uid_t uid) { mAssistantUid = uid; } bool isAssistantUid(uid_t uid) { return uid == mAssistantUid; } void setAssistantUid(uid_t uid) { mAssistantUid = uid; }; void setHotwordDetectionServiceUid(uid_t uid) { mHotwordDetectionServiceUid = uid; } bool isAssistantUid(uid_t uid) const { // The HotwordDetectionService is part of the Assistant package but runs with a separate // (isolated) uid, so we check for either uid here. return uid == mAssistantUid || uid == mHotwordDetectionServiceUid; } void setA11yUids(const std::vector<uid_t>& uids) { mA11yUids.clear(); mA11yUids = uids; } bool isA11yUid(uid_t uid); bool isA11yOnTop(); Loading Loading @@ -423,6 +430,7 @@ private: std::unordered_map<uid_t, std::pair<bool, int>> mOverrideUids; std::unordered_map<uid_t, std::pair<bool, int>> mCachedUids; uid_t mAssistantUid = -1; uid_t mHotwordDetectionServiceUid = -1; std::vector<uid_t> mA11yUids; uid_t mCurrentImeUid = -1; bool mRttEnabled = false; Loading