When initialization, 'end' pointer refers terminal
character in a string. But it is incremented in
while loop. It occurs the access to non-secure memory.
Issue detail
http://code.google.com/p/android/issues/detail?id=24896
Change-Id: I751d1154d797738c87a66374a66933528c045be5
ZipUtils is needed by build/tools, move it from libandroidfw
(frameworks/base) to libutils (frameworks/native).
Change-Id: I2b4b7adcdf68eb25ee7cba5dd3b69eadf0523af3
Currently hardcoded to use up to 4 threads.
This change substantially reduces the amount of time spent
preprocessing framework resources to just a few seconds.
Change-Id: I02fdd283fb529a152aeb22ac87f278779fd77983
The current implementation of Vector::sort uses insertion sort
on the assumption that the data is mostly sorted. It isn't.
This change brings the total time spent sorting packages by config
down to 500ms from about 93 seconds.
Bug: 6186278
Change-Id: Iec8da11e09297acd6c73733d063b0fa9dacf69f7
The sorted string pool option was no longer used.
Neither were strings with associated identifiers.
Change-Id: Ic5f6368637fbeedfda873d63f4ad0f3ea9d0d603
If a styled version of an otherwise identical string is encountered before
a non-styled version, aapt merges the two, effectively making the
non-styled string have a spurious style.
Change-Id: I424a61c0c83c59e0b9c8939e457402efd06a7a4f
In addition to a couple of minor clean-up items, this fixes an issue that can
rarely cause incorrect parsing of attribute flag values, when there is a '|'
character in the few bytes past the end of the attribute value being parsed.
Change-Id: I6050b1c2db60720c7c0ab7df9eba8cfc629b320e
Added support for predefined namespace http://schemas.android.com/apk/res/auto
that aapt tool recognizes and treats as namespace with package name
taken from current application's AndroidManifest.xml, //manifest/package attribute.
Signed-off-by: inazaruk <ievgenii.nazaruk@gmail.com>
(cherry picked from commit e348909c1966c3d192841cc131a32be6ed90da18)
Change-Id: I4bff836c42a309bac36e5d1ce1899131b3c4c194
This is a combination of three minor clean-up tasks:
- Generate correct idmap even if name lookup fails:
Any resources following a resource with a spec but no actual values
would receive an incorrect ID in the idmap due to an accumulating offset
error. To combat this, a dummy value is inserted in the idmap whenever
a resource with a spec but no values is encountered.
- Optimize pruning of padding zeroes in idmaps:
Earlier, trailing zeroes were iteratively popped from the end of each
type block of an idmap. This commit instead tracks where to make the
cut, and does so with a single function call.
- aapt: warn about resources which lack values:
The resource framework assumes every resource to have a value for
at least one valid configuration. However, if multiple resource
directories are used (several -S options to aapt), the list of
configurations is limited by dpi (-c option to aapt) and a resource
is only available in discarded dpi configurations, aapt will create
a resource entry where each configuration lack an actual value. This
commit lets aapt emit a warning whenever this has happened.
Change-Id: Ic7451b7f4adfef5bfa6b0d7e64e057f317a2cdaa
Previously, building overlay packages required passing aapt its -o flag.
This commit decouples the idmap generation code from the effects of the
-o flag.
Since this commit renders the -o flag obsolete, support for the flag was
removed from aapt as well.
Change-Id: Ied2e0ab8cb800e49623f0a2044b06cd4935473d5
This patchset introduces a new standard namespace http://schemas.android.com/tools
which will be used for tools specific XML attributes.
Any attributes using this namespace will not be compiled into the binary XML file.
The namespace node is also not written at all, and its string is not collected
to ensure that there is no impact on the devices.
(cherry picked from commit a5d5e9d906583ebeb590ca200ca9840302a5cd1a)
Change-Id: I62937b8bc34c07ac544930aa8eadd7797e0179d5
This patchset introduces a new standard namespace http://schemas.android.com/tools
which will be used for tools specific XML attributes.
Any attributes using this namespace will not be compiled into the binary XML file.
The namespace node is also not written at all, and its string is not collected
to ensure that there is no impact on the devices.
Change-Id: I3e75d44cda54e1fa7b5cdc56b3eb27db80fe7761
In our current environment with very many translations, this can
save a lot of RAM -- for example over 200K in Gmail just by sorting
the strings in the Gmail .apk (not the framework).
Also add a new aapt command to print the contents of the resource
table string pool.
Change-Id: I1da037b3e2c377b890833ff57ab158965314ac48
The idea is that this is a device which is more-or-less headless. It
might have some limited interaction capabilities, but it's not something
that you want to rely on having.
Change-Id: Ib92f53a120bf83de781728011721a4859def7d9f
There's no printf %zd on Mingw/Cygwin so the verbose
printf crashes aapt.
SDK bugs: 20395, 20986
Bug: 5742142
(cherry picked from commit f51125d8429ffa71c57ba6fbdca9effc72642a9b)
Change-Id: I7545734ce8ce4a1f3e95f8a255daa8a909f870a1
This fixes the build on Linux when RefBase is compiled with reference tracking
enabled.
Change-Id: I3e931e0b463ce836f6fdb30c37068d77144631a3
Signed-off-by: Iliyan Malchev <malchev@google.com>