X-Git-Url: https://git.saurik.com/android/aapt.git/blobdiff_plain/b1b4591243a77cb1238d79adb0ca240bbf5a11fa..d284bd5142dc1ae7ed2396a6cd0eefcaa2a65264:/Command.cpp diff --git a/Command.cpp b/Command.cpp index 83057b8..eaff0f4 100644 --- a/Command.cpp +++ b/Command.cpp @@ -141,9 +141,9 @@ int doList(Bundle* bundle) if (bundle->getVerbose()) { printf("Archive: %s\n", zipFileName); printf( - " Length Method Size Ratio Date Time CRC-32 Name\n"); + " Length Method Size Ratio Offset Date Time CRC-32 Name\n"); printf( - "-------- ------ ------- ----- ---- ---- ------ ----\n"); + "-------- ------ ------- ----- ------- ---- ---- ------ ----\n"); } totalUncLen = totalCompLen = 0; @@ -159,12 +159,13 @@ int doList(Bundle* bundle) strftime(dateBuf, sizeof(dateBuf), "%m-%d-%y %H:%M", localtime(&when)); - printf("%8ld %-7.7s %7ld %3d%% %s %08lx %s\n", + printf("%8ld %-7.7s %7ld %3d%% %8zd %s %08lx %s\n", (long) entry->getUncompressedLen(), compressionName(entry->getCompressionMethod()), (long) entry->getCompressedLen(), calcPercent(entry->getUncompressedLen(), entry->getCompressedLen()), + (size_t) entry->getLFHOffset(), dateBuf, entry->getCRC32(), entry->getFileName()); @@ -197,8 +198,10 @@ int doList(Bundle* bundle) if (&res == NULL) { printf("\nNo resource table found.\n"); } else { +#ifndef HAVE_ANDROID_OS printf("\nResource table:\n"); res.print(false); +#endif } Asset* manifestAsset = assets.openNonAsset("AndroidManifest.xml", @@ -336,6 +339,7 @@ enum { SMALL_SCREEN_ATTR = 0x01010284, NORMAL_SCREEN_ATTR = 0x01010285, LARGE_SCREEN_ATTR = 0x01010286, + XLARGE_SCREEN_ATTR = 0x010102bf, REQUIRED_ATTR = 0x0101028e, }; @@ -388,8 +392,9 @@ int doDump(Bundle* bundle) } if (strcmp("resources", option) == 0) { +#ifndef HAVE_ANDROID_OS res.print(bundle->getValues()); - +#endif } else if (strcmp("xmltree", option) == 0) { if (bundle->getFileSpecCount() < 3) { fprintf(stderr, "ERROR: no dump xmltree resource file specified\n"); @@ -569,6 +574,7 @@ int doDump(Bundle* bundle) int smallScreen = 1; int normalScreen = 1; int largeScreen = 1; + int xlargeScreen = 1; String8 pkg; String8 activityName; String8 activityLabel; @@ -751,6 +757,8 @@ int doDump(Bundle* bundle) NORMAL_SCREEN_ATTR, NULL, 1); largeScreen = getIntegerAttribute(tree, LARGE_SCREEN_ATTR, NULL, 1); + xlargeScreen = getIntegerAttribute(tree, + XLARGE_SCREEN_ATTR, NULL, 1); } else if (tag == "uses-feature") { String8 name = getAttribute(tree, NAME_ATTR, &error); @@ -848,6 +856,15 @@ int doDump(Bundle* bundle) error.string()); goto bail; } + } else if (tag == "uses-package") { + String8 name = getAttribute(tree, NAME_ATTR, &error); + if (name != "" && error == "") { + printf("uses-package:'%s'\n", name.string()); + } else { + fprintf(stderr, "ERROR getting 'android:name' attribute: %s\n", + error.string()); + goto bail; + } } else if (tag == "original-package") { String8 name = getAttribute(tree, NAME_ATTR, &error); if (name != "" && error == "") { @@ -1079,10 +1096,15 @@ int doDump(Bundle* bundle) if (largeScreen > 0) { largeScreen = targetSdk >= 4 ? -1 : 0; } + if (xlargeScreen > 0) { + // Introduced in Honeycomb. + xlargeScreen = targetSdk >= 10 ? -1 : 0; + } printf("supports-screens:"); if (smallScreen != 0) printf(" 'small'"); if (normalScreen != 0) printf(" 'normal'"); if (largeScreen != 0) printf(" 'large'"); + if (xlargeScreen != 0) printf(" 'xlarge'"); printf("\n"); printf("locales:");