Commit Graph

8090 Commits

Author SHA1 Message Date
markchien
d2751e09d2 Expose netId to SystemApi
Tethering will be build as unblundled APP. It can't use @hide
API anymore. Expose netId for tethering because it need to set
proxy dns server with netId.

Bug: 144758139
Test: build
Change-Id: Ifefa791940874617bb479f5c23488d14be87f45e
2019-12-04 14:33:51 +08:00
Paul Hu
e43ab9369b Merge "Replace the permission of internal connectivity checks"
am: 032c3c3e30

Change-Id: I5bb6a6074a2ac08f04147d415fb1d2bfbd411850
2019-12-03 22:04:50 -08:00
Paul Hu
032c3c3e30 Merge "Replace the permission of internal connectivity checks" 2019-12-04 05:59:59 +00:00
Paul Hu
f9ed2de1dd Merge "Replace the permission of internal connectivity checks" 2019-12-04 05:52:01 +00:00
paulhu
e031948c1a Replace the permission of internal connectivity checks
A number of connectivity checks that protect system-only methods
check for CONNECTIVITY_INTERNAL, but CONNECTIVITY_INTERNAL is a
signature|privileged permission. We should audit the permission
checks, and convert checks that protect code that should not be
called outside the system to a signature permission. So replace
all CONNECTIVITY_INTERNAL to other proper permissions.

Bug: 32963470
Test: atest FrameworksNetTests NetworkPolicyManagerServiceTest
Change-Id: I8f2dd1cd0609056494eaf612d39820e273ae093f
2019-12-04 11:45:51 +08:00
paulhu
8e96a75543 Replace the permission of internal connectivity checks
A number of connectivity checks that protect system-only methods
check for CONNECTIVITY_INTERNAL, but CONNECTIVITY_INTERNAL is a
signature|privileged permission. We should audit the permission
checks, and convert checks that protect code that should not be
called outside the system to a signature permission. So replace
all CONNECTIVITY_INTERNAL to other proper permissions.

Bug: 32963470
Test: atest FrameworksNetTests NetworkPolicyManagerServiceTest
Change-Id: I8f2dd1cd0609056494eaf612d39820e273ae093f
Merged-In: I8f2dd1cd0609056494eaf612d39820e273ae093f
2019-12-04 11:44:45 +08:00
Chalard Jean
0c0bf65507 Merge changes Ie756b9aa,I38110f3a
am: e38a525a05

Change-Id: I69e6c9234f0a983a56ee19d4d4dfe97618dc8f56
2019-12-03 18:18:53 -08:00
Treehugger Robot
e38a525a05 Merge changes Ie756b9aa,I38110f3a
* changes:
  [NS A19] Inline updateCapabilities in rematch.
  [NS A18] Reverse listens and request-availables
2019-12-04 02:07:45 +00:00
Xin Li
40e8826773 Merge "Merge Android10 QPR1 into AOSP master"
am: 20a8c06313

Change-Id: I3b2912dffdd5be501077c9983bb922ee7a3767d1
2019-12-03 16:09:13 -08:00
Treehugger Robot
20a8c06313 Merge "Merge Android10 QPR1 into AOSP master" 2019-12-03 23:15:02 +00:00
Automerger Merge Worker
9029839020 Merge "Disable a flaky test" am: 932dda858a am: c8ce461f68
Change-Id: Ia3596b558fb09600e7d9a16f0dce03d4402ee653
2019-12-03 16:51:32 +00:00
Chalard Jean
c8ce461f68 Merge "Disable a flaky test" am: 932dda858a
am: 54546f8429

Change-Id: Ie1fccb536e6df45491139ead179e8f5c2127d98f
2019-12-03 08:38:00 -08:00
Chalard Jean
54546f8429 Merge "Disable a flaky test"
am: 932dda858a

Change-Id: I8a6fc40976c6ab234cabd4af37dc4a530e2b47a1
2019-12-03 08:30:03 -08:00
Chalard Jean
54ef9299c7 Disable a flaky test
Bug: 145513323
Test: FrameworkNetTests
Change-Id: I66e02fdaab2969b77db4a0f0e6fb8b1a981d9350
2019-12-03 16:13:22 +09:00
Xin Li
4b20d94557 Merge Android10 QPR1 into AOSP master
Bug: 145570283
Change-Id: I557701733b49b0f231c89165239ba07c0fa288d2
2019-12-02 21:25:07 -08:00
Aaron Huang
8d6ae5d59f Add LinkProperties methods to system APIs
The exposed methods are used by telephony, wifi
and tethering. For mainline support, making the
methods @SystemApi.

