Commit Graph

1037 Commits

Author SHA1 Message Date
Paul Jensen
6f94248ebf Null-check argument to ConnectivityManager.releaseNetworkRequest(PendingIntent)
Do this in ConnectivityService to prevent crashing framework.

Bug:21329396
Change-Id: Ifd9c970cd0da392d0bd5da9a9ae845fdf0b559b3
2015-05-21 08:15:08 -04:00
Paul Jensen
1916861976 Merge "Query HTTP proxy for network via a new API to avoid permissions exceptions" into mnc-dev 2015-05-19 17:58:11 +00:00
Lorenzo Colitti
8ccb6b171b Disable mDefaultDns to see if we can remove it.
Bug: 21146610
Change-Id: I385f1c8780acc97d955002f469a6c8ad65db1578
2015-05-20 00:35:25 +09:00
Lorenzo Colitti
a3a771b3d7 Merge "Make NET_CAPABILITY_VALIDATED (almost) a first-class citizen." into mnc-dev 2015-05-19 10:29:48 +00:00
Robin Lee
1281e50c72 Merge "Support cross-user VPN calls (with permission)" into mnc-dev 2015-05-19 10:14:59 +00:00
Lorenzo Colitti
e97685a88f Make NET_CAPABILITY_VALIDATED (almost) a first-class citizen.
1. Always keep ConnectivityService's validated bits current:
   - Apply the validated bit whenever a NetworkAgent updates its
     NetworkCapabilities.
   - Set or clear the validated bit whenever lastValidated changes.
2. Send callbacks when the validation state of a network changes.
3. Delete getNetworkCapabilitiesAndValidation, removing code
   duplication with getNetworkCapabilities.
4. Add the validated bit to NetworkCapabilities#toString.

Bug: 18591282
Bug: 20081183
Change-Id: I6aa53b61c15cc137f203f9fc6bbd4c16894be750
2015-05-19 18:29:02 +09:00
Robin Lee
1e71fc8356 Support cross-user VPN calls (with permission)
Settings and SystemUI need to act on other users than USER_OWNER.

This is gated by INTERACT_ACROSS_USERS_FULL in addition to the existing
CONTROL_VPN checks, so the number of processes able to interfere with
other profiles' VPNs should be quite small.

Bug: 20692490
Bug: 20747154
Bug: 20872408
Change-Id: I6e5d7220f73435bec350719e7b4715935caf4e19
2015-05-18 23:35:31 +01:00
Paul Jensen
db93dd93c5 Query HTTP proxy for network via a new API to avoid permissions exceptions
Add @hidden ConnectivityManager.getProxyForNetwork() API.

Bug:20470604
Change-Id: I6a9bc4afc8273bc43b14cdeccfedbbf3ff66be40
2015-05-18 17:05:51 +00:00
Lorenzo Colitti
e14a622909 Statically import NetworkCapabilities constants for brevity.
Bug: 18591282
Change-Id: I41c148951724136f31bc663fd81ca9f5de72818a
2015-05-14 23:46:17 +09:00
Lorenzo Colitti
2c39d1313a Don't display the "no Internet access" prompt on captive portals.
Bug: 20081183
Bug: 21066461
Change-Id: Idc71844a604f9ca655411c6916de256780ea4586
2015-05-14 23:46:16 +09:00
Lorenzo Colitti
4976772f9b Fix a race when removing from LegacyTypeTracker.
Because LegacyTypeTracker#remove can send broadcasts that cause
apps to refresh their view of network state, it needs to be
called only after network state has been updated. This requires
that callers determine whether the network was the default, and
updating state, before calling remove().

While I'm at it, fix maybeLogBroadcast's concept of whether the
network it's logging about is/was the default. This has never
been correct.

Bug: 20613953
Change-Id: Ia175ac454aa4e0a4c4f0151866314ebada681438
2015-05-12 16:48:30 +09:00
Erik Kline
05f2b40542 Optionally add a default MOBILE request.
This enables persisting the mobile internet data connection, even
when Wi-Fi is enabled and serving as the default network (for faster
network switching).

Change-Id: I9d1512b3a8413c4f163c63d57e66bded017101e4
2015-05-08 15:22:37 +09:00
Sanket Padawe
aeb5be7c7d Adding "Connected, no Internet" string in Wifi nw summary.
Bug: 17380953
Change-Id: I9664bcbf33832fe722e7d2b3125939287ee98098
2015-05-01 16:55:00 -07:00
Amith Yamasani
2a37b3cc84 Remove network access for idle apps
Track apps going in and out of idle in the NetworkPolicyManagerService.
Apply DROP rules in firewall controller if app is to be blacklisted
for network access.

