From 5d78c6366281ab5614de7c2eba347e5abbfb59da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Fri, 21 Oct 2022 01:12:16 +0000 Subject: [PATCH] ipsec - use ro.vendor.api_level instead of ro.product.first_api_level MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: 254143771 Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: I9f91fc250e0fa40c9dc9ee3e7a2f7bc3cf2ebc75 --- framework-t/src/android/net/IpSecAlgorithm.java | 6 +++++- tests/unit/java/android/net/IpSecAlgorithmTest.java | 11 ++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/framework-t/src/android/net/IpSecAlgorithm.java b/framework-t/src/android/net/IpSecAlgorithm.java index 10a22ac360..6d5b2f79ab 100644 --- a/framework-t/src/android/net/IpSecAlgorithm.java +++ b/framework-t/src/android/net/IpSecAlgorithm.java @@ -21,6 +21,7 @@ import android.content.res.Resources; import android.os.Build; import android.os.Parcel; import android.os.Parcelable; +import android.os.SystemProperties; import com.android.internal.annotations.VisibleForTesting; @@ -351,8 +352,11 @@ public final class IpSecAlgorithm implements Parcelable { } } + // T introduced calculated property 'ro.vendor.api_level', + // which is the API level of the VSR that the device must conform to. + int vendorApiLevel = SystemProperties.getInt("ro.vendor.api_level", 10000); for (Entry entry : ALGO_TO_REQUIRED_FIRST_SDK.entrySet()) { - if (Build.VERSION.DEVICE_INITIAL_SDK_INT >= entry.getValue()) { + if (vendorApiLevel >= entry.getValue()) { enabledAlgos.add(entry.getKey()); } } diff --git a/tests/unit/java/android/net/IpSecAlgorithmTest.java b/tests/unit/java/android/net/IpSecAlgorithmTest.java index 1482055026..54ad961bef 100644 --- a/tests/unit/java/android/net/IpSecAlgorithmTest.java +++ b/tests/unit/java/android/net/IpSecAlgorithmTest.java @@ -27,6 +27,7 @@ import static org.mockito.Mockito.mock; import android.content.res.Resources; import android.os.Build; import android.os.Parcel; +import android.os.SystemProperties; import androidx.test.filters.SmallTest; @@ -123,9 +124,7 @@ public class IpSecAlgorithmTest { @Test public void testValidationForAlgosAddedInS() throws Exception { - if (Build.VERSION.DEVICE_INITIAL_SDK_INT <= Build.VERSION_CODES.R) { - return; - } + if (SystemProperties.getInt("ro.vendor.api_level", 10000) <= Build.VERSION_CODES.R) return; for (int len : new int[] {160, 224, 288}) { checkCryptKeyLenValidation(IpSecAlgorithm.CRYPT_AES_CTR, len); @@ -194,15 +193,17 @@ public class IpSecAlgorithmTest { } private static Set getMandatoryAlgos() { + int vendorApiLevel = SystemProperties.getInt("ro.vendor.api_level", 10000); return CollectionUtils.filter( ALGO_TO_REQUIRED_FIRST_SDK.keySet(), - i -> Build.VERSION.DEVICE_INITIAL_SDK_INT >= ALGO_TO_REQUIRED_FIRST_SDK.get(i)); + i -> vendorApiLevel >= ALGO_TO_REQUIRED_FIRST_SDK.get(i)); } private static Set getOptionalAlgos() { + int vendorApiLevel = SystemProperties.getInt("ro.vendor.api_level", 10000); return CollectionUtils.filter( ALGO_TO_REQUIRED_FIRST_SDK.keySet(), - i -> Build.VERSION.DEVICE_INITIAL_SDK_INT < ALGO_TO_REQUIRED_FIRST_SDK.get(i)); + i -> vendorApiLevel < ALGO_TO_REQUIRED_FIRST_SDK.get(i)); } @Test