diff --git a/libwvdrmengine/Android.mk b/libwvdrmengine/Android.mk index 0c6c52e1..28ea3aaf 100644 --- a/libwvdrmengine/Android.mk +++ b/libwvdrmengine/Android.mk @@ -96,10 +96,11 @@ LOCAL_C_INCLUDES := \ vendor/widevine/libwvdrmengine/oemcrypto/include \ LOCAL_HEADER_LIBRARIES := \ + libbase_headers \ libutils_headers \ LOCAL_SHARED_LIBRARIES := \ - liblog + liblog \ LOCAL_CFLAGS := -DCORE_UTIL_IMPLEMENTATION @@ -182,7 +183,7 @@ LOCAL_STATIC_LIBRARIES := \ libwvlevel3 \ LOCAL_SHARED_LIBRARIES := \ - libcutils \ + libbase \ libdl \ liblog \ libprotobuf-cpp-lite \ @@ -247,7 +248,7 @@ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm@1.1 \ android.hardware.drm@1.2 \ android.hidl.memory@1.0 \ - libcutils \ + libbase \ libdl \ libhidlbase \ libhidlmemory \ diff --git a/libwvdrmengine/cdm/src/properties_android.cpp b/libwvdrmengine/cdm/src/properties_android.cpp index b469858e..11f43da1 100644 --- a/libwvdrmengine/cdm/src/properties_android.cpp +++ b/libwvdrmengine/cdm/src/properties_android.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include "log.h" @@ -24,7 +24,6 @@ const char kFactoryKeyboxPath[] = "/factory/wv.keys"; const char kWVCdmVersion[] = "15.0.0"; bool GetAndroidProperty(const char* key, std::string* value) { - char val[PROPERTY_VALUE_MAX]; if (!key) { LOGW("GetAndroidProperty: Invalid property key parameter"); return false; @@ -35,10 +34,9 @@ bool GetAndroidProperty(const char* key, std::string* value) { return false; } - if (property_get(key, val, "Unknown") <= 0) return false; + *value = android::base::GetProperty(key, ""); - *value = val; - return true; + return value->size() > 0; } } // namespace diff --git a/libwvdrmengine/cdm/test/integration-test.mk b/libwvdrmengine/cdm/test/integration-test.mk index ede901af..30f315b1 100644 --- a/libwvdrmengine/cdm/test/integration-test.mk +++ b/libwvdrmengine/cdm/test/integration-test.mk @@ -43,7 +43,7 @@ LOCAL_STATIC_LIBRARIES := \ libwvlevel3 \ LOCAL_SHARED_LIBRARIES := \ - libcutils \ + libbase \ libdl \ liblog \ libmedia_omx \ diff --git a/libwvdrmengine/cdm/test/request_license_test.cpp b/libwvdrmengine/cdm/test/request_license_test.cpp index 52e86e2f..f6ec27b8 100644 --- a/libwvdrmengine/cdm/test/request_license_test.cpp +++ b/libwvdrmengine/cdm/test/request_license_test.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include @@ -4771,10 +4771,10 @@ INSTANTIATE_TEST_CASE_P(Cdm, WvCdmSessionSharingNoKeyTest, &single_encrypted_sub_sample)); TEST(VersionNumberTest, VersionNumberChangeCanary) { - char release_number[PROPERTY_VALUE_MAX]; - ASSERT_GT(property_get("ro.build.version.release", release_number, "Unknown"), - 0); - EXPECT_STREQ("Q", release_number) + std::string release_number = + android::base::GetProperty("ro.build.version.release", ""); + ASSERT_TRUE(release_number.size() > 0); + EXPECT_STREQ("Q", release_number.c_str()) << "The Android version number has changed. You need to update this test " "and also possibly update the Widevine version number in " "properties_android.cpp."; diff --git a/libwvdrmengine/cdm/test/unit-test.mk b/libwvdrmengine/cdm/test/unit-test.mk index 6f759ae5..a897cad3 100644 --- a/libwvdrmengine/cdm/test/unit-test.mk +++ b/libwvdrmengine/cdm/test/unit-test.mk @@ -43,7 +43,7 @@ LOCAL_STATIC_LIBRARIES := \ libwvlevel3 \ LOCAL_SHARED_LIBRARIES := \ - libcutils \ + libbase \ libdl \ liblog \ libmedia_omx \ diff --git a/libwvdrmengine/level3/arm/Android.mk b/libwvdrmengine/level3/arm/Android.mk index 6b53a898..45671b70 100644 --- a/libwvdrmengine/level3/arm/Android.mk +++ b/libwvdrmengine/level3/arm/Android.mk @@ -5,6 +5,7 @@ LOCAL_CFLAGS := \ -Wno-unused \ -Wno-unused-parameter LOCAL_C_INCLUDES := \ + system/core/base/include \ system/core/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/util/include \ diff --git a/libwvdrmengine/level3/arm64/Android.mk b/libwvdrmengine/level3/arm64/Android.mk index ceac6f19..c9569acb 100644 --- a/libwvdrmengine/level3/arm64/Android.mk +++ b/libwvdrmengine/level3/arm64/Android.mk @@ -5,6 +5,7 @@ LOCAL_CFLAGS := \ -Wno-unused \ -Wno-unused-parameter LOCAL_C_INCLUDES := \ + system/core/base/include \ system/core/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/util/include \ diff --git a/libwvdrmengine/level3/mips/Android.mk b/libwvdrmengine/level3/mips/Android.mk index 340da34a..b8ee693b 100644 --- a/libwvdrmengine/level3/mips/Android.mk +++ b/libwvdrmengine/level3/mips/Android.mk @@ -5,6 +5,7 @@ LOCAL_CFLAGS := \ -Wno-unused \ -Wno-unused-parameter LOCAL_C_INCLUDES := \ + system/core/base/include \ system/core/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/util/include \ diff --git a/libwvdrmengine/level3/mips64/Android.mk b/libwvdrmengine/level3/mips64/Android.mk index 8e9f2d81..e6a10849 100644 --- a/libwvdrmengine/level3/mips64/Android.mk +++ b/libwvdrmengine/level3/mips64/Android.mk @@ -5,6 +5,7 @@ LOCAL_CFLAGS := \ -Wno-unused \ -Wno-unused-parameter LOCAL_C_INCLUDES := \ + system/core/base/include \ system/core/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/util/include \ diff --git a/libwvdrmengine/level3/src/get_unique_id_android.cpp b/libwvdrmengine/level3/src/get_unique_id_android.cpp index f5bfa5ab..e63abc5a 100644 --- a/libwvdrmengine/level3/src/get_unique_id_android.cpp +++ b/libwvdrmengine/level3/src/get_unique_id_android.cpp @@ -2,31 +2,29 @@ #include +#include + // The function property_get is defined differently if it comes from the IN_APP // version or from the Android OS. #if defined(IN_APP_FASTBALL) #include "properties_fastball.h" #else -#include +#include #endif namespace wvoec3 { const char *getUniqueID(size_t *len) { - static char temp_value[PROPERTY_VALUE_MAX * 2]; - int actual_len = property_get("ro.serialno", temp_value, NULL); - if (actual_len <= 0) { - actual_len = property_get("net.hostname", temp_value, NULL); - } - if (actual_len <= 0) { - strncpy(temp_value, "0123456789abc", PROPERTY_VALUE_MAX); + static std::string unique_id; + unique_id = android::base::GetProperty("ro.serialno", ""); + if (unique_id.empty()) { + unique_id = android::base::GetProperty("net.hostname", "0123456789abc"); } #if defined(IN_APP_FASTBALL) || defined(IN_APP_MOVIES) - actual_len += - property_get("package.name", temp_value + actual_len, "com.google.inapp"); + unique_id += android::base::GetProperty("package.name", "com.google.inapp"); #endif - *len = actual_len; - return temp_value; + *len = unique_id.size(); + return unique_id.c_str(); } } // namespace wvoec3 diff --git a/libwvdrmengine/level3/x86/Android.mk b/libwvdrmengine/level3/x86/Android.mk index 8a7a91e2..3ae9824b 100644 --- a/libwvdrmengine/level3/x86/Android.mk +++ b/libwvdrmengine/level3/x86/Android.mk @@ -5,6 +5,7 @@ LOCAL_CFLAGS := \ -Wno-unused \ -Wno-unused-parameter LOCAL_C_INCLUDES := \ + system/core/base/include \ system/core/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/util/include \ diff --git a/libwvdrmengine/level3/x86_64/Android.mk b/libwvdrmengine/level3/x86_64/Android.mk index cad2502a..51dc8114 100644 --- a/libwvdrmengine/level3/x86_64/Android.mk +++ b/libwvdrmengine/level3/x86_64/Android.mk @@ -5,6 +5,7 @@ LOCAL_CFLAGS := \ -Wno-unused \ -Wno-unused-parameter LOCAL_C_INCLUDES := \ + system/core/base/include \ system/core/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/util/include \ diff --git a/libwvdrmengine/mediacrypto/test/Android.mk b/libwvdrmengine/mediacrypto/test/Android.mk index 4da27c11..0dba1f16 100644 --- a/libwvdrmengine/mediacrypto/test/Android.mk +++ b/libwvdrmengine/mediacrypto/test/Android.mk @@ -31,6 +31,7 @@ LOCAL_STATIC_LIBRARIES := \ libwvdrmcryptoplugin \ LOCAL_SHARED_LIBRARIES := \ + libbase \ libcutils \ libdl \ liblog \ @@ -94,6 +95,7 @@ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm@1.1 \ android.hardware.drm@1.2 \ android.hidl.memory@1.0 \ + libbase \ libbinder \ libcutils \ libdl \ diff --git a/libwvdrmengine/mediadrm/test/Android.mk b/libwvdrmengine/mediadrm/test/Android.mk index 125ee534..e03fea2c 100644 --- a/libwvdrmengine/mediadrm/test/Android.mk +++ b/libwvdrmengine/mediadrm/test/Android.mk @@ -32,7 +32,7 @@ LOCAL_STATIC_LIBRARIES := \ libwvdrmdrmplugin \ LOCAL_SHARED_LIBRARIES := \ - libcutils \ + libbase \ libdl \ liblog \ libprotobuf-cpp-lite \ @@ -96,7 +96,7 @@ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm@1.2 \ android.hidl.memory@1.0 \ libbinder \ - libcutils \ + libbase \ libdl \ libhidlbase \ libhidlmemory \ diff --git a/libwvdrmengine/oemcrypto/ref/Android.mk b/libwvdrmengine/oemcrypto/ref/Android.mk index 681cdc69..a7fdf9c7 100644 --- a/libwvdrmengine/oemcrypto/ref/Android.mk +++ b/libwvdrmengine/oemcrypto/ref/Android.mk @@ -27,7 +27,7 @@ LOCAL_C_INCLUDES += \ vendor/widevine/libwvdrmengine/cdm/util/include \ LOCAL_SHARED_LIBRARIES := \ - libcutils \ + libbase \ libdl \ liblog \ libmedia \ diff --git a/libwvdrmengine/oemcrypto/test/common.mk b/libwvdrmengine/oemcrypto/test/common.mk index 9bb9297d..5c67ef01 100644 --- a/libwvdrmengine/oemcrypto/test/common.mk +++ b/libwvdrmengine/oemcrypto/test/common.mk @@ -30,7 +30,7 @@ LOCAL_STATIC_LIBRARIES := \ libcdm_utils \ LOCAL_SHARED_LIBRARIES := \ - libcutils \ + libbase \ libdl \ liblog \ libmedia_omx \ diff --git a/libwvdrmengine/src_hidl/WVDrmFactory.cpp b/libwvdrmengine/src_hidl/WVDrmFactory.cpp index 35c58806..857336e4 100644 --- a/libwvdrmengine/src_hidl/WVDrmFactory.cpp +++ b/libwvdrmengine/src_hidl/WVDrmFactory.cpp @@ -10,7 +10,7 @@ #include "WVDrmFactory.h" -#include "cutils/properties.h" +#include "android-base/properties.h" #include "wv_cdm_constants.h" #include "wv_content_decryption_module.h" #include "HidlTypes.h" @@ -57,11 +57,13 @@ Return WVDrmFactory::createPlugin( bool WVDrmFactory::areSpoidsEnabled() { // Check what this device's first API level was. - int32_t firstApiLevel = property_get_int32("ro.product.first_api_level", 0); + int32_t firstApiLevel = + android::base::GetIntProperty("ro.product.first_api_level", 0); if (firstApiLevel == 0) { // First API Level is 0 on factory ROMs, but we can assume the current SDK // version is the first if it's a factory ROM. - firstApiLevel = property_get_int32("ro.build.version.sdk", 0); + firstApiLevel = + android::base::GetIntProperty("ro.build.version.sdk", 0); } return firstApiLevel >= 26; // Android O } diff --git a/libwvdrmengine/test/unit/Android.mk b/libwvdrmengine/test/unit/Android.mk index 2e0f7cbf..39c4718d 100644 --- a/libwvdrmengine/test/unit/Android.mk +++ b/libwvdrmengine/test/unit/Android.mk @@ -72,7 +72,7 @@ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm@1.0 \ android.hardware.drm@1.1 \ android.hardware.drm@1.2 \ - libcutils \ + libbase \ libdl \ libhidlbase \ libhidlmemory \ diff --git a/libwvdrmengine/test/unit/WVDrmFactory_test.cpp b/libwvdrmengine/test/unit/WVDrmFactory_test.cpp index 7d972596..a47a69e5 100644 --- a/libwvdrmengine/test/unit/WVDrmFactory_test.cpp +++ b/libwvdrmengine/test/unit/WVDrmFactory_test.cpp @@ -9,6 +9,8 @@ #include "WVDrmFactory.h" #include "HidlTypes.h" +#include "android-base/properties.h" + namespace wvdrm { namespace hardware { namespace drm { @@ -97,11 +99,13 @@ TEST(WVDrmFactoryTest, DoesNotSupportUnsupportedContainerFormats) { TEST(WVDrmFactoryTest, CalculatesSpoidUseCorrectly) { WVDrmFactory factory; - int32_t firstApiLevel = property_get_int32("ro.product.first_api_level", 0); + int32_t firstApiLevel = + android::base::GetIntProperty("ro.product.first_api_level", 0); if (firstApiLevel == 0) { // First API Level is 0 on factory ROMs, but we can assume the current SDK // version is the first if it's a factory ROM. - firstApiLevel = property_get_int32("ro.build.version.sdk", 0); + firstApiLevel = + android::base::GetIntProperty("ro.build.version.sdk", 0); } bool shouldUseSpoids = (firstApiLevel >= 26); // Android O diff --git a/libwvdrmengine/vts/vendor_module/Android.mk b/libwvdrmengine/vts/vendor_module/Android.mk index 7f61ba72..df163117 100644 --- a/libwvdrmengine/vts/vendor_module/Android.mk +++ b/libwvdrmengine/vts/vendor_module/Android.mk @@ -28,7 +28,7 @@ LOCAL_STATIC_LIBRARIES := \ libcrypto LOCAL_SHARED_LIBRARIES := \ - libcutils \ + libbase \ liblog \ libssl \ libutils \