Commit Graph

6067 Commits

Author SHA1 Message Date
Ryan Mitchell
e9bbefa7dc Merge "AAPT2: Support id reference chaining from AAPT" into pi-dev
am: 247ecfa498

Change-Id: I507b421d60294ea9262d5be579f22fdc2892c7fe
2018-04-19 14:58:17 -07:00
Ryan Mitchell
247ecfa498 Merge "AAPT2: Support id reference chaining from AAPT" into pi-dev 2018-04-19 21:35:59 +00:00
Ryan Mitchell
8751b6ee4e Merge "AAPT2: Modified StringPool uniqueness detection #2" into pi-dev
am: b2182c412c

Change-Id: Ib7829b0203134eecdfd59a3dcd1e78b8fbdd39b4
2018-04-18 15:22:06 -07:00
y
4602926f83 AAPT2: Modified StringPool uniqueness detection #2
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
2018-04-18 20:58:50 +00:00
y
9efbbef2e0 AAPT2: Support id reference chaining from AAPT
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
2018-04-18 11:46:53 -07:00
Ryan Mitchell
312a3ff350 Merge "Revert "AAPT: Modified StringPool uniqueness detection"" into pi-dev
am: 61ac57283f

Change-Id: Ibd7e47e33d49e6c609b9b73960186020728ac0f5
2018-04-16 12:45:57 -07:00
Ryan Mitchell
61ac57283f Merge "Revert "AAPT: Modified StringPool uniqueness detection"" into pi-dev 2018-04-16 19:28:43 +00:00
Ryan Mitchell
61ffd40290 Revert "AAPT: Modified StringPool uniqueness detection"
This reverts commit 35ecb89a8a.

Reason for revert: <Long make duration (infinite loop)>

Change-Id: I10d1cf53ca3054d40e23b06368ebaff6af69beab
2018-04-16 18:21:14 +00:00
Ryan Mitchell
789ffb45c5 Merge "AAPT: Modified StringPool uniqueness detection" into pi-dev
am: 356feb53b6

Change-Id: Ib8b9fbea279f61b5df9058d9f72dfb23f9d9dbc6
2018-04-16 10:32:42 -07:00
Ryan Mitchell
356feb53b6 Merge "AAPT: Modified StringPool uniqueness detection" into pi-dev 2018-04-16 17:15:53 +00:00
y
35ecb89a8a AAPT: Modified StringPool uniqueness detection
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
2018-04-13 16:15:42 -07:00
Wale Ogunwale
fc89e7f17a Finalizing P SDK
am: 3da5f3b2dd

Change-Id: Id5002a3fc4d35352a4ace67e794c1a52e21c496c
2018-04-13 14:18:27 -07:00
Wale Ogunwale
3da5f3b2dd Finalizing P SDK
Bug: 77588754
Test: builds
Change-Id: Ic06cad790a3dc53d012a7c43dfac911fc6dc61e7
2018-04-12 15:26:31 -07:00
Ryan Mitchell
68dc7ca568 Merge "AAPT: Multiple period legacy support and errors" into pi-dev
am: f845891031

Change-Id: Id1ac75606df1b8bf99281febf5c7266de6889457
2018-04-12 10:39:00 -07:00
Ryan Mitchell
f845891031 Merge "AAPT: Multiple period legacy support and errors" into pi-dev 2018-04-12 17:21:32 +00:00
y
d6b83299a6 AAPT: Multiple period legacy support and errors
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
2018-04-11 15:52:43 -07:00
Jeff Sharkey
e29ec0cdc5 Merge "Lint to identify "deprecated at birth" APIs." into pi-dev
am: 992f6120c0

Change-Id: I0f734d9a3d6746d5d828919b74d2603eba0bcf02
2018-04-11 14:38:27 -07:00
Jeff Sharkey
8b141b9db0 Lint to identify "deprecated at birth" APIs.
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
2018-04-11 10:43:16 -06:00
Yangster-mac
3e871cb76f Merge "Logd retry throttling." into pi-dev
am: 3ed866222d

Change-Id: Id8ef2c9086f0cbfa69d157d8abb8c891c07fec3d
2018-04-10 17:08:41 -07:00
Yangster-mac
ca5c0869f0 Logd retry throttling.
Test: statsd test

BUG: b/77852322
Change-Id: I3b4c46aaa592e21bfed13330c2ca72fac8e8320a
2018-04-10 11:20:57 -07:00
Yangster-mac
0425263117 Merge "Retry logs write when it fails. Report skipped event in statsd." into pi-dev
am: 164a73e0cf