Bug: 139268426
Bug: 135998869
Bug: 138306002
Test: atest FrameworksNetTests
      atest NetworkStackTests
      atest FrameworksTelephonyTests
      ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh
      atest android.net.cts
      atest android.net.wifi.cts
      atest android.telephony.cts

Change-Id: Ib16a838cf9f748e1c5b045d6c2f17678f16af28c
2019-12-02 19:29:18 +08:00
Chalard Jean
6bef9a37a1 Merge changes I720a1feb,I9539b8cc,Ib79b777b am: adb58138bd am: f3402da572
am: e78a4b9168

Change-Id: I6bfd8dc565cb4b835f65c3e144848bd6099272c7
2019-12-02 01:59:20 -08:00
Chalard Jean
e78a4b9168 Merge changes I720a1feb,I9539b8cc,Ib79b777b am: adb58138bd
am: f3402da572

Change-Id: I66a58f6f54a4d423ad603a2b642e6510c29bc07a
2019-12-02 01:55:20 -08:00
Chalard Jean
f3402da572 Merge changes I720a1feb,I9539b8cc,Ib79b777b
am: adb58138bd

Change-Id: Ieaa1371f6e52074b76e3353ea9a2653c783ff04e
2019-12-02 01:51:07 -08:00
Chalard Jean
959c7cd889 [NS A19] Inline updateCapabilities in rematch.
This is ugly, but it's a necessary step to improve the code.
Followups will clean this up. Importantly this kind of inlining
will let us break the very confusing apparent loop between
updateCapabilities and rematch.

Test: FrameworksNetTests
Change-Id: Ie756b9aa8066984264717f0b1e1f31606432f1a4
2019-12-02 18:44:11 +09:00
Chalard Jean
9127f03a5c [NS A18] Reverse listens and request-availables
This is a long standing bug that happens to now be trivial
to fix, and also be beneficial for refactoring

Test: FrameworksNetTests NetworkStackTests
Change-Id: I38110f3a4a75936ea755788e7f9fee67863e14be
2019-12-02 18:44:10 +09:00
Chalard Jean
adb58138bd Merge changes I720a1feb,I9539b8cc,Ib79b777b
* changes:
  [NS A17] Update linger state after rematching.
  [NS A16] Cleanup
  [NS A15] Move legacy default broadcasts out of the loop
2019-12-02 09:40:44 +00:00
Chalard Jean
a5b0d0bbab Merge changes I0613c23f,Ibeab8d0a,I8bd668ad,I7d3a16be am: a1a975e149 am: 0d6211b065
am: fece8eceef

Change-Id: I4540ad08fbb1ccabf0a19f73bc36611194ef8bfa
2019-12-01 21:37:03 -08:00
Chalard Jean
fece8eceef Merge changes I0613c23f,Ibeab8d0a,I8bd668ad,I7d3a16be am: a1a975e149
am: 0d6211b065

Change-Id: Idca7b76f4e638aaa88ededcbfc890492152211e9
2019-12-01 21:32:55 -08:00
Chalard Jean
0d6211b065 Merge changes I0613c23f,Ibeab8d0a,I8bd668ad,I7d3a16be
am: a1a975e149

Change-Id: Ibe34e78e53a15e987042703fdd27d6393e4e7d59
2019-12-01 21:26:44 -08:00
Chalard Jean
a1a975e149 Merge changes I0613c23f,Ibeab8d0a,I8bd668ad,I7d3a16be
* changes:
  [NS A14] Move code notifying battery stats in its right place
  [NS A13] Move legacy broadcast handling after rematch.
  [NS A12] Move some legacy type tracker handling to a function
  Add tests for ConnectivityService → BatteryStats messages
2019-12-02 05:17:39 +00:00
Chalard Jean
7807fa2b7f [NS A17] Update linger state after rematching.
Test: FrameworksNetTests NetworkStackTests
Change-Id: I720a1feb89088aa123201ef5867de444234343e8
2019-12-02 13:02:41 +09:00
Chalard Jean
f034453cce [NS A16] Cleanup
Move LegacyTypeTracker work into a function for readability.

