<feed xmlns='http://www.w3.org/2005/Atom'>
<title>frameworks_base/tools/hiddenapi, branch replicant-10</title>
<subtitle>Fork of frameworks/base
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/'/>
<entry>
<title>Automatically greylist code in 3P packages</title>
<updated>2019-04-01T14:32:36+00:00</updated>
<author>
<name>Andrei Onea</name>
<email>andreionea@google.com</email>
</author>
<published>2019-03-29T15:27:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=a6e09b427392b4448545a92363d2e6e1967d335c'/>
<id>a6e09b427392b4448545a92363d2e6e1967d335c</id>
<content type='text'>
generate_hidden_api_lists now receives a file containing package names
which need to be greylisted (although it could be made to work with any
api list required).
Also took the opportunity to clean up the tests to reflect the more
strict code.

Bug: 129387816
Test: m appcompat
Test: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py
Change-Id: I619f8581d166aa48eda572bc0053d8739d6420eb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
generate_hidden_api_lists now receives a file containing package names
which need to be greylisted (although it could be made to work with any
api list required).
Also took the opportunity to clean up the tests to reflect the more
strict code.

Bug: 129387816
Test: m appcompat
Test: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py
Change-Id: I619f8581d166aa48eda572bc0053d8739d6420eb
</pre>
</div>
</content>
</entry>
<entry>
<title>Add extra hidden api related tags</title>
<updated>2019-03-07T10:40:52+00:00</updated>
<author>
<name>Andrei Onea</name>
<email>andreionea@google.com</email>
</author>
<published>2019-03-01T18:49:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=80a5660238dbc5952a67169cf11a49e074ad966f'/>
<id>80a5660238dbc5952a67169cf11a49e074ad966f</id>
<content type='text'>
@SystemApi and @TestApi entries in the whitelist can now be
differentiated from the rest of the apis. @TestApi methods
are implicitly greylisted.

Test: m test-art-host-gtest-hiddenapi_test
Change-Id: Id739f04550842f7b3160685e1635ba20efb223cc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
@SystemApi and @TestApi entries in the whitelist can now be
differentiated from the rest of the apis. @TestApi methods
are implicitly greylisted.

Test: m test-art-host-gtest-hiddenapi_test
Change-Id: Id739f04550842f7b3160685e1635ba20efb223cc
</pre>
</div>
</content>
</entry>
<entry>
<title>Switch android.test and junit classes to use UnsupportedAppUsage</title>
<updated>2019-03-01T10:39:16+00:00</updated>
<author>
<name>Paul Duffin</name>
<email>paulduffin@google.com</email>
</author>
<published>2019-02-15T12:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=997fa461978f87fc2d9c444213b24ef56c29e7e4'/>
<id>997fa461978f87fc2d9c444213b24ef56c29e7e4</id>
<content type='text'>
The UnsupportedAppUsage annotations could not be added directly to the
java files in src/ as they have to be built against the current api
which does not include the annotation. Instead this uses the same
technique as used for libcore/ojluni files and adds the annotations to
stub files (in hiddenapi/src) which are built as part of the
android.test.base-hiddenapi target. That target is added to a special
whitelist in build/soong/java/config/config.go which causes the
hiddenapi information to be extracted from the target.

Also, updates the preupload check to prevent anymore entries being
added to the config/hiddenapi-greylist.txt for android.test or junit
classes.

Bug: 73711752
Test: m cts-hiddenapi_flags-csv and check that it contained the
        correct entries even though they had been removed from
	config/hiddenapi-greylist.txt
Change-Id: Ifaf15d2751f54cb03f8402b866a0ee4da7acc4d2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The UnsupportedAppUsage annotations could not be added directly to the
java files in src/ as they have to be built against the current api
which does not include the annotation. Instead this uses the same
technique as used for libcore/ojluni files and adds the annotations to
stub files (in hiddenapi/src) which are built as part of the
android.test.base-hiddenapi target. That target is added to a special
whitelist in build/soong/java/config/config.go which causes the
hiddenapi information to be extracted from the target.

Also, updates the preupload check to prevent anymore entries being
added to the config/hiddenapi-greylist.txt for android.test or junit
classes.

Bug: 73711752
Test: m cts-hiddenapi_flags-csv and check that it contained the
        correct entries even though they had been removed from
	config/hiddenapi-greylist.txt
