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

Commit f899246c authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11816316 from 27af7d9c to 24Q3-release

Change-Id: I4c3c5f4cc7074ade24d0816ed1e9b5625a56eb68
parents edf14b9c 27af7d9c
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -227,3 +227,13 @@ flag {
       purpose: PURPOSE_BUGFIX
     }
}

flag {
     namespace: "camera_platform"
     name: "use_system_api_for_vndk_version"
     description: "ro.board.api_level isn't reliable. Use system api to replace ro.vndk.version"
     bug: "312315580"
     metadata {
       purpose: PURPOSE_BUGFIX
     }
}
+2 −10
Original line number Diff line number Diff line
@@ -71,18 +71,10 @@ std::shared_ptr<AAudioServiceInterface> AAudioBinderClient::getAAudioService() {
    {
        Mutex::Autolock _l(mServiceLock);
        if (mAdapter == nullptr) {
            sp<IBinder> binder;
            sp<IServiceManager> sm = defaultServiceManager();
            // Try several times to get the service.
            int retries = 4;
            do {
                binder = sm->getService(String16(AAUDIO_SERVICE_NAME)); // This will wait a while.
                if (binder.get() != nullptr) {
                    break;
                }
            } while (retries-- > 0);
            sp<IBinder> binder = sm->waitForService(String16(AAUDIO_SERVICE_NAME));

            if (binder.get() != nullptr) {
            if (binder != nullptr) {
                // Ask for notification if the service dies.
                status_t status = binder->linkToDeath(mAAudioClient);
                // TODO review what we should do if this fails
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ cc_defaults {
        "libsensorprivacy",
        "libstagefright",
        "libstagefright_foundation",
        "libvendorsupport",
        "libxml2",
        "libyuv",
        "android.companion.virtual.virtualdevice_aidl-cpp",
+24 −4
Original line number Diff line number Diff line
@@ -21,18 +21,20 @@
#include <com_android_internal_camera_flags.h>
#include <utils/Errors.h>
#include <utils/Log.h>
#include <vendorsupport/api_level.h>

namespace android {

namespace flags = com::android::internal::camera::flags;

namespace {
constexpr const char* LEGACY_VNDK_VERSION_PROP = "ro.vndk.version";
constexpr const char* BOARD_API_LEVEL_PROP = "ro.board.api_level";
constexpr int MAX_VENDOR_API_LEVEL = 1000000;
constexpr int FIRST_VNDK_VERSION = 202404;

int getVNDKVersionFromProp(int defaultVersion) {
    if (!com_android_internal_camera_flags_use_ro_board_api_level_for_vndk_version()) {
int legacyGetVNDKVersionFromProp(int defaultVersion) {
    if (!flags::use_ro_board_api_level_for_vndk_version()) {
        return base::GetIntProperty(LEGACY_VNDK_VERSION_PROP, defaultVersion);
    }

@@ -54,6 +56,24 @@ int getVNDKVersionFromProp(int defaultVersion) {
    vndkVersion = (vndkVersion - FIRST_VNDK_VERSION) / 100;
    return __ANDROID_API_V__ + vndkVersion;
}
}  // anonymous namespace

int getVNDKVersionFromProp(int defaultVersion) {
    if (!flags::use_system_api_for_vndk_version()) {
        return legacyGetVNDKVersionFromProp(defaultVersion);
    }

    int vendorApiLevel = AVendorSupport_getVendorApiLevel();
    if (vendorApiLevel == 0) {
        // Couldn't find vendor API level, return default
        return defaultVersion;
    }

    // Vendor API level for Android V and above are of the format YYYYMM starting with 202404.
    // AVendorSupport_getSdkApiLevelOf maps them back to SDK API levels while leaving older
    // values unchanged.
    return AVendorSupport_getSdkApiLevelOf(vendorApiLevel);
}

RunThreadWithRealtimePriority::RunThreadWithRealtimePriority(int tid)
    : mTid(tid), mPreviousPolicy(sched_getscheduler(tid)) {