Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 192ccdf6 authored by Atneya Nair's avatar Atneya Nair Committed by Android (Google) Code Review
Browse files

Merge changes from topic "audioserver_perm_reapply" into main

* changes:
  Reapply "Audiopolicy permission check caching"
  Auto-grant permission to root/system/self
parents 444ff558 09859fe2
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -129,10 +129,12 @@ BinderResult<std::vector<std::string>> NativePermissionController::getPackagesFo

BinderResult<bool> NativePermissionController::validateUidPackagePair(
        uid_t uid, const std::string& packageName) const {
    if (uid == AID_ROOT || uid == AID_SYSTEM) return true;
    uid = uid % AID_USER_OFFSET;
    const auto fixed_package_opt = getFixedPackageName(uid);
    if (fixed_package_opt.has_value()) {
        return packageName == fixed_package_opt.value();
        return (uid == AID_ROOT || uid == AID_SYSTEM) ? true :
                packageName == fixed_package_opt.value();
    }
    std::lock_guard l{m_};
    if (!is_package_populated_) {
@@ -148,6 +150,7 @@ BinderResult<bool> NativePermissionController::validateUidPackagePair(

BinderResult<bool> NativePermissionController::checkPermission(PermissionEnum perm,
                                                               uid_t uid) const {
    if (uid == AID_ROOT || uid == AID_SYSTEM || uid == getuid()) return true;
    std::lock_guard l{m_};
    const auto& uids = permission_map_[static_cast<size_t>(perm)];
    if (!uids.empty()) {
+164 −50

File changed.

Preview size limit exceeded, changes collapsed.

+2 −2
Original line number Diff line number Diff line
@@ -452,8 +452,8 @@ private:
    app_state_t apmStatFromAmState(int amState);

    bool isSupportedSystemUsage(audio_usage_t usage);
    status_t validateUsage(const audio_attributes_t& attr);
    status_t validateUsage(const audio_attributes_t& attr,
    binder::Status validateUsage(const audio_attributes_t& attr);
    binder::Status validateUsage(const audio_attributes_t& attr,
                           const AttributionSourceState& attributionSource);

    void updateUidStates();