Commit graph android_packages_modules_Co.../framework
Message SHA1
Merge "Support NetworkStats#addEntries API" into main
Junyu Lai   authored and   Gerrit Code Review   commited 2024-08-09 10:06:03 +00:00
a7511c2318
Support NetworkStats#addEntries API
Currently, NetworkStats#addEntry creates a new instance
containing the requested result instead of mutating the
original object. This creates a heavy memory footprint
when the caller invokes it in a loop because a new NetworkStats
instance is created whenever an addEntry is called.

This change introduces a new API that allows callers to
add a set of entries to a NetworkStats instance. This new
API will clone the instance only once, return the newly
created (and modified) instance, and ensure that the original
instance remains immutable.

Additionally, the change adopts config libraries for flagging
the API and corresponding CTS tests, since Android U-based
branches are no longer downstream of current development branches.

Test: atest FrameworksNetTests:android.net.connectivity.android.net.netstats.NetworkStatsApiTest
Test: atest CtsNetTestCases:NetworkStatsApiTest
Bug: 335680025
Fix: 357772271
API-Coverage-Bug: 357772271
Change-Id: I58513844e681c0621a6107ec4b198cd3957f289d

Junyu Lai   commited 2024-08-09 14:19:38 +08:00
d0e049455c
Merge changes If787d3f3,I6de357ac into main
* changes:
  Rename getShrinkedBackingArray to getMinimized*
  Suspend callbacks for frozen apps

Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2024-08-05 00:15:39 +00:00
057369c840
Suspend callbacks for frozen apps
To avoid filling the binder buffers, and sending unnecessary callbacks
when apps are unfrozen (for example successive LinkProperties changes or
onAvailable+onLost are not useful), queue and aggregate callbacks for
apps that are suspended.

Test: atest
Bug: 327038794
Bug: 279392981
Change-Id: I6de357ac2834f1f7e960dfbaa63adfc3825f2a82

Remi NGUYEN VAN   commited 2024-08-02 19:24:17 +09:00
2d78124348
Fix to return BLOCKED_REASON_NONE for system uids
Bug: 289439578
Test: BpfNetMapsTest
Change-Id: Ib50c2755bc8642cc0dc4e95384d35e38be400a2c

Motomu Utsumi   commited 2024-07-30 16:56:52 +09:00
29c0d2aea7
Add framework-connectivity-pre-jarjar-without-cronet
This is required to build cronet against ConnectivityManager hidden APIs
Since framework-connectivity contains cronet, cronet target can not
depend on framework-connectivity.
So this CL splits framework-connectivity-pre-jarjar.
Cronet target can depend on
framework-connectivity-pre-jarjar-without-cronet and use
ConnectivityManager hidden APIs.

Test: TH
Bug: 311792075
Change-Id: Ib7724e8e6bd0226b437ed6f0010658d45aaa1150

Motomu Utsumi   commited 2024-07-24 17:01:51 +09:00
4d25564865
Add a CallbackQueue class
The class will be used to build memory-efficient objects (int arrays)
used to queue ConnectivityService callbacks while an app is frozen.

This is very similar to an ArrayList<Pair<Short, Short>>, but avoids
object boxing which would use a lot more memory.

This is intended to be used by ConnectivityService both as a builder,
and as a utility to read lists of callbacks that it stores. Long-lived
references to the CallbackQueue would not be kept to minimize memory
usage; only the array returned by toArray needs to be stored.

Test: atest
Bug: 327038794
Bug: 279392981
Change-Id: I187ea15d14dfd160e577e9e9e87b1aded27b1938

Remi NGUYEN VAN   commited 2024-07-16 13:36:49 +09:00
c3621e6012
Refactor RoutingCoordinator
- This CL puts RoutingCoordinator into staticlibs to make it usable by
both Tethering and ConnectivityService on R.
- This CL also changes the return type of
  ConnectivityInternalApi#getRoutingCoordinatorManager() to IBinder so
  it has fewer dependencies.

Bug: 350699020
Test: CI

Change-Id: Iba096e940795cd33e61c5141721394ad39e5ce6d

Handa Wang   commited 2024-07-05 05:26:54 +00:00
8f2c30664d
Refactor staticlibs
This CL introduces net-utils-framework-connectivity, net-utils-tethering
and net-utils-service-connectivity as staticlibs.

- net-utils-framework-connectivity will be used by
  framework-connectivity-pre-jarjar.
- net-utils-service-connectivity and net-utils-tethering are the
  static liraries used by service-connectivity-pre-jarjar and Tethering
  respectively.

Bug: 350699020
Test: CI

