Commit graph

111,840 commits

Message SHA1
Merge "simplify netjniutils" into main
Maciej Żenczykowski   authored and   Android (Google) Code Review   commited 2025-08-04 11:52:15 -07:00
b8a76f540c
Merge "Conditionally set notifyForDescendants for settings observer" into main
Jimi Chen   authored and   Android (Google) Code Review   commited 2025-08-04 01:05:46 -07:00
1ce55f3028
Merge "Add test for ingress to VPN address filtering" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-08-03 19:36:25 -07:00
a26cea6c1e
Merge "make Struct expose a new parse method that takes a raw byte array" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-08-01 19:59:09 -07:00
eb7d854d5f
Merge "Lower tethering IPv6 MTU to 1400 (to match newly clamped RA)" into main
Maciej Żenczykowski   authored and   Android (Google) Code Review   commited 2025-08-01 18:10:56 -07:00
65f78293ed
Merge changes If62b1de1,I159e4e7a,I8a86efdc,I8c055224,Icc938136 into main
* changes:
  NetBpfLoad: introduce ElfObject struct (class)
  NetBpfLoad: move getSymNameByIdx() & getSymOffsetByName() up
  NetBpfLoad: make writeFile() return bool
  NetBpfLoad: simplify createDir()
  NetBpfLoad: make doLoad() and thus main() return diff error codes

Maciej Żenczykowski   authored and   Android (Google) Code Review   commited 2025-08-01 18:10:23 -07:00
fe6ea6bf44
Lower tethering IPv6 MTU to 1400 (to match newly clamped RA)
Bug: 432676104
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I3674036bf28454bc57dcfeead9ff5f2917046939

Maciej Żenczykowski   commited 2025-08-01 16:34:16 -07:00
18fe2434db
simplify netjniutils
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ic1c3207ef3a800f1e5d2da846b1f010f64a0e18f

Maciej Żenczykowski   commited 2025-08-01 16:08:12 -07:00
f14dc8c26f
NetBpfLoad: introduce ElfObject struct (class)
(prep work for improving loader performance)

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If62b1de1020b89a28e06cad45153281e2ffcd6e0

Maciej Żenczykowski   commited 2025-08-01 14:53:31 -07:00
6e910b728d
NetBpfLoad: move getSymNameByIdx() & getSymOffsetByName() up
so that elf object related functions are next to each other

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I159e4e7ad96e3764206546f9f8c69ff156bcf790

Maciej Żenczykowski   commited 2025-08-01 14:53:27 -07:00
ce6cb1dacf
NetBpfLoad: make writeFile() return bool
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8a86efdca9140d6f50ebd7ed507897fda20e952c

Maciej Żenczykowski   commited 2025-08-01 14:53:22 -07:00
f1ac608fb0
NetBpfLoad: simplify createDir()
We go to a lot of trouble to return error codes, but
we never actually care about anything besides pass/fail.

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8c0552246f1050813cca372a280b2302c701d617

Maciej Żenczykowski   commited 2025-08-01 14:53:18 -07:00
164488de05
NetBpfLoad: make doLoad() and thus main() return diff error codes
Sometimes *all* we see is the return code of the binary printed
out by init when we terminate with failure.  Unique codes will
make debugging easier.

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Icc93813674af2855b2d9f378a1accac48b403aa3

Maciej Żenczykowski   commited 2025-08-01 14:53:06 -07:00
49a6fbbe60
Merge "Clamp the advertised IPv6 MTU to 1280-1400" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-08-01 14:05:36 -07:00
53eef4fe97
Clamp the advertised IPv6 MTU to 1280-1400
RaParams is populated with the upstream IPv4 MTU, rather than the IPv6
or route MTU. This change clamps that value between 1280 and 1400. 1280
as it is the minimum IPv6 MTU and 1400 to keep QUIC working. A follow up
change could improve on this by either adding the IPv6 MTU to
LinkProperties, or (possibly better) binding and connecting a UDP socket
to determine the MTU. Note that at that point the MTU in the Tether6Key
should also be fixed.

Test: TH
Flag: EXEMPT low risk
Bug: 432676104
Change-Id: I1d900039caf84c58cd04fdb52bdeaf2d1b846268

Patrick Rohr   commited 2025-08-01 12:48:46 -07:00
bd3d103436
Delete unused cc_library_shared
Test: TH
Flag: EXEMPT mainline
Change-Id: I1409e8edbe1d6b2d55341daf394fc5c7386ed3d6

Patrick Rohr   commited 2025-08-01 11:32:53 -07:00
53e9e75a1a
Merge "Revert "Introduce BLE advertiser wrapper for unit tests."" into main
Chen Wang   authored and   Android (Google) Code Review   commited 2025-08-01 10:54:55 -07:00
672392609b
Conditionally set notifyForDescendants for settings observer
The MultinetworkPolicyTracker now conditionally sets the
`notifyForDescendants` parameter when registering a ContentObserver
for settings URIs.

