diff --git a/mirai-core-qqandroid/src/jvmTest/kotlin/androidPacketTests/utils.kt b/mirai-core-qqandroid/src/jvmTest/kotlin/androidPacketTests/utils.kt
new file mode 100644
index 000000000..172ffa931
--- /dev/null
+++ b/mirai-core-qqandroid/src/jvmTest/kotlin/androidPacketTests/utils.kt
@@ -0,0 +1,54 @@
+package androidPacketTests
+
+import net.mamoe.mirai.utils.cryptor.decryptBy
+import org.bouncycastle.jce.provider.JCEECPrivateKey
+import org.bouncycastle.jce.spec.ECParameterSpec
+import org.bouncycastle.jce.spec.ECPrivateKeySpec
+import org.bouncycastle.math.ec.ECConstants
+import org.bouncycastle.math.ec.ECCurve
+import org.bouncycastle.util.encoders.Hex
+import java.math.BigInteger
+import java.security.interfaces.ECPrivateKey
+
+fun ByteArray.decryptBy16Zero() = this.decryptBy(ByteArray(16))
+
+fun ByteArray.dropTCPHead(): ByteArray = this.drop(16 * 3 + 6).toByteArray()
+
+
+fun loadPrivateKey(s: String): ECPrivateKey {
+    fun fromHex(
+        hex: String
+    ): BigInteger {
+        return BigInteger(1, Hex.decode(hex))
+    }
+
+    // p = 2^192 - 2^32 - 2^12 - 2^8 - 2^7 - 2^6 - 2^3 - 1
+    // p = 2^192 - 2^32 - 2^12 - 2^8 - 2^7 - 2^6 - 2^3 - 1
+    val p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37")
+    val a = ECConstants.ZERO
+    val b = BigInteger.valueOf(3)
+    val n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D")
+    val h = BigInteger.valueOf(1)
+
+    val curve: ECCurve = ECCurve.Fp(p, a, b)
+    //ECPoint G = curve.decodePoint(Hex.decode("03"
+    //+ "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"));
+    //ECPoint G = curve.decodePoint(Hex.decode("03"
+//+ "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"));
+    val G = curve.decodePoint(
+        Hex.decode(
+            "04"
+                    + "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"
+                    + "9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D"
+        )
+    )
+
+    return JCEECPrivateKey(
+        "EC",
+        ECPrivateKeySpec(
+            fromHex(s),
+            ECParameterSpec(curve, G, n, h)
+        )
+    )
+    //  return KeyFactory.getInstance("ECDH").generatePrivate(PKCS8EncodedKeySpec(s))
+}
diff --git a/mirai-demos/mirai-demo-1/build.gradle b/mirai-demos/mirai-demo-1/build.gradle
index 91f064334..e4c337d46 100644
--- a/mirai-demos/mirai-demo-1/build.gradle
+++ b/mirai-demos/mirai-demo-1/build.gradle
@@ -2,6 +2,7 @@ apply plugin: "kotlin"
 apply plugin: "java"
 
 dependencies {
+    implementation files("../../mirai-core/build/classes/kotlin/jvm/main") // IDE bug
 
     implementation files("../../mirai-core-timpc/build/classes/kotlin/jvm/main") // IDE bug
     implementation project(":mirai-core-timpc")