From 032a3e5e25abeb41069ced8c78d632d02234e21b Mon Sep 17 00:00:00 2001 From: Benjamin Dobell Date: Mon, 18 Apr 2016 08:05:39 +1000 Subject: [PATCH] Reinstate minimalistic debug option to inject android:debuggable with aapt --- .../apktool-cli/src/main/java/brut/apktool/Main.java | 6 +++--- .../apktool-lib/src/main/java/brut/androlib/ApkOptions.java | 1 + .../src/main/java/brut/androlib/res/AndrolibResources.java | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java b/brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java index f5e9c16b..dc6e48ca 100644 --- a/brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java +++ b/brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java @@ -199,8 +199,8 @@ public class Main { apkOptions.forceBuildAll = true; } if (cli.hasOption("d") || cli.hasOption("debug")) { - System.err.println("SmaliDebugging has been removed in 2.1.0 onward. Please see: https://github.com/iBotPeaches/Apktool/issues/1061"); - System.exit(1); + System.out.println("SmaliDebugging has been removed in 2.1.0 onward. Please see: https://github.com/iBotPeaches/Apktool/issues/1061"); + apkOptions.debugMode = true; } if (cli.hasOption("v") || cli.hasOption("verbose")) { apkOptions.verbose = true; @@ -286,7 +286,7 @@ public class Main { .create(); Option debugBuiOption = OptionBuilder.withLongOpt("debug") - .withDescription("Builds in debug mode. Check project page for more info.") + .withDescription("Sets android:debuggable to \"true\" in the APK's compiled manifest") .create("d"); Option noDbgOption = OptionBuilder.withLongOpt("no-debug-info") diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkOptions.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkOptions.java index cc778c8d..df4774fd 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkOptions.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkOptions.java @@ -19,6 +19,7 @@ import java.util.Collection; public class ApkOptions { public boolean forceBuildAll = false; + public boolean debugMode = false; public boolean verbose = false; public boolean copyOriginalFiles = false; public boolean updateFiles = false; diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java index 12f861c9..60dd33f1 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java @@ -346,6 +346,9 @@ final public class AndrolibResources { if (apkOptions.updateFiles) { cmd.add("-u"); } + if (apkOptions.debugMode) { // inject debuggable="true" into manifest + cmd.add("--debug-mode"); + } // force package id so that some frameworks build with correct id // disable if user adds own aapt (can't know if they have this feature) if (mPackageId != null && ! customAapt && ! mSharedLibrary) {