Change-Id: I4dbb2b0de905a576cfcf24d2d5d1f1a261d2bd68

Handa Wang   commited 2024-07-05 05:26:46 +00:00
9b0df36ea4
Merge "Only send callbacks when overridden" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-06-26 07:35:45 +00:00
e1c10b08a2
Only send callbacks when overridden
Most users of NetworkCallback do not override all methods, so callbacks
from ConnectivityService end up being unused by the app.

To save resources, check which callback methods are overridden in
ConnectivityManager, and inform ConnectivityService so it can skip
preparing and sending the corresponding binder calls when the callback
is not used by the app.

This is flagged off by default.

Test: flag enabled: atest CtsNetTestCases ConnectivityCoverageTests
Bug: 327038794
Bug: 279392981

Change-Id: Iaf490f416fb6e1437d40497fba1a40a899a9f523

Remi NGUYEN VAN   commited 2024-06-26 12:39:47 +09:00
2fd3823cbc
Make firewall bpf code multi-user aware
The check is_system_uid should mirror the definition of core_uids in
UserHandle.isCore until it is available to be read from mainline code.
isUidNetworkingBlocked should also do the same.

Test: All existing tests should pass.
Test: atest CtsHostsideNetworkPolicyTests
Test: atest FrameworksNetTests

Bug: 348316140
Change-Id: Id5e01289b301a725b162ef249062e0f2806876dc

Suprabh Shukla   commited 2024-06-25 00:21:27 -07:00
3d00262fe7
Baseline Lint FlaggedApi violations
The Lint FlaggedApi checks are currently configured as warnings. Add
existing violations to baselines files to prepare for turning the
FlaggedApi checks into errors.

Bug: 303434307
Test: treehugger
Flag: EXEMPT not possible to flag baseline changes
Merged-In: I990ce57cd5cdac44ee8b93565b45aa15790ad697
Change-Id: I990ce57cd5cdac44ee8b93565b45aa15790ad697

MÃ¥rten Kongstad   commited 2024-06-20 09:05:51 +02:00
4ece737f4f
Update document for ApfCapabilities.hashCode()
Bug: 346468860
Test: TH
Change-Id: I608effa4b84fbd34461cbfd22afb5eef33bed139

Yuyang Huang   commited 2024-06-13 20:44:46 +09:00
bfe49e0844
Merge changes I62c990d0,I413bdb76,I020ba48e into main
* changes:
  Update NetworkRequestTest#testDefaultCapabilities
  Allow default messaging app to use constrained satellite network
  Introduce NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED

Motomu Utsumi   authored and   Gerrit Code Review   commited 2024-06-07 09:29:06 +00:00
3e07102814
Introduce NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED
On V+, this capability is set by default.
Constrained satellite networks never become the system default network.

Test: CSSatelliteNetworkTest
Bug: 343823469
Change-Id: I020ba48e74f1f180e1807cbe1c066209bedb0454

Motomu Utsumi   commited 2024-06-06 15:49:21 +09:00
154ce6381a
Merge "Add config flag for useDeclaredMethodsForCallbacks" into main
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2024-06-06 02:42:54 +00:00
9d88333273
Add config flag for useDeclaredMethodsForCallbacks
Add a DeviceConfig flag that will be used to control whether callbacks
should be sent selectively based on whether the receiving method has
been overridden (will be implemented in a future change).

This adds utilities to allow ConnectivityManager to check whether a
ConnectivityService flag is enabled, as that feature will work across
ConnectivityManager and ConnectivityService. ConnectivityManager runs in
app process and does not necessarily have permissions to use
DeviceConfig. Also if it checked DeviceConfig separately from
ConnectivityService, values may be out-of-sync.

Test: atest, and see change using this
Change-Id: I204fa719cc627e84edc5c1e043d947f5ef3f8dee

Remi NGUYEN VAN   commited 2024-06-05 15:54:49 +09:00
aa355ac875
Stop throwing when the invalid capability is passed
When new capability is introduced and added to capaility or
forbiddenCapability by default, module rollback could cause system
server crash since JobScheduler persists network request that contains
new capability that is invalid for old code.
This CL updates capability validation not to throw exception to avoid
system crash in this case.

Bug: 343823469
Bug: 313030307
Test: NetworkCapabilitiesTest
Change-Id: I5708c475f3b4974284531212b77f9788ca9f497e

Motomu Utsumi   commited 2024-06-05 11:57:18 +09:00
ab1a0671c7
Merge changes If3dbe234,Ia1299759 into main
* changes:
  Dump current max entries and cache duration even if the flags change
  Check compat change flag for rate-limit cache

