dump/restore signatures as slit

This commit is contained in:
REAndroid 2023-04-29 20:19:12 +02:00
parent d41bc5857c
commit 3c6df812ee
5 changed files with 18 additions and 17 deletions

View File

@ -62,9 +62,9 @@ public class ApkJsonDecoder {
if(signatureBlock == null){
return;
}
apkModule.logMessage("Dumping signatures: " + ApkUtil.SIGNATURE_FILE_NAME);
File file = toSignatureFile(outDir);
signatureBlock.writeRaw(file);
apkModule.logMessage("Dumping signatures ...");
File dir = toSignatureDir(outDir);
signatureBlock.writeSplitRawToDirectory(dir);
}
private void writePathMap(File dir) throws IOException {
PathMap pathMap = new PathMap();
@ -200,9 +200,9 @@ public class ApkJsonDecoder {
String name = "public.xml";
return new File(file, name);
}
private File toSignatureFile(File dir){
File file = new File(dir, apkModule.getModuleName());
return new File(file, ApkUtil.SIGNATURE_FILE_NAME);
private File toSignatureDir(File dir){
dir = new File(dir, apkModule.getModuleName());
return new File(dir, ApkUtil.SIGNATURE_DIR_NAME);
}
private File toPathMapJsonFile(File dir){
File file = new File(dir, apkModule.getModuleName());

View File

@ -50,14 +50,14 @@ public class ApkJsonEncoder {
return module;
}
private void restoreSignatures(File dir, ApkModule apkModule){
File file = new File(dir, ApkUtil.SIGNATURE_FILE_NAME);
if(!file.isFile()){
File sigDir = new File(dir, ApkUtil.SIGNATURE_DIR_NAME);
if(!sigDir.isFile()){
return;
}
logMessage("Loading signature: " + file.getName());
logMessage("Loading signatures ...");
ApkSignatureBlock signatureBlock = new ApkSignatureBlock();
try {
signatureBlock.read(file);
signatureBlock.scanSplitFiles(sigDir);
apkModule.setApkSignatureBlock(signatureBlock);
} catch (IOException exception){
logError("Failed to load signatures: ", exception);

View File

@ -101,9 +101,9 @@ import java.util.*;
if(signatureBlock == null){
return;
}
logMessage("Dumping signatures: " + ApkUtil.SIGNATURE_FILE_NAME);
File file = new File(outDir, ApkUtil.SIGNATURE_FILE_NAME);
signatureBlock.writeRaw(file);
logMessage("Dumping signatures ...");
File dir = new File(outDir, ApkUtil.SIGNATURE_DIR_NAME);
signatureBlock.writeSplitRawToDirectory(dir);
}
private void writePathMap(File dir) throws IOException {
PathMap pathMap = new PathMap();

View File

@ -45,14 +45,14 @@ public class ApkModuleXmlEncoder {
restoreSignatures(mainDirectory);
}
private void restoreSignatures(File dir) throws IOException {
File file = new File(dir, ApkUtil.SIGNATURE_FILE_NAME);
if(!file.isFile()){
File sigDir = new File(dir, ApkUtil.SIGNATURE_DIR_NAME);
if(!sigDir.isFile()){
return;
}
ApkModule apkModule = getApkModule();
apkModule.logMessage("Loading signature: " + file.getName());
apkModule.logMessage("Loading signatures ...");
ApkSignatureBlock signatureBlock = new ApkSignatureBlock();
signatureBlock.read(file);
signatureBlock.scanSplitFiles(sigDir);
apkModule.setApkSignatureBlock(signatureBlock);
}
private void restorePathMap(File dir) throws IOException{

View File

@ -194,6 +194,7 @@ public class ApkUtil {
public static final String TAG_INTEGER_ARRAY = "integer-array";
public static final String SIGNATURE_FILE_NAME = "signatures" + ApkSignatureBlock.FILE_EXT;
public static final String SIGNATURE_DIR_NAME = "signatures";
private static final int MAX_FILE_NAME_LENGTH = 50;
}