Commit Graph

1899 Commits

Author SHA1 Message Date
Torne (Richard Coles)
ff701a6a65 Parse system properties that are lists correctly.
String.split() returns a one-element array of the empty string if the
input is the empty string, not a zero-element array. Introduce a
getStringList function to handle this consistently in the cases where
system properties are parsed as comma separated lists.

The main result is that SUPPORTED_64_BIT_ABIS will now correctly be
empty on a 32-bit only device.

Change-Id: I6f74b48d0a6ced3cd6d49c05aad6a4b7e0b074d2
2014-07-30 12:14:40 +01:00
Amith Yamasani
bf3a946548 Set profile owner via an intent
priv apps can request to become a profile owner after setup has
completed. This will pop up a consent dialog (in Settings).

Also, clean up profile owner concept to be a component name.

Change-Id: I5e8532866e8018f61836c4e84fbbadb6150218ae
2014-07-29 23:43:32 +00:00
Sreeram Ramachandran
42065ac64c Prohibit address families by default unless a VPN explicitly allows them.
Bug: 15972465
Change-Id: I3278d94536fefacc86390c1ba4231680f7be8589
2014-07-28 18:52:41 +00:00
Sandeep Siddhartha
39c12fab49 Use blob (shared memory) for large data in sound model/recognition event/config
Also add a missing null check in writeBlob

Bug: 16516353
Change-Id: Ie702f8daae541cab7c2cee6e13d49e7fc84c84e1
2014-07-28 11:10:32 -07:00
Sandeep Siddhartha
90d7a3e996 Add read/writeBlob to Parcel
These are {@hide}en for now.

Bug: 16516353
Change-Id: Ie1635617ee8611a78be9068a7ce674e34c30301d
2014-07-25 16:50:41 -07:00
Sreeram Ramachandran
8cd33ed84e Implement support for bypassable VPNs.
Bypassable VPNs grab all traffic by default (just like secure VPNs), but:
+ They allow all apps to choose other networks using the multinetwork APIs.
  If these other networks are insecure ("untrusted"), they will enforce that the
  app holds the necessary permissions, such as CHANGE_NETWORK_STATE.
+ They support consistent routing. If an app has an existing connection over
  some other network when the bypassable VPN comes up, it's not interrupted.

Bug: 15347374
Change-Id: Iaee9c6f6fa8103215738570d2b65d3fcf10343f3
2014-07-25 15:17:23 -07:00
Kenny Guy
237aecd18d Change getBadgedLabelForUser to use CharSequence
Bug: 16401636
Change-Id: I45410a6293007dd789d6770d63397824559b756e
2014-07-25 10:12:11 +00:00
Nicolas Prevot
f1939901d2 Making the clipboard work across users.
When copying from the parent: the ClipData can be pasted in the managed profile.
When copying from a managed profile: it can be pasted in the parent,
unless the policies says it's disabled. In which case, the clipboard of the parent becomes empty.
Supporting content uris.

BUG: 15186236

Change-Id: I522564a7c07ff21df137adcda980bb52e5739964
2014-07-24 10:25:57 +00:00
Dianne Hackborn
10eaa8574b Fix issue #16467284: Make noteStartVideo and noteStartAudio nesting
Also add new methods to clear these states, so we can avoid any
nesting issues from getting the tracking state stuck.

Change-Id: Iba0eaba2a9a186355c24d392f16118982c5331ed
2014-07-23 17:05:04 +00:00
Sreeram Ramachandran
03666c705d Cleanup: Delete dead code.
Bug: 15413389
Change-Id: I315468832ef18ffc84174e54774ab63b86d284dc
2014-07-22 15:46:34 -07:00
Sreeram Ramachandran
a77760d74a Fix WiFi-Direct.
Add a new command to let netd know about routes on a p2p interface.

Bug: 15413694

