We never checked the return value when adding a nested
symbol, which would be NULL if the symbol name was invalid.
External bug: https://code.google.com/p/android/issues/detail?id=75876
Change-Id: I5211f4d4b87897d52f2b6e5907113d31930bb92d
The versionCode of theframework resources that an app is built against
gets stamped inside an app's AndroidManifest.xml in the <manifest>
tag as "platformBuildVersionCode" and "platformBuildVersionName"
attributes.
Bug:17207635
Change-Id: Id573c3dffcbca38eec9c0eb3e89f4a547e3361d3
This is meant to be used with scaleable vector
drawables, and are chosen as the best match unless
there is a configuration that matches the density
requested exactly.
Bug:17007265
Change-Id: Ic3288d0236fe0bff20bb1599aba2582c25b0db32
Previously, when filtering resources from an APK using
-c option, if one qualifier matched, we would keep the resource.
However, in the case of something like
-c fr-FR,sw360dp
and with a resource in the APK like so
drawable-fr-FR-sw600dp-v13
we would want this resource to be excluded, as it does not
match the sw360dp qualifier (must be less than or equal to it).
This CL fixed the behavior of the filter to require that all
defined qualifier axis be matched.
Bug:17142358
Change-Id: Ie48f3d516a0e610abc7ba8a7ced4eb3ab52534d4
Mipmaps are never filtered, and so they will always
end up in the base APK. Make sure they get omitted from
any split.
Change-Id: Id24b082bc9bd2d3f031a58bd0de4d30b4f0de7e0
Some resource directories may be the same even though
their names are different. For instance, the
"smallest width" qualifier was added in API 13,
so the resource directory "values-sw600dp" and
"values-sw600dp-v13" are the same and cause
a conflict. The error reports that this might be the
case.
Change-Id: Ia35f1d670edd48265b3a7fe3d55656128421f612
Teams are constantly confused over which version of aapt
they are running. Include the build number from the
Android build system in the binary. Can be retrieved by executing
'aapt version'.
Change-Id: I9165c7d01f977344e143c2cb4dd963310ab28b72
Teams are constantly confused over which version of aapt
they are running. Include the build number from the
Android build system in the binary. Can be retrieved by executing
'aapt version'.
Change-Id: Ie4692fb160c7cbe720a8e76b73e435170214fe0e
When android:multiArch="true" in the <application> tag,
aapt dump badging should only output the 64-bit architecture
under the 'native-code' entry.
Other architectures will be emitted under the 'alt-native-code'
entry.
Bug:17061929
Change-Id: I8310b2388b06a2ed571e5e121e4989403082ba68
FeatureGroups replace top-level FeatureInfo objects.
FeatureGroups inherit top-level FeatureInfos but override
them if the feature names are the same.
Bug:16822121
Change-Id: I80b2cb778a0fbcb4521efce986fba641e0914290
Packages without any resources should not expect to have
a DynamicRefTable.
Bug:16895517
Bug:17056720
Change-Id: Id006f6bdbf08f30505f6ba5982bc9d1b09db0f0a
Invoking aapt after merging resources from a library project
may yield a different ordering to styleable arrays, so have
the indices be non-final too.
Bug:16842410
Change-Id: I0432bea03dc4312d5908a770fc70a11f0a1596ae
This change allows the developer to add a base package for
which to build a feature split. The generated resource types
will begin after the base APK's defined types so as not
to collide or override resources.
Multiple features can be generated by first choosing an
arbitrary order for the features. Then for each feature,
the base APK and any preceding features are specified
with the --feature-of flags.
So with a base APK 'A' and features, 'B', and 'C',
'B' would be built with
aapt package [...] --feature-of A [...]
and 'C' would be built with
aapt package [...] --feature-of A --feature-of B [...]
Change-Id: I1be66e3f8df9a737b21c71f8a93685376c7e6780
Some apps don't provide defaults when providing icons
for different screen sizes, so use a configuration
that has a screen size set to NORMAL.
Change-Id: If4b9eebd37e5d2e2991301d09ff5c39dd41c1565
bug:16140822
bug:16566746
This allows background drawables to alter the opacity of a shadow
being cast with their own alpha values.
Change-Id: I49698cc7c1bf4b2b55ffe2f82899543ca62bc61c
AAPT dump should be able to handle dynamic references
that often come with shared library resources.
Bug:16678251
Change-Id: I6c8cd943145aab20ca9db9694c8c433b3c64279b
When assigning a new string pool to a package, don't release the
reference to the old memory immediately, as the cleanup code that
is called after references the old memory.
Bug: 16155257
Change-Id: I3eaeb81191b71a282a0ef82856023f09707f1b17
AAPT dump badging should output the uses-gl-es tag with
a version of 3.1 when android.hardware.opengles.aep is
declared as a feature.
Change-Id: I8affc6dad574c8303c6ba9810ad8e6e205ea9506
A <feature-group> represents a set of features required
for an app to be compatible with a device. Multiple
<feature-group> elements represent a logical 'or'
of required features.
Features defined in the old way with <uses-feature> tags
under the <manifest> tag are automatically added to each
feature-group defined.
Defining a <feature-group> means that any default
features are not included (such as android.hardware.touchscreen)
and declared permissions do not imply any features.
Change-Id: I45626f0fdc546e47bcf2aead7ef05ebcca12b023
PackageManagerService now skips dexopt for split APKs that don't
declare they have code. Also surface more detailed error messages
in logs.
Bug: 14975160
Change-Id: Ie6078dba724815020cee59b7fc52317e88ca097a
b/15856895
Nine patches now have outline round rect metadata stored as optional
png tags. aapt generates these automatically by inspecting the bitmap
pixels to estimate outline bounds and round rect radius, based on
opacity.
Change-Id: I226e328a97873010d9e1adb797ac48f93a31183c
To verify consistency at install time, all APK manifests must declare
the same package name and version code. Also start compiling the
manifest, since versionCode is an attribute.
Bug: 14975160
Change-Id: I2a1a769bd3dfde05b19563af5ca9b6c15a9c95ff
Starting in api 21, will be required to bind to a
declared dream or doze service.
Also added to aapt dump badging output.
Bug:15862654
Change-Id: Ifa0a594eeecf21e6146176c7810a847e1d08fe3b
In order to support APK split features, the resource
table needs to support loading multiple resource
tables with the same package but potentially new set
of type IDs.
This adds some complexity as the type ID space changes
from dense and ordered to potentially sparse.
A ByteBucketArray is used to store the type IDs in
a memory efficient way that allows for fast retrieval.
In addition, the IDMAP format has changed. We no longer
need random access to the type data, since we store the
types differently. However, random access to entries of
a given type is still required.
Change-Id: If6f5be680b405b368941d9c1f2b5d2ddca964160
When aapt sees @SystemApi in the XML comment associated with a resource,
it will now remove this tag from the comment (since is it not meaningful as
a Javadoc tag) and instead add an @android.annotation.SystemApi annotation
to the declared type or member. This enables easy downstream processing of
this annotation from generated code.
Change-Id: If984908477648c0c90be52fdc955fbb891d99b28
AAPT dumps data from a bad ResTable, which
causes crashes. Prevent this by checking if
there were errors when creating the ResTable.
Bug:14902008
Change-Id: I5e04ebf967c60b78c511dd175785a13bca52f09a