Test: FrameworksNetTests NetworkStackTests
Change-Id: I9539b8cc4422b3a0cc1d3d9b3a44d59dc1905b44
2019-12-02 13:02:41 +09:00
Chalard Jean
b9d9405225 [NS A15] Move legacy default broadcasts out of the loop
Test: FrameworksNetTests NetworkStackTests
Change-Id: Ib79b777b5efda3a4c85c30055f1a6d03d5d04c25
2019-12-02 13:02:41 +09:00
Chalard Jean
9589e72241 [NS A14] Move code notifying battery stats in its right place
This should be done once every time an interface comes online.
Doing this in updateLinkProperties guarantees this happens every
time a new interface comes online, but it doesn't do it more
often than needed.

Test: FrameworksNetTests NetworkStackTests
Change-Id: I0613c23f44192944266d76107308da8d1c541d1c
2019-12-02 13:02:38 +09:00
Chalard Jean
d8d95a5865 Merge "Give apps access to the NAT64 prefix." am: 3391fbb6a2 am: 6a96b757df
am: 151d65dab6

Change-Id: I759e5da8648fd10b26aa235410ee6e22e1976a9b
2019-12-01 18:33:11 -08:00
Chalard Jean
151d65dab6 Merge "Give apps access to the NAT64 prefix." am: 3391fbb6a2
am: 6a96b757df

Change-Id: I251c5ac17fb728d6f0fe91fd96c115c8b8d1879c
2019-12-01 18:27:36 -08:00
Chalard Jean
6a96b757df Merge "Give apps access to the NAT64 prefix."
am: 3391fbb6a2

Change-Id: I673a44f3f75a2395ae3d9d436c83708f20f414e6
2019-12-01 18:20:00 -08:00
Treehugger Robot
3391fbb6a2 Merge "Give apps access to the NAT64 prefix." 2019-12-02 02:05:16 +00:00
Mark Chien
388b441848 [automerger skipped] Merge changes from topic "tether_migrate" am: 783ba3e0bd am: 3d076f29b7
am: ec489e4870 -s ours
am skip reason: change_id I4ed08d20f8b7476b8ecd5d018b75806dd2f22cc1 with SHA1 1ddfba4a60 is in history

Change-Id: I630b00c69238730fe5aa267a658f93edb236acc6
2019-11-30 04:36:38 -08:00
markchien
bbf85776e8 [automerger skipped] [Tether07] Migrate Tethering into module am: 5e86665079 am: bd4a462076
am: 7c525e9907 -s ours
am skip reason: change_id I7e78c0e0a3e70f940a749ba2a39ece7c7ec5b9b3 with SHA1 c70070914f is in history

Change-Id: Ie6a28a142e2cf75adfc3d1a45d87e9daa67423e4
2019-11-30 04:36:30 -08:00
Mark Chien
ec489e4870 Merge changes from topic "tether_migrate" am: 783ba3e0bd
am: 3d076f29b7

Change-Id: Ice864e02b2ef9da73f5a69e0668b6856e718988f
2019-11-30 04:31:35 -08:00
markchien
7c525e9907 [Tether07] Migrate Tethering into module am: 5e86665079
am: bd4a462076

Change-Id: I6e71b418b7303d37144532ab056c21ccbefcb554
2019-11-30 04:31:28 -08:00
Mark Chien
3d076f29b7 Merge changes from topic "tether_migrate"
am: 783ba3e0bd

Change-Id: I03e43b7a112f91637941e5193bd21b3e714f5dac
2019-11-30 04:26:07 -08:00
markchien
bd4a462076 [Tether07] Migrate Tethering into module
am: 5e86665079

Change-Id: I1aaa034e91eae2d6e9abcbbd70741a54a18b3ddc
2019-11-30 04:25:57 -08:00
Mark Chien
783ba3e0bd Merge changes from topic "tether_migrate"
* changes:
  [Tether10]Remove UserManagerInternal usage in Tethering
  [Tether07] Migrate Tethering into module
  [Tether07] Clean up build rule for libtetheroffloadjni
2019-11-30 12:17:47 +00:00
Chalard Jean
7aa4400722 Give apps access to the NAT64 prefix.
Apps that do their own DNS queries need to know the NAT64 prefix
to resolve v4 addresses on v6-only networks.