Junyu Lai   authored and   Gerrit Code Review   commited 2024-06-04 07:07:21 +00:00
67b67908a1
Treat APFv3 as APFv4 with not fully working counters.
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8908e131955c028ac3aabb9436daf60ca5efcfb3

Maciej Å»enczykowski   authored and   Yuyang Huang   commited 2024-05-31 01:14:44 +00:00
288aca0a23
Revert^2 "Add blocked reason for internet permission"
This reverts commit cb74c08979.

Reason for revert: This change is not a cause of b/342557183

Change-Id: Iee8d9b05bbe130a46b627b12da525177b4ee89b2

Motomu Utsumi   authored and   Gerrit Code Review   commited 2024-05-27 02:12:43 +00:00
cfd5a517da
Revert "Add blocked reason for internet permission"
This reverts commit ee96ba0e60.

Reason for revert: Droidmonitor triggered revert due to b/342557183. Will be verifying through ABTD before submission.

Change-Id: I7e185c3ac11da27c7bb9d95e4221f7dfc22cf48c

Priyanka Advani   authored and   Gerrit Code Review   commited 2024-05-24 18:11:45 +00:00
cb74c08979
Add blocked reason for internet permission
Currently, even if apps don't have INTERNET permission and can not use
network, network access is considered not blocked and
ConnectivityService send onBlockedStatusChanged callback with
blocked=false.
This CL introduced BLOCKED_REASON_NETWORK_RESTRICTED and consider
network access from apps targetting W+ on V+ releases is blocked if apps
don't have INTERNET permission.
Permission is set when the user is added or package is installed and
permission is removed when the user is removed or packages is
uninstalled.
So ConnectivityService does not need to monitor permission change to
send onBlockedStatusChanged callback by permission change.

Test: CSBlockedReasonsTest
Bug: 339559837

Change-Id: I58d2a4eddc714e205f5b96219f95b637f2826c58

Motomu Utsumi   commited 2024-05-24 13:45:51 +09:00
ee96ba0e60
Merge "Update compat flag to use VERSION_CODES.VANILLA_ICE_CREAM instead of 35" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-05-21 07:19:35 +00:00
216f8adca0
Update compat flag to use VERSION_CODES.VANILLA_ICE_CREAM instead of 35
Bug: 340415875
Test: TH
Change-Id: Idedbb6ca0faeae152da4867d08cea2d2fe6b2632

Motomu Utsumi   commited 2024-05-21 14:42:31 +09:00
175ca03ed0
Implement missing hashCode() method in ApfCapabilities
Bug: 340878976
Test: TH
Change-Id: I3e7721ff328d3086d9fbfb80fd75b3533f75c7c0

Yuyang Huang   commited 2024-05-20 17:08:55 +09:00
6ff9b589fe
Check compat change flag for rate-limit cache
This allows apps built against V but run on older platform
can adopt this feature. This keep compatibility for older
apps which does not built against newest platform.

Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.net.NetworkStatsServiceTest
Fix: 339154075
Change-Id: Ia12997595579190ae0d65ad36ce39d011dde37ce

Junyu Lai   commited 2024-05-20 14:37:09 +08:00
f53e9cf3a1
Update APIs that depends on isUidNetworkingBlocked to follow compat flag
NETWORKINFO_WITHOUT_INTERNET_BLOCKED compat flag only changed the
behavior of getActiveNetworkInfo that depends on
bpfNetMaps#isUidNetworkingBlocked.
But isUidNetworkingBlocked is used from other APIs(e.g. getActiveNetwork)
This CL update all APIs that depends on isUidNetworkingBlocked to follow
the compat flag to make behavior consistent between APIs.

aosp/3079290 will update onBlockedStatusChanged callback to follow this
compat flag.

Bug: 340773991
Bug: 339780435
Test: TH
Change-Id: If64ec800f21c2adc613884838202e2dece4a8d95

Motomu Utsumi   commited 2024-05-16 16:54:17 +09:00
b15be228d2
Disable the NETWORKINFO_WITHOUT_INTERNET_BLOCKED flag in V
Test: manual using AIcore
Change-Id: I08bec890d2fc4980840f1d8deeb62f5de6e5d745

Lorenzo Colitti   commited 2024-05-15 11:10:11 +00:00
90c9703bca
Add compat flag for ActiveNetworkInfo blocked state
Before aosp/3001087, getNetworkActiveInfo did not return network info
with blocked state for apps without PERMISSION_INTERNET even if the
network is actually blocked.
aosp/3001087 updated getNetworkActiveInfo to return correct blocked
state on V+.
However, this broke some apps that use getNetworkActiveInfo in wrong way
and depends on the previous behavior.
So this CL introduces the compat flag to keep previous behavior for apps
targeting U or older releases.

