diff --git a/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt b/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt index 014a16001..56e5f19e6 100644 --- a/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt +++ b/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt @@ -18,6 +18,7 @@ import net.mamoe.mirai.data.OnlineStatus import net.mamoe.mirai.internal.BotAccount import net.mamoe.mirai.internal.QQAndroidBot import net.mamoe.mirai.internal.network.components.AccountSecrets +import net.mamoe.mirai.internal.network.components.SsoProcessorContext import net.mamoe.mirai.internal.network.components.SsoSession import net.mamoe.mirai.internal.network.protocol.data.jce.FileStoragePushFSSvcList import net.mamoe.mirai.internal.network.protocol.packet.Tlv @@ -177,8 +178,8 @@ internal open class QQAndroidClient( /** * t545 */ - var qimei16: String? = null - var qimei36: String? = null + val qimei16: String? get() = bot.components[SsoProcessorContext].qimei16 + val qimei36: String? get() = bot.components[SsoProcessorContext].qimei36 } internal val QQAndroidClient.apkId: ByteArray get() = protocol.apkId.toByteArray() diff --git a/mirai-core/src/commonMain/kotlin/network/components/SsoProcessorContext.kt b/mirai-core/src/commonMain/kotlin/network/components/SsoProcessorContext.kt index c0b5d4c97..7c7fb2baf 100644 --- a/mirai-core/src/commonMain/kotlin/network/components/SsoProcessorContext.kt +++ b/mirai-core/src/commonMain/kotlin/network/components/SsoProcessorContext.kt @@ -32,6 +32,12 @@ internal interface SsoProcessorContext { val configuration: BotConfiguration get() = bot.configuration + /** + * t545 + */ + var qimei16: String? + var qimei36: String? + companion object : ComponentKey<SsoProcessorContext> } @@ -42,6 +48,10 @@ internal class SsoProcessorContextImpl( override val device: DeviceInfo = configuration.createDeviceInfo(bot) override val protocol: BotConfiguration.MiraiProtocol get() = configuration.protocol override val configuration: BotConfiguration get() = bot.configuration + + + override var qimei16: String? = null + override var qimei36: String? = null } internal fun BotConfiguration.createDeviceInfo(bot: Bot): DeviceInfo = deviceInfo?.invoke(bot) ?: DeviceInfo.random() \ No newline at end of file diff --git a/mirai-core/src/commonMain/kotlin/network/qimei/Qimei.kt b/mirai-core/src/commonMain/kotlin/network/qimei/Qimei.kt index 3d63931b8..ae0e6595f 100644 --- a/mirai-core/src/commonMain/kotlin/network/qimei/Qimei.kt +++ b/mirai-core/src/commonMain/kotlin/network/qimei/Qimei.kt @@ -195,8 +195,10 @@ internal suspend fun QQAndroidBot.requestQimei(logger: MiraiLogger) { val decryptedData = aesDecrypt(resp.data.decodeBase64(), aesKey, aesKey) val qimeiData = Json.decodeFromString(QimeiData.serializer(), decryptedData.decodeToString()) - client.qimei36 = qimeiData.q36 - client.qimei16 = qimeiData.q16 + client.bot.components[SsoProcessorContext].let { context -> + context.qimei36 = qimeiData.q36 + context.qimei16 = qimeiData.q16 + } } private val dalvikVersions = mapOf(