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

Commit 3dfc1735 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Skip get target SDK for VNDK client on aidl" into main

parents f3489750 47a7a4a9
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ bool SensorService::sHmacGlobalKeyIsValid = false;
std::map<String16, int> SensorService::sPackageTargetVersion;
Mutex SensorService::sPackageTargetVersionLock;
String16 SensorService::sSensorInterfaceDescriptorPrefix =
        String16("android.frameworks.sensorservice@");
    String16("android.frameworks.sensorservice");
AppOpsManager SensorService::sAppOpsManager;
std::atomic_uint64_t SensorService::curProxCallbackSeq(0);
std::atomic_uint64_t SensorService::completedCallbackSeq(0);
@@ -2295,10 +2295,12 @@ bool SensorService::hasPermissionForSensor(const Sensor& sensor) {
}

int SensorService::getTargetSdkVersion(const String16& opPackageName) {
    // Don't query the SDK version for the ISensorManager descriptor as it doesn't have one. This
    // descriptor tends to be used for VNDK clients, but can technically be set by anyone so don't
    // give it elevated privileges.
    if (opPackageName.startsWith(sSensorInterfaceDescriptorPrefix)) {
    // Don't query the SDK version for the ISensorManager descriptor as it
    // doesn't have one. This descriptor tends to be used for VNDK clients, but
    // can technically be set by anyone so don't give it elevated privileges.
    bool isVNDK = opPackageName.startsWith(sSensorInterfaceDescriptorPrefix) &&
                  opPackageName.contains(String16("@"));
    if (isVNDK) {
        return -1;
    }

+10 −2
Original line number Diff line number Diff line
@@ -188,8 +188,16 @@ ndk::ScopedAStatus SensorManagerAidl::getSensorList(std::vector<SensorInfo>* _ai
}

::android::SensorManager& SensorManagerAidl::getInternalManager() {
    return ::android::SensorManager::getInstanceForPackage(
            String16(ISensorManager::descriptor));
    int32_t version;
    ndk::ScopedAStatus status = getInterfaceVersion(&version);
    if (!status.isOk()) {
        LOG(ERROR) << "Failed to get interface version with error: "
                   << status.getDescription();
        version = -1;
    }
    String16 packageName = String16(ISensorManager::descriptor);
    packageName += String16("@") + String16(std::to_string(version).c_str());
    return ::android::SensorManager::getInstanceForPackage(packageName);
}

/* One global looper for all event queues created from this SensorManager. */