Skip to content

Commit

Permalink
feat: Simplify signing utility API
Browse files Browse the repository at this point in the history
  • Loading branch information
oSumAtrIX committed Mar 14, 2024
1 parent 80e3527 commit 4c6a636
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 5 deletions.
1 change: 1 addition & 0 deletions api/revanced-library.api
Original file line number Diff line number Diff line change
Expand Up @@ -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;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 signApk (Ljava/io/File;Ljava/io/File;Ljava/lang/String;Lapp/revanced/library/ApkUtils$KeyStoreDetails;)V
}

public final class app/revanced/library/ApkUtils$KeyStoreDetails {
Expand Down
37 changes: 32 additions & 5 deletions src/main/kotlin/app/revanced/library/ApkUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ object ApkUtils {
*
* @return The newly created private key and certificate pair.
*/
@Deprecated("This method will be removed in the future.")
fun newPrivateKeyCertificatePair(
privateKeyCertificatePairDetails: PrivateKeyCertificatePairDetails,
keyStoreDetails: KeyStoreDetails,
Expand Down Expand Up @@ -131,9 +132,10 @@ object ApkUtils {
*
* @return The private key and certificate pair.
*/
@Deprecated("This method will be removed in the future.")
fun readPrivateKeyCertificatePairFromKeyStore(
keyStoreDetails: KeyStoreDetails,
) = ApkSigner.readKeyCertificatePair(
) = ApkSigner.readPrivateKeyCertificatePair(
ApkSigner.readKeyStore(
keyStoreDetails.keyStore.inputStream(),
keyStoreDetails.keyStorePassword,
Expand All @@ -144,20 +146,26 @@ object ApkUtils {

/**
* 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 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.
* @param keyStoreDetails The details for the keystore.
*/
fun sign(
fun signApk(
inputApkFile: File,
outputApkFile: File,
signer: String,
privateKeyCertificatePair: ApkSigner.PrivateKeyCertificatePair,
keyStoreDetails: KeyStoreDetails,
) = ApkSigner.newApkSigner(
signer,
privateKeyCertificatePair,
if (keyStoreDetails.keyStore.exists()) {
readPrivateKeyCertificatePairFromKeyStore(keyStoreDetails)
} else {
newPrivateKeyCertificatePair(PrivateKeyCertificatePairDetails(), keyStoreDetails)
},
).signApk(inputApkFile, outputApkFile)

@Deprecated("This method will be removed in the future.")
Expand All @@ -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.
*
Expand Down

0 comments on commit 4c6a636

Please sign in to comment.