Change-Id: I6aac360fe74bb5ca3e3b95dc3f2685a99da0fe2a
2018-04-05 11:22:16 -07:00
TreeHugger Robot
164a73e0cf Merge "Retry logs write when it fails. Report skipped event in statsd." into pi-dev 2018-04-05 18:04:18 +00:00
Yangster-mac
b8382a10a0 Retry logs write when it fails.
Report skipped event in statsd.

Test: manual test
BUG: b/77222120
Change-Id: I257f5e76d557893c4eb4a8e8a13396d8b5d1afc0
2018-04-04 17:53:48 -07:00
Ryan Mitchell
7e25e9c90c Merge "Changed AAPT2 to abide by AAPT resource whitespace triming." into pi-dev
am: 6a23deef5d

Change-Id: Iec9bec5ba7f58c5ef5ef283bac16e2a1d6ebee6d
2018-04-04 17:34:32 -07:00
Ryan Mitchell
6a23deef5d Merge "Changed AAPT2 to abide by AAPT resource whitespace triming." into pi-dev 2018-04-05 00:14:38 +00:00
Ryan Mitchell
03beea58ba Merge "Added --debug-mode flag to AAPT2" into pi-dev
am: 498baa82e6

Change-Id: I212efa4392f4da28817f88d589f865d17495f17c
2018-04-04 14:59:47 -07:00
Ryan Mitchell
498baa82e6 Merge "Added --debug-mode flag to AAPT2" into pi-dev 2018-04-04 21:21:28 +00:00
Ryan Mitchell
0349510358 Merge "Check the size of the strings in the StringPool before flattening." into pi-dev
am: 7281fe0a9b

Change-Id: Id32a86c95b8a6da72e0abe20dc0e47355809e442
2018-04-04 12:54:28 -07:00
Ryan Mitchell
70414f22dc Check the size of the strings in the StringPool before flattening.
Test: Tested for normal functionality when string does not exceed
maximum length and tests for detection of string that is too lonhg for
UTF8i
Bug: b/74176037

Change-Id: Ic71d3671a069e7012e8ca107e79e071499eebbf6
(cherry picked from commit a15c2a8957)
2018-04-04 15:54:43 +00:00
Ryan Mitchell
9beaa9cfe3 Changed AAPT2 to abide by AAPT resource whitespace triming.
Bug: b/74331008
Test: Created tests in ResourceParser_test.cpp
Change-Id: Id7b387692b795774cd77452ca8cf06a8447bf3be
(cherry picked from commit a048807712)
2018-04-04 15:54:05 +00:00
Ryan Mitchell
e5b38a676c Added --debug-mode flag to AAPT2
Bug: 74968793
Test: Tested for correct debuggable attribute presense with and without
flag

Change-Id: I0148d1caba62db8cf258926f1d9e87a849aa283f
(cherry picked from commit 444f9bb6a1)
2018-04-04 15:51:53 +00:00
Yi Jin
85d3cc02a1 Merge "Use modern c++ code style for incidentd." into pi-dev
am: 56051569ab

Change-Id: Ifd36cb23ae185b8a37805deb6163e87a2e9ee1c9
2018-04-02 23:04:07 +00:00
Yi Jin
6cacbcbf43 Use modern c++ code style for incidentd.
This cl does not contain code logic changes.

Bug: 77333635
Test: manual and incidentd_test
Change-Id: Iea0a402b1051defd45159ca267e6dd705f9ffa49
2018-03-30 17:36:49 -07:00
Yao Chen
e079e5784f Merge "Surface the log write errors to StatsLog.write" into pi-dev
am: 03cd687912

Change-Id: I99ae0b3e887a0fd97a8826e52573d4d33dc1349e
2018-03-29 21:40:23 +00:00
TreeHugger Robot
03cd687912 Merge "Surface the log write errors to StatsLog.write" into pi-dev 2018-03-29 20:57:56 +00:00
Yao Chen
97e21ec340 Surface the log write errors to StatsLog.write
Test: statsd_test
Bug: 77222120
Change-Id: I1c6e41a3949ce21fbec6893da7f5f94f5aec8c36
2018-03-29 11:00:38 -07:00
Greg Kaiser
739d7864e3 Merge "tools/bit: Avoid leak in error condition" am: db43124b01
am: b3851d92ce

