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(