Commit Graph

1596 Commits

Author SHA1 Message Date
Jeff Sharkey
4887789e44 Progress towards dynamic storage support.
Storage devices are no longer hard-coded, and instead bubble up from
whatever Disk and VolumeBase that vold uncovered, turning into
sibling Java objects in MountService.  We now treat vold events as
the source-of-truth for state, and synchronize our state by asking
vold to "reset" whenever we reconnect.

We've now moved to a model where all storage devices are mounted in
the root mount namespace (user boundaries protected with GIDs), so
we no longer need app-to-vold path translation.  This also means that
zygote only needs to bind mount the user-specific /mnt/user/n/ path
onto /storage/self/ to make legacy paths like /sdcard work.  This
grealy simplifies a lot of system code.

Many parts of the platform depend on a primary storage device always
being present, so we hack together a stub StorageVolume when vold
doesn't have a volume ready yet.

StorageVolume isn't really a volume anymore; it's the user-specific
view onto a volume, so MountService now filters and builds them
based on the calling user.  StorageVolume is now immutable, making
it easier to reason about.

Environment now builds all of its paths dynamically based on active
volumes.  Adds utility methods to turn int types and flags into
user-readable strings for debugging purposes.

Remove UMS sharing support for now, since no current devices support
it; MTP is the recommended solution going forward because it offers
better multi-user support.

Simplify unmount logic, since vold will now gladly trigger EJECTING
broadcast and kill stubborn processes.

Bug: 19993667
Change-Id: I9842280e61974c91bae15d764e386969aedcd338
2015-03-30 19:46:23 -07:00
Wenchao Tong
98170b0db1 Keep debug information in NetworkStats files
Create two special SETs.

SET_DBG_VPN_IN is used by individual applications to know
how much traffic of the NetworkIdentity was actually moved
from a VPN app.
SET_DBG_VPN_OUT is used by the VPN app to know how much
traffic of the NetworkIdentity was deducted.

A debug application can restore the raw stats by these
entries.
  raw_traffic = recorded_entry (TAG_NONE, SET_ALL)
              + recorded_entry (TAG_NONE, SET_DBF_VPN_OUT)
              - recorded_entry (TAG_NONE, SET_DBF_VPN_IN)

The two debug SETs are not returned by
NetworkStatsService.openSession(). These debug entries are
retrieved by NetworkStatsCollection.dump().

Bug: 19536273
Change-Id: I03ef9f7667f5f2f48cbe3f6b11447fe7ead8ad3b
2015-03-27 13:49:13 -07:00
Prerepa Viswanadham
e564c00e2b Merge "Merge remote-tracking branch 'goog/mirror-m-wireless-internal-release' into master_merge" 2015-03-25 20:02:29 +00:00
Zoltan Szatmary-Ban
9c5dfa5c79 Data Usage public API
Added new API consisting of android.app.usage.NetworkUsageManager and
android.app.usage.NetworkUsageStats. Through them data usage on a
network interface can be programmatically queried. Both summary and
details are available.

Bug: 19208876
Change-Id: I0e0c4b37ae23ad1e589d4b0c955b93f28ba4333e
2015-03-25 15:53:38 +00:00
Prerepa Viswanadham
4209a28270 Merge remote-tracking branch 'goog/mirror-m-wireless-internal-release' into master_merge
Change-Id: I49aab437af220f1139cfd2d0a9c362acce31074e
2015-03-24 13:46:08 -07:00
Paul Jensen
39350847ff Merge "Make NetworkCapabilities.NOT_VPN javadoc visible." into m-wireless-dev 2015-03-20 11:27:18 +00:00
Lorenzo Colitti
d41ca0fe75 Add a protectFromVpn method that takes a FileDescriptor
Bug: 19704592
Change-Id: I9aeb29c2f6cf55fa010bc606c99b21a797ac5a19
2015-03-20 16:32:40 +09:00
Lorenzo Colitti
eca9b9bd8b DHCP: Move the packet code to frameworks/base/services.
There's no need for it to be in frameworks/base/core, since it
will only be used by services.

Bug: 19704592
Change-Id: I2f5277eca848b7000ca46db575e8602eacb5c8bd
2015-03-20 16:32:36 +09:00
Lorenzo Colitti
cbe4f7c225 DHCP: Add a native method for making a DHCP socket.
Bug: 19704592
Change-Id: Iadd60d39c93aaabd2917e76791101a7d313b34be
2015-03-20 16:32:35 +09:00
Lorenzo Colitti
c4795d858d DHCP: Add a superclass for DhcpStateMachine.
This can be used to switch between different DHCP client
implementations. The caller can declare objects of type
BaseDhcpStateMachine, and call its methods, without needing to
care what implementation is in use.

