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

Commit d6e6a92f authored by Sergey Ten's avatar Sergey Ten
Browse files

Port over aapt -x related change.

The change's SHA: 691558d8716d50a06fb2fb41548d78762f73d787.
The change's check in message:
Modify aapt tool (on device version ONLY) to provide
proper support for -x option.

CR: JoshG.
parent c696e79b
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ public:
    Bundle(void)
        : mCmd(kCommandUnknown), mVerbose(false), mAndroidList(false),
          mForce(false), mGrayscaleTolerance(0), mMakePackageDirs(false),
          mUpdate(false), mExtending(false),
          mUpdate(false), mExtending(false), mExtendedPackageId(0),
          mRequireLocalization(false), mPseudolocalize(false),
          mCompressionMethod(0), mOutputAPKFile(NULL),
          mAssetSourceDir(NULL),
@@ -66,6 +66,8 @@ public:
    void setUpdate(bool val) { mUpdate = val; }
    bool getExtending(void) const { return mExtending; }
    void setExtending(bool val) { mExtending = val; }
    int getExtendedPackageId(void) const { return mExtendedPackageId; }
    void setExtendedPackageId(int val) { mExtendedPackageId = val; }
    bool getRequireLocalization(void) const { return mRequireLocalization; }
    void setRequireLocalization(bool val) { mRequireLocalization = val; }
    bool getPseudolocalize(void) const { return mPseudolocalize; }
@@ -136,6 +138,7 @@ private:
    bool        mMakePackageDirs;
    bool        mUpdate;
    bool        mExtending;
    int         mExtendedPackageId;
    bool        mRequireLocalization;
    bool        mPseudolocalize;
    int         mCompressionMethod;
+11 −2
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#include <stdlib.h>
#include <getopt.h>
#include <assert.h>
#include <ctype.h>

using namespace android;

@@ -53,7 +54,7 @@ void usage(void)
        "   xmltree          Print the compiled xmls in the given assets.\n"
        "   xmlstrings       Print the strings of the given compiled xml assets.\n\n", gProgName);
    fprintf(stderr,
        " %s p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] \\\n"
        " %s p[ackage] [-d][-f][-m][-u][-v][-x[ extending-resource-id]][-z][-M AndroidManifest.xml] \\\n"
        "        [-0 extension [-0 extension ...]] \\\n"
        "        [-g tolerance] \\\n"
        "        [-j jarfile] \\\n"
@@ -102,7 +103,7 @@ void usage(void)
#endif
        "   -u  update existing packages (add new, replace older, remove deleted files)\n"
        "   -v  verbose output\n"
        "   -x  create extending (non-application) resource IDs\n"
        "   -x  either create or assign (if specified) extending (non-application) resource IDs\n"
        "   -z  require localization of resource attributes marked with\n"
        "       localization=\"suggested\"\n"
        "   -A  additional directory in which to find raw asset files\n"
@@ -233,6 +234,14 @@ int main(int argc, char* const argv[])
                break;
            case 'x':
                bundle.setExtending(true);
                argc--;
                argv++;
                if (!argc || !isdigit(argv[0][0])) {
                    argc++;
                    argv--;
                } else {
                    bundle.setExtendedPackageId(atoi(argv[0]));
                }
                break;
            case 'z':
                bundle.setRequireLocalization(true);
+10 −1
Original line number Diff line number Diff line
@@ -3362,9 +3362,18 @@ sp<ResourceTable::Package> ResourceTable::getPackage(const String16& package)
            }
            mHaveAppPackage = true;
            p = new Package(package, 127);
        } else {
            int extendedPackageId = mBundle->getExtendedPackageId();
            if (extendedPackageId != 0) {
                if ((uint32_t)extendedPackageId < mNextPackageId) {
                    fprintf(stderr, "Package ID %d already in use!\n", mNextPackageId);
                    return NULL;
                }
                p = new Package(package, extendedPackageId);
            } else {
                p = new Package(package, mNextPackageId);
            }
        }
        //printf("*** NEW PACKAGE: \"%s\" id=%d\n",
        //       String8(package).string(), p->getAssignedId());
        mPackages.add(package, p);