If `mAvoidBadWifiSource` is `FROM_CARRIER_CONFIG`, `notifyForDescendants`
remains `true`. Otherwise, it is set to `false`. This refinement
aligns observer behavior with the source of the avoid bad Wi-Fi policy.

Flag: EXEMPT mainline
Bug: 435533360
Test: TH
Change-Id: If963d541f168944dd227998f4f4a62c4f203876b

Jimi Chen   commited 2025-08-01 02:10:51 +00:00
e9e1fb3248
NetBpfLoad: inline getSectionType - avoids double loop
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I66d9d786e27d382b14b8744a9ceafb6a791adfd4

Maciej Żenczykowski   commited 2025-07-31 18:17:40 -07:00
c22a0990a6
NetBpfLoad: remove unused readSectionUint()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I88de4f7d17f3eb28c320a3883638633a2a80f93c

Maciej Żenczykowski   commited 2025-07-31 17:52:57 -07:00
a0baa2ea27
NetBpfLoad: pass md to applyMapRelo() - no longer need readMapNames() function
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I13315fce03b8287a32456ffa7b5a102fd41fd28d

Maciej Żenczykowski   commited 2025-07-31 17:47:45 -07:00
2493cf4eb6
NetBpfLoad: loadProgByLibbpf() does not need to readMapNames()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I08d5ed71147e756c0d1455ce3fece92d29f2eae5

Maciej Żenczykowski   commited 2025-07-31 17:20:15 -07:00
d4de391686
NetBpfLoad: make createMaps() take md map array instead of reading it
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I08105db30bf237a98126b4a5cb506298173738bf

Maciej Żenczykowski   commited 2025-07-31 17:20:07 -07:00
e9d0e250cf
NetBpfLoad: prepareLoadMaps() doesn't need mapNames
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0a8f73fc8104dbe1af44395993b634c18fc3b595

Maciej Żenczykowski   commited 2025-07-31 17:19:59 -07:00
3f44c16a15
NetBpfLoad: pinMaps() doesn't need mapNames
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I87414ecd4acbf83af5b20ddb8c0e540e00ee1f59

Maciej Żenczykowski   commited 2025-07-31 17:19:50 -07:00
cc15e7a903
NetBpfLoad: createMaps() no longer needs to call readMapNames()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib2895173722006605547bf9b8aebc368b9540184

Maciej Żenczykowski   commited 2025-07-31 17:19:42 -07:00
0021923e6d
NetBpfLoad: mapMatchesExpectations() doesn't need map name any more
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I5a0f11432dad9f92e123c444cb3b4b5d5b1b0e4a

Maciej Żenczykowski   commited 2025-07-31 17:19:31 -07:00
7ff1b8ee54
NetBpfLoad: replace mapNames[i].c_str() with md[i].name()
Since these are equivalent, search and replace...

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I358220f5db70fcde671ce2560086fc7a220f49c7

Maciej Żenczykowski   commited 2025-07-31 17:19:10 -07:00
dfda509e77
bpf_map_def: introduce map name 'field'
The field is actually just a compile time calculate index into pin_location.
We add a C++ only helper to return the ASCIIZ string at this offset.

Temporary abort() added to show this is equivalent.

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If57390b99f348ab03b277e8f68e7f38636c751fc

Maciej Żenczykowski   commited 2025-07-31 17:17:41 -07:00
b3dba5438d
Revert "Introduce BLE advertiser wrapper for unit tests."
This reverts commit e7a349bec4.

Reason for revert: broke the build in b/435385483.

Low-Coverage-Reason: This change reverted the previous broken change and will not change testing coverage.

Change-Id: Ifcef4eca52f7a952127ad628627afa3d24248bf4

Chen Wang   commited 2025-07-31 14:49:58 -07:00
89cdb62c32
bpf_helpers: enforce no selinux_context on S
it doesn't work due to lack of sepolicy for 'rename' operation

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib660cbef2fc2dd0e3db8b842edefc6ad0c9a3018

Maciej Żenczykowski   commited 2025-07-31 13:01:12 -07:00
bd0588685e
bpf: switch map 'pin_prefix' to 'pin_location'
easy to do for maps now, but harder for programs

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0aedef7a8f28d8cc60ca4912f2666f920b9dbeb5

Maciej Żenczykowski   commited 2025-07-31 12:31:56 -07:00
47e2ba05ed
bpf_map_def: rename BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE to BPF_DEF_CHAR_ARRAY_SIZE
as the name is no longer really appropriate and I want to add another use...

Generated via:
  sed -i 's@BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE@BPF_DEF_CHAR_ARRAY_SIZE@' bpf/progs/include/bpf_map_def.h

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I972f8cababe79070aa62f728733c56f41e7a7a84