Change-Id: I36effc438d5ac193a77174493bf196cb68a5b97a
2014-07-22 11:24:29 -07:00
Jeff Brown
970d4132ea Allow dreams to control screen state and brightness.
Added setDozeScreenState() and setDozeScreenBrightness() methods to
DreamService.  The values specified here only take effect once
startDozing is called and can be changed while dozing.

This required some significant rework of the display power controller
but the result seems quite nice and better represents the policy
we want to apply.

Changed the test dream a little bit to make it flash the screen
every minute using the new functions.

Bug: 15903322
Change-Id: I83bcc34503f1b87727d2b2b3c0ef08507f9f0808
2014-07-22 01:18:26 +00:00
Amith Yamasani
9c44933958 API Review: Improvements to RestrictionsManager API
Use an activity intent for local approval instead of a type.
Use PeristableBundle instead of Bundle.
Pass requestId as an explicit argument in cases where it's required.

Bug: 16400892
Change-Id: Id882033f17c39aa9cd63a7eeb73bb7b51f98cf5b
2014-07-22 00:03:39 +00:00
Jean-Michel Trivi
89c3b29a9b Rename USAGE_NOTIFICATION_TELEPHONY_RINGTONE
AudioAttributes: rename USAGE_NOTIFICATION_TELEPHONY_RINGTONE to
  USAGE_NOTIFICATION_RINGTONE in the list of usage values.
Temporarily keep the old definition to prevent transient build
  breakages, will be removed after telephony packages have been
  updated.

Bug 16401631

Change-Id: I9398443fd7ba3c30e9d371c5c5a2934b9ea6f30a
2014-07-20 20:58:47 +00:00
John Spurlock
7b41467704 Zen mode filtering should use new usage constants.
Refactor stream-based calls to usage-based calls.

Bug:15279516
Change-Id: I3f7757d8123c14670e2ad5f8e6aa4e9803efe7ec
2014-07-19 11:57:51 -04:00
Amith Yamasani
390989da19 Split telephony restrictions into outgoing calls and sms
DISALLOW_TELEPHONY renamed to DISALLOW_OUTGOING_CALLS and introduced
DISALLOW_SMS.

Outgoing emergency calls should always be permitted.

Change-Id: I0a38ef6e2df9dcf62d16fd93622ad61f4327614f
2014-07-17 12:14:52 -07:00
Julia Reynolds
38d3c26fd5 Merge "Update message on DISALLOW_REMOVE_USERS constant." into lmp-dev 2014-07-17 07:39:11 +00:00
Torne (Richard Coles)
08cfaf6726 Use the WebView's loader library to load the real library.
Load libwebviewchromiumloader and use it to load the real WebView
library, to enable sharing of the relro segment between different
application processes without requiring that the library be preloaded in
the zygote. A system service is added to track whether the relro segment
file has been prepared, and block loading of the library until it has
been.

Bug: 13005501
Change-Id: I846b37c7b8e2a4eb8a39e4fd455bccbb2048c173
2014-07-17 09:18:43 -07:00
Julia Reynolds
5b8224901b Update message on DISALLOW_REMOVE_USERS constant.
Change-Id: I4f873eba4082278553ded830bb902fb3a3195d87
2014-07-17 11:50:05 -04:00
Dianne Hackborn
fdb1956ff7 Fix issue #15681802: Missing RESET:TIME in complete battery histories
But wait, there's more!

- Keep track of sync durations in the aggregated stats.
- Add events for users that are running and in the foreground.
- Rework the activity manager's tracking of stuff using
  battery in the background to be based on proc stats, which
  allows it to be better about determing when it should reset
  its tracking of background work.
- Also add tracking of scheduled job execution, like we are
  doing for syncs.
- And once I started hooking battery stats in to
  JobSchedulerService, I found a few things I couldn't stop myself
  from changing: (1) make it very explicit that it doesn't start
  scheduling jobs until we have reached the point in system boot
  where third party apps are allowed to run, and (2) adjust
  the various for loops to not use iterators.

