summaryrefslogtreecommitdiffstats
path: root/tools/aapt
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2010-08-31 10:45:31 -0700
committerXavier Ducrohet <xav@android.com>2010-08-31 15:46:59 -0700
commit8e9bfab2a3ce35b31350b8de18d024f4da6e3886 (patch)
tree86f46a6d4acb9628de2b1a91806fccf8be9dd26a /tools/aapt
parent12dbee827353ecdb690d27c3f52e26afc71e0774 (diff)
downloadframeworks_base-8e9bfab2a3ce35b31350b8de18d024f4da6e3886.zip
frameworks_base-8e9bfab2a3ce35b31350b8de18d024f4da6e3886.tar.gz
frameworks_base-8e9bfab2a3ce35b31350b8de18d024f4da6e3886.tar.bz2
Add a --debug-mode option to aapt.
When passed (with no needed parameters) to the aapt command line, aapt will insert debuggable=true in the application node of the manifest automatically. This is to be used by the SDK tools to make true "debug" builds that require no code/file change. Change-Id: I909759caef499a91d10cc9a0902c6448c87e75ef
Diffstat (limited to 'tools/aapt')
-rw-r--r--tools/aapt/Bundle.h4
-rw-r--r--tools/aapt/Main.cpp9
-rw-r--r--tools/aapt/Resource.cpp7
3 files changed, 18 insertions, 2 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index 3308a35..c198b0b 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -45,6 +45,7 @@ public:
mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL),
mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL),
mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL),
+ mDebugMode(false),
mArgc(0), mArgv(NULL)
{}
~Bundle(void) {}
@@ -134,6 +135,8 @@ public:
void setVersionName(const char* val) { mVersionName = val; }
const char* getCustomPackage() const { return mCustomPackage; }
void setCustomPackage(const char* val) { mCustomPackage = val; }
+ bool getDebugMode() { return mDebugMode; }
+ void setDebugMode(bool val) { mDebugMode = val; }
/*
* Set and get the file specification.
@@ -230,6 +233,7 @@ private:
const char* mVersionCode;
const char* mVersionName;
const char* mCustomPackage;
+ bool mDebugMode;
/* file specification */
int mArgc;
diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp
index b0c6e39..229e13b 100644
--- a/tools/aapt/Main.cpp
+++ b/tools/aapt/Main.cpp
@@ -57,7 +57,7 @@ void usage(void)
fprintf(stderr,
" %s p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] \\\n"
" [-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] \\\n"
- " [--min-sdk-version VAL] [--target-sdk-version VAL] \\\n"
+ " [--debug-mode] [--min-sdk-version VAL] [--target-sdk-version VAL] \\\n"
" [--app-version VAL] [--app-version-name TEXT] [--custom-package VAL] \\\n"
" [--rename-manifest-package PACKAGE] \\\n"
" [--rename-instrumentation-target-package PACKAGE] \\\n"
@@ -123,6 +123,9 @@ void usage(void)
" -0 specifies an additional extension for which such files will not\n"
" be stored compressed in the .apk. An empty string means to not\n"
" compress any files at all.\n"
+ " --debug-mode\n"
+ " inserts android:debuggable=\"true\" in to the application node of the\n"
+ " manifest, making the application debuggable even on production devices.\n"
" --min-sdk-version\n"
" inserts android:minSdkVersion in to manifest. If the version is 7 or\n"
" higher, the default encoding for resources will be in UTF-8.\n"
@@ -389,7 +392,9 @@ int main(int argc, char* const argv[])
}
break;
case '-':
- if (strcmp(cp, "-min-sdk-version") == 0) {
+ if (strcmp(cp, "-debug-mode") == 0) {
+ bundle.setDebugMode(true);
+ } else if (strcmp(cp, "-min-sdk-version") == 0) {
argc--;
argv++;
if (!argc) {
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index cafd635..b00e276 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -678,6 +678,13 @@ status_t massageManifest(Bundle* bundle, sp<XMLNode> root)
bundle->getMaxSdkVersion());
}
+ if (bundle->getDebugMode()) {
+ sp<XMLNode> application = root->getChildElement(String16(), String16("application"));
+ if (application != NULL) {
+ addTagAttribute(application, RESOURCES_ANDROID_NAMESPACE, "debuggable", "true");
+ }
+ }
+
// Deal with manifest package name overrides
const char* manifestPackageNameOverride = bundle->getManifestPackageNameOverride();
if (manifestPackageNameOverride != NULL) {