From 4bb83df190e37180a286baaaca0eaaf2b8f811d9 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Tue, 26 Sep 2017 15:07:34 -0700 Subject: VintfRuntimeInfo: do not fetch files that are not needed ... to avoid unnecessary denials. Test: CtsDeviceInfo Bug: 66960848 Change-Id: I28821c44285a7de424a79b8a374feac6718605b1 --- core/jni/android_os_VintfRuntimeInfo.cpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/core/jni/android_os_VintfRuntimeInfo.cpp b/core/jni/android_os_VintfRuntimeInfo.cpp index 315eac1b9414..9379ea6dcd10 100644 --- a/core/jni/android_os_VintfRuntimeInfo.cpp +++ b/core/jni/android_os_VintfRuntimeInfo.cpp @@ -29,28 +29,33 @@ namespace android { using vintf::RuntimeInfo; using vintf::VintfObject; -#define MAP_STRING_METHOD(javaMethod, cppString) \ +#define MAP_STRING_METHOD(javaMethod, cppString, flags) \ static jstring android_os_VintfRuntimeInfo_##javaMethod(JNIEnv* env, jclass clazz) \ { \ - std::shared_ptr info = VintfObject::GetRuntimeInfo(); \ + std::shared_ptr info = VintfObject::GetRuntimeInfo( \ + false /* skipCache */, flags); \ if (info == nullptr) return nullptr; \ return env->NewStringUTF((cppString).c_str()); \ } \ -MAP_STRING_METHOD(getCpuInfo, info->cpuInfo()); -MAP_STRING_METHOD(getOsName, info->osName()); -MAP_STRING_METHOD(getNodeName, info->nodeName()); -MAP_STRING_METHOD(getOsRelease, info->osRelease()); -MAP_STRING_METHOD(getOsVersion, info->osVersion()); -MAP_STRING_METHOD(getHardwareId, info->hardwareId()); -MAP_STRING_METHOD(getKernelVersion, vintf::to_string(info->kernelVersion())); -MAP_STRING_METHOD(getBootAvbVersion, vintf::to_string(info->bootAvbVersion())); -MAP_STRING_METHOD(getBootVbmetaAvbVersion, vintf::to_string(info->bootVbmetaAvbVersion())); +MAP_STRING_METHOD(getCpuInfo, info->cpuInfo(), RuntimeInfo::FetchFlag::CPU_INFO); +MAP_STRING_METHOD(getOsName, info->osName(), RuntimeInfo::FetchFlag::CPU_VERSION); +MAP_STRING_METHOD(getNodeName, info->nodeName(), RuntimeInfo::FetchFlag::CPU_VERSION); +MAP_STRING_METHOD(getOsRelease, info->osRelease(), RuntimeInfo::FetchFlag::CPU_VERSION); +MAP_STRING_METHOD(getOsVersion, info->osVersion(), RuntimeInfo::FetchFlag::CPU_VERSION); +MAP_STRING_METHOD(getHardwareId, info->hardwareId(), RuntimeInfo::FetchFlag::CPU_VERSION); +MAP_STRING_METHOD(getKernelVersion, vintf::to_string(info->kernelVersion()), + RuntimeInfo::FetchFlag::CPU_VERSION); +MAP_STRING_METHOD(getBootAvbVersion, vintf::to_string(info->bootAvbVersion()), + RuntimeInfo::FetchFlag::AVB); +MAP_STRING_METHOD(getBootVbmetaAvbVersion, vintf::to_string(info->bootVbmetaAvbVersion()), + RuntimeInfo::FetchFlag::AVB); static jlong android_os_VintfRuntimeInfo_getKernelSepolicyVersion(JNIEnv *env, jclass clazz) { - std::shared_ptr info = VintfObject::GetRuntimeInfo(); + std::shared_ptr info = VintfObject::GetRuntimeInfo( + false /* skipCache */, RuntimeInfo::FetchFlag::POLICYVERS); if (info == nullptr) return 0; return static_cast(info->kernelSepolicyVersion()); } -- cgit v1.2.3-59-g8ed1b