Test: FrameworksNetTests NetworkStackTests
Bug: 144877069
Change-Id: I5a255b7afc2038646b93a0ab893f8ad62d0fb34f
2019-11-30 10:25:02 +00:00
markchien
5e86665079 [Tether07] Migrate Tethering into module
Now tethering would be run in dedicated service.
TetheringManager is the interface used to communicate with
TetheringService. The new call flow would be: ConnectivityManager
-> ConnectivityService -> TetheringManager -> TetheringService.
Note: the return value of #tether(), #untether() and #setUsbTethering()
APIs would always be no error. Client can use #getLastTetherError()
or #getTetheredIfaces or listen tether state change to check
status of corresponding interface.

Bug: 136040414
Bug: 144742179
Test: -build, flash, boot
      -atest TetheringTests
      -atest FrameworksNetTests

Change-Id: I7e78c0e0a3e70f940a749ba2a39ece7c7ec5b9b3
Merged-In: I7e78c0e0a3e70f940a749ba2a39ece7c7ec5b9b3
2019-11-30 10:03:08 +00:00
TreeHugger Robot
af72e1415f Merge changes from topic "tethering-migrate"
* changes:
  [Tether10]Remove UserManagerInternal usage in Tethering
  [Tether07] Migrate Tethering into module
  [Tether07] Clean up build rule for libtetheroffloadjni
2019-11-29 17:05:14 +00:00
Chalard Jean
f01b2efc13 [NS A13] Move legacy broadcast handling after rematch.
As opposed to other patches in this series, there is a logic change
here. This will send all necessary legacy broadcasts after all
matches have been done.

This should be fine because the callbacks and the broadcasts are
unordered anyway, and the broadcasts are still sent in the same
order as before ; there should not be an observable change from
apps besides some jitter.

Bug: 113554781
Test: ConnectivityServiceTest
Change-Id: Ibeab8d0a9106c5198228888ac33084238c0a4a1a
2019-11-29 16:59:31 +09:00
Chalard Jean
61c79256b1 [NS A12] Move some legacy type tracker handling to a function
It's fine to do this out of the if() clause because :
• If the network newly satisfies a request it is sure to have
  it in the list of requests it satisfies
• If it does not newly satisfy a request and there is still
  a request with a legacy type that it satisfies, then it
  is already remembered by LegacyTypeTracker

As for the VPN, the code always enters the condition anyway.

Test: ConnectivityServiceTest
Change-Id: I8bd668ad27043d6a5036b1b3c52fa5a3146abcfa
2019-11-29 16:59:31 +09:00
Chalard Jean
0a2a20054d Add tests for ConnectivityService → BatteryStats messages
Test: ConnectivityServiceTest
Bug: 113554781
Change-Id: I7d3a16be76f606872f8edb84647b9ef94f36cba1
2019-11-29 16:59:30 +09:00
markchien
c70070914f [Tether07] Migrate Tethering into module
Now tethering would be run in dedicated service.
TetheringManager is the interface used to communicate with
TetheringService. The new call flow would be: ConnectivityManager
-> ConnectivityService -> TetheringManager -> TetheringService.
Note: the return value of #tether(), #untether() and #setUsbTethering()
APIs would always be no error. Client can use #getLastTetherError()
or #getTetheredIfaces or listen tether state change to check
status of corresponding interface.

Bug: 136040414
Bug: 144742179
Test: -build, flash, boot
      -atest TetheringTests
      -atest FrameworksNetTests

Change-Id: I7e78c0e0a3e70f940a749ba2a39ece7c7ec5b9b3
2019-11-29 07:05:21 +00:00
Edward Savage-Jones
d472369791 Add NETWORK_AIRPLANE_MODE permission
Add a permission to allow airplane mode to
be toggled without holding the NETWORK_SETTINGS
(or similar) permission.

Bug: 141621384
Bug: 145164696
Test: TODO
Change-Id: Iebe2f501fdd802d54fd3345ac2fb0a8c129faf71
2019-11-28 21:13:50 +09:00
Aaron Huang
a717c87e3b Merge "Add IpConfiguration parcelable interface implementation to system API" am: 2193b07c21 am: fda119df8e
am: 2dbf6f50f3

Change-Id: I9add4992fbacca4668867abc7a218256805d1bfc
2019-11-28 02:19:08 -08:00