diff --git a/play-services-core/src/main/kotlin/org/microg/gms/phenotype/PhenotypeService.kt b/play-services-core/src/main/kotlin/org/microg/gms/phenotype/PhenotypeService.kt index 35e92fd6d2..a767ba19fd 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/phenotype/PhenotypeService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/phenotype/PhenotypeService.kt @@ -118,30 +118,19 @@ class PhenotypeServiceImpl(val packageName: String?) : IPhenotypeService.Stub() override fun getCommitedConfiguration(callbacks: IPhenotypeCallbacks, packageName: String?) { Log.d(TAG, "getCommitedConfiguration($packageName)") - callbacks.onCommittedConfiguration(Status.SUCCESS, Configurations().apply { - field4 = emptyArray() - }) + callbacks.onCommittedConfiguration(Status.SUCCESS, configurationsResult()) } override fun getConfigurationSnapshotWithToken(callbacks: IPhenotypeCallbacks, packageName: String?, user: String?, p3: String?) { Log.d(TAG, "getConfigurationSnapshotWithToken($packageName, $user, $p3)") if (packageName in CONFIGURATION_OPTIONS.keys) { - callbacks.onConfiguration(Status.SUCCESS, Configurations().apply { - serverToken = "unknown" - snapshotToken = "unknown" - version = System.currentTimeMillis() / 1000 - field4 = arrayOf(Configuration().apply { - id = 0 - flags = CONFIGURATION_OPTIONS[packageName] - removeNames = emptyArray() - }) - field5 = false - field6 = byteArrayOf() - }) + callbacks.onConfiguration(Status.SUCCESS, configurationsResult(arrayOf(Configuration().apply { + id = 0 + flags = CONFIGURATION_OPTIONS[packageName] + removeNames = emptyArray() + }))) } else { - callbacks.onConfiguration(Status.SUCCESS, Configurations().apply { - field4 = emptyArray() - }) + callbacks.onConfiguration(Status.SUCCESS, configurationsResult()) } } @@ -152,9 +141,7 @@ class PhenotypeServiceImpl(val packageName: String?) : IPhenotypeService.Stub() override fun registerSync(callbacks: IPhenotypeCallbacks, packageName: String?, version: Int, p3: Array?, p4: ByteArray?, p5: String?, p6: String?) { Log.d(TAG, "registerSync($packageName, $version, $p3, $p4, $p5, $p6)") - callbacks.onConfiguration(Status.SUCCESS, Configurations().apply { - field4 = emptyArray() - }) + callbacks.onConfiguration(Status.SUCCESS, configurationsResult()) } override fun setFlagOverrides(callbacks: IPhenotypeCallbacks, packageName: String?, user: String?, flagName: String?, flagType: Int, flagDataType: Int, flagValue: String?) { diff --git a/play-services-core/src/main/kotlin/org/microg/gms/phenotype/extensions.kt b/play-services-core/src/main/kotlin/org/microg/gms/phenotype/extensions.kt index 58b01426ac..8c360e416d 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/phenotype/extensions.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/phenotype/extensions.kt @@ -5,6 +5,9 @@ package org.microg.gms.phenotype +import com.google.android.gms.phenotype.Configuration +import com.google.android.gms.phenotype.Configurations + private val supportedLanguages = listOf( "bs", "pt", "ja", "ko", "fr", "it", "de", "zh", "nl", "iw", "he", "tr", "cs", "id", "in", "sv", "da", "no", @@ -16,4 +19,13 @@ fun encodeSupportedLanguageList(): ByteArray { return supportedLanguages.flatMap { lang -> listOf(0x0A.toByte(), 0x02.toByte()) + lang.toByteArray(Charsets.UTF_8).toList() }.toByteArray() +} + +fun configurationsResult(configurations: Array = emptyArray()) = Configurations().apply { + serverToken = "unknown" + snapshotToken = "unknown" + version = System.currentTimeMillis() / 1000 + field4 = configurations + field5 = false + field6 = byteArrayOf() } \ No newline at end of file