Maciej Żenczykowski   commited 2025-07-31 12:17:01 -07:00
22f21a5496
NetBpfLoad: remove spurious pathToObjName()
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I7fb1ea3fcaed51c4702be18b0af636acfd315d9c

Maciej Żenczykowski   commited 2025-07-31 11:53:04 -07:00
3330faf62f
bpf: switch prog 'pin_subdir' to 'pin_prefix'
which simplifies NetBpfLoad logic

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I610aa8374fe3c56262f76fe52edf8386c1a3ee12

Maciej Żenczykowski   commited 2025-07-31 11:42:10 -07:00
ae1a9ff2fa
bpf: switch map 'pin_subdir' to 'pin_prefix'
which simplifies NetBpfLoad logic

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I3600cf45ae14a20801b5beca0aa9e79bb3052c57

Maciej Żenczykowski   commited 2025-07-31 11:39:38 -07:00
667dfa97e6
Merge "Add logging for onPermissionsChanged latency." into main
Hao Liu   authored and   Android (Google) Code Review   commited 2025-07-31 06:47:43 -07:00
85415edca0
Merge "bpf: embed 'create_location' instead of 'selinux_context' in .o files" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 21:30:42 -07:00
9f6ff9f8e3
Merge changes I33a8015b,I5b18727e,I0bcf5a2e,I62015d27 into main
* changes:
  bpf: remove / from DEFAULT_BPF_PIN_SUBDIR
  NetBpfLoad: remove validatePinDir()
  bpf_helpers: build time validate selinux_context & pin_subdir
  bpf_map_def: increase BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE from 32 to 66

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 21:07:09 -07:00
d02a386867
Add logging for onPermissionsChanged latency.
Flag: com.android.tethering.mainline.beta.lnp_developer_opt_in
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.PermissionMonitorTest
Bug: 424558169

Change-Id: Ifb621149130212a2903a7c31eebd4126e7d9924a

Hao Liu   commited 2025-07-31 03:02:08 +00:00
55614983a6
Merge "Fix UnfinishedStubbingException when running testAutomotiveEthernetAllowedUids" into main
Paul Hu   authored and   Android (Google) Code Review   commited 2025-07-30 19:11:15 -07:00
1d1307e385
bpf: embed 'create_location' instead of 'selinux_context' in .o files
Basically we can verify and precalculate this at build time.

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ie4e336c6dc82a0e93a3e62c88c313a32cb245861

Maciej Żenczykowski   commited 2025-07-30 15:27:49 -07:00
0864153ddd
bpf: remove / from DEFAULT_BPF_PIN_SUBDIR
as it looks akward, and makes little sense once we fully generate
the path at compile time...

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I33a8015b787b41225ef8475accb68cea4467b21d

Maciej Żenczykowski   commited 2025-07-30 15:07:54 -07:00
22ba1e91fc
NetBpfLoad: remove validatePinDir()
No longer required now that we have compile time verification.

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I5b18727e8ebf820a06ba647bb7349ba755d5d798

Maciej Żenczykowski   commited 2025-07-30 15:02:07 -07:00
ed945905de
bpf_helpers: build time validate selinux_context & pin_subdir
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0bcf5a2e3a353bbecd20323bf4d9280a88ec2502

Maciej Żenczykowski   commited 2025-07-30 15:02:01 -07:00
47ac522d49
bpf_map_def: increase BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE from 32 to 66
will allow us to store full pin location, longest we currently have is 64 + NULL:
  $ adb shell find /sys/fs/bpf | egrep net | egrep '.{64}'
  /sys/fs/bpf/netd_shared/prog_netd_cgroupsockrelease_inet_release
  $ adb shell find /sys/fs/bpf | egrep net | egrep '.{65}'
  <nothing>

Choose small value so we don't needlessly bloat the .o's.
This can be trivially increased on demand.

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I62015d2703fdee004fb7279d8f9ca83f7462a4df

Maciej Żenczykowski   commited 2025-07-30 12:49:04 -07:00
5765db482c
bpf: define BPF_OBJ_NAME
(prep work to eliminate a ton of NetBpfLoad complexity
 wrt. map/program pin naming)

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I9a3c452830b31593bfa1979193d6e823055faa1e

Maciej Żenczykowski   commited 2025-07-30 11:14:51 -07:00
5a3a497490
NetBpfLoad: inline trivial readProgDefs()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I677d87fd4535740ced99cdc75f9ff9810bae68e6

Maciej Żenczykowski   commited 2025-07-30 10:56:17 -07:00
ac40f52e27
Merge "bpf_helper: fix map assert" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 03:24:27 -07:00
ff844aa2af
Merge "bpf: make it a compile-time error if BPFLOADER_MIN_VER isn't defined" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 03:11:40 -07:00
dc4829de38