diff options
author | Xavier Ducrohet <xav@android.com> | 2010-08-31 10:45:31 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2010-08-31 11:07:56 -0700 |
commit | 6487b099231b1e5d36ae37a921399b028b3b3ad9 (patch) | |
tree | 25018182d96a759798431af7230de27202fb5543 /tools | |
parent | 7ec7b9970cc3a6311bf043e228991adf24c43523 (diff) | |
download | frameworks_base-6487b099231b1e5d36ae37a921399b028b3b3ad9.zip frameworks_base-6487b099231b1e5d36ae37a921399b028b3b3ad9.tar.gz frameworks_base-6487b099231b1e5d36ae37a921399b028b3b3ad9.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: I6f0a7af7b7d51f26bb0ec012e6f142a6060b8618
Diffstat (limited to 'tools')
-rw-r--r-- | tools/aapt/Bundle.h | 5 | ||||
-rw-r--r-- | tools/aapt/Main.cpp | 9 | ||||
-rw-r--r-- | tools/aapt/Resource.cpp | 7 |
3 files changed, 18 insertions, 3 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h index 6a1f2d5..a1bc241 100644 --- a/tools/aapt/Bundle.h +++ b/tools/aapt/Bundle.h @@ -45,7 +45,7 @@ public: mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL), mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL), mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), - mMaxResVersion(NULL), + mMaxResVersion(NULL), mDebugMode(false), mArgc(0), mArgv(NULL) {} ~Bundle(void) {} @@ -137,6 +137,8 @@ public: void setCustomPackage(const char* val) { mCustomPackage = val; } const char* getMaxResVersion() const { return mMaxResVersion; } void setMaxResVersion(const char * val) { mMaxResVersion = val; } + bool getDebugMode() { return mDebugMode; } + void setDebugMode(bool val) { mDebugMode = val; } /* * Set and get the file specification. @@ -234,6 +236,7 @@ private: const char* mVersionName; const char* mCustomPackage; const char* mMaxResVersion; + bool mDebugMode; /* file specification */ int mArgc; diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp index f457cc8..71c023d 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" @@ -124,6 +124,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" @@ -392,7 +395,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 bd84e23..9c5fcda 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) { |