Change-Id: I6b51d22ee200e11b5a731461f295f5da8937a683
2018-03-29 16:57:00 +00:00
Jeff Sharkey
c65461e584 Detect paths without lunch.
Test: manual
Bug: 76097999
Change-Id: I47b97719f6aa957b0a216e6e1930ae2fe2f0108b
2018-03-27 16:26:19 -06:00
Greg Kaiser
5799d65f12 tools/bit: Avoid leak in error condition
In the unlikely event of fread() failing, we want to avoid leaking
our buffer or the file handle.

Test: Treehugger
Change-Id: I1866d00c74ad38af4559d747fee696a60464c9f0
2018-03-26 14:01:38 -07:00
Jeff Sharkey
abe058c0f0 Add linter for strings.xml.
Strings are tedious to get right, so write a lint script that catches
common errors to warn developers before they're uploaded.

Test: builds, boots
Bug: 76097999
Change-Id: I9826ca796c17cd93a100951d56214653de63a379
2018-03-26 11:04:48 -06:00
Xin Li
fcf61630bf Enable Belarusian and Latin languages in fontchain_lint tool.
Bug: 68058172
Merged-In: I747cbb5ea3d36ca63335bfe6b337fad1e75ee79b
2018-03-21 20:20:57 +00:00
TreeHugger Robot
aed0fed078 Merge "Add uid field annotation in atoms.proto and statd memory usage optimization." into pi-dev 2018-03-20 17:12:25 +00:00
corysmith@google.com
f7db43ee35 Writes the resource table proto out when writing a LoadedApk.
Small fixes for consistancy to use constants instead of strings.

Change-Id: I33439c376e1634b7957730ce16e241b0f5bb92f8
Fixes: 74594854
Test: Manual, tested against blaze test //javatests/com/google/devtools/build/android:UnitTests
2018-03-18 14:30:13 -04:00
Yao Chen
c40a19d2e4 Add uid field annotation in atoms.proto and statd memory usage optimization.
[memory]
  statsd binary size from 664k -> 600k
  memory usage 1978k -> 1813k (with no configs)
  + Avoid initialize any static map in statslog.h to avoid many copies of the map in each include.
    - Do it in cpp so that it is initialized only in places that use them

[Uid annotation]
+ Uid annotation is needed for extracting uid from dimension for UidCpuPuller.
+ After the change, stand-alone uids don't need to be in field 1 anymore.
+ Also added exclusive bit annotation in AppDied
+ Currently only allow one uid field in an Atom. This is to keep things simple until
  we find an exception.

Test: statsd_test
Bug: 73958484
Bug: 72129300

Change-Id: I8a916d5c00d5930e24ae7e0825a57dea19c0e744
2018-03-16 13:56:38 -07:00
Yi Jin
934cc613fd Fix bug to break switch cases.
Bug: 75001195
Test: N/A
Change-Id: I99274cbf34d191c25ad9ced08f999c59f922cb25
2018-03-15 14:23:01 -07:00
Kweku Adams
eadd123d68 Dumping stack traces to proto.
Bug: 72177715
Test: flash device and check incident.proto output
Change-Id: Id2a15e0fc62b66efe875949af97f0eb651c7e322
(cherry picked from commit 5c804e2b98)
2018-03-07 21:50:12 +00:00
Anton Hansson
be72e62c63 frameworks/base: Set LOCAL_SDK_VERSION where possible.
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant packages
Bug: 73535841
Exempt-From-Owner-Approval: Global cleanup
Change-Id: I66b515d98d03264dbb893b7c55ba7bdddfb447a1
Merged-In: I26458e41ecb84de91ac9a356a5d4bafb44f463c1
Merged-In: I938efe7a2359302cbf4d5d6f786f963044e1bbbd
Merged-In: I72ce7f1c6242ddf9a5b36075761f3f1f1138cea1
2018-03-07 15:10:39 +00:00
Anton Hansson
d137c872cd frameworks/base: Set LOCAL_SDK_VERSION where possible.
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant packages
Bug: 73535841
Exempt-From-Owner-Approval: Global cleanup
Change-Id: I26458e41ecb84de91ac9a356a5d4bafb44f463c1
2018-03-07 11:42:04 +00:00
TreeHugger Robot
7d55509c19 Merge "Modifying proto csv output to include privacy levels." 2018-03-03 00:02:52 +00:00
Adam Lesinski
f3c951fd52 Merge "Change ownership of AAPT2 and libandroidfw" 2018-03-02 22:38:46 +00:00