From a1e33c4d2f7b3ec95ec74219cb3b2ed65f150e73 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Thu, 24 Aug 2017 12:14:17 +0800 Subject: [PATCH] Build everything ourselves --- .gitattributes | 1 + build.py | 47 +- ziptools/apksigner.jar | Bin 224903 -> 0 bytes ziptools/minsignapk.jar | Bin 11206 -> 0 bytes ziptools/signapk.jar | Bin 8976 -> 0 bytes ziptools/src/MinSignAPK.java | 191 ------ ziptools/{src => zipadjust_src}/zipadjust.c | 0 ziptools/{src => zipadjust_src}/zipadjust.h | 0 .../{src => zipadjust_src}/zipadjust_run.c | 0 ziptools/zipsigner/.gitignore | 7 + ziptools/zipsigner/build.gradle | 36 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54788 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + ziptools/zipsigner/gradlew | 172 ++++++ ziptools/zipsigner/gradlew.bat | 84 +++ ziptools/zipsigner/settings.gradle | 4 + .../main/java/com/topjohnwu/ZipSigner.java | 567 ++++++++++++++++++ 17 files changed, 911 insertions(+), 204 deletions(-) delete mode 100644 ziptools/apksigner.jar delete mode 100644 ziptools/minsignapk.jar delete mode 100644 ziptools/signapk.jar delete mode 100644 ziptools/src/MinSignAPK.java rename ziptools/{src => zipadjust_src}/zipadjust.c (100%) rename ziptools/{src => zipadjust_src}/zipadjust.h (100%) rename ziptools/{src => zipadjust_src}/zipadjust_run.c (100%) create mode 100644 ziptools/zipsigner/.gitignore create mode 100644 ziptools/zipsigner/build.gradle create mode 100644 ziptools/zipsigner/gradle/wrapper/gradle-wrapper.jar create mode 100644 ziptools/zipsigner/gradle/wrapper/gradle-wrapper.properties create mode 100755 ziptools/zipsigner/gradlew create mode 100644 ziptools/zipsigner/gradlew.bat create mode 100644 ziptools/zipsigner/settings.gradle create mode 100644 ziptools/zipsigner/src/main/java/com/topjohnwu/ZipSigner.java diff --git a/.gitattributes b/.gitattributes index b965efe99..a777ac7f7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,6 +8,7 @@ # Declare files that will always have CRLF line endings on checkout. *.cmd text eol=crlf +*.bat text eol=crlf # Denote all files that are truly binary and should not be modified. chromeos/** binary diff --git a/build.py b/build.py index 04f40ee64..4b45311c5 100755 --- a/build.py +++ b/build.py @@ -122,8 +122,17 @@ def build_apk(args): if proc.returncode != 0: error('Zipalign Magisk Manager failed!') - proc = subprocess.run('{} sign --ks {} --out {} {}'.format( - 'java -jar {}'.format(os.path.join('../ziptools/apksigner.jar')), + # Find apksigner.jar + apksigner = '' + for root, dirs, files in os.walk(os.path.join(os.environ['ANDROID_HOME'], 'build-tools', build_tool)): + if 'apksigner.jar' in files: + apksigner = os.path.join(root, 'apksigner.jar') + break + if not apksigner: + error('Cannot find apksigner.jar in Android SDK build tools') + + proc = subprocess.run('java -jar {} sign --ks {} --out {} {}'.format( + apksigner, os.path.join('..', 'release_signature.jks'), release, aligned), shell=True) if proc.returncode != 0: @@ -140,20 +149,33 @@ def build_apk(args): os.chdir('..') def sign_adjust_zip(unsigned, output): - header('* Signing / Adjusting Zip') - # Unsigned->signed - proc = subprocess.run(['java', '-jar', os.path.join('ziptools', 'signapk.jar'), - os.path.join('ziptools', 'public.certificate.x509.pem'), - os.path.join('ziptools', 'private.key.pk8'), unsigned, 'tmp_signed.zip']) - if proc.returncode != 0: - error('First sign flashable zip failed!') + zipsigner = os.path.join('ziptools', 'zipsigner', 'build', 'libs', 'zipsigner.jar') if os.name != 'nt' and not os.path.exists(os.path.join('ziptools', 'zipadjust')): + header('* Building zipadjust') # Compile zipadjust - proc = subprocess.run('gcc -o ziptools/zipadjust ziptools/src/*.c -lz', shell=True) + proc = subprocess.run('gcc -o ziptools/zipadjust ziptools/zipadjust_src/*.c -lz', shell=True) if proc.returncode != 0: error('Build zipadjust failed!') + if not os.path.exists(zipsigner): + header('* Building zipsigner.jar') + os.chdir(os.path.join('ziptools', 'zipsigner')) + proc = subprocess.run('{} shadowJar'.format(os.path.join('.', 'gradlew')), shell=True) + if proc.returncode != 0: + error('Build zipsigner.jar failed!') + os.chdir(os.path.join('..', '..')) + + header('* Signing / Adjusting Zip') + + publicKey = os.path.join('ziptools', 'public.certificate.x509.pem') + privateKey = os.path.join('ziptools', 'private.key.pk8') + + # Unsigned->signed + proc = subprocess.run(['java', '-jar', zipsigner, + publicKey, privateKey, unsigned, 'tmp_signed.zip']) + if proc.returncode != 0: + error('First sign flashable zip failed!') # Adjust zip proc = subprocess.run([os.path.join('ziptools', 'zipadjust'), 'tmp_signed.zip', 'tmp_adjusted.zip']) @@ -161,9 +183,8 @@ def sign_adjust_zip(unsigned, output): error('Adjust flashable zip failed!') # Adjusted -> output - proc = subprocess.run(['java', '-jar', os.path.join('ziptools', 'minsignapk.jar'), - os.path.join('ziptools', 'public.certificate.x509.pem'), - os.path.join('ziptools', 'private.key.pk8'), 'tmp_adjusted.zip', output]) + proc = subprocess.run(['java', '-jar', zipsigner, + "-m", publicKey, privateKey, 'tmp_adjusted.zip', output]) if proc.returncode != 0: error('Second sign flashable zip failed!') diff --git a/ziptools/apksigner.jar b/ziptools/apksigner.jar deleted file mode 100644 index b9017b06a78c325fee7c53797e623a0a57cf9e6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224903 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°(HmZst7ohlpBNold3H5A| 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 diff --git a/ziptools/minsignapk.jar b/ziptools/minsignapk.jar deleted file mode 100644 index cd38d23fab4538456f096408d0f4acd3b2f9d344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11206 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 diff --git a/ziptools/signapk.jar b/ziptools/signapk.jar deleted file mode 100644 index 8435b757ae7298e9af1546721805602c87db2059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8976 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 0xffff) { - throw new IllegalArgumentException("signature is too big for ZIP file comment"); - } - // signature starts this many bytes from the end of the file - int signature_start = total_size - message.length - 1; - temp.write(signature_start & 0xff); - temp.write((signature_start >> 8) & 0xff); - // Why the 0xff bytes? In a zip file with no archive comment, - // bytes [-6:-2] of the file are the little-endian offset from - // the start of the file to the central directory. So for the - // two high bytes to be 0xff 0xff, the archive would have to - // be nearly 4GB in side. So it's unlikely that a real - // commentless archive would have 0xffs here, and lets us tell - // an old signed archive from a new one. - temp.write(0xff); - temp.write(0xff); - temp.write(total_size & 0xff); - temp.write((total_size >> 8) & 0xff); - temp.flush(); - - // Signature verification checks that the EOCD header is the - // last such sequence in the file (to avoid minzip finding a - // fake EOCD appended after the signature in its scan). The - // odds of producing this sequence by chance are very low, but - // let's catch it here if it does. - byte[] b = temp.toByteArray(); - for (int i = 0; i < b.length - 3; ++i) { - if (b[i] == 0x50 && b[i + 1] == 0x4b && b[i + 2] == 0x05 && b[i + 3] == 0x06) { - throw new IllegalArgumentException("found spurious EOCD header at " + i); - } - } - - outputStream.write(zipData, 0, zipData.length - 2); - outputStream.write(total_size & 0xff); - outputStream.write((total_size >> 8) & 0xff); - temp.writeTo(outputStream); - } - - private static PrivateKey readPrivateKey(File file) - throws IOException, GeneralSecurityException { - DataInputStream input = new DataInputStream(new FileInputStream(file)); - try { - byte[] bytes = new byte[(int) file.length()]; - input.read(bytes); - - // dont support encrypted keys atm - //KeySpec spec = decryptPrivateKey(bytes, file); - //if (spec == null) { - KeySpec spec = new PKCS8EncodedKeySpec(bytes); - //} - - try { - return KeyFactory.getInstance("RSA").generatePrivate(spec); - } catch (InvalidKeySpecException ex) { - return KeyFactory.getInstance("DSA").generatePrivate(spec); - } - } finally { - input.close(); - } - } - - private static X509Certificate readPublicKey(File file) - throws IOException, GeneralSecurityException { - FileInputStream input = new FileInputStream(file); - try { - CertificateFactory cf = CertificateFactory.getInstance("X.509"); - return (X509Certificate) cf.generateCertificate(input); - } finally { - input.close(); - } - } - - public static void main(String[] args) { - if (args.length < 4) { - System.out.println("MinSignAPK pemfile pk8file inzip outzip"); - System.out.println("- only adds whole-file signature to zip"); - return; - } - - String pemFile = args[0]; - String pk8File = args[1]; - String inFile = args[2]; - String outFile = args[3]; - - try { - X509Certificate publicKey = readPublicKey(new File(pemFile)); - PrivateKey privateKey = readPrivateKey(new File(pk8File)); - - InputStream fis = new FileInputStream(inFile); - byte[] buffer = new byte[(int)(new File(inFile)).length()]; - fis.read(buffer); - fis.close(); - - OutputStream fos = new FileOutputStream(outFile, false); - signWholeOutputFile(buffer, fos, publicKey, privateKey); - fos.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/ziptools/src/zipadjust.c b/ziptools/zipadjust_src/zipadjust.c similarity index 100% rename from ziptools/src/zipadjust.c rename to ziptools/zipadjust_src/zipadjust.c diff --git a/ziptools/src/zipadjust.h b/ziptools/zipadjust_src/zipadjust.h similarity index 100% rename from ziptools/src/zipadjust.h rename to ziptools/zipadjust_src/zipadjust.h diff --git a/ziptools/src/zipadjust_run.c b/ziptools/zipadjust_src/zipadjust_run.c similarity index 100% rename from ziptools/src/zipadjust_run.c rename to ziptools/zipadjust_src/zipadjust_run.c diff --git a/ziptools/zipsigner/.gitignore b/ziptools/zipsigner/.gitignore new file mode 100644 index 000000000..87dc02017 --- /dev/null +++ b/ziptools/zipsigner/.gitignore @@ -0,0 +1,7 @@ +*.iml +.gradle +/local.properties +.idea/ +/build +*.hprof +app/.externalNativeBuild/ diff --git a/ziptools/zipsigner/build.gradle b/ziptools/zipsigner/build.gradle new file mode 100644 index 000000000..60879d23a --- /dev/null +++ b/ziptools/zipsigner/build.gradle @@ -0,0 +1,36 @@ +group 'com.topjohnwu' +version '1.0.0' + +apply plugin: 'java' +apply plugin: 'com.github.johnrengelman.shadow' + +sourceCompatibility = 1.8 + +jar { + manifest { + attributes 'Main-Class': 'com.topjohnwu.ZipSigner' + } +} + +shadowJar { + classifier = null + version = null +} + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1' + } +} + +repositories { + mavenCentral() +} + +dependencies { + compile 'org.bouncycastle:bcprov-jdk15on:1.57' + compile 'org.bouncycastle:bcpkix-jdk15on:1.57' +} diff --git a/ziptools/zipsigner/gradle/wrapper/gradle-wrapper.jar b/ziptools/zipsigner/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..ccfe89381e448dbb8e38ba448b8450332c4a29fc GIT binary patch literal 54788 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save ( ) { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/ziptools/zipsigner/gradlew.bat b/ziptools/zipsigner/gradlew.bat new file mode 100644 index 000000000..f9553162f --- /dev/null +++ b/ziptools/zipsigner/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/ziptools/zipsigner/settings.gradle b/ziptools/zipsigner/settings.gradle new file mode 100644 index 000000000..a42023557 --- /dev/null +++ b/ziptools/zipsigner/settings.gradle @@ -0,0 +1,4 @@ +rootProject.name = 'zipsigner' +include 'apksigner' +rootProject.name = 'zipsigner' + diff --git a/ziptools/zipsigner/src/main/java/com/topjohnwu/ZipSigner.java b/ziptools/zipsigner/src/main/java/com/topjohnwu/ZipSigner.java new file mode 100644 index 000000000..bf7245314 --- /dev/null +++ b/ziptools/zipsigner/src/main/java/com/topjohnwu/ZipSigner.java @@ -0,0 +1,567 @@ +package com.topjohnwu; + +import org.bouncycastle.asn1.ASN1InputStream; +import org.bouncycastle.asn1.ASN1ObjectIdentifier; +import org.bouncycastle.asn1.DEROutputStream; +import org.bouncycastle.asn1.cms.CMSObjectIdentifiers; +import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; +import org.bouncycastle.cert.jcajce.JcaCertStore; +import org.bouncycastle.cms.CMSException; +import org.bouncycastle.cms.CMSProcessableByteArray; +import org.bouncycastle.cms.CMSSignedData; +import org.bouncycastle.cms.CMSSignedDataGenerator; +import org.bouncycastle.cms.CMSTypedData; +import org.bouncycastle.cms.jcajce.JcaSignerInfoGeneratorBuilder; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.operator.ContentSigner; +import org.bouncycastle.operator.OperatorCreationException; +import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; +import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder; +import org.bouncycastle.util.encoders.Base64; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FilterOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintStream; +import java.security.DigestOutputStream; +import java.security.GeneralSecurityException; +import java.security.KeyFactory; +import java.security.MessageDigest; +import java.security.PrivateKey; +import java.security.Provider; +import java.security.Security; +import java.security.cert.CertificateEncodingException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.security.spec.PKCS8EncodedKeySpec; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Enumeration; +import java.util.Locale; +import java.util.Map; +import java.util.TreeMap; +import java.util.jar.Attributes; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; +import java.util.jar.JarOutputStream; +import java.util.jar.Manifest; +import java.util.regex.Pattern; + +/* +* Modified from from AOSP(Marshmallow) SignAPK.java +* */ + +public class ZipSigner { + private static final String CERT_SF_NAME = "META-INF/CERT.SF"; + private static final String CERT_SIG_NAME = "META-INF/CERT.%s"; + + private static Provider sBouncyCastleProvider; + + // bitmasks for which hash algorithms we need the manifest to include. + private static final int USE_SHA1 = 1; + private static final int USE_SHA256 = 2; + + /** + * Return one of USE_SHA1 or USE_SHA256 according to the signature + * algorithm specified in the cert. + */ + private static int getDigestAlgorithm(X509Certificate cert) { + String sigAlg = cert.getSigAlgName().toUpperCase(Locale.US); + if ("SHA1WITHRSA".equals(sigAlg) || + "MD5WITHRSA".equals(sigAlg)) { // see "HISTORICAL NOTE" above. + return USE_SHA1; + } else if (sigAlg.startsWith("SHA256WITH")) { + return USE_SHA256; + } else { + throw new IllegalArgumentException("unsupported signature algorithm \"" + sigAlg + + "\" in cert [" + cert.getSubjectDN()); + } + } + /** Returns the expected signature algorithm for this key type. */ + private static String getSignatureAlgorithm(X509Certificate cert) { + String sigAlg = cert.getSigAlgName().toUpperCase(Locale.US); + String keyType = cert.getPublicKey().getAlgorithm().toUpperCase(Locale.US); + if ("RSA".equalsIgnoreCase(keyType)) { + if (getDigestAlgorithm(cert) == USE_SHA256) { + return "SHA256withRSA"; + } else { + return "SHA1withRSA"; + } + } else if ("EC".equalsIgnoreCase(keyType)) { + return "SHA256withECDSA"; + } else { + throw new IllegalArgumentException("unsupported key type: " + keyType); + } + } + // Files matching this pattern are not copied to the output. + private static Pattern stripPattern = + Pattern.compile("^(META-INF/((.*)[.](SF|RSA|DSA|EC)|com/android/otacert))|(" + + Pattern.quote(JarFile.MANIFEST_NAME) + ")$"); + private static X509Certificate readPublicKey(InputStream input) + throws IOException, GeneralSecurityException { + try { + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + return (X509Certificate) cf.generateCertificate(input); + } finally { + input.close(); + } + } + + /** Read a PKCS#8 format private key. */ + private static PrivateKey readPrivateKey(InputStream input) + throws IOException, GeneralSecurityException { + try { + byte[] buffer = new byte[4096]; + int size = input.read(buffer); + byte[] bytes = Arrays.copyOf(buffer, size); + /* Check to see if this is in an EncryptedPrivateKeyInfo structure. */ + PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(bytes); + /* + * Now it's in a PKCS#8 PrivateKeyInfo structure. Read its Algorithm + * OID and use that to construct a KeyFactory. + */ + ASN1InputStream bIn = new ASN1InputStream(new ByteArrayInputStream(spec.getEncoded())); + PrivateKeyInfo pki = PrivateKeyInfo.getInstance(bIn.readObject()); + String algOid = pki.getPrivateKeyAlgorithm().getAlgorithm().getId(); + return KeyFactory.getInstance(algOid).generatePrivate(spec); + } finally { + input.close(); + } + } + /** + * Add the hash(es) of every file to the manifest, creating it if + * necessary. + */ + private static Manifest addDigestsToManifest(JarFile jar, int hashes) + throws IOException, GeneralSecurityException { + Manifest input = jar.getManifest(); + Manifest output = new Manifest(); + Attributes main = output.getMainAttributes(); + if (input != null) { + main.putAll(input.getMainAttributes()); + } else { + main.putValue("Manifest-Version", "1.0"); + main.putValue("Created-By", "1.0 (Android SignApk)"); + } + MessageDigest md_sha1 = null; + MessageDigest md_sha256 = null; + if ((hashes & USE_SHA1) != 0) { + md_sha1 = MessageDigest.getInstance("SHA1"); + } + if ((hashes & USE_SHA256) != 0) { + md_sha256 = MessageDigest.getInstance("SHA256"); + } + byte[] buffer = new byte[4096]; + int num; + // We sort the input entries by name, and add them to the + // output manifest in sorted order. We expect that the output + // map will be deterministic. + TreeMap byName = new TreeMap(); + for (Enumeration e = jar.entries(); e.hasMoreElements(); ) { + JarEntry entry = e.nextElement(); + byName.put(entry.getName(), entry); + } + for (JarEntry entry: byName.values()) { + String name = entry.getName(); + if (!entry.isDirectory() && + (stripPattern == null || !stripPattern.matcher(name).matches())) { + InputStream data = jar.getInputStream(entry); + while ((num = data.read(buffer)) > 0) { + if (md_sha1 != null) md_sha1.update(buffer, 0, num); + if (md_sha256 != null) md_sha256.update(buffer, 0, num); + } + Attributes attr = null; + if (input != null) attr = input.getAttributes(name); + attr = attr != null ? new Attributes(attr) : new Attributes(); + if (md_sha1 != null) { + attr.putValue("SHA1-Digest", + new String(Base64.encode(md_sha1.digest()), "ASCII")); + } + if (md_sha256 != null) { + attr.putValue("SHA-256-Digest", + new String(Base64.encode(md_sha256.digest()), "ASCII")); + } + output.getEntries().put(name, attr); + } + } + return output; + } + + /** Write to another stream and track how many bytes have been + * written. + */ + private static class CountOutputStream extends FilterOutputStream { + private int mCount; + public CountOutputStream(OutputStream out) { + super(out); + mCount = 0; + } + @Override + public void write(int b) throws IOException { + super.write(b); + mCount++; + } + @Override + public void write(byte[] b, int off, int len) throws IOException { + super.write(b, off, len); + mCount += len; + } + public int size() { + return mCount; + } + } + /** Write a .SF file with a digest of the specified manifest. */ + private static void writeSignatureFile(Manifest manifest, OutputStream out, + int hash) + throws IOException, GeneralSecurityException { + Manifest sf = new Manifest(); + Attributes main = sf.getMainAttributes(); + main.putValue("Signature-Version", "1.0"); + main.putValue("Created-By", "1.0 (Android SignApk)"); + MessageDigest md = MessageDigest.getInstance( + hash == USE_SHA256 ? "SHA256" : "SHA1"); + PrintStream print = new PrintStream( + new DigestOutputStream(new ByteArrayOutputStream(), md), + true, "UTF-8"); + // Digest of the entire manifest + manifest.write(print); + print.flush(); + main.putValue(hash == USE_SHA256 ? "SHA-256-Digest-Manifest" : "SHA1-Digest-Manifest", + new String(Base64.encode(md.digest()), "ASCII")); + Map entries = manifest.getEntries(); + for (Map.Entry entry : entries.entrySet()) { + // Digest of the manifest stanza for this entry. + print.print("Name: " + entry.getKey() + "\r\n"); + for (Map.Entry att : entry.getValue().entrySet()) { + print.print(att.getKey() + ": " + att.getValue() + "\r\n"); + } + print.print("\r\n"); + print.flush(); + Attributes sfAttr = new Attributes(); + sfAttr.putValue(hash == USE_SHA256 ? "SHA-256-Digest" : "SHA1-Digest-Manifest", + new String(Base64.encode(md.digest()), "ASCII")); + sf.getEntries().put(entry.getKey(), sfAttr); + } + CountOutputStream cout = new CountOutputStream(out); + sf.write(cout); + // A bug in the java.util.jar implementation of Android platforms + // up to version 1.6 will cause a spurious IOException to be thrown + // if the length of the signature file is a multiple of 1024 bytes. + // As a workaround, add an extra CRLF in this case. + if ((cout.size() % 1024) == 0) { + cout.write('\r'); + cout.write('\n'); + } + } + /** Sign data and write the digital signature to 'out'. */ + private static void writeSignatureBlock( + CMSTypedData data, X509Certificate publicKey, PrivateKey privateKey, + OutputStream out) + throws IOException, + CertificateEncodingException, + OperatorCreationException, + CMSException { + ArrayList certList = new ArrayList<>(1); + certList.add(publicKey); + JcaCertStore certs = new JcaCertStore(certList); + CMSSignedDataGenerator gen = new CMSSignedDataGenerator(); + ContentSigner signer = new JcaContentSignerBuilder(getSignatureAlgorithm(publicKey)) + .setProvider(sBouncyCastleProvider) + .build(privateKey); + gen.addSignerInfoGenerator( + new JcaSignerInfoGeneratorBuilder( + new JcaDigestCalculatorProviderBuilder() + .setProvider(sBouncyCastleProvider) + .build()) + .setDirectSignature(true) + .build(signer, publicKey)); + gen.addCertificates(certs); + CMSSignedData sigData = gen.generate(data, false); + ASN1InputStream asn1 = new ASN1InputStream(sigData.getEncoded()); + DEROutputStream dos = new DEROutputStream(out); + dos.writeObject(asn1.readObject()); + } + /** + * Copy all the files in a manifest from input to output. We set + * the modification times in the output to a fixed time, so as to + * reduce variation in the output file and make incremental OTAs + * more efficient. + */ + private static void copyFiles(Manifest manifest, JarFile in, JarOutputStream out, + long timestamp, int alignment) throws IOException { + byte[] buffer = new byte[4096]; + int num; + Map entries = manifest.getEntries(); + ArrayList names = new ArrayList(entries.keySet()); + Collections.sort(names); + boolean firstEntry = true; + long offset = 0L; + // We do the copy in two passes -- first copying all the + // entries that are STORED, then copying all the entries that + // have any other compression flag (which in practice means + // DEFLATED). This groups all the stored entries together at + // the start of the file and makes it easier to do alignment + // on them (since only stored entries are aligned). + for (String name : names) { + JarEntry inEntry = in.getJarEntry(name); + JarEntry outEntry = null; + if (inEntry.getMethod() != JarEntry.STORED) continue; + // Preserve the STORED method of the input entry. + outEntry = new JarEntry(inEntry); + outEntry.setTime(timestamp); + // 'offset' is the offset into the file at which we expect + // the file data to begin. This is the value we need to + // make a multiple of 'alignement'. + offset += JarFile.LOCHDR + outEntry.getName().length(); + if (firstEntry) { + // The first entry in a jar file has an extra field of + // four bytes that you can't get rid of; any extra + // data you specify in the JarEntry is appended to + // these forced four bytes. This is JAR_MAGIC in + // JarOutputStream; the bytes are 0xfeca0000. + offset += 4; + firstEntry = false; + } + if (alignment > 0 && (offset % alignment != 0)) { + // Set the "extra data" of the entry to between 1 and + // alignment-1 bytes, to make the file data begin at + // an aligned offset. + int needed = alignment - (int)(offset % alignment); + outEntry.setExtra(new byte[needed]); + offset += needed; + } + out.putNextEntry(outEntry); + InputStream data = in.getInputStream(inEntry); + while ((num = data.read(buffer)) > 0) { + out.write(buffer, 0, num); + offset += num; + } + out.flush(); + } + // Copy all the non-STORED entries. We don't attempt to + // maintain the 'offset' variable past this point; we don't do + // alignment on these entries. + for (String name : names) { + JarEntry inEntry = in.getJarEntry(name); + JarEntry outEntry = null; + if (inEntry.getMethod() == JarEntry.STORED) continue; + // Create a new entry so that the compressed len is recomputed. + outEntry = new JarEntry(name); + outEntry.setTime(timestamp); + out.putNextEntry(outEntry); + InputStream data = in.getInputStream(inEntry); + while ((num = data.read(buffer)) > 0) { + out.write(buffer, 0, num); + } + out.flush(); + } + } + + // This class is to provide a file's content, but trimming out the last two bytes + // Used for signWholeFile + private static class CMSProcessableFile implements CMSTypedData { + + private File file; + private ASN1ObjectIdentifier type; + private byte[] buffer; + int bufferSize = 0; + + CMSProcessableFile(File file) { + this.file = file; + type = new ASN1ObjectIdentifier(CMSObjectIdentifiers.data.getId()); + buffer = new byte[4096]; + } + + @Override + public ASN1ObjectIdentifier getContentType() { + return type; + } + + @Override + public void write(OutputStream out) throws IOException, CMSException { + FileInputStream input = new FileInputStream(file); + long len = file.length() - 2; + while ((bufferSize = input.read(buffer)) > 0) { + if (len <= bufferSize) { + out.write(buffer, 0, (int) len); + break; + } else { + out.write(buffer, 0, bufferSize); + } + len -= bufferSize; + } + } + + @Override + public Object getContent() { + return file; + } + + byte[] getTail() { + return Arrays.copyOfRange(buffer, 0, bufferSize); + } + } + + private static void signWholeFile(File input, X509Certificate publicKey, + PrivateKey privateKey, OutputStream outputStream) + throws Exception { + ByteArrayOutputStream temp = new ByteArrayOutputStream(); + // put a readable message and a null char at the start of the + // archive comment, so that tools that display the comment + // (hopefully) show something sensible. + // TODO: anything more useful we can put in this message? + byte[] message = "signed by SignApk".getBytes("UTF-8"); + temp.write(message); + temp.write(0); + + CMSProcessableFile cmsFile = new CMSProcessableFile(input); + writeSignatureBlock(cmsFile, publicKey, privateKey, temp); + + // For a zip with no archive comment, the + // end-of-central-directory record will be 22 bytes long, so + // we expect to find the EOCD marker 22 bytes from the end. + byte[] zipData = cmsFile.getTail(); + if (zipData[zipData.length-22] != 0x50 || + zipData[zipData.length-21] != 0x4b || + zipData[zipData.length-20] != 0x05 || + zipData[zipData.length-19] != 0x06) { + throw new IllegalArgumentException("zip data already has an archive comment"); + } + int total_size = temp.size() + 6; + if (total_size > 0xffff) { + throw new IllegalArgumentException("signature is too big for ZIP file comment"); + } + // signature starts this many bytes from the end of the file + int signature_start = total_size - message.length - 1; + temp.write(signature_start & 0xff); + temp.write((signature_start >> 8) & 0xff); + // Why the 0xff bytes? In a zip file with no archive comment, + // bytes [-6:-2] of the file are the little-endian offset from + // the start of the file to the central directory. So for the + // two high bytes to be 0xff 0xff, the archive would have to + // be nearly 4GB in size. So it's unlikely that a real + // commentless archive would have 0xffs here, and lets us tell + // an old signed archive from a new one. + temp.write(0xff); + temp.write(0xff); + temp.write(total_size & 0xff); + temp.write((total_size >> 8) & 0xff); + temp.flush(); + // Signature verification checks that the EOCD header is the + // last such sequence in the file (to avoid minzip finding a + // fake EOCD appended after the signature in its scan). The + // odds of producing this sequence by chance are very low, but + // let's catch it here if it does. + byte[] b = temp.toByteArray(); + for (int i = 0; i < b.length-3; ++i) { + if (b[i] == 0x50 && b[i+1] == 0x4b && b[i+2] == 0x05 && b[i+3] == 0x06) { + throw new IllegalArgumentException("found spurious EOCD header at " + i); + } + } + cmsFile.write(outputStream); + outputStream.write(total_size & 0xff); + outputStream.write((total_size >> 8) & 0xff); + temp.writeTo(outputStream); + } + private static void signFile(Manifest manifest, JarFile inputJar, + X509Certificate publicKey, PrivateKey privateKey, + JarOutputStream outputJar) + throws Exception { + // Assume the certificate is valid for at least an hour. + long timestamp = publicKey.getNotBefore().getTime() + 3600L * 1000; + // MANIFEST.MF + JarEntry je = new JarEntry(JarFile.MANIFEST_NAME); + je.setTime(timestamp); + outputJar.putNextEntry(je); + manifest.write(outputJar); + je = new JarEntry(CERT_SF_NAME); + je.setTime(timestamp); + outputJar.putNextEntry(je); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + writeSignatureFile(manifest, baos, getDigestAlgorithm(publicKey)); + byte[] signedData = baos.toByteArray(); + outputJar.write(signedData); + // CERT.{EC,RSA} / CERT#.{EC,RSA} + final String keyType = publicKey.getPublicKey().getAlgorithm(); + je = new JarEntry(String.format(CERT_SIG_NAME, keyType)); + je.setTime(timestamp); + outputJar.putNextEntry(je); + writeSignatureBlock(new CMSProcessableByteArray(signedData), + publicKey, privateKey, outputJar); + } + + public static void main(String[] args) { + boolean minSign = false; + int argStart = 0; + + if (args.length < 4) { + System.err.println("Usage: zipsigner [-m] publickey.x509[.pem] privatekey.pk8 input.jar output.jar"); + System.exit(2); + } + + if (args[0].equals("-m")) { + minSign = true; + argStart = 1; + } + + sBouncyCastleProvider = new BouncyCastleProvider(); + Security.insertProviderAt(sBouncyCastleProvider, 1); + + File pubKey = new File(args[argStart]); + File privKey = new File(args[argStart + 1]); + File input = new File(args[argStart + 2]); + File output = new File(args[argStart + 3]); + + int alignment = 4; + JarFile inputJar = null; + FileOutputStream outputFile = null; + int hashes = 0; + try { + X509Certificate publicKey = readPublicKey(new FileInputStream(pubKey)); + hashes |= getDigestAlgorithm(publicKey); + + // Set the ZIP file timestamp to the starting valid time + // of the 0th certificate plus one hour (to match what + // we've historically done). + long timestamp = publicKey.getNotBefore().getTime() + 3600L * 1000; + PrivateKey privateKey = readPrivateKey(new FileInputStream(privKey)); + + outputFile = new FileOutputStream(output); + if (minSign) { + ZipSigner.signWholeFile(input, publicKey, privateKey, outputFile); + } else { + inputJar = new JarFile(input, false); // Don't verify. + JarOutputStream outputJar = new JarOutputStream(outputFile); + // For signing .apks, use the maximum compression to make + // them as small as possible (since they live forever on + // the system partition). For OTA packages, use the + // default compression level, which is much much faster + // and produces output that is only a tiny bit larger + // (~0.1% on full OTA packages I tested). + outputJar.setLevel(9); + Manifest manifest = addDigestsToManifest(inputJar, hashes); + copyFiles(manifest, inputJar, outputJar, timestamp, alignment); + signFile(manifest, inputJar, publicKey, privateKey, outputJar); + outputJar.close(); + } + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } finally { + try { + if (inputJar != null) inputJar.close(); + if (outputFile != null) outputFile.close(); + } catch (IOException e) { + e.printStackTrace(); + System.exit(1); + } + } + } +} \ No newline at end of file