Verify app signature

This commit is contained in:
vvb2060
2022-04-08 18:03:58 +08:00
committed by John Wu
parent 4cff0384f7
commit 05d6d2b51b
11 changed files with 205 additions and 30 deletions

View File

@@ -41,6 +41,7 @@ object Config : PreferenceModel, DBConfig {
const val DENYLIST = "denylist"
const val SU_MANAGER = "requester"
const val KEYSTORE = "keystore"
const val CERTDIGEST = "cert_digest"
// prefs
const val SU_REQUEST_TIMEOUT = "su_request_timeout"
@@ -152,6 +153,7 @@ object Config : PreferenceModel, DBConfig {
var denyList by DBBoolSettingsNoWrite(Key.DENYLIST, false)
var suManager by dbStrings(Key.SU_MANAGER, "", true)
var keyStoreRaw by dbStrings(Key.KEYSTORE, "", true)
var certDigest by dbStrings(Key.CERTDIGEST, "", true)
private const val SU_FINGERPRINT = "su_fingerprint"

View File

@@ -121,6 +121,7 @@ object HideAPK {
val repack = File(activity.cacheDir, "patched.apk")
val pkg = genPackageName()
Config.keyStoreRaw = ""
Config.certDigest = ""
if (!patch(activity, stub, FileOutputStream(repack), pkg, label))
return false

View File

@@ -12,6 +12,7 @@ import java.io.ByteArrayOutputStream
import java.math.BigInteger
import java.security.KeyPairGenerator
import java.security.KeyStore
import java.security.MessageDigest
import java.security.PrivateKey
import java.security.cert.X509Certificate
import java.util.*
@@ -73,6 +74,9 @@ class Keygen : CertKeyProvider {
}
Config.keyStoreRaw = bytes.toString("UTF-8")
val digest = MessageDigest.getInstance("SHA-256").digest(cert.encoded)
Config.certDigest = digest.joinToString("") { "%02x".format(it) }
return ks
}
}