Bug: 19704592
Change-Id: Icefad9b0d0f83b349681388b1fa16b5e2e37c042
2015-03-20 16:32:35 +09:00
Lorenzo Colitti
e5ef28f509 Add two utility methods for IPv4 netmasks.
1. Add a validating method to convert a netmask to a prefix length.
2. Add a function to get the implicit netmask of an IPv4 address.
3. Add a unit test.

Bug: 19704592
Change-Id: Icb9f58d3903ea01df9e3720383c9bd5db6dd8f26
2015-03-20 16:32:34 +09:00
Dianne Hackborn
8ad2af7e5b First stab at device idle mode.
Introduce a new device idle controller service that
monitor's the device state and determines when to go
in to idle mode.  When in idle mode, all we do right
now is turn off network access the same as we do for
power save mode.  Many more things should come in the
future -- stopping the alarm manager from scheduling
(most) alarms, telling GmsCore for it to stop doing
stuff, etc.

Battery stats now has state tracking for devie idle
mode, as well as events for the reasons we can come
out of idle mode (significant motion or the device
becoming active).  Also added new events noting when
packages are installed.

Renamed the "low power" event in battery stats to
"power save" because the former was just way too
confusing.

Finally, fix buffer size reading kernel wake locks.
(Stupidly, just increasing the buffer size.  Ideally
we should try to be smarter and grow our buffer to
fit the data available, but I'll leave that for
another time.)

Change-Id: I0be2062466c83ee9d890c6cf5a228d9cc4090eca
2015-03-19 11:10:55 -07:00
Paul Jensen
43564472ee Remove dead code, mostly DataStateTracker.
(cherry picked from AOSP commit 7fad4eb4b5)

Change-Id: I18c44cd08dfb51e02a96d0b726e9af1db21e3058
2015-03-18 12:29:13 -04:00
Paul Jensen
76b610a9a1 Make NetworkCapabilities.NOT_VPN javadoc visible.
Also adjust wording to be more suitable for NetworkRequests and NetworkAgents.

Change-Id: I1cc93cb20779cf02d6ffa0fa11ad2916c199b365
2015-03-18 09:33:07 -04:00
Lorenzo Colitti
4ff9f0fd9f Add a protectFromVpn method that takes a FileDescriptor
Bug: 19704592
Change-Id: I9aeb29c2f6cf55fa010bc606c99b21a797ac5a19
2015-03-17 19:46:12 +09:00
Lorenzo Colitti
c77f04f9bc Merge changes from topic 'dhcpclient' into m-wireless-dev
* changes:
  DHCP: Minor cleanups to the packet code.
  DHCP: Move the packet code to frameworks/base/services.
  DHCP: Add a native method for making a DHCP socket.
  DHCP: Add a superclass for DhcpStateMachine.
2015-03-16 12:12:42 +00:00
Lorenzo Colitti
30d4ec6201 Merge "Add two utility methods for IPv4 netmasks." into m-wireless-dev 2015-03-16 12:11:37 +00:00
Lorenzo Colitti
c95a87f30d DHCP: Move the packet code to frameworks/base/services.
There's no need for it to be in frameworks/base/core, since it
will only be used by services.

Bug: 19704592
Change-Id: I2f5277eca848b7000ca46db575e8602eacb5c8bd
2015-03-16 20:08:46 +09:00
Lorenzo Colitti
566e0cb692 DHCP: Add a native method for making a DHCP socket.
Bug: 19704592
Change-Id: Iadd60d39c93aaabd2917e76791101a7d313b34be
2015-03-16 20:08:45 +09:00
Lorenzo Colitti
5671eedda0 DHCP: Add a superclass for DhcpStateMachine.
This can be used to switch between different DHCP client
implementations. The caller can declare objects of type
BaseDhcpStateMachine, and call its methods, without needing to
care what implementation is in use.

Bug: 19704592
Change-Id: Icefad9b0d0f83b349681388b1fa16b5e2e37c042
2015-03-16 20:03:09 +09:00
Lorenzo Colitti
475085b987 Add two utility methods for IPv4 netmasks.
1. Add a validating method to convert a netmask to a prefix length.
2. Add a function to get the implicit netmask of an IPv4 address.
3. Add a unit test.

