adding parameter -o, pass apk file name as original

This commit is contained in:
Connor Tumbleson 2012-09-17 17:49:36 -05:00
parent bc10186af0
commit 53e7ffd9a2
3 changed files with 31 additions and 8 deletions

View File

@ -164,19 +164,27 @@ public class Main {
flags.put("update", false); flags.put("update", false);
int i; int i;
int skip = 0;
File mOrigApk = null;
for (i = 0; i < args.length; i++) { for (i = 0; i < args.length; i++) {
String opt = args[i]; String opt = args[i];
if (! opt.startsWith("-")) { if (! opt.startsWith("-")) {
break; break;
} }
if ("-f".equals(opt) || "--force-all".equals(opt)) { if ("-f".equals(opt) || "--force-all".equals(opt)) {
flags.put("forceBuildA", true); flags.put("forceBuildAll", true);
} else if ("-d".equals(opt) || "--debug".equals(opt)) { } else if ("-d".equals(opt) || "--debug".equals(opt)) {
flags.put("debug", true); flags.put("debug", true);
} else if ("-v".equals(opt) || "--verbose".equals(opt)) { } else if ("-v".equals(opt) || "--verbose".equals(opt)) {
flags.put("verbose", true); flags.put("verbose", true);
} else if("-o".equals(opt) || "--original".equals(opt)) { } else if ("-o".equals(opt) || "--original".equals(opt)) {
flags.put("injectOriginal", true); if (args.length >= 4) {
throw new InvalidArgsError();
} else {
flags.put("injectOriginal", true);
mOrigApk = new File(args[i + 1]);
skip = 1;
}
} else { } else {
throw new InvalidArgsError(); throw new InvalidArgsError();
} }
@ -184,14 +192,14 @@ public class Main {
String appDirName; String appDirName;
File outFile = null; File outFile = null;
switch (args.length - i) { switch (args.length - i - skip) {
case 0: case 0:
appDirName = "."; appDirName = ".";
break; break;
case 2: case 2:
outFile = new File(args[i + 1]); outFile = new File(args[i + 1 + skip]);
case 1: case 1:
appDirName = args[i]; appDirName = args[i + skip];
break; break;
default: default:
throw new InvalidArgsError(); throw new InvalidArgsError();

View File

@ -16,6 +16,7 @@
package brut.androlib; package brut.androlib;
import brut.androlib.err.InFileNotFoundException;
import brut.androlib.java.AndrolibJava; import brut.androlib.java.AndrolibJava;
import brut.androlib.res.AndrolibResources; import brut.androlib.res.AndrolibResources;
import brut.androlib.res.data.ResPackage; import brut.androlib.res.data.ResPackage;
@ -435,6 +436,13 @@ public class Androlib {
} }
mAndRes.aaptPackage(outApk, null, null, mAndRes.aaptPackage(outApk, null, null,
new File(appDir, APK_DIRNAME), assetDir, null, flags); new File(appDir, APK_DIRNAME), assetDir, null, flags);
/* check for re-insert */
if (flags.get("injectOriginal")) {
// if (!mApkFile.isFile() || !mApkFile.canRead()) {
// throw new InFileNotFoundException();
//}
}
} }
public void publicizeResources(File arscFile) throws AndrolibException { public void publicizeResources(File arscFile) throws AndrolibException {
@ -509,6 +517,13 @@ public class Androlib {
return files; return files;
} }
public void setApkFile(File apkFile) {
mOrigApkFile = new ExtFile(apkFile);
}
private ExtFile mOrigApkFile;
private final static Logger LOGGER = private final static Logger LOGGER =
Logger.getLogger(Androlib.class.getName()); Logger.getLogger(Androlib.class.getName());