Firewall can now be in whitelist (old) or blacklist mode. When in
blacklist, it allows all by default and we can selectively DENY
some uids.

Track app idle in UsageStats and update periodically.
Track charging/discharging states.

TODO: Check for appidle temporary parole state

Bug: 20066058
Change-Id: Ia65d7544204b3bcb78a517310ef4adcc05aac6fb
2015-04-29 14:21:53 -07:00
Etan Cohen
856f4a7d05 Merge commit '60df4aa' into merge2
Change-Id: I116a9dbf19e95651a7c50393e4dcd7fb59ca3f3f
2015-04-24 13:58:45 -07:00
Lorenzo Colitti
7e7decdc81 Allow apps with ACCESS_WIFI_STATE to listen for wifi networks
The compatibility measure introduced in bug 20081183 for apps
that connect to a Wi-Fi network without Internet access and then
expect to be able to use that network requires that such apps
register a NetworkCallback so that their WifiManager can pin them
to whatever wifi Network connects.

Currently, registering the callback requires ACCESS_NETWORK_STATE
and the app may not have that permission. Allow registering wifi
(only) callbacks if the app has ACCESS_WIFI_STATE.

If the app does not have ACCESS_WIFI_STATE (unlikely, since
CHANGE_WIFI_STATE is not very useful without ACCESS_WIFI_STATE),
then don't enable the compatibility measure.

Bug: 20081183
Bug: 20423580
Change-Id: Iad328d30c2d170dead883868fece3d922da68f6f
2015-04-22 12:01:35 +09:00
fenglu
3595251977 Merge "update API name to requestBandwidthUpdate()" 2015-04-22 01:32:19 +00:00
fenglu
b00f48834e update API name to requestBandwidthUpdate()
Change-Id: If26942978ffcc43f06f17dfad5da790f34758395
2015-04-21 17:12:05 -07:00
Robert Greenwalt
f780ac8cd6 Merge "Revert "requestBwUpdate() public API review"" 2015-04-21 23:59:35 +00:00
Robert Greenwalt
d915d64bd6 Revert "requestBwUpdate() public API review"
This reverts commit 85d7af1f8b.

Change-Id: I8c22d285ff1f56f1bd31a0fa9f2e6a79959347b1
2015-04-21 23:59:14 +00:00
Robert Greenwalt
3d9f44446a Merge "requestBwUpdate() public API review" 2015-04-21 23:55:48 +00:00
fenglu
85d7af1f8b requestBwUpdate() public API review
Change-Id: I1e780b2705d13bfc85a0a8712ac1dbd623b474a1
2015-04-21 15:33:19 -07:00
Erik Kline
934122fbbb Final removal of CONNECTIVITY_ACTION_IMMEDIATE.
Since the demise of the connectivity change delay,
CONNECTIVITY_ACTION_IMMEDIATE has been sent out back to back with
CONNECTIVITY_ACTION.

Interested parties should watch for CONNECTIVITY_ACTION.

Bug: 20013379
Change-Id: I072dddf95adb3bbd17fa1f7159d4ea848ade8f19
2015-04-21 17:02:34 +09:00
Stuart Scott
d546364a81 Move factoryReset to service and protect.
bug:16161518
Change-Id: I02d1bbae1887c62ee426e6f03e8bc1f18c6666bf
2015-04-20 10:52:35 -07:00
Erik Kline
d06906840a CONNECTIVITY_ACTION is the new _IMMEDIATE
Bug: 20013379
Change-Id: I3e904dc0a0ddb30c7bb8cdb24d0762052ddc59eb
2015-04-20 16:11:58 +09:00
Paul Jensen
60df4aaea6 Add captive portal API.
This API allows apps other than the system's CaptivePortalLogin
to handle signing in to captive portals.

bug:19416463
Change-Id: I27fce5856b635233e6ff66396d50ccabedd76cf5
2015-04-16 16:53:10 +00:00
Lorenzo Colitti
87a81fd19f Merge changes from topic 'wifi-alternate-reality'
* changes:
  Pin a process to wifi when it calls enableNetwork(..., true)
  Make CALLBACK_PRECHECK actually work.
2015-04-16 16:11:22 +00:00
fenglu
3f35740bd8 LCE service implementation - connectivity side
Change-Id: If11bd99c44c7dc8d2aa2bc05a10e04421739baa6
2015-04-16 02:53:39 -07:00
Lorenzo Colitti
0f6d6bdb0e Make CALLBACK_PRECHECK actually work.
Currently, CALLBACK_PRECHECK is never fired, because we attempt
to send it just after a network has connected, before matching
requests to that network. So notifyNetworkCallbacks scans the
list of requests for the network, finds none, and does nothing.