Bug: 19704592
Change-Id: Icb9f58d3903ea01df9e3720383c9bd5db6dd8f26
2015-03-16 16:07:36 +09:00
Vinit Deshpande
e94d762182 am "Refactor NetworkUtils interaction with DHCP."
merged from goog/mirror-m-wireless-internal-release
3c3ce17 Refactor NetworkUtils interaction with DHCP.
2015-03-15 13:40:27 -07:00
Paul Jensen
b335d20628 Fix javadoc braces for ConnectivityManager.EXTRA_NETWORK.
Change-Id: I5ad30a34f96e9e99a557b5bae9a30bfc08c89620
2015-03-13 14:06:12 -04:00
Andreas Gampe
db64454b33 resolved conflicts for merge of b6b9fe21 to master
Change-Id: If4f62aa1fd8bb774288a677e7008e86a7e3ea6d9
2015-03-13 00:04:10 -07:00
Wenchao Tong
f5ea340aab 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
Wenchao Tong
8726e9a73e Merge "NetworkStats to support VPN accounting." 2015-03-12 22:10:56 +00:00
Paul Jensen
7fad4eb4b5 Remove dead code, mostly DataStateTracker.
Change-Id: I1433937bffdb29bd42fb1adbfcf0a50ceffac7dd
2015-03-11 10:03:58 -04:00
Wenchao Tong
21377c3af8 NetworkStats to support VPN accounting.
Create a new method to migrate underlying network traffic
from VPN app to other apps.

Bug: 19536273
Change-Id: I3434cad361592e26b01225edf8012f7b16afc98f
2015-03-09 11:38:10 -07:00
Erik Kline
3c3ce17c5a Refactor NetworkUtils interaction with DHCP.
Separate out starting DHCP (DISCOVER) and RENEW operations from fetching
the results.  Add NetworkUtils.getDhcpResults(), to enable quick checks
of any available DhcpResults without extraneous interaction with the
DHCP daemon.

Bug: 19422416
Change-Id: I58808e529dda8429737e749f5caef56d923c0809
2015-03-02 12:35:35 +09:00
John Spurlock
08c7116ab9 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
Yashdev Singh
bece926b51 Telephony: Implementation for IWLAN.
Introduce new RAT as IWLAN.
- Allow registration polling in airplane mode.
- Allow non-default PDP activation for iwlan RAT.

Implementation of iwlan and wwan coexistence.
- A new callback event for unsol oem hook response to indicate
  if cellular and iwlan RAT co-exists.
- If co-existence is possible then allow default PDP activation
  along with other PDPs.

Change-Id: Icc6f8111ec3c86ec06e8facd5a5b60b4d5e08e78
2015-02-26 06:37:36 +00:00
Narayan Kamath
f129af204c Merge "Move apache specific portions of android.net.http to external/apache-http." 2015-02-13 09:51:44 +00:00
Jeremy Joslin
549aa2b9b7 am f69f3737: am 1267462c: am f456d4dc: am 20be0e25: Merge "Update Javadoc for EXTRA_NETWORK." into lmp-mr1-dev
* commit 'f69f3737ba8cb2acb481dc78de3c5275bae112e7':
  Update Javadoc for EXTRA_NETWORK.
2015-02-12 19:40:48 +00:00
Jeremy Joslin
f69f3737ba am 1267462c: am f456d4dc: am 20be0e25: Merge "Update Javadoc for EXTRA_NETWORK." into lmp-mr1-dev
* commit '1267462c0bf8ef5a0cfaca535847fc962b2cf32e':
  Update Javadoc for EXTRA_NETWORK.
2015-02-12 18:56:35 +00:00
Narayan Kamath
3bdd327f85 Move apache specific portions of android.net.http to external/apache-http.
We continue to compile external/apache-http into ext.jar. This contains
a few changes apart fom the classes moving around :

- Makefile changes to build docs and api-stubs for now. A future change
  will revert these changes and remove these classes from stubs and
  docs.
- Hardcode event IDs in legacyerrorstrings to avoid a dependency between
  the frameworks and apache. These strings are on their way out and will
  never change anyway.
- Remove imports due to {@link} tags and use {@code} instead.
- Remove an accidental(?) dependency on apache commons code that's a
  part of apache-http.

bug: 18027885

Change-Id: I51cd038d846ec7d02c283a4541b10a6a9cf62ecf
2015-02-12 11:15:49 +00:00
Jeremy Joslin
fcde58f155 Update Javadoc for EXTRA_NETWORK.
Bug: 19352840
Change-Id: Ib668bee0fb2c6f5bcd01a7908ebd20b9ec8a40ef
2015-02-11 18:28:57 -08:00
Andrei Kapishnikov
5b4a198abd Merge "Do not throw NullPointerException from PacService" 2015-02-11 17:46:46 +00:00
Narayan Kamath
406e1ed988 Remove apache specific socket factory API.
Note that this change also includes another (non-breaking) update from
another of my changes from a month ago. I guess nobody has updated API on
master in a very long time..

