Update with latest :crypto

This commit is contained in:
topjohnwu 2018-01-27 00:17:43 +08:00
parent 40082d4571
commit f37f330670
4 changed files with 15 additions and 31 deletions

View File

@ -205,11 +205,9 @@ public class InstallMagisk extends ParallelTask<Void, Void, Boolean> {
AssetManager assets = mm.getAssets(); AssetManager assets = mm.getAssets();
try ( try (
InputStream in = new FileInputStream(patched_boot); InputStream in = new FileInputStream(patched_boot);
OutputStream out = new BufferedOutputStream(new FileOutputStream(signed)); OutputStream out = new BufferedOutputStream(new FileOutputStream(signed))
InputStream keyIn = assets.open(Const.PRIVATE_KEY_NAME);
InputStream certIn = assets.open(Const.PUBLIC_KEY_NAME)
) { ) {
SignBoot.doSignature("/boot", in, out, keyIn, certIn); SignBoot.doSignature("/boot", in, out, null, null);
} }
shell.run(null, null, "mv -f " + signed + " " + patched_boot); shell.run(null, null, "mv -f " + signed + " " + patched_boot);
} }

View File

@ -6,8 +6,6 @@ import com.topjohnwu.crypto.SignBoot;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
public class BootSigner { public class BootSigner {
@ -15,30 +13,23 @@ public class BootSigner {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
if (args.length > 0 && "-verify".equals(args[0])) { if (args.length > 0 && "-verify".equals(args[0])) {
String certPath = ""; String certPath = "";
if (args.length >= 3 && "-certificate".equals(args[1])) { if (args.length >= 2) {
/* args[2] is the path to a public key certificate */ /* args[1] is the path to a public key certificate */
certPath = args[2]; certPath = args[1];
} }
/* args[1] is the path to a signed boot image */
boolean signed = SignBoot.verifySignature(System.in, boolean signed = SignBoot.verifySignature(System.in,
certPath.isEmpty() ? null : new FileInputStream(certPath)); certPath.isEmpty() ? null : new FileInputStream(certPath));
System.exit(signed ? 0 : 1); System.exit(signed ? 0 : 1);
} else if (args.length > 0 && "-sign".equals(args[0])) { } else if (args.length > 0 && "-sign".equals(args[0])) {
InputStream keyIn, certIn; InputStream cert = null;
if (args.length >= 3) { InputStream key = null;
keyIn = new FileInputStream(args[1]);
certIn = new FileInputStream(args[2]);
} else {
/* Use internal test keys */
JarFile apk = new JarFile(System.getProperty("java.class.path"));
JarEntry keyEntry = apk.getJarEntry("assets/" + Const.PRIVATE_KEY_NAME);
JarEntry sigEntry = apk.getJarEntry("assets/" + Const.PUBLIC_KEY_NAME);
keyIn = apk.getInputStream(keyEntry); if (args.length >= 3) {
certIn = apk.getInputStream(sigEntry); cert = new FileInputStream(args[1]);
key = new FileInputStream(args[2]);
} }
boolean success = SignBoot.doSignature("/boot", System.in, System.out, keyIn, certIn); boolean success = SignBoot.doSignature("/boot", System.in, System.out, cert, key);
System.exit(success ? 0 : 1); System.exit(success ? 0 : 1);
} else { } else {
System.err.println( System.err.println(
@ -48,8 +39,8 @@ public class BootSigner {
"Actions:\n" + "Actions:\n" +
" -verify [x509.pem]\n" + " -verify [x509.pem]\n" +
" verify image, cert is optional\n" + " verify image, cert is optional\n" +
" -sign [pk8] [x509.pem]\n" + " -sign [x509.pem] [pk8]\n" +
" sign image, key and cert are optional\n" " sign image, cert and key pair is optional\n"
); );
} }
} }

View File

@ -17,8 +17,6 @@ public class Const {
public static final String MAGISKHIDE_PROP = "persist.magisk.hide"; public static final String MAGISKHIDE_PROP = "persist.magisk.hide";
// APK content // APK content
public static final String PUBLIC_KEY_NAME = "public.certificate.x509.pem";
public static final String PRIVATE_KEY_NAME = "private.key.pk8";
public static final String UNINSTALLER = "magisk_uninstaller.sh"; public static final String UNINSTALLER = "magisk_uninstaller.sh";
public static final String UTIL_FUNCTIONS= "util_functions.sh"; public static final String UTIL_FUNCTIONS= "util_functions.sh";
public static final String ANDROID_MANIFEST = "AndroidManifest.xml"; public static final String ANDROID_MANIFEST = "AndroidManifest.xml";

View File

@ -76,9 +76,6 @@ public class ZipUtils {
} }
public static void signZip(JarMap input, OutputStream output, boolean minSign) throws Exception { public static void signZip(JarMap input, OutputStream output, boolean minSign) throws Exception {
AssetManager assets = MagiskManager.get().getAssets(); SignAPK.signZip(null, null, input, output, minSign);
SignAPK.signZip(
assets.open(Const.PUBLIC_KEY_NAME), assets.open(Const.PRIVATE_KEY_NAME),
input, output, minSign);
} }
} }