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
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)
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)
This patch will iterate over all classes in the light greylist and
add the remaining (currently blacklisted) class members into the
dark greylist. This is meant to mitigate the impact of the feature
on legacy apps, in case their hidden API uses have not been detected
by our analyses. The dark greylist entries will be available to apps
targeting pre-P SDK versions, but blocked for apps targeting P or later.
Bug: 64382372
Test: make out/target/common/obj/PACKAGING/hiddenapi-dark-greylist.txt
Merged-In: Id1ef4ab523b3b4d1333b5fbf2b3e6622ef2be607
Change-Id: Id1ef4ab523b3b4d1333b5fbf2b3e6622ef2be607
(cherry picked from commit 185f00e6677cea3fb135648f4a19d22dec54bbb5)
The build rules were getting messy and too difficult to extend.
Extract assertions into own functions, create shared variables.
Bug: 64382372
Test: make out/target/common/obj/PACKAGING/hiddenapi-blacklist.txt
Merged-In: Ie34adb8b5349b30daa2e9e4976d285f6d9711f0e
Change-Id: Ie34adb8b5349b30daa2e9e4976d285f6d9711f0e
(cherry picked from commit 721bc8e6a8b1350c62b4a570f523541d1ce1124a)
The CL copies the build rule for hidden API lists from the internal
tree to AOSP. This is not a cherry-pick but it will make the rules
the same in all the branches. As a result, the blacklist becomes
enabled in AOSP.
Test: make
Merged-In: I8757a66bf625388e6f6419714ef5bba7af5d93ea
Change-Id: I567c10dc8e833aa0a6775ab91f2ce9553b0dd8df
Create an empty file in the build rule instead. Do not merged this
beyond AOSP. We have an implicitly built blacklist everywhere else.
Bug: 64382372
Test: make
Change-Id: I4e13e5daf635934a152d389a95bf45c482b5a87f
Merged-In: Ifa912f8751025b7de24a982a1a227a9c27d18267
Add a new Makefile rule 'hiddenapi-b-blacklist' which takes the
manually published hiddenapi-p-light-greylist.txt and subtracts it
from private-dex.txt built for the current branch. This is meant to
provide an approximation of the blacklist in internal branches.
Bug: 64382372
Test: make hiddenapi-aosp-blacklist
Change-Id: I528a70cc6a71e988b53d94ca7ef81d6c181e5153
This directory is going away. Migrate to the new paths, and replace the
long list of "since" arguments with a loop in the makefile. Also fix the
soong buildfile to use the new path and the 28 prebuilts.
This removes the need to update it every time an API is finalized (in make,
I don't know how to make loops in soong).
Bug: 77525052
Test: Verified variable is the same before & after, except for path change
Change-Id: I1d4e87e7840e979b83779a2aefe176e7c1ed1527
Merged-In: I1d4e87e7840e979b83779a2aefe176e7c1ed1527
Remove old droiddoc targets for api-stubs, system-api-stubs, and test-api-stubs.
And also set api_tag_name, api_filename, private_api_filename, and etc.
properties in Android.bp for new droiddoc.
Test: manually compare if dependencies change after Soong based droiddoc runs.
Bug: b/70351683
Change-Id: I8d944c83de120ec8148276adc1c9872113d9d29b
Merged-In: I8d944c83de120ec8148276adc1c9872113d9d29b
com.android.internal.* is meant to be hidden from documentation,
but most of it is erroneously not hidden via @hide or -hidePackage
directives; why documentation is currently generated for Predicate
but not other classes from com.android.internal.util, and why some
but not all classes from that package show up in package-level
documentation (package-summary.html), is not currently understood.
There appears to be a behavior difference between OpenJDK 8 and
OpenJDK 9's javadoc that results in additional classes showing up
in package-summary.html. This CL fixes this by adding -hidePackage
directives for com.android.internal{.util}; other sub-packages of
com.android.internal do not currently show up in documentation and
are not touched by this CL.
Test: Patched this CL into the internal-master branch and ran:
USE_R8=true EXPERIMENTAL_USE_OPENJDK9=true make offline-sdk-docs
Checked that this removes all documentation for com.*
(com.android.internal.util was the only com.* package for which
documentation was previously generated).
In other words: Before this CL, [1] existed, but after
this CL, the entire directory subtree [2] does not exist.
Test: Checked that Predicate was already missing from stubs before this
CL. In other words, [3] already did not exist before this CL.
[1] out/target/common/docs/offline-sdk/reference/com/android/internal/util/Predicate.html
[2] out/target/common/docs/offline-sdk/reference/com
[3] out/target/common/obj/JAVA_LIBRARIES/android_system_stubs_current_intermediates/classes/com
Bug: 69736344
Bug: 69736236
Change-Id: I3243e2820348c338a54e42c72d29bed71389a6c4
This dependency is no longer required: it was added
for libcore when libcore was implemented in terms of
com.icu classes. libcore has since moved to android.icu
(in core-libart) and so the droiddoc dependency is no
longer required.
Test: make droid docs
Merged-In: I6e4e79a7df201fdc2cefa60037adf831593eaa0f
Change-Id: I6e4e79a7df201fdc2cefa60037adf831593eaa0f
Parcelable shouldn't be in the list of parcelables in framework.aidl.
Remove it to fix warning when running aidl:
framework.aidl:287 attempt to redefine built in class android.os.Parcelable
Also make the dependency on sdk_parcelables not be order-only so
framework.aidl gets rebuilt when sdk_parcelables changes.
Bug: 73135791
Test: ParcelableDetectorTest
Test: out/target/common/obj/framework.aidl does not contain android.os.Parcelable
Change-Id: If5222879be9ec1e5fa08810adc624ec526ddc0ec
This change is meant for ART buildbots which build against a pinned
commit of the framework and thus do not have the commit which
introduced hidden API lists. Normal builds will now copy the blacklist
and dark greylist into the build folder first, and then generate the
light greylist as usual. If a buildbot does not have the framework
changes, it can create dummy API lists in the build folder before
starting the build and avoid the issue.
Test: make
Bug: 64382372
Change-Id: Ib6e53a45bcc917abb4ba67fdcbf01d4a19c2d56f
Android is beginning to put restrictions on the usage of private APIs.
In order to facilitate a transitionary period, some APIs will remain
accessible but issue a warning (greylist), other will see restrictions
right away (blacklist).
This patch create two new text files which will be used to store manual
lists of dex signatures of hidden APIs. These are the blacklist and
dark greylist. They should be mutually exclusive and both be subsets of
INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE. The last list, light greylist,
is generated as INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE minus the two
manual lists.
Bug: 64382372
Test: m
Change-Id: Ia694ef79bece819c87db853ccaea5e95f38d3e84
Doclava now generates API signatures of classes and their members
which are not part of the public SDK. Adjust the arguments passed
to Doclava to enable that feature.
Bug: 64382372
Test: m
Change-Id: I47de683dd2b00fce73b82581a13fbe1013ef625f
The CL contains parts of the EuiccCard APIs. getEid() is sync. All the
other APIs are async.
Move ResetOptions from EuiccCard to EuiccCardManager.
The other APIs will be added in a follow-up CL.
Bug: 38206971
Test: test on phone
Change-Id: Iba098ee779b8ea4e244e0e4cf7318139666cc94b
Make it consistent with the test-mock and test-runner directories.
Also renames the files in api/ subdirectory.
(cherry picked from commit f779efd62cd579f67bd3b387d59fda11ee0cbe90)
Bug: 30188076
Test: make checkbuild
Change-Id: Ied3621e6201d8717223fe1ccd4ea77d458126b25
Merged-In: If4f99a65fcca416ede5b3e63481398f0b451bcb7
Remove the obsolete aidl list, framework.aidl is now generated
from the stubs jars.
Bug: 70046217
Test: m checkbuild
Change-Id: I2417f0a8f193bd4db4058f6f0bb05c147e18de25
Merged-In: I2417f0a8f193bd4db4058f6f0bb05c147e18de25
(cherry picked from commit fac48f998e763060dfdfb6e76927ec85aa63e1eb)
Added AIDL for CellIdentityCdma, CellIdentityGsm, CellIdentityLte
and CellIdentityWcdma. This is the preliminary change for IWLAN
refactoring as network registration state will be moving into
system API.
Test: Build
bug: 64132030
Merged-In: I6763d4b6e51cf354b01ee5bfb5d37114394f3063
Change-Id: I6763d4b6e51cf354b01ee5bfb5d37114394f3063
(cherry picked from commit 31db18a4c078b77f011170a27eb95c94398efde6)
Use sdkparcelables to extract public parcelables from the
public, test, and system stubs jars, and combine them into
framework.aidl.
Bug: 70046217
Test: m checkbuild
Change-Id: I9de0ffe9dffbd80c8cb785b0624959c52c3200a1
Extracts the source for the android.test.mock library from the
frameworks/base/test-runner directory into its own
frameworks/base/test-mock directory. They are already treated separately
at runtime and compile time so this just makes the separation complete.
Bug: 30188076
Test: make checkbuild
Change-Id: I20e5b06ba79677e76117c82e9f9e2ecd15e5fed6
Merged-In: I20e5b06ba79677e76117c82e9f9e2ecd15e5fed6
(cherry picked from commit e254526f0fe5d22681555bd4a00b7ee96fee1dc1)
This is a preliminary step for IWLAN refactoring, where data response
will be one of the parameter in data service callback.
Test: Telephony sanity tests
bug: 64132030
Merged-In: I7eb5318cd75ca3b7a29d5bf0da18d6b29a228ee1
Change-Id: I7eb5318cd75ca3b7a29d5bf0da18d6b29a228ee1
(cherry picked from commit e44609b15866d080e0f8813b99d04b51a6f32929)
When emitting a method or field, verify that we're able to reference
all mentioned types. This ensures that we don't accidentally
reference undefined classes/interfaces.
Test: manual inspection of API files
Bug: 69791141
Change-Id: I84e0c87fe83daa118661f61dbdf17b58ea5282d4
Merged-In: I84e0c87fe83daa118661f61dbdf17b58ea5282d4
Generate APIs using updated doclava.
Test: manual inspection of API text files
Bug: 69505783
Change-Id: I2efd22998a64ebb57588b073c4a591242f4aef91
Merged-In: I2efd22998a64ebb57588b073c4a591242f4aef91
The droiddoc rules were passing the sources in through
LOCAL_SRC_FILES, which gets prefixed with $(LOCAL_PATH). They
were prefixing ../.. to try to counter frameworks/base in
$(LOCAL_PATH), but that doesn't work for absolute paths to
generated files in an absolute $(OUT_DIR).
Use $(LOCAL_GENERATED_SOURCES) for anything that is in $(OUT_DIR)
instead, which takes paths that are relative to the top of the tree
or absolute.
Bug: 70166718
Test: m OUT_DIR=/tmp/out docs
Change-Id: I93b743607c2b8ce05512ecd4bbe860747cb48428
Merged-In: I93b743607c2b8ce05512ecd4bbe860747cb48428
(cherry-picked from commit bd200ce7d4ebe31ad4327683e59af269420b0ef5)
Use Soong to build framework-res.apk and framework.jar.
See build/soong/README.md for more information.
Bug: 69917341
Test: m checkbuild tests docs
Test: manually compare framework.jar and framework-res.apk
Test: manually compare out/target/common/docs
Change-Id: Ibdfe1cbf34d97c43f4857c2c5d7604fa72d5b5a4
Merged-In: Ibdfe1cbf34d97c43f4857c2c5d7604fa72d5b5a4
(cherry picked from commit cf3a0b5355c6138538f9f3d4b369a875814bc01c)
Use Soong to build framework-res.apk and framework.jar.
See build/soong/README.md for more information.
Bug: 69917341
Test: m checkbuild tests docs
Test: manually compare framework.jar and framework-res.apk
Test: manually compare out/target/common/docs
Change-Id: Ibdfe1cbf34d97c43f4857c2c5d7604fa72d5b5a4
Merged-In: Ibdfe1cbf34d97c43f4857c2c5d7604fa72d5b5a4
(cherry picked from commit cf3a0b5355c6138538f9f3d4b369a875814bc01c)
- Adds public APIs that IMS providers will implement/use
- Adds aidl APIs for internal communications to support SMS over IMS.
- First pass at documentation of APIs.
Moving over from ag/3265442
Bug: 69846044
Test: None
Change-Id: Ic665a2a7d64a56417bcf2a159d6b88b05cdb832a
This is the preliminary change in order to make the new data call
setup API for IWLAN refactoring.
Test: Telephony sanity tests + unit tests
bug: 64132030
Merged-In: Ib96dc3dd577def0a428e2f5cdb5fb7f742120020
Change-Id: Ib96dc3dd577def0a428e2f5cdb5fb7f742120020
(cherry picked from commit fc84bb5f5c6e30db0eca589eb67b406bf4bfadbe)
The ImsService was originally designed as a flat
interface, all ImsFeatures would be forwarded
through ImsService. This has been refactored to
using AIDL interfaces for each feature, as it
is more straightforward.
Test: Manual, Telephony IMS Unit Tests
Change-Id: Ibe065ddec6f180eabda03cf06f842c642a11114f
Add IBluetoothSocketManager native Binder implementation. Thanks to it
we'll skip jni to native calls, and need to re-serialize data manually.
Bug: 68359837
Test: none
Change-Id: I6c99717aa18ab41addf96b7536e483ae12802601
LOCAL_SRC_FILES is expected to be a list of files relative to the
Android.mk files. If OUT_DIR is absolute then adding generated
files to the list produces bad paths when $(LOCAL_PATH)/ is prepended
to it. Put libcore's generated sources into
LOCAL_INTERMEDIATE_SOURCES instead.
Bug: 64930165
Bug: 68375156
Test: m checkbuild
Change-Id: I4b36fd192570ea0cd52d8537a16c078c726d97fd
Make the Bluetooth HID profile name consistent with the Bluetooth HID service
name.
BluetoothInputHost → BluetoothHidDevice
BluetoothInputDevice → BluetoothHidHost
IBluetoothInputHost → IBluetoothHidDevice
IBluetoothInputDevice → IBluetoothHidHost
BluetoothProfile.INPUT_HOST → BluetoothProfile.HID_DEVICE
BluetoothProfile.INPUT_DEVICE → BluetoothProfile.HID_HOST
(Cherry-picked from commit c26c76c63d933f8057f795d05624f91b811c8c71)
Merged-In: Iadb890a54dd3d6868b87514472bbac6bb0c6179f
Bug: 68055651
Test: make
Change-Id: Iadb890a54dd3d6868b87514472bbac6bb0c6179f