This change is to address API review, add respective
@IntDef for network policy API.
Typedef cannot be exposed as SystemApi so add
ConnectivityAnnotations class and add an annotation library
so that it can be used in module and platform.
Bug: 183972925
Test: m, build doc target framework-doc-stubs_annotations.zip
and check the APIs have an attribute IntDef annotation
Change-Id: Ie3ec40cf48818edd422a4550377774eae387d3b2
This requires removal of all hidden APIs from the framework code.
Preconditions are jarjar'd into the jar.
Other APIs are replaced with system-visible equivalents.
Bug: 181787682
Bug: 146218515
Test: Presubmit
Change-Id: I6649bed3260ac08a0f66abd7a8ec545c401761fe
A package filter was previously applied to just the jarstubs package,
but not the docstubs. This lead to various internal classes appearing in
the public documentation. Fix that to apply the same filter for both.
This removes the following classes from the docs:
android/telephony/PackageChangeReceiver
com/android/net/module/util/CollectionUtils
com/android/net/module/util/ConnectivityUtils
com/android/net/module/util/NetworkCapabilitiesUtils
com/android/net/module/util/NetworkIdentityUtils
com/google/android/collect/Lists
com/google/android/collect/Maps
com/google/android/collect/Sets
com/google/android/gles_jni/EGLConfigImpl
com/google/android/gles_jni/EGLContextImpl
com/google/android/gles_jni/EGLDisplayImpl
com/google/android/gles_jni/EGLImpl
com/google/android/gles_jni/EGLSurfaceImpl
com/google/android/gles_jni/GLImpl
com/google/android/util/AbstractMessageParser
com/google/android/util/AbstractMessageParser$Acronym
com/google/android/util/AbstractMessageParser$FlickrPhoto
com/google/android/util/AbstractMessageParser$Format
com/google/android/util/AbstractMessageParser$Html
com/google/android/util/AbstractMessageParser$Link
com/google/android/util/AbstractMessageParser$MusicTrack
com/google/android/util/AbstractMessageParser$Part
com/google/android/util/AbstractMessageParser$Photo
com/google/android/util/AbstractMessageParser$Resources
com/google/android/util/AbstractMessageParser$Smiley
com/google/android/util/AbstractMessageParser$Token
com/google/android/util/AbstractMessageParser$Token$Type
com/google/android/util/AbstractMessageParser$TrieNode
com/google/android/util/AbstractMessageParser$Video
com/google/android/util/AbstractMessageParser$YouTubeVideo
com/google/android/util/Procedure
com/google/android/util/SmileyParser
com/google/android/util/SmileyResources
Bug: 187386774
Test: diff framework-doc-stubs/../api-versions.xml before and after
Change-Id: I85b1485b4c5bc1b30a5d537e96d961382f298fb7
Inlining these constants allow the public api metalava run to depend on
ART's public API rather than the "internal" CorePlatform API, which
prevents picking up unintentional classes (such as annotations) from the
CorePlatform API in the public stubs.
Because these constants get inlined in the API/stubs, and the constants
have been finalized for many years, they can never change. Because they
cannot change, reusing the constant is of limited value. I've added
some comments to point readers to other places the constant is used.
Bug: 154796679
Test: m checkapi
Change-Id: I0b347a2964cfe5a1206145fdc56934727b890469
Like the jar stubs, the doc stubs need modularization to avoid depending
on module sources and instead being assembled by merging the doc stubs
of the constituent modules. This will allow generating e.g. the lint
database, annotation zips, and the documentation itself from prebuilts
(which in turn allows mixing e.g. non-updatable R with the latest
modules).
Move the defaults for the non-updatable jar stubs to the shared bp file
and reuse it for the non-updatable doc stubs, and add two targets for
the public and the system stubs.
Bug: 186197911
Test: m android-non-updatable-doc-stubs{,-system}
Merged-In: Ic2cef748c42c141ea42b8cd7b4afd7ee78a1399d
Change-Id: Ic2cef748c42c141ea42b8cd7b4afd7ee78a1399d
Like the jar stubs, the doc stubs need modularization to avoid depending
on module sources and instead being assembled by merging the doc stubs
of the constituent modules. This will allow generating e.g. the lint
database, annotation zips, and the documentation itself from prebuilts
(which in turn allows mixing e.g. non-updatable R with the latest
modules).
Move the defaults for the non-updatable jar stubs to the shared bp file
and reuse it for the non-updatable doc stubs, and add two targets for
the public and the system stubs.
Bug: 186197911
Test: m android-non-updatable-doc-stubs{,-system}
Change-Id: Ic2cef748c42c141ea42b8cd7b4afd7ee78a1399d
When installing a non-AB package, if the OS comtains compressed apexes,
we need to allocate space for these apexes so that they can be properly
decompressed on the next reboot.
Test: adb shell cmd recovery install-package /data/ota_package.zip
Change-Id: Ia40d0614e0e724cfb17e91720ec88a15795bd8ee
Separate the internal state of AttributionSource from the
class to make it a simple AIDL we can translate automatically
to native - keeping Java and native parts in sync. This
would allow writing a thin native lib for checking attribution
source permissions which would be used to teach camera and
audio about attributions.
Deinfe an AIDL interface for passing around an attribution
source and opr performing permission checker oprations allowing
native and Java permission checks on attribution chains to be
handled. The Java side permission checker functions are in a dedicated
permisison checker service on top of which sits the PermissionChecker.
We expose similar PermissionChecker native APIs sitting on top
of the same remote interface. The nice thing is that we have
native and Java permisison checkers in sync sharing remoting
code and being close in shape.
For now the PermissionChecker in Java is divorced from the
PermissionManager but in T we will consider how to unify them,
either by an extension object on the PermmissionManager or
APIs on the PermissionManager, or another approach, and then
migrate clients off the PermissionChecker APIs.
Sync app ops were not tracked across multiple binder calls which
prevents moving the permission checks in the system server as
this adds one more hop. Now sync ops are propagated backed the
call stack and only the ops for the package are dispatched to
it and the rest are propagated back to the caller, recursively.
bug: 158792096
Test: atest CtsPermission5TestCases
atest CtsAppOps2TestCases
atest CtsPermissionTestCases
atest CtsPermission2TestCases
atest CtsPermission3TestCases
atest CtsPermission4TestCases
atest CtsPermission5TestCases
Change-Id: Ia5cbd2eb20a2da172a5960afdddd7e467f4bcb0d
These annotations have been relocated to frameworks/libs/modules-utils.
This CL removes the files and updates necessary build rules.
Bug: 183133670
Test: TH
Merged-In: I024252070bd806d50d54377190fdc5cd5b4445e1
Change-Id: I834b9f5320e0b6fe8cb9feb7194c82085b805e07
These annotations have been relocated to frameworks/libs/modules-utils.
This CL removes the files and updates necessary build rules.
Bug: 183133670
Test: m
Merged-In: I834b9f5320e0b6fe8cb9feb7194c82085b805e07
Change-Id: I834b9f5320e0b6fe8cb9feb7194c82085b805e07
Revert "Prepare AttributionSource to expose to native - native"
Revert submission 14225527-bug-158792096-04/16/21-1
Reason for revert: b/186467053
Reverted Changes:
I16740cc2d:Prepare AttributionSource to expose to native - na...
I4e050e78b:Prepare AttributionSource to expose to native
Change-Id: I83e4091231241c2211edf5745735f4ee993c6680
Separate the internal state of AttributionSource from the
class to make it a simple AIDL we can translate automatically
to native - keeping Java and native parts in sync. This
would allow writing a thin native lib for checking attribution
source permissions which would be used to teach camera and
audio about attributions.
Deinfe an AIDL interface for passing around an attribution
source and opr performing permission checker oprations allowing
native and Java permission checks on attribution chains to be
handled. The Java side permission checker functions are in a dedicated
permisison checker service on top of which sits the PermissionChecker.
We expose similar PermissionChecker native APIs sitting on top
of the same remote interface. The nice thing is that we have
native and Java permisison checkers in sync sharing remoting
code and being close in shape.
For now the PermissionChecker in Java is divorced from the
PermissionManager but in T we will consider how to unify them,
either by an extension object on the PermmissionManager or
APIs on the PermissionManager, or another approach, and then
migrate clients off the PermissionChecker APIs.
bug: 158792096
Test: atest CtsPermission5TestCases
Change-Id: I4e050e78b2361cbf524cc213802e0fef5b487f67
No target should build against hidden symbols in framework-connectivity,
as it has been moved to a mainline module that only exposes a stable
API.
Change-Id: I7e98314ce58419d3dce4845cba9c2b1852690c36
Fixes: 182859030
Test: m
This change adds a "BluetoothPermissionChecker" that ensures that
all Bluetooth permission annotations are consistent. In addition, it
verifies that all Bluetooth public APIs have been audited to be
permission protected where relevant.
We've currently standardized on saying that APIs that return device
or Bluetooth state information (without sharing details about any
particular remote Bluetooth device) do not need to be permission
protected.
This change is only annotations and has no behavior changes.
Bug: 183626724
Test: ./build/soong/soong_ui.bash --make-mode Bluetooth RUN_ERROR_PRONE=true
Change-Id: Ie80b15b058359bf1e9a6ee881b89cb3e5b584ca1
No need to have a filegroup for this. This also has the nice side-effect
of avoiding modules outside this directory depending on the file.
Bug: 185128417
Test: m
Change-Id: Idef6f2fd89116490c43427bba55202f46377a83d
The top-level Android.bp is large and difficult to navigate. Move these
defaults closer to the targets that use them.
Bug: 185128417
Test: m
Change-Id: I7dd7a82837c9a0902aabd640e35ebb65c5f16c73
The proto build rules are quite large and makes the top-level Android.bp
file difficult to navigate. Move them to a separate file.
Bug: 185128417
Test: m
Change-Id: I5719ba0fa8e03dcfca0cc32dc30db3f87ea4e3cd
No need to have a filegroup for this. This also has the nice side-effect
of avoiding modules outside this directory depending on the file.
Bug: 185128417
Test: m
Merged-In: Idef6f2fd89116490c43427bba55202f46377a83d
Change-Id: Idef6f2fd89116490c43427bba55202f46377a83d
The proto build rules are quite large and makes the top-level Android.bp
file difficult to navigate. Move them to a separate file.
Bug: 185128417
Test: m
Merged-In: I5719ba0fa8e03dcfca0cc32dc30db3f87ea4e3cd
Change-Id: I5719ba0fa8e03dcfca0cc32dc30db3f87ea4e3cd
The top-level Android.bp file is very large, so move modules that can be
in subdirs.
Also rename the vague "base_defaults" module to something more suitable.
Bug: 185128417
Test: m
Change-Id: I5f3106b74edb91ac9db5b3e66cc61566d0f16e9b
The top-level Android.bp is large and difficult to navigate. Move rules
that don't have any "top level" things in them down in the core/java
directory.
Bug: 185128417
Test: m
Change-Id: I3fd90c2d5140e5716474ff1f8c58cbc1b3319e5b
The top-level Android.bp file is very large, so move modules that can be
in subdirs.
Also rename the vague "base_defaults" module to something more suitable.
Bug: 185128417
Test: m
Merged-In: I5f3106b74edb91ac9db5b3e66cc61566d0f16e9b
Change-Id: I5f3106b74edb91ac9db5b3e66cc61566d0f16e9b
The top-level Android.bp is large and difficult to navigate. Move rules
that don't have any "top level" things in them down in the core/java
directory.
Bug: 185128417
Test: m
Merged-In: I3fd90c2d5140e5716474ff1f8c58cbc1b3319e5b
Change-Id: I3fd90c2d5140e5716474ff1f8c58cbc1b3319e5b
No target should build against hidden symbols in framework-connectivity,
as it has been moved to a mainline module that only exposes a stable
API.
Fixes: 182859030
Test: m
Change-Id: I376531cb34696aac9fa2d278f0698565937bea65
The class in this library no longer needs to be conditionally included
on the bootclasspath based on the REMOVE_ATB_FROM_BCP flag so is being
built as part of framework-minus-apex.
Bug: 184331423
Test: m nothing
Change-Id: If7c2ec51be0670ffda22e18ce1e028783a1513e7
In order to fix divergence in libbinder Android.bp file, adding an
empty file group corresponding to an internal file group.
This is needed to easily manipulate where source files are included
in libbinder without having to land patches internally and externally.
Bug: 183654927
Test: N/A
Merged-In: I3dafe7a75b2dae561583a7821284027a1896b9a5
Change-Id: I8821242efdc0a27daddf30368f948855062f2d14
Keep the constants are only used by framework in TrafficStatsConstants
and move the others to NetworkStackConstants which is in libs/net.
Bug: 182349970
Test: FrameworksNetTests
NetworkStackTests
TetheringTests
Change-Id: Ib667c115e5f1e01237d88b77bba753363da309cc
Merged-In: Ib667c115e5f1e01237d88b77bba753363da309cc
* changes:
Move framework java filegroups into subdirectories
Partial cp of "Move Tuner resource updating from Tuner java into Tuner client"
Partial cp of "Initial boilerplate for an updatable graphics jar"