Test: TH
Bug: 333340911
Change-Id: I0e0950f2148de0ffdb45495903a5a87e0d4c1c0b

Motomu Utsumi   commited 2024-05-08 21:08:35 +09:00
0b4be79e52
Add bpf map based getUidNetworkingBlockedReasons
Bug: 328732146
Test: NetworkStackBpfNetMapsTest BpfNetMapsTest
Change-Id: Ie802b3d18463e2b7e8a2b953088cbbcc117a841e

Motomu Utsumi   commited 2024-05-07 18:36:36 +09:00
eb92054f91
Add blocked reason for OEM deny firewall chains
FIREWALL_CHAIN_OEM_DENY_x chains were added by aosp/2114533 but
corresponding blocked reasons were not added.
Upcoming aosp/3027488 updates CS to generate blocked reasons based on
bpf map contents.
Without blocked reasons for oem deny chains, onBlockedStatusChanged
callback will have inconsistency from the actual network blocked status.
This CL adds BLOCKED_REASON_OEM_DENY for FIREWALL_CHAIN_OEM_DENY_x chains

Bug: 328732146
Test: TH
Change-Id: I3793aa0e231d32fea5eb202ed69e170f74d66b02

Motomu Utsumi   commited 2024-05-07 18:31:07 +09:00
9e75aad888
Add @RequiresApi(TIRAMISU) to BpfNetMapsUtils
With this annotation, errorprone build will fail if callers don't check
sdk version before calling any methods in BpfNetMapsUtils.

Bug: 328732146
Test: TH
Change-Id: Ifa52dc1d2766f8d46dfdc4f6ca9dbb963406c084

Motomu Utsumi   commited 2024-04-24 13:16:42 +09:00
2c248d2108
Merge "Add firewall chains for HAPPY_BOX and user/admin PENALTY_BOX" into main
Motomu Utsumi   authored and   Gerrit Code Review   commited 2024-04-24 03:51:09 +00:00
c04493234e
Add firewall chains for HAPPY_BOX and user/admin PENALTY_BOX
Follow up CLs will update CS to generate blocked reason from bpf map
instead of asking NPMS.

However, one issue is NPMS set PENALTY_BOX for
BLOCKED_METERED_REASON_USER_RESTRICTED and
BLOCKED_METERED_REASON_ADMIN_DISABLED without telling the reason.
So, CS can not know the reason of PENALTY_BOX.

This CL add new firewall chain and match to distinguish reasons.
NPMS must call setUidFirewallRule with
FIREWALL_CHAIN_METERED_DENY_USER or FIREWALL_CHAIN_METERED_DENY_ADMIN
based on the reason so that CS can know the reason of restriction.

Bug: 332628891
Test: atest com.android.cts.net.HostsideRestrictBackgroundNetworkTests
Change-Id: Ia4ad4bdb345abc22c782630e828edfad2452db36

Motomu Utsumi   commited 2024-04-23 15:04:28 +09:00
11d3345daa
Reland cronet 121_0_6167_71: remove http_client_logging lib
Revert submission 3031237-revert_v3

Reason for revert: Fixed in aosp/3033496

Reverted changes: /q/submissionid:3031237-revert_v3

Change-Id: Ib811ad68c19825c238a60fe4a2e8e8a73b631ff1

Chidera Olibie   commited 2024-04-15 11:29:55 +00:00
32ec9e0235
Merge "Revert^2 "Revert "Revert "Revert "cronet 121_0_6167_71: remove htt..."" into main
Chidera Olibie   authored and   Gerrit Code Review   commited 2024-04-09 18:24:33 +00:00
a7c3b506d7
Revert^2 "Revert "Revert "Revert "cronet 121_0_6167_71: remove htt..."
This reverts commit 1ba19c9c67.

Reason for revert: broke native coverage b/333108088

Change-Id: I6a6a9ca3a82ceb8109beea66fcc95c8d8e4a0620

Chidera Olibie   authored and   Gerrit Code Review   commited 2024-04-09 14:53:21 +00:00
2a85b5e7da
Merge changes from topic "revert-3005178-revert-3001326-revert-2998737-revert-2980591-cronet_121_0_6167_71-JBOUFGJXPX-ICXECJPUPA-OOMALUYYUV-HXQZEVTNSQ" into main
* changes:
  Revert "Revert "Revert "Revert "cronet 121_0_6167_71: remove htt..."
  Revert "Revert "Revert "Revert "[Cronet] Disable one of setURLSt..."