Change-Id: Ifaf15d2751f54cb03f8402b866a0ee4da7acc4d2
</pre>
</div>
</content>
</entry>
<entry>
<title>hiddenapi: Support 'core-platform-api' flag</title>
<updated>2019-01-19T15:57:36+00:00</updated>
<author>
<name>David Brazdil</name>
<email>dbrazdil@google.com</email>
</author>
<published>2018-12-07T11:49:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=439d3496ed38cea04824f7ad48e277297ab1f243'/>
<id>439d3496ed38cea04824f7ad48e277297ab1f243</id>
<content type='text'>
Libcore class members annotated with @CorePlatformApi now generate
a new hiddenapi flag. This is the first of "domain API" flags which
can be used in conjunction with API list flags. Therefore modify
the 'generate_hiddenapi_lists.py' logic to treat them differently.
Specifically, the script marks otherwise unassigned class members
blacklisted. A class member with 'core-platform-api' may still not
be assigned an API list and should be blacklisted.

Bug: 119068555
Test: m appcompat
Change-Id: I2b67e7a619677e853c87bc2da934410458ce4d14
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Libcore class members annotated with @CorePlatformApi now generate
a new hiddenapi flag. This is the first of "domain API" flags which
can be used in conjunction with API list flags. Therefore modify
the 'generate_hiddenapi_lists.py' logic to treat them differently.
Specifically, the script marks otherwise unassigned class members
blacklisted. A class member with 'core-platform-api' may still not
be assigned an API list and should be blacklisted.

Bug: 119068555
Test: m appcompat
Change-Id: I2b67e7a619677e853c87bc2da934410458ce4d14
</pre>
</div>
</content>
</entry>
<entry>
<title>hiddenapi: Expect public/private API as CSV</title>
<updated>2019-01-19T15:57:36+00:00</updated>
<author>
<name>David Brazdil</name>
<email>dbrazdil@google.com</email>
</author>
<published>2018-12-13T17:00:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=17d16e84da23464dc7a621eaa87a79c6cc1170ce'/>
<id>17d16e84da23464dc7a621eaa87a79c6cc1170ce</id>
<content type='text'>
Refactor of `hiddenapi` changed the output format of public/private API
lists to a single CSV file. Change API list generation accordingly.

In order to avoid special-casing this CSV file, it is treated the same
as the CSV files produced by `class2greylist`. The merging rules are
relaxed so that signatures in CSV files are not checked against
a pre-initialized set of all signatures (previously generated from the
public/private API files). This should not lead to build errors as the
CSV files are always auto-generated, and a missing/extra signature will
be caught by `hiddenapi`.

API lists in frameworks/base/config are processed later and checked
that they are a subset of the signatures in CSV.

Bug: 119068555
Test: compiles, hiddenapi-flags.csv unchanged
Change-Id: I33f2cbaa15f2d423a75e6ca64abe1c5b0c40c86f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor of `hiddenapi` changed the output format of public/private API
lists to a single CSV file. Change API list generation accordingly.

In order to avoid special-casing this CSV file, it is treated the same
as the CSV files produced by `class2greylist`. The merging rules are
relaxed so that signatures in CSV files are not checked against
a pre-initialized set of all signatures (previously generated from the
public/private API files). This should not lead to build errors as the
CSV files are always auto-generated, and a missing/extra signature will
be caught by `hiddenapi`.

API lists in frameworks/base/config are processed later and checked
that they are a subset of the signatures in CSV.

Bug: 119068555
Test: compiles, hiddenapi-flags.csv unchanged
Change-Id: I33f2cbaa15f2d423a75e6ca64abe1c5b0c40c86f
</pre>
</div>
</content>
</entry>
<entry>
<title>Switch last c.a.i18n.phonenumbers hiddenapi entries to annotations</title>
<updated>2018-12-10T16:05:54+00:00</updated>
<author>
<name>Paul Duffin</name>
<email>paulduffin@google.com</email>
</author>
<published>2018-12-07T11:52:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=352956b07e1cd5d7bdc3f3e747679fa49859f8ee'/>
<id>352956b07e1cd5d7bdc3f3e747679fa49859f8ee</id>
<content type='text'>
Previous changes could not remove these entries as they are implicit
methods, i.e. are not present in the source, and so could not be
annotated. That is no longer true and so these entries can now be
removed.

This was tested by making and then manually checking that the generated
out/target/common/obj/PACKAGING/hiddenapi-light-greylist.txt was the
same (after sorting) before and after this change.

Bug: 117818301
Bug: 119861512
Test: as above
Change-Id: Ic33c693f50cac011332c5ba5a5c0e2b6562e6ef8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previous changes could not remove these entries as they are implicit
methods, i.e. are not present in the source, and so could not be
annotated. That is no longer true and so these entries can now be
removed.

This was tested by making and then manually checking that the generated
out/target/common/obj/PACKAGING/hiddenapi-light-greylist.txt was the
same (after sorting) before and after this change.

