feat: Simplify signing utility API

This commit is contained in:
oSumAtrIX
2024-03-14 12:39:01 +01:00
parent 80e35270c4
commit 4c6a6360cf
2 changed files with 33 additions and 5 deletions

View File

@@ -39,6 +39,7 @@ public final class app/revanced/library/ApkUtils {
public final fun sign (Ljava/io/File;Lapp/revanced/library/ApkUtils$SigningOptions;)V public final fun sign (Ljava/io/File;Lapp/revanced/library/ApkUtils$SigningOptions;)V
public final fun sign (Ljava/io/File;Ljava/io/File;Lapp/revanced/library/ApkUtils$SigningOptions;)V public final fun sign (Ljava/io/File;Ljava/io/File;Lapp/revanced/library/ApkUtils$SigningOptions;)V
public final fun sign (Ljava/io/File;Ljava/io/File;Ljava/lang/String;Lapp/revanced/library/ApkSigner$PrivateKeyCertificatePair;)V public final fun sign (Ljava/io/File;Ljava/io/File;Ljava/lang/String;Lapp/revanced/library/ApkSigner$PrivateKeyCertificatePair;)V
public final fun signApk (Ljava/io/File;Ljava/io/File;Ljava/lang/String;Lapp/revanced/library/ApkUtils$KeyStoreDetails;)V
} }
public final class app/revanced/library/ApkUtils$KeyStoreDetails { public final class app/revanced/library/ApkUtils$KeyStoreDetails {

View File

@@ -103,6 +103,7 @@ object ApkUtils {
* *
* @return The newly created private key and certificate pair. * @return The newly created private key and certificate pair.
*/ */
@Deprecated("This method will be removed in the future.")
fun newPrivateKeyCertificatePair( fun newPrivateKeyCertificatePair(
privateKeyCertificatePairDetails: PrivateKeyCertificatePairDetails, privateKeyCertificatePairDetails: PrivateKeyCertificatePairDetails,
keyStoreDetails: KeyStoreDetails, keyStoreDetails: KeyStoreDetails,
@@ -131,9 +132,10 @@ object ApkUtils {
* *
* @return The private key and certificate pair. * @return The private key and certificate pair.
*/ */
@Deprecated("This method will be removed in the future.")
fun readPrivateKeyCertificatePairFromKeyStore( fun readPrivateKeyCertificatePairFromKeyStore(
keyStoreDetails: KeyStoreDetails, keyStoreDetails: KeyStoreDetails,
) = ApkSigner.readKeyCertificatePair( ) = ApkSigner.readPrivateKeyCertificatePair(
ApkSigner.readKeyStore( ApkSigner.readKeyStore(
keyStoreDetails.keyStore.inputStream(), keyStoreDetails.keyStore.inputStream(),
keyStoreDetails.keyStorePassword, keyStoreDetails.keyStorePassword,
@@ -144,20 +146,26 @@ object ApkUtils {
/** /**
* Signs [inputApkFile] with the given options and saves the signed apk to [outputApkFile]. * Signs [inputApkFile] with the given options and saves the signed apk to [outputApkFile].
* If [KeyStoreDetails.keyStore] does not exist,
* a new private key and certificate pair will be created and saved to the keystore.
* *
* @param inputApkFile The apk file to sign. * @param inputApkFile The apk file to sign.
* @param outputApkFile The file to save the signed apk to. * @param outputApkFile The file to save the signed apk to.
* @param signer The name of the signer. * @param signer The name of the signer.
* @param privateKeyCertificatePair The private key and certificate pair to use for signing. * @param keyStoreDetails The details for the keystore.
*/ */
fun sign( fun signApk(
inputApkFile: File, inputApkFile: File,
outputApkFile: File, outputApkFile: File,
signer: String, signer: String,
privateKeyCertificatePair: ApkSigner.PrivateKeyCertificatePair, keyStoreDetails: KeyStoreDetails,
) = ApkSigner.newApkSigner( ) = ApkSigner.newApkSigner(
signer, signer,
privateKeyCertificatePair, if (keyStoreDetails.keyStore.exists()) {
readPrivateKeyCertificatePairFromKeyStore(keyStoreDetails)
} else {
newPrivateKeyCertificatePair(PrivateKeyCertificatePairDetails(), keyStoreDetails)
},
).signApk(inputApkFile, outputApkFile) ).signApk(inputApkFile, outputApkFile)
@Deprecated("This method will be removed in the future.") @Deprecated("This method will be removed in the future.")
@@ -182,6 +190,25 @@ object ApkUtils {
} }
} }
/**
* Signs [inputApkFile] with the given options and saves the signed apk to [outputApkFile].
*
* @param inputApkFile The apk file to sign.
* @param outputApkFile The file to save the signed apk to.
* @param signer The name of the signer.
* @param privateKeyCertificatePair The private key and certificate pair to use for signing.
*/
@Deprecated("This method will be removed in the future.")
fun sign(
inputApkFile: File,
outputApkFile: File,
signer: String,
privateKeyCertificatePair: ApkSigner.PrivateKeyCertificatePair,
) = ApkSigner.newApkSigner(
signer,
privateKeyCertificatePair,
).signApk(inputApkFile, outputApkFile)
/** /**
* Signs the apk file with the given options. * Signs the apk file with the given options.
* *