From 1e8883fc0bafad2989f190c1a977d98ec9902962 Mon Sep 17 00:00:00 2001 From: Doug Zongker Date: Fri, 9 Oct 2009 11:24:51 -0700 Subject: [PATCH] add "junk path" -k option to aapt Adds a "junk path" option to aapt so that you can do: aapt add -k archive.zip path/to/some.file and have the file stored in the zip under the name "some.file" (without the path). Needed so that we can use 'aapt add' in place of 'zip -j' when building jar files, which will lead to smaller incremental OTAs. --- Bundle.h | 13 ++++++++----- Command.cpp | 13 ++++++++++--- Main.cpp | 4 ++++ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/Bundle.h b/Bundle.h index 234e5b2..1ac13f2 100644 --- a/Bundle.h +++ b/Bundle.h @@ -80,11 +80,13 @@ public: void setValues(bool val) { mValues = val; } int getCompressionMethod(void) const { return mCompressionMethod; } void setCompressionMethod(int val) { mCompressionMethod = val; } + bool getJunkPath(void) const { return mJunkPath; } + void setJunkPath(bool val) { mJunkPath = val; } const char* getOutputAPKFile() const { return mOutputAPKFile; } void setOutputAPKFile(const char* val) { mOutputAPKFile = val; } - /* - * Input options. + /* + * Input options. */ const char* getAssetSourceDir() const { return mAssetSourceDir; } void setAssetSourceDir(const char* dir) { mAssetSourceDir = dir; } @@ -119,7 +121,7 @@ public: void setVersionCode(const char* val) { mVersionCode = val; } const char* getVersionName() const { return mVersionName; } void setVersionName(const char* val) { mVersionName = val; } - + /* * Set and get the file specification. * @@ -161,6 +163,7 @@ private: bool mPseudolocalize; bool mValues; int mCompressionMethod; + bool mJunkPath; const char* mOutputAPKFile; const char* mAssetSourceDir; const char* mProguardFile; @@ -173,13 +176,13 @@ private: android::Vector mJarFiles; android::Vector mNoCompressExtensions; android::Vector mResourceSourceDirs; - + const char* mMinSdkVersion; const char* mTargetSdkVersion; const char* mMaxSdkVersion; const char* mVersionCode; const char* mVersionName; - + /* file specification */ int mArgc; char* const* mArgv; diff --git a/Command.cpp b/Command.cpp index 4742341..1a536d6 100644 --- a/Command.cpp +++ b/Command.cpp @@ -848,7 +848,7 @@ int doDump(Bundle* bundle) printf("uses-feature:'android.hardware.camera'\n"); printf("uses-feature:'android.hardware.camera.autofocus'\n"); } - + if (hasMainActivity) { printf("main\n"); } @@ -997,8 +997,15 @@ int doAdd(Bundle* bundle) printf(" '%s'... (from gzip)\n", fileName); result = zip->addGzip(fileName, String8(fileName).getBasePath().string(), NULL); } else { - printf(" '%s'...\n", fileName); - result = zip->add(fileName, bundle->getCompressionMethod(), NULL); + if (bundle->getJunkPath()) { + String8 storageName = String8(fileName).getPathLeaf(); + printf(" '%s' as '%s'...\n", fileName, storageName.string()); + result = zip->add(fileName, storageName.string(), + bundle->getCompressionMethod(), NULL); + } else { + printf(" '%s'...\n", fileName); + result = zip->add(fileName, bundle->getCompressionMethod(), NULL); + } } if (result != NO_ERROR) { fprintf(stderr, "Unable to add '%s' to '%s'", bundle->getFileSpecEntry(i), zipFileName); diff --git a/Main.cpp b/Main.cpp index e61010c..98286c0 100644 --- a/Main.cpp +++ b/Main.cpp @@ -99,6 +99,7 @@ void usage(void) " -f force overwrite of existing files\n" " -g specify a pixel tolerance to force images to grayscale, default 0\n" " -j specify a jar or zip file containing classes to include\n" + " -k junk path of file(s) added\n" " -m make package directories under location specified by -J\n" #if 0 " -p pseudolocalize the default configuration\n" @@ -236,6 +237,9 @@ int main(int argc, char* const argv[]) bundle.setGrayscaleTolerance(tolerance); printf("%s: Images with deviation <= %d will be forced to grayscale.\n", prog, tolerance); break; + case 'k': + bundle.setJunkPath(true); + break; case 'm': bundle.setMakePackageDirs(true); break; -- 2.45.2