Change-Id: I69d812e27bcfee9e58a614f0f6b1c7545d7530b1
2014-07-15 14:48:48 -07:00
Ashish Sharma
213bb2fd4d Report wakelock time in checkin stats in ms. Bump version.
Change-Id: Icd5cebb3434572cb226ef018629fcfca8bfc08e8
2014-07-15 21:33:22 +00:00
Narayan Kamath
1dcdbb5af5 Merge "Unhide Build.SUPPORTED_ABIS and friends." 2014-07-10 20:16:40 +00:00
Narayan Kamath
1adf4002e7 Unhide Build.SUPPORTED_ABIS and friends.
Also deprecates Build.CPU_ABI and Build.CPU_ABI2.

bug: 15018047

Change-Id: If8bda8481b29442c0208ba8a72ec0037e813946c
2014-07-12 11:54:01 +01:00
Jeff Sharkey
a103114347 Package installation listener events.
Flesh out implementation of install session observers.  Carve out 20%
of published install progress for final system operations such as
dexopt, etc.

Add dumpsys output for active install sessions.  Create explicit
fsync() instead of overriding meaning of flush().  Hack to throw
IOExceptions over Binder calls.

Bug: 14975160, 15348430
Change-Id: I874457e40c45d2661bc0a526df9285ffea4bb77c
2014-07-12 21:12:25 -07:00
Sreeram Ramachandran
06b6cdaed5 Remove unnecessary code and APIs.
This stuff has been replaced by setNetworkForUser() in NetdClient.

Change-Id: If525ee259b74314191d1913f7c2a3e828e05c38f
2014-07-11 18:16:04 -07:00
Sreeram Ramachandran
31ab41726b Delete unused APIs in NetworkManagementService.
Change-Id: Idc6c0ac0d3a4149821fc7820b7f37d4209fc55d3
2014-07-11 15:47:51 -07:00
Dianne Hackborn
3c58775a12 Merge "Allow INTERACT_ACROSS_USERS for service access." 2014-07-10 20:49:26 +00:00
Dianne Hackborn
409297da18 Allow INTERACT_ACROSS_USERS for service access.
But only if the two users are in the same profile.  Also
apply the same rule for the recently allowed interaction
across content providers.

The activity manager now keeps track of which users are in
the same profile group, and the handleIncomingUser function has
an option to allow a non-full caller to do the interaction
if the two users are in the same profile group.

Spread this joy all over the place.

Also turn off multi-user on Svelte devices.

Change-Id: I231484ea2a6bfccbb3cd51357d7a387bd75039ea
2014-07-11 10:30:04 -07:00
Ashish Sharma
cba1215412 Correctly attribute User Activity to the uid in checkin batterystats.
Change-Id: Iacca5985c0b5a68026da6b2b5c9607f8cb71aad5
2014-07-10 22:45:22 +00:00
Paul Jensen
6bc2c2c34f Convert Vpn from NetworkStateTracker to NetworkAgent.
This eliminates the need for the ConnectivityService.VpnCallback class.
This requires shifting VPNs to the new "network" netd API.
VpnService.protect() is modified to no longer go through ConnectivityService.
NetworkCapabilities is extended to add a transport type for VPNs and a
capability requiring a non-VPN (so the default NetworkRequest isn't satisfied
by a VPN).

bug:15409918
Change-Id: Ic4498f1961582208add6f375ad16ce376ee9eb95
2014-07-10 20:39:33 +00:00
Colin Cross
0769e55001 android.os.Process: add killProcessGroup
Add Process.killProcessGroup to interface between ActivityManager and
libprocessgroup.

Bug: 15313911
Change-Id: I5226a6d86153b863e30d936cf1c84e256f0d7ea5
2014-07-10 18:08:08 +00:00
Dianne Hackborn
61659e5daa Add tracking of uid process states in battery stats.
We now keep track of how long each uid had processes in
various states: foreground, active, running.  This is based
on a collapse of the various activity manager process states
into these three bins.