Bug: 117818301
Bug: 119861512
Test: as above
Change-Id: Ic33c693f50cac011332c5ba5a5c0e2b6562e6ef8
</pre>
</div>
</content>
</entry>
<entry>
<title>hiddenapi: Add constants for 'greylist-max-p'</title>
<updated>2018-11-29T15:43:02+00:00</updated>
<author>
<name>David Brazdil</name>
<email>dbrazdil@google.com</email>
</author>
<published>2018-11-01T09:54:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=5cd148fc7ae213ceda868c22ee5c573b5b1a47c9'/>
<id>5cd148fc7ae213ceda868c22ee5c573b5b1a47c9</id>
<content type='text'>
New category of hidden API has been created. Update the script
generate_hiddenapi_lists.py with the new flag name.

Test: m, phone boots
Change-Id: I79e5478678880939e20e500cb8dad9b2a56fc84f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
New category of hidden API has been created. Update the script
generate_hiddenapi_lists.py with the new flag name.

Test: m, phone boots
Change-Id: I79e5478678880939e20e500cb8dad9b2a56fc84f
</pre>
</div>
</content>
</entry>
<entry>
<title>Turn hidden API lists into a single CSV</title>
<updated>2018-11-29T15:43:01+00:00</updated>
<author>
<name>David Brazdil</name>
<email>dbrazdil@google.com</email>
</author>
<published>2018-10-30T18:21:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=89bf0f28bf8dfe728083913f641202f103af9bf6'/>
<id>89bf0f28bf8dfe728083913f641202f103af9bf6</id>
<content type='text'>
Maintaining multiple text files has become too cumbersome as adding
each new category of API requires changes across many projects.
This patch changes generate_hiddenapi_lists.py to produce a single
CSV file in the format:

  &lt;api_signature&gt;,&lt;flag1&gt;,...,&lt;flagN&gt;

It can accept legacy API list files as input (for existing
frameworks/base/config/hiddenapi-*.txt files) as well as per-package
CSVs produced by class2greylist.

Test: m, check lists have not changed
Test: phone boots
Test: tools/hiddenapi/generate_hiddenapi_lists_test.py
Change-Id: Iebcef426ec93ea1d72b662bbff91d4e068fa0a70
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Maintaining multiple text files has become too cumbersome as adding
each new category of API requires changes across many projects.
This patch changes generate_hiddenapi_lists.py to produce a single
CSV file in the format:

  &lt;api_signature&gt;,&lt;flag1&gt;,...,&lt;flagN&gt;

It can accept legacy API list files as input (for existing
frameworks/base/config/hiddenapi-*.txt files) as well as per-package
CSVs produced by class2greylist.

Test: m, check lists have not changed
Test: phone boots
Test: tools/hiddenapi/generate_hiddenapi_lists_test.py
Change-Id: Iebcef426ec93ea1d72b662bbff91d4e068fa0a70
</pre>
</div>
</content>
</entry>
<entry>
<title>Prevent hiddenapi entries being added for libcore related projects</title>
<updated>2018-11-29T09:41:56+00:00</updated>
<author>
<name>Paul Duffin</name>
<email>paulduffin@google.com</email>
</author>
<published>2018-11-28T12:22:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=00537c15e876d88a967d9f656ea8fadb1a4015ef'/>
<id>00537c15e876d88a967d9f656ea8fadb1a4015ef</id>
<content type='text'>
The libcore related projects (see below) have been (mostly) switched
over to use UnsupportedAppUsage annotations, This change will prevent
entries for those projects being added to a config/hiddenapi-* file.

* libcore
* external/bouncycastle
* external/conscrypt
* external/icu
* external/okhttp
* external/libphonenumber - still has a couple of entries in
      config/hiddenapi-light-greylist.txt due to limitations in
      UnsupportedAppUsage/class2greylist.

Tested by attempting to upload the file with entries for libcore
projects and without those entries and checking that the behavior
is expected.

Test: see above
Bug: 117818301
Change-Id: I67a30b307e12e842b28cfb2160fab0029868fa06
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The libcore related projects (see below) have been (mostly) switched
over to use UnsupportedAppUsage annotations, This change will prevent
entries for those projects being added to a config/hiddenapi-* file.

* libcore
* external/bouncycastle
* external/conscrypt
* external/icu
* external/okhttp
* external/libphonenumber - still has a couple of entries in
      config/hiddenapi-light-greylist.txt due to limitations in
      UnsupportedAppUsage/class2greylist.

Tested by attempting to upload the file with entries for libcore
projects and without those entries and checking that the behavior
is expected.

Test: see above
Bug: 117818301
Change-Id: I67a30b307e12e842b28cfb2160fab0029868fa06
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Merge hidden API metadata into a single CSV file."</title>
<updated>2018-10-17T09:20:04+00:00</updated>
<author>
<name>Mathew Inwood</name>
<email>mathewi@google.com</email>
</author>
<published>2018-10-17T09:20:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=5037a7eb93ec73c152da5f0f19f0ff04e9c3a02c'/>
<id>5037a7eb93ec73c152da5f0f19f0ff04e9c3a02c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