Bug: 20038463
Change-Id: Ib0c6377c45990e358f926217d7c7defa74c1d59b
2015-04-16 17:11:09 +09:00
fenglu
d39aecfa33 LCE service implementation - connectivity side
Change-Id: If11bd99c44c7dc8d2aa2bc05a10e04421739baa6
2015-04-15 23:13:52 -07:00
Vinit Deshpande
e80d3096ad Merge "am b5e0cfb..557d2f5 from mirror-m-wireless-internal-release" 2015-04-16 02:36:30 +00:00
Lorenzo Colitti
6947c067bd Prompt if a network without an Internet connection is selected
When a network is explicitlySelected, keep it connected but do
not automatically switch to it. Instead, attempt to validate it,
and if 8 seconds have passed and the network is not yet
validated, prompt the user asking whether to switch to it anyway.

Bug: 20081183
Change-Id: I03a8459eb39979e3dc8e94662b85a44605dd7e69
2015-04-15 13:38:22 +09:00
Vinit Deshpande
fda5739846 am b5e0cfb..557d2f5 from mirror-m-wireless-internal-release
557d2f5 Merge "Add ConnectivityManager.reportNetworkConnectivity() API" into m-wireless-dev
ab5267a Fix onLost/onFound logic in isSettingsAndFilterComboAllowed
b95d795 Add ConnectivityManager.reportNetworkConnectivity() API
238e0f9 OBEX Over L2CAP + SDP search API for BT profiles
1f56738 Add ConnectivityManager.getActiveNetwork(). Rework NetID allocation in ConnectivityService so registerNetworkAgent() can return the allocated NetID.
bf18bed Merge "Non-functional code cleanup of ConnectivityService." into m-wireless-dev
db8784e Merge "Cleanup of Video Call pause functionality." into m-wireless-dev
c7a1d23 Non-functional code cleanup of ConnectivityService.
e593d0a Onfound onlost feature.
0326f58 Merge "API for config app." into m-wireless-dev
e9b056f API for config app.
d5351e7 RTT framework interface update
224ab3d Unhide Network.openConnection(URL, Proxy).
bd2d378 Fix typos in ConnectivityManager documentation.

Change-Id: Ib4c88f6d7ad1b24227b032555c62a5804194384b
2015-04-14 16:15:02 -07:00
Paul Jensen
b95d7950f5 Add ConnectivityManager.reportNetworkConnectivity() API
This new API allows reporting networks that are perceived to provide Internet
connectivity and networks that are not.  This allows the framework to avoid
needlessly reevaluating networks where the apps perception matches the
framework's perception.  This was not possible with the prior API,
reportBadNetwork.

Bug: 16214361
Change-Id: Id4409bd7538854bd837231fb50e693c10a62b4f2
2015-04-13 18:48:54 +00:00
Paul Jensen
1f567385ff Add ConnectivityManager.getActiveNetwork().
Rework NetID allocation in ConnectivityService so registerNetworkAgent() can
return the allocated NetID.

Bug: 19416463
Change-Id: I68e395552cf27422c80b4dfae5db5d56a0d68f5d
2015-04-10 14:03:13 +00:00
Dianne Hackborn
522f038eec More work on device idle mode and other power stuff.
Add idle mode support to the alarm manager.  Introduce
a new concept of flags associated with alarms to tell
the alarm manager how to treat the alarm -- they allow
everything from the alarm that will bring us out of idle
mode, to alarms that are allowed when idle or should
also bring us out of idle.  The standalone boolean is
now also a flag.

(Note there is currently no protection from user space
setting the flags however it wants; I will be working
on that in a follow-up change.)

When in idle mode, the alarm manager pushes all alarms
that shouldn't execute during that time over to a
separate list that is not executed until out of idle.
To help with this, I reworked a bit how Alarm objects
are managed, so that when rebatching or moving between
lists we don't have to allocated new objects but can
just use the same existing instance.

Also tweaked the sync manager to deal with idle mode,
which currently just means doing the same thing as when
low on storage -- turning off sync.

Add new ACTION_CHARGING and ACTION_DISCHARGING broadcasts
that apps can listen for to know when the device is actively
charging and discharging.  These are better than the old
POWER_CONNECTED and POWER_DISCONNECTED ones because we only
report charging when we actually see that there is enough
power being provided to charge the battery (and will report
discharging if there is not enough power).

The job controller uses these new actions for scheduling
jobs that want to run while plugged in.  Removed the
"stable charging" stuff while doing so, since the new
charging state serves as an even better signal for that.

Introduced two new process states: FOREGROUND_SERVICE and
TOP_SLEEPING.  This will allow us to treat foreground services
specially (such as still allowing network access to them for
background music playback) while not mixing them together with
whatever happens to be the top activity while the device is
asleep.