Chidera Olibie   authored and   Gerrit Code Review   commited 2024-04-03 08:53:08 +00:00
22cc321820
Merge "Do faster bitmask checks on NetworkCapabilities" into main
Shai Barack   authored and   Gerrit Code Review   commited 2024-04-02 18:32:40 +00:00
0634c7c4d2
Revert "Revert "Revert "Revert "cronet 121_0_6167_71: remove htt..."
Revert submission 3005178-revert-3001326-revert-2998737-revert-2980591-cronet_121_0_6167_71-JBOUFGJXPX-ICXECJPUPA-OOMALUYYUV

Reason for revert: aosp/3022283 fixed coverage issue

Reverted changes: /q/submissionid:3005178-revert-3001326-revert-2998737-revert-2980591-cronet_121_0_6167_71-JBOUFGJXPX-ICXECJPUPA-OOMALUYYUV

Change-Id: I1fdfdec2199eaf94766b93401a8e781a8cfec571

Chidera Olibie   commited 2024-04-02 12:07:04 +00:00
1ba19c9c67
Udpate setNetworkSpecifier logic support Satellite Transport
Bug: 326373613
Bug: 329385152 
Test: atest FrameworksNetTests
Change-Id: I8cf686a6d9a1138d26cb37faa73106afd0e24723

Nagendra Prasad Nagarle Basavaraju   commited 2024-04-01 06:20:23 +00:00
d618f954d5
Merge "Separate Struct.java into its own lib." into main
Yang Sun   authored and   Gerrit Code Review   commited 2024-03-28 06:23:57 +00:00
68d68d82ed
Separate Struct.java into its own lib.
* Struct.java is removed from net-utils-device-common-bpf and
  net-utils-device-common-struct's source list
* Created a lib net-utils-device-common-struct-base for Struct.java
* Updated libs that require Struct.java to include
  net-utils-device-common-struct-base.
* Replaced net-utils-multicast-forwarding-structs with
  net-utils-device-common-struct in service-connectivity

Bug: 323503345

Test: build tethering module.
Change-Id: I3f60715c3d8043b7569db7612dee9d4fa1ccba59

Yang Sun   commited 2024-03-27 20:15:17 +08:00
3aa62e6773
Fix isUidNetworkingBlocked for system uids
Update isUidNetworkingBlocked to return false for system uids regardless
of firewall chain status since this is an actual behavior

Bug: 328732146
Test: TH
Change-Id: Ic4760b927f51a1229e9af09c79b5261f85fe89d1

Motomu Utsumi   commited 2024-03-26 19:16:54 +09:00
cb448f5c78
Merge changes from topic "revert-3001326-revert-2998737-revert-2980591-cronet_121_0_6167_71-JBOUFGJXPX-ICXECJPUPA-OOMALUYYUV" into main
* changes:
  Revert "Revert "Revert "[Cronet] Disable one of setURLStreamHand..."
  Revert "Revert "Revert "cronet 121_0_6167_71: remove http_client..."

George Verhaegen   authored and   Gerrit Code Review   commited 2024-03-20 13:39:16 +00:00
4a18c1bc11
Revert "Revert "Revert "cronet 121_0_6167_71: remove http_client..."
Revert submission 3001326-revert-2998737-revert-2980591-cronet_121_0_6167_71-JBOUFGJXPX-ICXECJPUPA

Reason for revert: Build breakage as b/330450460

Reverted changes: /q/submissionid:3001326-revert-2998737-revert-2980591-cronet_121_0_6167_71-JBOUFGJXPX-ICXECJPUPA

Change-Id: I56e53cf907c9d24c90b588e97ef8a101fd5aa19c

Lisa (LeeWei) Liu   authored and   Gerrit Code Review   commited 2024-03-20 08:30:25 +00:00
e450572718
Merge changes from topic "revert-2998737-revert-2980591-cronet_121_0_6167_71-JBOUFGJXPX-ICXECJPUPA" into main
* changes:
  Revert "Revert "cronet 121_0_6167_71: remove http_client_logging..."
  Revert "Revert "[Cronet] Disable one of setURLStreamHandlerFacto..."

Chidera Olibie   authored and   Gerrit Code Review   commited 2024-03-20 04:19:06 +00:00
52dceb80bd
Move isChainEnabled and getUidRule to BpfNetMapsUtils
This CL also adds @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
to NetworkStackBpfNetMaps

Bug: 328732146
Test: TH
Change-Id: Ifa4cffd046164405b8b49d2e2ee9f27240bec6fa

Motomu Utsumi   commited 2024-03-19 04:21:29 +00:00
2f79f58c06