You'll see these in a checkin like this:

8,10013,l,st,61504,61504,83109

Also fix issue #16021555: App showing up as on "top" even
when the screen is off.  This is "fixed" by just saying we
always report the current app at the top of the activity stack,
regardless of the state of the screen.

Change-Id: I1204904225101243eb00b43425d9806bffdd2ab9
2014-07-09 20:04:03 -07:00
Jeff Sharkey
ec55ef0934 Extend pm to support sessions and split APKs.
Separate commands to create an install session, stream files into the
staging area, and then commit the install.  Streaming can accept data
from stdin across adb, avoiding extra copy from push.

Extend FileBridge to support blocking close().  Always destroy
session regardless of result.

Bug: 14975160
Change-Id: Ic3f462e7d1901079b785e210228950cdfa676466
2014-07-09 16:55:56 -07:00
Julia Reynolds
fe05380984 Restrict factory reset with user restrictions.
Bug: 15985879
Change-Id: I524bd8a790798a85a679aa195e634f6e0227d09f
2014-07-09 11:52:42 -04:00
Jeff Sharkey
d746057f24 Change new file installs to be cluster-based!
Now that all the other pieces are in place, we're ready to start
installing new file-based packages as a cluster (the new unified
directory-based layout).  This greatly simplifies the renaming
process.

Also add helper methods to ApplicationInfo to give a much clearer
mapping between it and internal field names, since we can't change
the public API.

Add recursive restorecon().

Bug: 14975160
Change-Id: I72a63c5ddbc594c2fec4a91dd59f73ef253fbfd7
2014-07-08 00:38:57 -07:00
Jeff Sharkey
ece4b655dc Merge "Extract native code from split APKs." 2014-07-02 18:50:12 +00:00
Nick Kralevich
1a20216bb2 am 3e5f0229: am 58005ec5: am 3b345a6f: Merge "Fix javadoc typo in Message.java: "arg1" -> "arg2""
* commit '3e5f0229e10be4179f763efd6119b63bcea6d162':
  Fix javadoc typo in Message.java: "arg1" -> "arg2"
2014-07-05 16:46:11 +00:00
Nick Kralevich
3e5f0229e1 am 58005ec5: am 3b345a6f: Merge "Fix javadoc typo in Message.java: "arg1" -> "arg2""
* commit '58005ec545fd011418b6400a3b377fea6928c933':
  Fix javadoc typo in Message.java: "arg1" -> "arg2"
2014-07-05 16:40:59 +00:00
Jeff Sharkey
73767b9d60 Extract native code from split APKs.
In the new split APK world, multiple APKs work together to define a
single package.  This means that native code may be split among those
APKs.  To handle this, extend NativeLibraryHelper to examine all
APKs in a package ordered by splitName.

A package has valid native code as long as one matching ABI is found
inside.  The "best" ABI found across all APKs is picked for the
entire package.  No attempt is made to ensure that every native
library defined is available for the picked ABI; that's the
responsibility of the installer.

Re-introduce PackageLite to represent a lightweight parsing of an
entire package, which may be a single monolithic APK or a cluster
of one or more APKs.

Remove native code extraction from InstallerSession, since it'll be
handled inside PMS for this release.

Bug: 14975160
Change-Id: I4f4db0f82e88a46101c7777499ebc0a11fd911f9
2014-07-04 21:00:33 -07:00
Nick Kralevich
3b345a6f91 Merge "Fix javadoc typo in Message.java: "arg1" -> "arg2"" 2014-07-02 20:51:20 +00:00
Jeff Sharkey
57dcf5b177 Slow progress towards APK clusters.
Differentiate between "split APKs" and "cluster packages".  A cluster
package is a directory containing zero or more APKs (base+splits),
and a monolithic package is a single APK (base).

PackageSetting will use the directory name as its codePath, so track
the baseCodePath separately.  Clarify documentation in several
places.