Also some other small cleanup here and there.

Change-Id: I7a9808b578bad6f50deb8e1baf919298512a0d3a
2015-04-09 14:05:17 -07:00
Paul Jensen
c7a1d23cdf Non-functional code cleanup of ConnectivityService.
1. Remove ConnectivityService.findConnectionTypeForIface() as this can be done
   just as easily with supported APIs now.
2. Avoid making copies of Network objects as this precludes reuse of Network
   internals (e.g. socket factory, connection pool).

Change-Id: I52f92e35d769d8350471f485e408169608630082
2015-04-08 07:46:49 -04:00
Adam Lesinski
ff3fc4c97d Adding per UID WiFi power distribution.
Change-Id: I88c539074607d7261f6c5cf1dbae47c3cf53f253
2015-04-07 11:37:10 -07:00
Bart Sears
0e40aa8377 Revert "Adding per UID WiFi power distribution."
This CL is breaking the clockwork settings app in master.  Reverting
until Adam has a chance to investigate.

This reverts commit 5ab174bac0.

Change-Id: Ieb11423c11cf9874a6175dce49843d0e1080c590
2015-04-07 06:14:04 +00:00
Adam Lesinski
5ab174bac0 Adding per UID WiFi power distribution.
Change-Id: Ia3d97e0a1c3352127185c18626d8ba8221c9ab40
2015-04-06 18:36:06 -07:00
Robert Greenwalt
6ee271c0b3 am 0270d86a: am 778f47e5: am 069f4cbc: Merge "Fix memory leak in Connectivity Service when phone app crashes"
* commit '0270d86ab755dabb7d20013dcb591d3facbe1a08':
  Fix memory leak in Connectivity Service when phone app crashes
2015-04-06 18:17:28 +00:00
Maunik Shah
d1027f5338 Fix memory leak in Connectivity Service when phone app crashes
Upon crash of com.android.phone process, NetworkFactoryInfo is
not getting removed from HashMap and will get accumulated on
every start of the process.

Change-Id: Iafde28daddfc82728c03208522682b1efc85a121
2015-04-04 21:48:24 +05:30
Alan Viverette
501ecd6dac Replace usages of deprecated Resources.getColor() and getColorStateList()
Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
2015-03-18 18:37:18 -07:00
Paul Jensen
8357dfd520 Remove dead code, mostly DataStateTracker.
(cherry picked from AOSP commit 9edb1fc511)

Change-Id: I18c44cd08dfb51e02a96d0b726e9af1db21e3058
2015-03-18 12:29:13 -04:00
Andreas Gampe
8679a46283 resolved conflicts for merge of b6b9fe21 to master
Change-Id: If4f62aa1fd8bb774288a677e7008e86a7e3ea6d9
2015-03-13 00:04:10 -07:00
Wenchao Tong
e164e0063b NetworkStatsService to adjust VPN stats before recording.
* Creates a new Parcelable class VpnInfo to hold required
  parameters for VPN stats adjustments.
* ConnectivityService to collect infomation and provide
  a list of VpnInfo, one for each user.
* NetworkStatsService passes the VpnInfo array to
  NetworkStatsRecorder.
* NetworkStatsRecorder calls NetworkStats.migrateTun()
  to do the math.
* Poll NetworkStats when the vpn application calls
  setUnderlyingNetworks().

Bug: 19536273
Change-Id: I7a4c7726b8243fead10416f7ec6eb5cf95f20183
2015-03-12 17:43:41 -07:00
Lorenzo Colitti
a897c84357 Fix build, broken by https://android-review.googlesource.com/#/c/115890/
Change-Id: Ieafa2fb0a7f539d8f933ad9c98e3be80457da6e5
2015-03-12 16:48:12 +09:00
Paul Jensen
9edb1fc511 Remove dead code, mostly DataStateTracker.
Change-Id: I1433937bffdb29bd42fb1adbfcf0a50ceffac7dd
2015-03-11 10:03:58 -04:00
John Spurlock
c3c163f3f4 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
Lorenzo Colitti
4e858cbafa Make reportInetCondition revalidate if the report differs from our state
1. If reportInetCondition says the network is not working, and
   the network is already marked not validated, don't revalidate
   it. This was superfluous and should save battery.
2. If reportInetCondition says the network is working, and the
   network is not marked as validated, revalidated. This will
   allow us to get out of a validated state quickly based on app
   input (e.g., allowing GCM's exponential backoff timer to drive
   revalidation instead of our 10-minute timer).

Bug: 19258761
Bug: 19209043
Change-Id: Iaa4bac82d117ed1f4088dab106e6f6ce46b34bc3
2015-02-11 11:03:50 +09:00