+ Reuse the log_event_list from liblog. StatsLog's binary format remains unchanged
+ Copied socket write code from liblog, including the retry logic.
+ Added build flags to control the StatsLog channel (logd, statsd, or both for debugging)
Bug: 78239479
Test: locally tested and saw logs being written to statsd
Change-Id: I7b1f0069ead00bbf3c29e4bd5b7f363a7ce26abe
b/77862560 detected that when converting an apk to binary using aapt2,
all resource ids of attributes that have been replaced with resource
identifiers become set to the identifier of the first attribute. This is
because the attribute names are all empty because the names are not necessary
since the resource ids are present. The empty attribute names all map to
the same string pool reference and cause all the ids to be the first
empty string into the string pool.
The ag/3897499 approach to fix the specified bug was extremely inefficient
and caused hour long builds. This change takes advantage of the multimap
data structure to do lookups efficiently.
Bug: 77862560
Test: Converted apk in listed bug from proto to binary and observed
correct resource ids and correct badging. Also built the Android tree to
check for regressions in build time.
Change-Id: I27a9ee4ffbed8b9ff6f238ad315cdf87b588947c
We now use different glyphs for couple with heart emoji. This CL
removes the constraint from font chain lint.
Test: m fontchain_lint
Test: Build and visual check
Bug: 77148691
Change-Id: I56dd3c1e1258bab2fcbdf42e5c42587e45dd92fe
AAPT would allow for ids to be declared in the form:
<item name="name" type="id>@id/other</item>
@id/name should hold a reference to @id/other. When
getResources().getValue() is called on R.id.name with resolveRefs
enabled, the resuling reference should be R.id.other.
Bug: 69445910
Test: Created tests for correct parsing of id references and correct
resolving of deep references
Change-Id: Id1feb37b2565c213dc6a19b4c401906260d7fc14
When writing partial R files, also include the package of the styleable
child:
<declare-styleable name="ds1">
<attr name="font"/>
<attr name="android:font"/>
<attr name="tools:font"/>
<attr name="com.foo.bar:font"/>
</declare-styleable>
will produce:
default int styleable ds1_font
default int styleable ds1_android_font
default int styleable ds1_tools_font
default int styleable ds1_com_foo_bar_font
Bug: 73927419
Test: manual, see description
Change-Id: Ica493408c7c6d9e7fae2b693c96fbc20a723ce08
b/77862560 detected that when converting an apk to binary using aapt2,
all resource ids of attributes that have been replaced with resource
identifiers become set to the identifier of the first attribute. This is
because the attribute names are all empty because the names are not necessary
since the resource ids are present. The empty attribute names all map to
the same string pool reference and cause all the ids to be the first
empty string into the string pool.
Bug: 77862560
Test: Converted apk in listed bug from proto to binary and observed
correct resource ids and correct badging.
Change-Id: I635c13cd1ad7a395fe40a57198cfe5ec91602d01
* Add default genders for super villain and super hero.
* Read capability to read from emoji exclusions file
Test: m fontchain_lint
Test: Visual test with a build and sample app
Bug: 77148691
Change-Id: Icd92f0455709625b3998fc8eef1d448e17a5d71f
AAPT would accept files with multiple periods in the filename as input.
This lead to cases explained in b/74999475. This change adds error
messages for files with multiple periods unless the legacy flag is
present. With the legacy flag present, AAPT2 will behave like AAPT
rather than throwing an error.
Test: Added tests to aapt2_tests
Bug: 73071563
Bug: 74999475
Change-Id: I28dfceeea7b39f8e4b9e6671e0fc8793cf388f52
When API council requests changes, teams regularly perform the
requested refactoring, but simply mark the old APIs as @Deprecated
without @removed, due to internal users.
As part of finalizing an SDK, we should ensure that no new APIs are
marked @Deprecated, since they're typically cleanup that someone
forgot to finish. This extension to the lint script makes it easy
to identify these cases.
$ python tools/apilint/apilint.py --show-deprecations-at-birth \
api/current.txt ../../prebuilts/sdk/api/28.txt
$ python tools/apilint/apilint.py --show-deprecations-at-birth \
api/system-current.txt ../../prebuilts/sdk/system-api/28.txt
Bug: 77588754
Test: manual inspection
Change-Id: Ie9658006bb08f780bee0e503481d3bafec1038a1
aapt2 optimise command can now take a resources config file as an
argument. The config has the name of each resource and a list of
directives. Currently implemented is the "remove" directive which marks
the resource for deletion.
The obfuscation whitelist code and argument name was changed to prevent
confusion.
Test: make aapt2_tests
Bug: b/27523794
Change-Id: I2d8e1985e5ea2286131c25231e2c411f3d9610ce