From 163ecd146b7fdfa076c71f5f7e2abc293b8f5139 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 25 Apr 2023 13:40:34 +0530 Subject: [PATCH] fixup! SpoofDeviceProvider: Filter packed .properties with specific regex We cannot rely on name of the file as on non-debug builds, resource optimization renames the filename to a random string. Thus, we read the said property file and only consider it if it has a valid UserReadableName. --- .../aurora/store/data/providers/SpoofDeviceProvider.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt b/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt index f99c9b9f9..1b47e5a6d 100644 --- a/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt +++ b/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt @@ -35,7 +35,6 @@ import java.util.jar.JarFile class SpoofDeviceProvider private constructor(var context: Context) { companion object : SingletonHolder(::SpoofDeviceProvider) { - private const val REGEX = "gplayapi_[a-zA-Z0-9_-]+\\.properties" private const val SUFFIX = ".properties" fun filenameValid(filename: String): Boolean { @@ -62,10 +61,12 @@ class SpoofDeviceProvider private constructor(var context: Context) { val entries = jarFile.entries() while (entries.hasMoreElements()) { val entry = entries.nextElement() - if (!entry.name.substringAfterLast("/").matches(Regex(REGEX))) { - continue + if (filenameValid(entry.name)) { + val properties = getProperties(jarFile, entry) + if (properties.getProperty("UserReadableName") != null) { + propertiesList.add(properties) + } } - propertiesList.add(getProperties(jarFile, entry)) } return propertiesList }