diff options
author | Xavier Ducrohet <xav@android.com> | 2010-08-31 10:45:31 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2010-08-31 15:46:59 -0700 |
commit | 8e9bfab2a3ce35b31350b8de18d024f4da6e3886 (patch) | |
tree | 86f46a6d4acb9628de2b1a91806fccf8be9dd26a /tools/aapt | |
parent | 12dbee827353ecdb690d27c3f52e26afc71e0774 (diff) | |
download | frameworks_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.h | 4 | ||||
-rw-r--r-- | tools/aapt/Main.cpp | 9 | ||||
-rw-r--r-- | tools/aapt/Resource.cpp | 7 |
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) { |