Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e9bfab2 authored by Xavier Ducrohet's avatar Xavier Ducrohet
Browse files

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
parent 12dbee82
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
+7 −2
Original line number Diff line number Diff line
@@ -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) {
+7 −0
Original line number Diff line number Diff line
@@ -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) {