bug: 18027885
Change-Id: I1fb1bcdaac07131c3bc43b13ad21cacd12a2e7c8
2015-02-04 09:50:46 +00:00
Craig Mautner
b2a958fd3c Remove path, query, and fragment from http Uri.
For http and https schemes leave only scheme and authority in
Uri.toSafeString().

Fixes bug 19217173.

Change-Id: Ic07665f4754bb33ad48f7a55ce5efda185df7577
2015-02-03 10:01:56 -08:00
Lorenzo Colitti
728dace14d Merge "Also include the domain when parceling StaticIpConfiguration." automerge: c565a56 automerge: 5b392ee
automerge: a0057ad

* commit 'a0057ad69083dc09c0c853fd20119f5a9ea877d9':
  Also include the domain when parceling StaticIpConfiguration.
2015-01-30 15:59:49 +00:00
Lorenzo Colitti
a0057ad690 Merge "Also include the domain when parceling StaticIpConfiguration." automerge: c565a56
automerge: 5b392ee

* commit '5b392ee7584688d6929ca40760d0df2a12bd0b16':
  Also include the domain when parceling StaticIpConfiguration.
2015-01-30 15:56:00 +00:00
Lorenzo Colitti
d0cc544039 Also include the domain when parceling StaticIpConfiguration.
StaticIpConfiguration objects are parceled at least as part of the
IpConfiguration objects that are passed to IEthernetManager when an
application sets static IP configuration on Ethernet.

Change-Id: I49991e2f591cc6cf01b503c18eb343b5929efe29
2015-01-29 12:20:55 +00:00
Paul Jensen
b3b70975d9 Fix DhcpResults.setDomain() and StaticIpConfiguration.toLinkProperties()
setDomain() and toLinkProperties() were not setting the domains.
The setDomain() bug affected Wifi and I believe the toLinkProperties()
bug affected Ethernet and Bluetooth reverse-tethering.

(cherry picked from commit c53113b37f)

bug:18252947
Change-Id: I6235fcd6b875aee516efbb5f880db1a99380355b
2015-01-29 17:12:35 +09:00
Lorenzo Colitti
8316b819b2 Support connecting to networks with misconfigured subnet masks.
In K and earlier, we would connect to a network where the gateway
was not covered by the subnet mask of the IP address. This is an
invalid configuration, but it used to work, and other OSes appear
to accept it too, so support it.

Bug: 19067207

(cherry picked from commit 2dfb79a54a)

Change-Id: I80088f291466dbd5a47f360dcc1620acee5cf57e
2015-01-28 20:36:37 +09:00
Lorenzo Colitti
98dd474f47 am 50f9d93a: am ae38596b: Merge "Support connecting to networks with misconfigured subnet masks." into lmp-mr1-dev
automerge: 5c9546b

* commit '5c9546b1dabd36ad8358705ac617ea3c606d5317':
  Support connecting to networks with misconfigured subnet masks.
2015-01-23 13:05:26 +00:00
Lorenzo Colitti
5c9546b1da am 50f9d93a: am ae38596b: Merge "Support connecting to networks with misconfigured subnet masks." into lmp-mr1-dev
* commit '50f9d93a1c6f3d9f28966dd61997b4b780f31fb2':
  Support connecting to networks with misconfigured subnet masks.
2015-01-23 13:01:42 +00:00
Lorenzo Colitti
ae38596bcf Merge "Support connecting to networks with misconfigured subnet masks." into lmp-mr1-dev 2015-01-23 12:50:32 +00:00
Lorenzo Colitti
2dfb79a54a Support connecting to networks with misconfigured subnet masks.
In K and earlier, we would connect to a network where the gateway
was not covered by the subnet mask of the IP address. This is an
invalid configuration, but it used to work, and other OSes appear
to accept it too, so support it.

Bug: 19067207
Change-Id: I822e1d754b336691b675438eefa959a3d75fd07b
2015-01-23 21:10:34 +09:00
Lorenzo Colitti
e871f0176d am 78d51c22: Merge "Use the proper IpPrefix and LinkAddress constructors in VPN code." into lmp-mr1-dev automerge: fbaf6b3
automerge: 6840ffa

* commit '6840ffae6761b369992fceb6b880cd9cd600b136':
  Use the proper IpPrefix and LinkAddress constructors in VPN code.
2015-01-23 06:10:48 +00:00
Lorenzo Colitti
6840ffae67 am 78d51c22: Merge "Use the proper IpPrefix and LinkAddress constructors in VPN code." into lmp-mr1-dev
automerge: fbaf6b3

* commit 'fbaf6b353dc9b7218b340acf629b06ae8e0101bb':
  Use the proper IpPrefix and LinkAddress constructors in VPN code.
2015-01-23 06:06:57 +00:00