ninja: Missing `restat`? An output file is older than the most recent input:
output: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata_intermediates/activity_actions.txt
input: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata.zip
ninja: Missing `restat`? An output file is older than the most recent input:
output: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata_intermediates/broadcast_actions.txt
input: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata.zip
ninja: Missing `restat`? An output file is older than the most recent input:
output: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata_intermediates/categories.txt
input: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata.zip
ninja: Missing `restat`? An output file is older than the most recent input:
output: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata_intermediates/features.txt
input: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata.zip
ninja: Missing `restat`? An output file is older than the most recent input:
output: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata_intermediates/service_actions.txt
input: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata.zip
ninja: Missing `restat`? An output file is older than the most recent input:
output: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata_intermediates/widgets.txt
input: out/target/common/obj/PACKAGING/framework-doc-stubs-metadata.zip
Which was caused by unzip setting the timestamps of the output files to 2008.
Test: m out/target/common/obj/PACKAGING/framework-doc-stubs-metadata_intermediates/activity_actions.txt
Change-Id: Ie62b0f52eb9aae11db7899c363780daf7d2c0e95
The API files are disted to the apistubs/ subdir now, and all
known users have been updated to use that path.
Bug: 152479829
Test: No
Change-Id: I224fd5af8ba740c6ad94bbbdb20f5d53509e51f6
droidstubs dist now dists the api file, so convert these manual
mk rules into bp dist instead.
Bug: 149293194
Test: m dist sdk && find out/dist/apistubs -name /android\.txt
Change-Id: I96052b427dc01a6d24b040ad0006129d4d1e48fb
Merged-In: I96052b427dc01a6d24b040ad0006129d4d1e48fb
Makes these artifacts available for the update_prebuilts script.
Bug: 149293194
Test: m win_sdk dist && find out/dist -type f
Change-Id: Ia1064e50e987433e5e308527c6770ba2d3e8bde3
Merged-In: Ia1064e50e987433e5e308527c6770ba2d3e8bde3
(cherry picked from commit 7b0414beb77aaf67124c3ef7f2a55a898772bd1d)
Metalava, not Doclava, should be used to extract the metadata used in
devtools. The files created then need to be copied into the SDK.
Bug: 142480924
Test: m sdk
Change-Id: I7eb15341fde9520d51a696a6416a63e6c19c71f9
update-api would be fast except that it spends ~4 minutes doing
doc-comment-check-docs. doc-comment-check-docs isn't really
related to update-api, so lets just remove it.
Fixes: 124386818
Test: m update-api
Change-Id: I0f5311e98063786671c0d8b6a8db52351d9fcfd7
offline-sdk-docs is the most useful target for local developers
verifying documentation changes. Unzip offline-sdk-docs.zip
into out/target/common/docs/offline-sdk/ whenever the offline-sdk-docs
or docs targets are built.
Fixes: 124115897
Test: m offline-sdk-docs
Change-Id: I92ce65742e7475cc64a688f2b1893c96ecfd2a52
The hiddenapi rules are now in build/soong/java/hiddenapi_singleton.go.
The dist goals are still here for now.
Bug: 123645297
Test: m checkbuild
Change-Id: Id25b2bf0d6b49be2f908a4613f012773fb1f02c4
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
Hiddenapi build logic has moved to soong and list of flags.csv files
is now being passed to make files through SOONG_HIDDENAPI_FLAGS
variable. Adjust the build rule for hiddenapi_flags.csv accordingly.
Test: aosp compiles
Change-Id: I930f918fb36ce3532478035e83c2632559fd07b6
Rename files to reflect new API list naming convention:
light-greylist => greylist
max-sdk-p-blacklist => greylist-max-p
This also removes unused files (private-dex.txt, public-dex.txt,
removed-dex.txt) and merges vendor.txt into greylist.txt.
Test: m appcompat
Test: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py
Merged-In: I4922ecb011a03bef3fa105f8181d1851d2cc496a
Change-Id: I4922ecb011a03bef3fa105f8181d1851d2cc496a
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:
<api_signature>,<flag1>,...,<flagN>
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
Add a python script to merge the CSV files, dealing with the fact that the
source columns may differ due to the annotation properties present in the
source.
Add this new file and the existing greylist.txt files as dependencies of
the 'dist' target, so that they appear as artifacts on the build server.
This allows them to be processed later by reading them from the build
server.
Test: m out/target/common/obj/PACKAGING/hiddenapi-greylist.csv
Bug: 117314178
Change-Id: Ib9e5da90e4c32333a3f4f02ee7f159f77086ae5e
This will contain greylist entries accessible by apps with a
targetSdkVersion of less than Q. Currently empty, will be populated in
follow up CLs.
For now, these APIs are just merged into the light greylist at build time,
pending support in the runtime for implementing the correct runtime
behavior.
Also fix a bug in sort_api.sh so it deals with empty API lists
correctly.
Bug: 115609023
Test: m
Change-Id: I213874062f393f96d120648a934ae5ad7aba93af
@UnsupportedAppUsage annotations support setting a maxTargetSdk property
on the which results in the member being placed on the dark grey list,
or in future on a P or Q blacklist.
Bug: 114361293
Test: m
Change-Id: I33be28f8afb034a030bdf5cf29d43ba72f50bfcd
Change hidden API list generation build rule so that it checks if
outputs have changed and only commit them when changes have been made.
.KATI_RESTAT instructs ninja to restat the outputs and remove reverse
dependencies when rebuilding dependencies is not needed.
Bug: 113278235
Test: m appcompat
Change-Id: Ic3ec82534a6d79b6a85f865a6e9eb5f0b3f12424
We want to preserve the same semantics as P wrt dark greylist. This will
eventually become the "blacklist for target SDK >= P".
Bug: 113881436
Test: phone boots
Change-Id: I3bb72102e1d054eb0f2cae089ab633a0bc2bb276
The dist path of the api files are changed for consistency of dist path.
Test: make -j40 PRODUCT-sdk_phone_armv7-sdk dist sdk_repo
Change-Id: I8dae352288458f6305ab6a0e5210c042ab372e33
Generating hidden API lists has grown in complexity and the original
Makefile rule has become a bottleneck for build times. Rewrite the
logic in Python.
Bug: 113278235
Bug: 73736106
Test: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py
Change-Id: I63f03133d70260d06c55f482b844a4980dc6f734
Whitelist used to be the same as all entries in API stubs. This is no
longer true as libcore will generate hidden bridge methods which are
supposed to be whitelisted. CL in build/make calls class2greylist on
each boot classpath module to dump their list and this patch creates
a build rule for the new whitelist.
Bug: 112186571
Test: m appcompat, diff public-list.txt whitelist.txt
Change-Id: I7b3957ea9ed8bebb483609d94b1e6f169f4379dd
The `hiddenapi` build tool has been extended to provide a full list
of non-SDK APIs in an effort to remove dependency on Doclava.
This patch changes the build rules generating non-SDK API lists to
start using hiddenapi's list instead of Doclava's.
Consequences:
(a) some greylist entries change signature (fixing Doclava varargs bug)
(b) cloned public fields are now whitelisted (b/79432238)
(c) new APIs need to be greylisted because they are used by apps
Bug: 79432238
Bug: 79409988
Bug: 76424618
Test: phone boots
Merged-In: I681c1e97d0929cfb1d357b2243ecb210d18f9e87
Change-Id: I681c1e97d0929cfb1d357b2243ecb210d18f9e87
(cherry picked from commit b59c36f51c3c4b7595718f325b38c11352237b2b)
Since support libraries have been migrated to Soong, these docs modules
currently are ready to be supported in Soong.
Bug: b/70351683
Test: m -j offline-sdk-docs
Change-Id: I8739d94909c7cc830c30fa3d1047d26761cc5076
Merged-In: I8739d94909c7cc830c30fa3d1047d26761cc5076
With annotations for greylist entries, each java target generates it own
greylist.txt file. Merge all of these into the final greylist.txt.
Bug: 110868826
Test: m
Change-Id: I6a64c65000f1fd9f49e09b5b498bdccc3560d606
If we add a new sdk library starting with android, there is a build
error because of the wrong "since" argument. So we have to change to
android.txt and android.xml instead of android.* in since-arg.
Bug: 77577799
Test: Verified variable is the same before & after.
Change-Id: I3016181a97e565ebba67c1828d76ddf9a7d6f860
The dark greylist is meant to contain non-SDK APIs which are "related"
to APIs accessible to apps without restrictions. The list used to be
built as all non-SDK APIs in the same package as those on the light
greylist. That is not sufficient and should include the public SDK API
packages too.
This patch modifies the makefile to generate a list of public API DEX
signatures with Doclava and then use that as a basis for the dark
greylist generation.
Bug: 80461842
Bug: 64382372
Test: make out/target/common/obj/PACKAGING/hiddenapi-blacklist.txt
Change-Id: I4b1588013f26661207126b4006cdef0a0fc8ae2c
Dark greylist has so far been populated with the remaining class
members of classes listed on the light greylist. This patch changes
the rule to include all remaining classes and class members in the
same package (sub-packages not included).
Bug: 64382372
Test: make -j64 out/target/common/obj/PACKAGING/hiddenapi-dark-greylist.txt
Change-Id: Icf3f60f1e776f092103c612fc3995ce0e66617ea
Merged-In: Icf3f60f1e776f092103c612fc3995ce0e66617ea
(cherry picked from commit 4c3c03129ba95dccab30ba7579dc91b97843271f)
Dark greylist has so far been populated with the remaining class
members of classes listed on the light greylist. This patch changes
the rule to include all remaining classes and class members in the
same package (sub-packages not included).
Bug: 64382372
Test: make -j64 out/target/common/obj/PACKAGING/hiddenapi-dark-greylist.txt
Change-Id: Icf3f60f1e776f092103c612fc3995ce0e66617ea
Previous CL introduced the concept of populating the dark greylist
with remaining members of classes on the light greylist. This breaks
the assumption that some methods/fields will always remain blacklisted.
Introduce a new file which forces their blacklisting and adjust the
build rules accordingly.
Bug: 64382372
Test: make out/target/common/obj/PACKAGING/hiddenapi-blacklist.txt
Merged-In: I8b20e03c50f4027a24d2a6081bedb08bc8a34011
Change-Id: I8b20e03c50f4027a24d2a6081bedb08bc8a34011
(cherry picked from commit 4b34f79a35a6602962ed1df1accd9d6ea6e41e77)