Require that all installers provide file:// URIs through existing
hidden APIs; PackageInstaller hasn't been able to read content://
URIs for a long time.

Bug: 14975160
Change-Id: I1c6fed1b55205c2474b09871161a98a26669d22e
2014-07-02 19:03:54 -07:00
Jason Monk
1c7c319bb8 User restriction for disallowing window creation
Block any types of windows that could by used by apps to create
views on top of a locked app.  This can be used by device admins
in conjunction with lock task mode.

Added a way for system (and priv apps) to bypass user restrictions
for specified op codes.

Bug: 15279535
Change-Id: I2381530ef6226a5bb32a99bb4030baafb39bf564
2014-07-02 09:02:46 -04:00
Dianne Hackborn
abc7c49913 Issue #15986092: Add power tracking of flashlight.
Not yet hooked up.

Change-Id: Id95e44ecc365e9f38169c0a629b0a48ddb29aa06
2014-07-01 10:02:45 -07:00
Narayan Kamath
aeaf87fe45 Update javadoc for android.os.Bundle.
Call out the fact that defaultValue is returned if a null
mapping exists for a given key.

bug: https://code.google.com/p/android/issues/detail?id=68453

(cherry picked from commit ca2197b045)

Change-Id: Iec70478ae091bb222be6e9ef9726c817395e9e23
2014-07-01 09:03:10 +00:00
Amith Yamasani
e4afaa3a3d Store and retrieve default Guest settings
Save the default guest restrictions for use when a guest is created.

Bug: 15761405
Change-Id: I28db7d823944b0b47527a4909c10cc856c842a62
2014-07-01 10:29:46 +05:30
Dianne Hackborn
cb3ed1dc28 Add new sendingUid field to Message.
This tell you where the message came from when it was
delivered through a Messenger.

Change-Id: I86a5f521c8ae919b45872dd76b61e83447f397ab
2014-06-28 14:26:02 -07:00
Narayan Kamath
816cff12e1 am c141ae54: am 989ab6d3: Merge "Update javadoc for android.os.Bundle."
* commit 'c141ae547e9b295ce9013591a6fbb902b0e40073':
  Update javadoc for android.os.Bundle.
2014-06-24 10:18:23 +00:00
Narayan Kamath
b3af535ade resolved conflicts for merge of 816cff12 to master
Change-Id: I33990232771138dcf91f55c7cde6bbfe40612b8f
2014-06-24 13:02:49 +01:00
Dianne Hackborn
3251b90752 Add some wifi tracking to battery stats.
Now track supplicant state and wifi signal strength.
Output looks like this:

         +12m45s235ms (1) 095 +wifi_full_lock +wifi_running wifi_signal_strength=3 wifi_suppl=scanning
         +12m46s095ms (1) 095 -wifi_full_lock wifi_suppl=associated
         +12m46s469ms (2) 095 wifi_suppl=completed +proc=u0a74:"com.google.android.videos"
         +12m52s103ms (1) 095 +wifi_full_lock wifi_suppl=disconn

Also modify history dump so that when we hit a RESET or START
command, we clear our previous history data, so the next event
will include new data.  This means if you are scanning through
the output, you must at this point clear any binary stats you
have like "running" or "wake_lock" or else you will continue to
think they are on until whatever point later they get turned on
and then back off.

And a small bug fix in proc stats that would cause the system
process to crash.

Change-Id: Ibec416a1ef786d428bd0d1d86e6e3296c41f7648
2014-06-20 16:01:21 -07:00
Narayan Kamath
ca2197b045 Update javadoc for android.os.Bundle.
Call out the fact that defaultValue is returned if a null
mapping exists for a given key.

bug: https://code.google.com/p/android/issues/detail?id=68453
Change-Id: Ifa6e94c1dee47809f70cadcb668cb98cb8dbef14
2014-06-19 10:46:00 +01:00