continent method for framework

This commit is contained in:
REAndroid 2023-04-29 19:18:08 +02:00
parent 17a9e18fd2
commit f1f6300e64
2 changed files with 273 additions and 264 deletions

View File

@ -19,6 +19,7 @@
import com.reandroid.archive.ByteInputSource;
import com.reandroid.archive.InputSource;
import com.reandroid.archive.InputSourceUtil;
import com.reandroid.archive2.Archive;
import com.reandroid.arsc.chunk.PackageBlock;
import com.reandroid.arsc.chunk.TableBlock;
import com.reandroid.arsc.chunk.xml.AndroidManifestBlock;
@ -222,12 +223,14 @@
return getName();
}
public static FrameworkApk loadApkFile(File apkFile) throws IOException {
APKArchive archive=APKArchive.loadZippedApk(apkFile);
return new FrameworkApk(archive);
Archive archive = new Archive(apkFile);
APKArchive apkArchive = new APKArchive(archive.mapEntrySource());
return new FrameworkApk(apkArchive);
}
public static FrameworkApk loadApkFile(File apkFile, String moduleName) throws IOException {
APKArchive archive=APKArchive.loadZippedApk(apkFile);
return new FrameworkApk(moduleName, archive);
Archive archive = new Archive(apkFile);
APKArchive apkArchive = new APKArchive(archive.mapEntrySource());
return new FrameworkApk(moduleName, apkArchive);
}
public static boolean isFramework(ApkModule apkModule) {
if(!apkModule.hasAndroidManifestBlock()){
@ -267,4 +270,10 @@
archive.addAll(inputSourceMap.values());
return frameworkApk;
}
public static void optimize(File in, File out, APKLogger apkLogger) throws IOException{
FrameworkApk frameworkApk = FrameworkApk.loadApkFile(in);
frameworkApk.setAPKLogger(apkLogger);
frameworkApk.optimize();
frameworkApk.writeApk(out);
}
}

View File

@ -413,7 +413,7 @@ public class FrameworkTable extends TableBlock {
if(headerBlock.getChunkType()!= ChunkType.TABLE){
return super.toString();
}
if(!isOptimized()){
if(!mOptimized){
return "Unoptimized: "+super.toString();
}
return getFrameworkName()+'-'+getVersionCode();