From bc0c4990502afac5811b9deae7c3dae702961e64 Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Fri, 12 Jul 2024 06:04:40 +0800 Subject: [PATCH] use bouncycastle --- gradle/libs.versions.toml | 4 +- service/build.gradle.kts | 9 ++- .../a13e300/tricky_store/fwpatch/Android.java | 56 +++++++------------ 3 files changed, 31 insertions(+), 38 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c042ed5..eddff0b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,12 +1,12 @@ [versions] agp = "8.5.0" +bcpkix-jdk18on = "1.78.1" kotlin = "2.0.0" annotation = "1.8.0" -bcpkix-jdk15on = "1.58.0.0" [libraries] annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" } -bcpkix-jdk15on = { module = "com.madgag.spongycastle:bcpkix-jdk15on", version.ref = "bcpkix-jdk15on" } +bcpkix-jdk18on = { module = "org.bouncycastle:bcpkix-jdk18on", version.ref = "bcpkix-jdk18on" } [plugins] agp-app = { id = "com.android.application", version.ref = "agp" } diff --git a/service/build.gradle.kts b/service/build.gradle.kts index eb92a16..643ff05 100644 --- a/service/build.gradle.kts +++ b/service/build.gradle.kts @@ -1,3 +1,5 @@ +import com.android.build.api.dsl.Packaging + plugins { alias(libs.plugins.jetbrains.kotlin.android) alias(libs.plugins.agp.app) @@ -29,10 +31,15 @@ android { signingConfig = signingConfigs["debug"] } } + packaging { + resources { + excludes += "**" + } + } } dependencies { compileOnly(project(":stub")) compileOnly(libs.annotation) - implementation(libs.bcpkix.jdk15on) + implementation(libs.bcpkix.jdk18on) } \ No newline at end of file diff --git a/service/src/main/java/io/github/a13e300/tricky_store/fwpatch/Android.java b/service/src/main/java/io/github/a13e300/tricky_store/fwpatch/Android.java index 388ddce..77e05dd 100644 --- a/service/src/main/java/io/github/a13e300/tricky_store/fwpatch/Android.java +++ b/service/src/main/java/io/github/a13e300/tricky_store/fwpatch/Android.java @@ -4,27 +4,27 @@ import android.os.Build; import android.security.keystore.KeyProperties; import android.util.Log; -import org.spongycastle.asn1.ASN1Boolean; -import org.spongycastle.asn1.ASN1Encodable; -import org.spongycastle.asn1.ASN1EncodableVector; -import org.spongycastle.asn1.ASN1Enumerated; -import org.spongycastle.asn1.ASN1ObjectIdentifier; -import org.spongycastle.asn1.ASN1OctetString; -import org.spongycastle.asn1.ASN1Sequence; -import org.spongycastle.asn1.ASN1TaggedObject; -import org.spongycastle.asn1.DEROctetString; -import org.spongycastle.asn1.DERSequence; -import org.spongycastle.asn1.DERTaggedObject; -import org.spongycastle.asn1.x509.Extension; -import org.spongycastle.cert.X509CertificateHolder; -import org.spongycastle.cert.X509v3CertificateBuilder; -import org.spongycastle.cert.jcajce.JcaX509CertificateConverter; -import org.spongycastle.openssl.PEMKeyPair; -import org.spongycastle.openssl.PEMParser; -import org.spongycastle.openssl.jcajce.JcaPEMKeyConverter; -import org.spongycastle.operator.ContentSigner; -import org.spongycastle.operator.jcajce.JcaContentSignerBuilder; -import org.spongycastle.util.io.pem.PemReader; +import org.bouncycastle.asn1.ASN1Boolean; +import org.bouncycastle.asn1.ASN1Encodable; +import org.bouncycastle.asn1.ASN1EncodableVector; +import org.bouncycastle.asn1.ASN1Enumerated; +import org.bouncycastle.asn1.ASN1ObjectIdentifier; +import org.bouncycastle.asn1.ASN1OctetString; +import org.bouncycastle.asn1.ASN1Sequence; +import org.bouncycastle.asn1.ASN1TaggedObject; +import org.bouncycastle.asn1.DEROctetString; +import org.bouncycastle.asn1.DERSequence; +import org.bouncycastle.asn1.DERTaggedObject; +import org.bouncycastle.asn1.x509.Extension; +import org.bouncycastle.cert.X509CertificateHolder; +import org.bouncycastle.cert.X509v3CertificateBuilder; +import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; +import org.bouncycastle.openssl.PEMKeyPair; +import org.bouncycastle.openssl.PEMParser; +import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; +import org.bouncycastle.operator.ContentSigner; +import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; +import org.bouncycastle.util.io.pem.PemReader; import java.io.ByteArrayInputStream; import java.io.StringReader; @@ -108,20 +108,6 @@ public final class Android { } } - private static Field getField(String fieldName) { - Field field = null; - try { - field = Build.class.getDeclaredField(fieldName); - } catch (Throwable ignored) { - try { - field = Build.VERSION.class.getDeclaredField(fieldName); - } catch (Throwable t) { - Log.e(TAG, "Couldn't find field " + fieldName); - } - } - return field; - } - public static Certificate[] engineGetCertificateChain(Certificate[] caList) { if (caList == null) throw new UnsupportedOperationException("caList is null!"); try {