1// Copyright (C) 2019 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// 1. The "net-utils-framework-common" library is also compiled into the framework and placed on the 16// boot classpath. It uses jarjar rules so that anything outside the framework can use this 17// library directly. 18// 2. The "net-utils-services-common" library is for use by modules and frameworks/base/services. 19// It does not need to be jarjared because it is not placed on the bootclasspath. 20// 3. The "net-utils-telephony-common-srcs" filegroup is for use specifically by telephony, which 21// places many of its classes, even non-API service classes, on the boot classpath. Any file that 22// is added to this filegroup *must* have a corresponding jarjar rule in the telephony jarjar 23// rules file. Otherwise, it will end up on the boot classpath and other modules will not be able 24// to provide their own copy. 25 26// Note: all filegroups here must have the right path attribute because otherwise, if they are 27// included in the bootclasspath, they could incorrectly be included in the SDK documentation even 28// though they are not in the current.txt files. 29 30package { 31 default_team: "trendy_team_fwk_core_networking", 32 default_applicable_licenses: ["Android-Apache-2.0"], 33} 34 35// This library shouldn't be used anymore (no class should be added), and per-user libraries like 36// net-utils-service-connectivity or net-utils-framework-wifi should be used instead. 37java_library { 38 name: "net-utils-device-common", 39 srcs: [ 40 "device/com/android/net/module/util/arp/ArpPacket.java", 41 "device/com/android/net/module/util/DeviceConfigUtils.java", 42 "device/com/android/net/module/util/DomainUtils.java", 43 "device/com/android/net/module/util/FdEventsReader.java", 44 "device/com/android/net/module/util/FeatureVersions.java", 45 "device/com/android/net/module/util/HandlerUtils.java", 46 "device/com/android/net/module/util/NetworkMonitorUtils.java", 47 "device/com/android/net/module/util/PacketReader.java", 48 "device/com/android/net/module/util/SharedLog.java", 49 "device/com/android/net/module/util/SocketUtils.java", 50 "device/com/android/net/module/util/SyncStateMachine.java", 51 // This library is used by system modules, for which the system health impact of Kotlin 52 // has not yet been evaluated. Annotations may need jarjar'ing. 53 // "src_devicecommon/**/*.kt", 54 ], 55 sdk_version: "module_current", 56 min_sdk_version: "30", 57 target_sdk_version: "30", 58 apex_available: [ 59 "//apex_available:anyapex", 60 "//apex_available:platform", 61 ], 62 visibility: [ 63 "//packages/modules/Connectivity:__subpackages__", 64 "//packages/modules/Connectivity/framework:__subpackages__", 65 "//packages/modules/NetworkStack:__subpackages__", 66 "//packages/modules/CaptivePortalLogin", 67 ], 68 static_libs: [ 69 "modules-utils-statemachine", 70 "net-utils-framework-common", 71 ], 72 libs: [ 73 "androidx.annotation_annotation", 74 "framework-annotations-lib", 75 "framework-configinfrastructure.stubs.module_lib", 76 "framework-connectivity.stubs.module_lib", 77 ], 78 lint: { 79 strict_updatability_linting: true, 80 error_checks: ["NewApi"], 81 }, 82} 83 84java_defaults { 85 name: "lib_mockito_extended", 86 static_libs: [ 87 "mockito-target-extended-minus-junit4", 88 ], 89 jni_libs: [ 90 "libdexmakerjvmtiagent", 91 "libstaticjvmtiagent", 92 ], 93} 94 95java_library { 96 name: "net-utils-dnspacket-common", 97 srcs: [ 98 "framework/**/DnsPacket.java", 99 "framework/**/DnsPacketUtils.java", 100 "framework/**/DnsSvcbPacket.java", 101 "framework/**/DnsSvcbRecord.java", 102 "framework/**/HexDump.java", 103 "framework/**/NetworkStackConstants.java", 104 ], 105 sdk_version: "module_current", 106 visibility: [ 107 "//packages/services/Iwlan:__subpackages__", 108 ], 109 libs: [ 110 "androidx.annotation_annotation", 111 "framework-annotations-lib", 112 "framework-connectivity.stubs.module_lib", 113 ], 114} 115 116filegroup { 117 name: "net-utils-framework-common-srcs", 118 srcs: ["framework/**/*.java"], 119 path: "framework", 120 visibility: [ 121 "//frameworks/base", 122 "//packages/modules/Connectivity:__subpackages__", 123 ], 124} 125 126// The net-utils-device-common-bpf library requires the callers to contain 127// net-utils-device-common-struct-base. 128java_library { 129 name: "net-utils-device-common-bpf", 130 srcs: [ 131 "device/com/android/net/module/util/BpfBitmap.java", 132 "device/com/android/net/module/util/BpfDump.java", 133 "device/com/android/net/module/util/BpfMap.java", 134 "device/com/android/net/module/util/BpfUtils.java", 135 "device/com/android/net/module/util/IBpfMap.java", 136 "device/com/android/net/module/util/JniUtil.java", 137 "device/com/android/net/module/util/SingleWriterBpfMap.java", 138 "device/com/android/net/module/util/TcUtils.java", 139 ], 140 sdk_version: "module_current", 141 min_sdk_version: "30", 142 visibility: [ 143 "//packages/modules/Connectivity:__subpackages__", 144 "//packages/modules/NetworkStack:__subpackages__", 145 ], 146 libs: [ 147 "androidx.annotation_annotation", 148 "framework-connectivity.stubs.module_lib", 149 "net-utils-device-common-struct-base", 150 ], 151 apex_available: [ 152 "com.android.tethering", 153 "//apex_available:platform", 154 ], 155 lint: { 156 strict_updatability_linting: true, 157 error_checks: ["NewApi"], 158 }, 159} 160 161java_library { 162 name: "net-utils-device-common-struct-base", 163 srcs: [ 164 "device/com/android/net/module/util/Struct.java", 165 ], 166 sdk_version: "module_current", 167 min_sdk_version: "30", 168 visibility: [ 169 "//packages/modules/Connectivity:__subpackages__", 170 "//packages/modules/NetworkStack:__subpackages__", 171 ], 172 static_libs: [ 173 "net-utils-framework-common", 174 ], 175 libs: [ 176 "androidx.annotation_annotation", 177 "framework-annotations-lib", // Required by InetAddressUtils.java 178 "framework-connectivity.stubs.module_lib", 179 ], 180 apex_available: [ 181 "com.android.tethering", 182 "//apex_available:platform", 183 ], 184 lint: { 185 strict_updatability_linting: true, 186 error_checks: ["NewApi"], 187 }, 188} 189 190// The net-utils-device-common-struct library requires the callers to contain 191// net-utils-device-common-struct-base. 192java_library { 193 name: "net-utils-device-common-struct", 194 srcs: [ 195 "device/com/android/net/module/util/Ipv6Utils.java", 196 "device/com/android/net/module/util/PacketBuilder.java", 197 "device/com/android/net/module/util/structs/*.java", 198 ], 199 sdk_version: "module_current", 200 min_sdk_version: "30", 201 visibility: [ 202 "//packages/modules/Connectivity:__subpackages__", 203 "//packages/modules/NetworkStack:__subpackages__", 204 ], 205 libs: [ 206 "androidx.annotation_annotation", 207 "framework-annotations-lib", // Required by IpUtils.java 208 "framework-connectivity.stubs.module_lib", 209 "net-utils-device-common-struct-base", 210 ], 211 apex_available: [ 212 "com.android.tethering", 213 "//apex_available:platform", 214 ], 215 lint: { 216 strict_updatability_linting: true, 217 error_checks: ["NewApi"], 218 }, 219} 220 221// The net-utils-device-common-netlink library requires the callers to contain 222// net-utils-device-common-struct and net-utils-device-common-struct-base. 223java_library { 224 name: "net-utils-device-common-netlink", 225 srcs: [ 226 "device/com/android/net/module/util/netlink/**/*.java", 227 ], 228 sdk_version: "module_current", 229 min_sdk_version: "30", 230 visibility: [ 231 "//packages/modules/Connectivity:__subpackages__", 232 "//packages/modules/NetworkStack:__subpackages__", 233 ], 234 libs: [ 235 "androidx.annotation_annotation", 236 "framework-connectivity.stubs.module_lib", 237 // For libraries which are statically linked in framework-connectivity, do not 238 // statically link here because callers of this library might already have a static 239 // version linked. 240 "net-utils-device-common-struct", 241 "net-utils-device-common-struct-base", 242 ], 243 apex_available: [ 244 "com.android.tethering", 245 "//apex_available:platform", 246 ], 247 lint: { 248 strict_updatability_linting: true, 249 error_checks: ["NewApi"], 250 }, 251} 252 253// The net-utils-device-common-ip library requires the callers to contain 254// net-utils-device-common-struct and net-utils-device-common-struct-base. 255java_library { 256 // TODO : this target should probably be folded into net-utils-device-common 257 name: "net-utils-device-common-ip", 258 srcs: [ 259 "device/com/android/net/module/util/ip/*.java", 260 ], 261 sdk_version: "module_current", 262 min_sdk_version: "30", 263 visibility: [ 264 "//packages/modules/Connectivity:__subpackages__", 265 "//packages/modules/NetworkStack:__subpackages__", 266 ], 267 libs: [ 268 "framework-annotations-lib", 269 "framework-connectivity.stubs.module_lib", 270 ], 271 static_libs: [ 272 "net-utils-device-common", 273 "net-utils-device-common-netlink", 274 "net-utils-framework-common", 275 "netd-client", 276 ], 277 apex_available: [ 278 "com.android.tethering", 279 "//apex_available:platform", 280 ], 281 lint: { 282 strict_updatability_linting: true, 283 error_checks: ["NewApi"], 284 }, 285} 286 287java_library { 288 name: "net-utils-framework-common", 289 srcs: [ 290 ":net-utils-framework-common-srcs", 291 ], 292 sdk_version: "module_current", 293 min_sdk_version: "30", 294 libs: [ 295 "androidx.annotation_annotation", 296 "framework-annotations-lib", 297 "framework-connectivity.stubs.module_lib", 298 "framework-connectivity-t.stubs.module_lib", 299 "framework-location.stubs.module_lib", 300 ], 301 jarjar_rules: "jarjar-rules-shared.txt", 302 visibility: [ 303 "//cts/tests/tests/net", 304 "//cts/tests/tests/wifi", 305 "//packages/modules/Connectivity/tests/cts/net", 306 "//packages/modules/Connectivity/Tethering", 307 "//frameworks/base/tests:__subpackages__", 308 "//frameworks/opt/net/ike", 309 "//frameworks/opt/telephony", 310 "//frameworks/base/wifi:__subpackages__", 311 "//packages/modules/Connectivity:__subpackages__", 312 "//packages/modules/NetworkStack:__subpackages__", 313 "//packages/modules/CaptivePortalLogin", 314 "//packages/modules/Wifi/framework/tests:__subpackages__", 315 "//packages/apps/Settings", 316 ], 317 lint: { 318 strict_updatability_linting: true, 319 error_checks: ["NewApi"], 320 }, 321 errorprone: { 322 enabled: true, 323 // Error-prone checking only warns of problems when building. To make the build fail with 324 // these errors, list the specific error-prone problems below. 325 javacflags: [ 326 "-Xep:NullablePrimitive:ERROR", 327 ], 328 }, 329 apex_available: [ 330 "//apex_available:platform", 331 "com.android.tethering", 332 ], 333} 334 335java_library { 336 name: "net-utils-services-common", 337 srcs: [ 338 "device/android/net/NetworkFactory.java", 339 "device/android/net/NetworkFactoryImpl.java", 340 "device/android/net/NetworkFactoryLegacyImpl.java", 341 "device/android/net/NetworkFactoryShim.java", 342 ], 343 sdk_version: "module_current", 344 min_sdk_version: "30", 345 libs: [ 346 "framework-annotations-lib", 347 "framework-connectivity.stubs.module_lib", 348 "modules-utils-build_system", 349 ], 350 // TODO: remove "apex_available:platform". 351 apex_available: [ 352 "//apex_available:platform", 353 "com.android.btservices", 354 "com.android.tethering", 355 "com.android.wifi", 356 ], 357 visibility: [ 358 // TODO: remove after NetworkStatsService moves to the module. 359 "//frameworks/base/services/net", 360 "//packages/modules/Connectivity/service", 361 "//packages/modules/Connectivity/tests:__subpackages__", 362 "//packages/modules/Bluetooth/android/app", 363 "//packages/modules/Wifi/service:__subpackages__", 364 ], 365 lint: { 366 strict_updatability_linting: true, 367 error_checks: ["NewApi"], 368 }, 369} 370 371java_library { 372 name: "net-utils-device-common-async", 373 srcs: [ 374 "device/com/android/net/module/util/async/*.java", 375 ], 376 sdk_version: "module_current", 377 min_sdk_version: "30", 378 visibility: [ 379 "//packages/modules/Connectivity:__subpackages__", 380 ], 381 libs: [ 382 "framework-annotations-lib", 383 ], 384 static_libs: [ 385 ], 386 apex_available: [ 387 "com.android.tethering", 388 "//apex_available:platform", 389 ], 390 lint: { 391 strict_updatability_linting: true, 392 error_checks: ["NewApi"], 393 }, 394} 395 396java_library { 397 name: "net-utils-device-common-wear", 398 srcs: [ 399 "device/com/android/net/module/util/wear/*.java", 400 ], 401 sdk_version: "module_current", 402 min_sdk_version: "30", 403 visibility: [ 404 "//packages/modules/Connectivity:__subpackages__", 405 ], 406 libs: [ 407 "framework-annotations-lib", 408 ], 409 static_libs: [ 410 "net-utils-device-common-async", 411 ], 412 apex_available: [ 413 "com.android.tethering", 414 "//apex_available:platform", 415 ], 416 lint: { 417 strict_updatability_linting: true, 418 error_checks: ["NewApi"], 419 }, 420} 421 422// Limited set of utilities for use by service-connectivity-mdns-standalone-build-test, to make sure 423// the mDNS code can build with only system APIs. 424// The mDNS code is platform code so it should use framework-annotations-lib, contrary to apps that 425// should use sdk_version: "system_current" and only androidx.annotation_annotation. But this build 426// rule verifies that the mDNS code can be built into apps, if code transformations are applied to 427// the annotations. 428// When using "system_current", framework annotations are not available; they would appear as 429// package-private as they are marked as such in the system_current stubs. So build against 430// core_platform and add the stubs manually in "libs". See http://b/147773144#comment7. 431java_library { 432 name: "net-utils-device-common-mdns-standalone-build-test", 433 // Build against core_platform and add the stub libraries manually in "libs", as annotations 434 // are already included in android_system_stubs_current but package-private, so 435 // "framework-annotations-lib" needs to be manually included before 436 // "android_system_stubs_current" (b/272392042) 437 sdk_version: "core_platform", 438 srcs: [ 439 "device/com/android/net/module/util/FdEventsReader.java", 440 "device/com/android/net/module/util/HandlerUtils.java", 441 "device/com/android/net/module/util/SharedLog.java", 442 "framework/com/android/net/module/util/ByteUtils.java", 443 "framework/com/android/net/module/util/CollectionUtils.java", 444 "framework/com/android/net/module/util/DnsUtils.java", 445 "framework/com/android/net/module/util/HexDump.java", 446 "framework/com/android/net/module/util/LinkPropertiesUtils.java", 447 ], 448 libs: [ 449 "framework-annotations-lib", 450 "android_system_stubs_current", 451 "androidx.annotation_annotation", 452 ], 453 visibility: ["//packages/modules/Connectivity/service-t"], 454} 455 456// net-utils-framework-connectivity is only for framework-connectivity. 457java_library { 458 name: "net-utils-framework-connectivity", 459 srcs: [ 460 ":net-utils-framework-connectivity-srcs", 461 ], 462 sdk_version: "module_current", 463 min_sdk_version: "30", 464 apex_available: [ 465 "com.android.tethering", 466 "//apex_available:platform", 467 ], 468 visibility: [ 469 "//packages/modules/Connectivity/framework", 470 ], 471 libs: [ 472 "androidx.annotation_annotation", 473 "framework-annotations-lib", 474 "framework-configinfrastructure.stubs.module_lib", 475 "framework-connectivity.stubs.module_lib", 476 ], 477 lint: { 478 strict_updatability_linting: true, 479 error_checks: ["NewApi"], 480 }, 481} 482 483java_defaults { 484 name: "net-utils-non-bootclasspath-defaults", 485 sdk_version: "module_current", 486 min_sdk_version: "30", 487 libs: [ 488 "androidx.annotation_annotation", 489 "framework-annotations-lib", 490 "framework-configinfrastructure.stubs.module_lib", 491 "framework-connectivity.stubs.module_lib", 492 "framework-connectivity-t.stubs.module_lib", 493 "framework-location.stubs.module_lib", 494 "framework-tethering.stubs.module_lib", 495 "unsupportedappusage", 496 ], 497 static_libs: [ 498 "modules-utils-build_system", 499 "modules-utils-statemachine", 500 "net-utils-non-bootclasspath-aidl-java", 501 "netd-client", 502 ], 503 apex_available: [ 504 "com.android.tethering", 505 "//apex_available:platform", 506 ], 507 defaults_visibility: [ 508 "//visibility:private", 509 ], 510 lint: { 511 strict_updatability_linting: true, 512 error_checks: ["NewApi"], 513 }, 514} 515 516// net-utils-service-connectivity is only for service-connectivity. 517java_library { 518 name: "net-utils-service-connectivity", 519 srcs: [ 520 ":net-utils-all-srcs", 521 ], 522 exclude_srcs: [ 523 ":net-utils-framework-connectivity-srcs", 524 ], 525 libs: [ 526 "net-utils-framework-connectivity", 527 "framework-connectivity.impl", 528 "framework-tethering.impl", 529 ], 530 defaults: ["net-utils-non-bootclasspath-defaults"], 531 jarjar_rules: "jarjar-rules-shared.txt", 532 visibility: [ 533 "//packages/modules/Connectivity/service", 534 "//packages/modules/Connectivity/staticlibs/tests/unit", 535 ], 536} 537 538// net-utils-connectivity-apks is only for NetworkStack, CaptivePortalLogin and 539// Tethering.apk 540// It includes all the static libraries in this directory, which is safe because 541// these APKs use R8 to strip out unused code, and they do not depend on 542// bootclasspath jars that may have duplicate copies of the included classes 543// with the same jarjaring. 544// Tethering.apk does depend on a bootclasspath jar (framework-tethering.jar), 545// however it does not use any of the static libraries. If it did, Tethering.apk 546// would need to use another variant that excludes classes that are already 547// included in framework-tethering.jar (similarly to how framework-connectivity 548// and service-connectivity do it). Otherwise, static libs included in 549// framework-tethering and Tethering.apk and jarjared the same way would 550// conflict. 551java_library { 552 name: "net-utils-connectivity-apks", 553 srcs: [ 554 ":net-utils-all-srcs", 555 ":framework-connectivity-shared-srcs", 556 ], 557 defaults: ["net-utils-non-bootclasspath-defaults"], 558 jarjar_rules: "jarjar-rules-shared.txt", 559 visibility: [ 560 "//packages/modules/CaptivePortalLogin:__subpackages__", 561 "//packages/modules/Connectivity/Tethering", 562 ], 563} 564 565aidl_interface { 566 name: "net-utils-non-bootclasspath-aidl", 567 srcs: [ 568 ":net-utils-aidl-srcs", 569 ], 570 unstable: true, 571 backend: { 572 java: { 573 enabled: true, 574 min_sdk_version: "30", 575 apex_available: [ 576 "com.android.tethering", 577 "com.android.wifi", 578 "//apex_available:platform", 579 ], 580 }, 581 cpp: { 582 enabled: false, 583 }, 584 ndk: { 585 enabled: false, 586 }, 587 rust: { 588 enabled: false, 589 }, 590 }, 591 include_dirs: [ 592 "packages/modules/Connectivity/framework/aidl-export", 593 ], 594 visibility: [ 595 "//system/tools/aidl/build", 596 ], 597} 598 599// Use a filegroup and not a library for telephony sources, as framework-annotations cannot be 600// included either (some annotations would be duplicated on the bootclasspath). 601filegroup { 602 name: "net-utils-telephony-common-srcs", 603 srcs: [ 604 // Any class here *must* have a corresponding jarjar rule in the telephony build rules. 605 "device/android/net/NetworkFactory.java", 606 "device/android/net/NetworkFactoryImpl.java", 607 "device/android/net/NetworkFactoryLegacyImpl.java", 608 "device/android/net/NetworkFactoryShim.java", 609 ], 610 path: "device", 611 visibility: [ 612 "//frameworks/opt/telephony", 613 ], 614} 615 616// Filegroup to build lib used by Wifi framework 617// Any class here *must* have a corresponding jarjar rule in the wifi build rules. 618filegroup { 619 name: "net-utils-framework-wifi-common-srcs", 620 srcs: [ 621 "framework/com/android/net/module/util/DnsSdTxtRecord.java", 622 "framework/com/android/net/module/util/Inet4AddressUtils.java", 623 "framework/com/android/net/module/util/InetAddressUtils.java", 624 "framework/com/android/net/module/util/MacAddressUtils.java", 625 "framework/com/android/net/module/util/NetUtils.java", 626 ], 627 path: "framework", 628 visibility: ["//visibility:private"], 629} 630 631// Filegroup to build lib used by IPsec/IKE framework 632// Any class here *must* have a corresponding jarjar rule in the IPsec build rules. 633filegroup { 634 name: "net-utils-framework-ipsec-common-srcs", 635 srcs: [ 636 "framework/com/android/net/module/util/HexDump.java", 637 ], 638 path: "framework", 639 visibility: ["//visibility:private"], 640} 641 642java_library { 643 name: "net-utils-framework-ipsec", 644 sdk_version: "module_current", 645 min_sdk_version: "30", 646 srcs: [":net-utils-framework-ipsec-common-srcs"], 647 libs: [ 648 "androidx.annotation_annotation", 649 ], 650 visibility: [ 651 "//packages/modules/IPsec", 652 ], 653 apex_available: ["com.android.ipsec"], 654} 655 656// Use a file group containing classes necessary for framework-connectivity. The file group should 657// be as small as possible because because the classes end up in the bootclasspath and R8 is not 658// used to remove unused classes. 659filegroup { 660 name: "net-utils-framework-connectivity-srcs", 661 srcs: [ 662 "device/com/android/net/module/util/BpfBitmap.java", 663 "device/com/android/net/module/util/BpfDump.java", 664 "device/com/android/net/module/util/BpfMap.java", 665 "device/com/android/net/module/util/BpfUtils.java", 666 "device/com/android/net/module/util/IBpfMap.java", 667 "device/com/android/net/module/util/JniUtil.java", 668 "device/com/android/net/module/util/SingleWriterBpfMap.java", 669 "device/com/android/net/module/util/Struct.java", 670 "device/com/android/net/module/util/TcUtils.java", 671 "framework/com/android/net/module/util/HexDump.java", 672 ], 673 visibility: ["//visibility:private"], 674} 675 676// Sources outside of com.android.net.module.util should not be added because many modules depend on 677// them and need jarjar rules 678filegroup { 679 name: "net-utils-all-srcs", 680 srcs: [ 681 "device/**/*.java", 682 ":net-utils-framework-common-srcs", 683 ], 684 visibility: ["//visibility:private"], 685} 686 687filegroup { 688 name: "net-utils-aidl-srcs", 689 srcs: [ 690 "device/**/*.aidl", 691 ], 692 path: "device", 693 visibility: ["//visibility:private"], 694} 695 696java_library { 697 name: "net-utils-service-wifi", 698 srcs: [ 699 ":net-utils-all-srcs", 700 ], 701 exclude_srcs: [":net-utils-framework-wifi-common-srcs"], 702 libs: [ 703 "net-utils-framework-wifi", 704 ], 705 defaults: ["net-utils-non-bootclasspath-defaults"], 706 707 visibility: [ 708 "//packages/modules/Wifi/service", 709 ], 710 apex_available: [ 711 "com.android.wifi", 712 ], 713} 714 715java_library { 716 name: "net-utils-framework-wifi", 717 sdk_version: "module_current", 718 min_sdk_version: "30", 719 srcs: [":net-utils-framework-wifi-common-srcs"], 720 libs: [ 721 "framework-annotations-lib", 722 "framework-connectivity.stubs.module_lib", 723 "unsupportedappusage", 724 ], 725 visibility: [ 726 "//packages/modules/Wifi/framework", 727 ], 728 apex_available: ["com.android.wifi"], 729} 730 731genrule { 732 name: "statslog-framework-connectivity-java-gen", 733 tools: ["stats-log-api-gen"], 734 cmd: "$(location stats-log-api-gen) --java $(out) --module connectivity --javaPackage com.android.net.module.util --javaClass FrameworkConnectivityStatsLog", 735 out: ["com/android/net/module/util/FrameworkConnectivityStatsLog.java"], 736} 737 738java_library { 739 name: "net-utils-service-vcn", 740 sdk_version: "module_current", 741 min_sdk_version: "30", 742 srcs: [ 743 "device/com/android/net/module/util/HandlerUtils.java", 744 ], 745 libs: [ 746 "framework-annotations-lib", 747 ], 748 visibility: [ 749 // TODO: b/374174952 Remove it when VCN modularization is released 750 "//frameworks/base/packages/Vcn/service-b", 751 752 "//packages/modules/Connectivity/service-b", 753 ], 754 apex_available: [ 755 // TODO: b/374174952 Remove it when VCN modularization is released 756 "//apex_available:platform", 757 758 "com.android.tethering", 759 ], 760} 761