Commit Graph

1235 Commits

Author SHA1 Message Date
Dianne Hackborn
2323dd8d1e Fix issue #7691456: adbd CPU usage identified as Bluetooth in battery stats
Bluetooth GID was wrong and pointless and dumb and now gone.

Change-Id: Ibde563ef0c10c6d316428e1e683b013005b934d4
2013-04-10 12:50:12 -07:00
Jamie Gennis
f9c7d6bc15 Add APIs for application-generated systrace events
This change adds new APIs to enable applications to generate custom Systrace
begin/end events.  Application-generated events use the ATRACE_APP_TAG tag,
which is enabled only if either the application has declared itself debuggable
in its manifest or ro.debuggable is set to 1 on the device.

Change-Id: I311d09e2e6ed1a30f5ffa84907f250e11cc0d48d
2013-04-09 11:59:43 -07:00
Jeff Brown
3a2854bcee Merge "Queues, queues, queues and input." into jb-mr2-dev 2013-04-08 23:59:24 +00:00
Jeff Brown
f9e989d5f0 Queues, queues, queues and input.
Redesigned how ViewRootImpl delivers input events to views,
the IME and to native activities to fix several issues.

The prior change to make IME input event delegation use
InputChannels failed to take into account that InputMethodManager
is a singleton attached to the main looper whereas UI may be
attached to any looper.  Consequently interactions with the
InputChannel might occur on the wrong thread.  Fixed this
problem by checking the current thread and posting input
events or callbacks to the correct looper when necessary.

NativeActivity has also been broken for a while because the
default event handling logic for joysticks and touch navigation
was unable to dispatch events back into the native activity.
In particular, this meant that DPad synthesis from touch navigation
would not work in any native activity.  The plan is to fix
this problem by passing all events through ViewRootImpl as usual
then forwarding them to native activity as needed.  This should
greatly simplify IME pre-dispatch and system key handling
and make everything more robust overall.

Fixed issues related to when input events are synthesized.
In particular, added a more robust mechanism to ensure that
synthetic events are canceled appropriately when we discover
that events are no longer being resynthesized (because the
application or IME is handling or dropping them).

The new design is structured as a pipeline with a chain of
responsibility consisting of InputStage objects.  Each InputStage
is responsible for some part of handling each input event
such as dispatching to the view hierarchy or to the IME.
As a stage processes an input event, it has the option of
finishing the event, forwarding the event to the next stage
or handling the event asynchronously.  Some queueing logic
takes care to ensure that events are forwarded downstream in
the correct order even if they are handled out of order
by a given stage.

Cleaned up the InputMethodManager singleton initialization logic
to make it clearer that it must be attached to the main looper.
We don't actually need to pass this looper around.

Deleted the LatencyTimer class since no one uses it and we have
better ways of measuring latency these days using systrace.

Added a hidden helper to Looper to determine whether the current
thread is the indicated Looper thread.

Note: NativeActivity's IME dispatch is broken by this patch.
This will be fixed later in another patch.

Bug: 8473020
Change-Id: Iac2a1277545195a7a0137bbbdf04514c29165c60
2013-04-08 15:31:47 -07:00
Jeff Brown
4a706bc6f1 Merge "Correctly manage the lifecycle of IME InputChannels." into jb-mr2-dev 2013-04-05 20:57:01 +00:00
Jeff Brown
1951ce86c2 Correctly manage the lifecycle of IME InputChannels.
InputChannels are normally duplicated when sent to a remote process
over Binder but this does not happen if the recipient is running within
the system server process.  This causes problems for KeyGuard because the
InputMethodManagerService may accidentally dispose the channel
that KeyGuard is using.

Fixed the lifecycle of InputChannels that are managed by the IME
framework.  We now return a duplicate of the channel to the application
and then take care to dispose of the duplicate when necessary.
In particular, InputBindResult disposes its InputChannel automatically
when returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE).

Bug: 8493879
Change-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79
2013-04-04 22:45:12 -07:00
Ying Wang
0fa30372c7 Fix doc build.
Change-Id: I954a45866d968b0571040ba99cc93b818d02aeb5
2013-04-03 22:57:31 -07:00
Jeff Sharkey
a14acd20b8 Warn when exposing file:// Uris beyond a process.
Check for file:// Uris inside Intents, ClipData, Notifications and
RemoteViews when StrictMode option is enabled.

Also introduces Intent.prepareToLeaveProcess() to uniformly handle
Intents about to leave an app process.

Bug: 8529070
Change-Id: I8efb43877cbc5f21eb029fc6492b3ee1415059ef
2013-04-03 11:45:44 -07:00
Jeff Brown
67fc67cf3e Make MessageQueue and Looper final.
Applications already cannot subclass these classes because
their constructors are not visible.

Change-Id: Id979d86dd05f7bcc888fe4ea499ab9b95d3d5dde
2013-04-01 14:27:57 -07:00
Amith Yamasani
27db46850b Block access to accounts for limited users.
Make sure that apps that have access to restricted accounts can see them.
If they don't have access, they shouldn't be able to add a new account either.
Show an error message in the account picker if the user/app is not authorized.

Change-Id: I117c0b14d7d06c5ac4e66506df156b174567f5f3
2013-03-30 18:25:49 -07:00
Maggie Benthall
c92342bb01 Merge "Add user restrictions for bluetooth, sideloading, usb file transfer" into jb-mr2-dev 2013-03-28 19:15:46 +00:00
Robert Greenwalt
665e1aed5e Add BT - DataTracker connection
Allows the external BT stack the means to communicate with
ConnectivityService during reverse tethering.

bug:8445208
Change-Id: Ice7dfb0b50c9481d359aed14a51372878185171c
2013-03-27 15:45:12 -07:00
Maggie Benthall
a12fccf57d Add user restrictions for bluetooth, sideloading, usb file transfer
Created constants for these in UserManager and current.txt. Also created
an accessor for individual user restrictions that takes the restriction key
(removing individual methods for particular restrictions).

Change-Id: Ibb5517cbcdffadd3925f52cbe67d7d525813faa9
2013-03-27 18:14:29 -04:00
Amith Yamasani
ca050adc13 Fix docs build.
Change-Id: I959db164f0ed7badfcdf921ffa1bfff60b4fb952
2013-03-26 16:19:46 -07:00
Amith Yamasani
df5e9fe181 Merge "Device Owner, a special kind of device admin" into jb-mr2-dev 2013-03-26 22:27:13 +00:00
Amith Yamasani
71e6c697e5 Device Owner, a special kind of device admin
A Device Owner cannot be uninstalled and is available to all users. It must
be registered before the device_provisioned flag is set.

Device admins can be disabled until used, but visible to device policy
manager, so that users wont be bothered with update requests.

Opened up a few related APIs for use by a system-installed Device Owner.

Change-Id: I847b5fe68c0f724863f778a67602b5bddc79d8e5
2013-03-26 15:09:08 -07:00
Michael Wright
c8ee44d4b6 Remove misleading documentation from SystemClock
Change-Id: Ic97f911dca5c2b8911a4b2c670c4c79578f2cec0
2013-03-22 17:55:14 -07:00
Amith Yamasani
df2e92a535 Application restrictions API
Adds the ability for apps to export some restrictions. The restrictions
are presented in Settings based on the restriction type. The user's
selections are stored by UserManagerService and provided to the
target user's application as a list of RestrictionEntry objects which
contain the key, value(s).

Also introduce a manifest entry for system apps to request that the
app be automatically installed in all users, so that they cannot be
deselected by the owner user.

Shared account filtering for non-whitelisted apps.

Change-Id: I15b741e3c0f3448883cb364c130783f1f6ea7ce6
2013-03-20 22:29:59 -07:00
Jeff Sharkey
d9526907d1 Move deleteOlderFiles() to framework, tests.
Supports both age and count based constraints.  Added light docs and
tests to verify behavior.

Bug: 8387555
Change-Id: If4d0dac8bc54ce705c2a339bc09a60ea748728b8
2013-03-14 15:04:12 -07:00
Scott Kennedy
8ad7fbae87 Specify the size of the Map in the constructor
Change-Id: Ie3325f387cec72216cb70c1b764370e6f3dd1a3e
2013-03-05 19:46:43 -08:00
Jeff Sharkey
2e0da1ea5f Merge "Improve performance of storage measurement." into jb-mr2-dev 2013-03-02 06:14:51 +00:00
Jeff Sharkey
63d0a06799 Improve performance of storage measurement.
When calculating directory sizes of data living on emulated external
storage, translate the path to use the internal backing data, which
avoids going through the emulation layer.  It carefully retreats to
the original path when it runs into trouble.

Testing with a hierarchy of 10 directories deep and 2 directories
and 10 files wide at each level, this change improves performance
from 5900ms before to 250ms after; over 20 times faster (!).

Bug: 8172425
Change-Id: Ia7365416f091e102bf7345a49f7d7209a22580a9
2013-03-01 16:36:52 -08:00
Lorenzo Colitti
79751848d1 Expose clatd commands to NetworkManagementService.
For now, we only support running one clat at a time. This is
enforced by the netd ClatdController code.

Bug: 8276725
Change-Id: I8a50305f9182f4da0f80716081211625a0202583
2013-02-28 16:33:48 +09:00
Ian Rogers
7e112d51c4 am 14d0ab55: am de3c20bc: Merge "Track stack memory in MemoryInfo."
* commit '14d0ab55e983d314128bb7b3293023f4a237d991':
  Track stack memory in MemoryInfo.
2013-02-27 20:09:25 +00:00
Ian Rogers
7c9f30bfb3 Track stack memory in MemoryInfo.
In /proc/pid/maps the main stack is identified as "[stack]". In Linux 3.4
thread stacks are identified as "[stack:<tid>]" where <tid> is the thread ID of
the thread using that stack. Add support in MemInfo's otherStats to track
memory being used by the stack.

Add sanity check on the length of the otherStats array.
Add detail messages to two null pointer exceptions.

Bug: 8265251

Change-Id: I2b228b147da9bdc5c7a4d825dfc628fcc7923927
2013-02-27 11:34:42 -08:00
Ian Rogers
0493d7997e am 75dcb333: am 545464df: Merge "Deprecate and document memory allocation counting."
* commit '75dcb3338d85d12991249598e1ed407c8a6be1eb':
  Deprecate and document memory allocation counting.
2013-02-27 16:53:20 +00:00
Ian Rogers
fe067a4cc5 Deprecate and document memory allocation counting.
Bug: 8241521
Change-Id: I174c4024600c5b78e74030ecc99e784a98295f09
2013-02-26 13:30:08 -08:00
Dianne Hackborn
4b141acde0 Merge "Add Bundle APIs for putting/getting Binder objects." into jb-mr2-dev 2013-02-26 18:10:32 +00:00
Dianne Hackborn
3cbdddbd5c Add Bundle APIs for putting/getting Binder objects.
This is really useful for certain cases, you just need
to be thoughtful and careful about what you are doing.

Change-Id: I314592480e447a6d8346f5089fade35da50b3510
2013-02-25 18:37:18 -08:00
Dianne Hackborn
035045f8bb Merge "Add version code constant for JB MR2." into jb-mr2-dev 2013-02-25 23:56:38 +00:00
Dianne Hackborn
45e9ede55f Add version code constant for JB MR2.
Change-Id: I60fc76bbeb3c5e85d716179e9e3ea5758bafaf69
2013-02-25 15:55:37 -08:00
Maggie Benthall
6794458f86 Add location sharing toggle user restriction.
And add support for respecting it.

Change-Id: Ia5cf9134c5f5741c3f55afadbe54f862da7bfe5b
2013-02-25 12:45:14 -05:00
Jeff Sharkey
be72215c39 Better API for low disk space warnings.
Provides uniform interface to ask about low disk thresholds; can
be mocked by other tests.  Opens door to adjust thresholds based on
disk type.

Switch monitor service to using new API, and use filesystem paths
from Environment instead of hard-coding.

Change-Id: Ifdb536e36a453f1b67bc65849037ec3cc0232cf2
2013-02-15 16:59:55 -08:00
Jeff Sharkey
b65ce57675 Expose longer statfs values, add derived values.
Since fsblkcnt_t is 8 bytes, provide methods to access larger value
instead of casting to int.  This would start being an issue around
8TB filesystems.

Also add convenience methods to calculate values in bytes.

Change-Id: Ib924425d8d6d82785466f611ca71800cc1e952b6
2013-02-13 18:40:35 -08:00
Amith Yamasani
636c61ed41 Merge "Starting point for User Restrictions API" 2013-02-11 23:17:07 +00:00
Amith Yamasani
e4cf73437a Starting point for User Restrictions API
Restrictions saved as key/value pairs, mostly booleans right now
but might be expanded to other types later.

Save and restore restrictions in the user manager service.
Enforce some of the restrictions at the framework level. Some
are enforced (also) at the app level, such as in Settings.

Change-Id: Id11ffe129cb6a177e094edf79635727388c26f40
2013-02-08 15:52:47 -08:00
Robert Greenwalt
034170cd4c Merge "Second pass tying into dns cache per interface" 2013-02-07 19:02:47 +00:00
Mattias Falk
8b47b3601f Second pass tying into dns cache per interface
Set dns servers for secondary nets and attach the
processes (pids) that are using the secondary nets
to the secondary nets associated dns cache.

bug:5465296
Change-Id: I1eaf92d5c6b81d287e9fb2763b3d972d9de34395
2013-02-06 17:43:28 -08:00
Mathias Agopian
33c239f748 Merge "allow the framework to access a Sensor's handle" 2013-02-06 01:14:22 +00:00
Mathias Agopian
7f84c065fa allow the framework to access a Sensor's handle
this is needed in another CL to fix an issue where
sensors power usage is always reported as 0.

Change-Id: Ie496b98bf4b7e69911bdc99bee14cc924e1d71e8
2013-02-04 19:22:47 -08:00
Dianne Hackborn
f265ea9d83 App ops: vibration, neighboring cells, dialing, etc.
Improve handling of vibration op, so that apps are
better blamed (there is now a hidden vibrator API that
supplies the app to blame, and the system now uses this
when vibrating on behalf of an app).

Add operation for retrieving neighboring cell information.

Add a new op for calling a phone number.  This required
plumbing information about the launching package name through
the activity manager, which required changing the internal
startActivity class, which required hitting a ton of code that
uses those internal APIs.

Change-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07
2013-02-01 15:14:29 -08:00
Jeff Brown
5988335aac Merge "Optimize Looper JNI code." 2013-01-29 02:14:21 +00:00
Jeff Brown
864693461b Optimize Looper JNI code.
Use static native methods.

Release the native looper objects as soon as the Looper quits
instead of waiting until the GC finalizer to take care of it.

Change-Id: I02783e48782a8f972ec2138862f700ade33d8e78
2013-01-28 14:25:53 -08:00
Dianne Hackborn
5e45ee6752 App ops: you can now turn off operations.
Also add new ops for calendar and wi-fi scans, finish
implementing rejection of content provider calls, fix
issues with rejecting location calls, fix bug in the
new pm call to retrieve apps with permissions.

Change-Id: I29d9f8600bfbbf6561abf6d491907e2bbf6af417
2013-01-25 11:25:48 -08:00
Robert Greenwalt
20da885caa Merge "Revert "Second pass tying into dns cache per interface"" 2013-01-19 00:36:12 +00:00
Robert Greenwalt
63837f455d Revert "Second pass tying into dns cache per interface"
This reverts commit f60f94a89e

Change-Id: If52dffd5100a6b03275da0eabfa05e24c5ecada9
2013-01-19 00:34:07 +00:00
Dianne Hackborn
d8e1dbb6bc Rework ParceledListSlice to be much easier to use.
Take advantage of this to return better information about
packages filtered by permissions -- include the permissions
they have in the requested array.

Also fix issue #8026793 (Contact picture shows default pic
while searching for a contact in qsb) by using the base
package name of the Context when reporting the app name
of an operation.  Otherwise you could make a resource-only
context for another application and do calls through that
and get reported as the wrong app.

Change-Id: I5e0488bf773acea5a3d22f245641828e1a106fb8
2013-01-18 13:02:26 -08:00
Jeff Sharkey
9e57c414f3 Add method to get process group.
Change-Id: Ia62223228a54a6a4e3cdfc5c2e8c73ee194e77ef
2013-01-17 14:12:49 -08:00
Robert Greenwalt
0f8d155363 Merge "Second pass tying into dns cache per interface" 2013-01-17 16:15:33 +00:00
Sasha Levitskiy
f849124b6b Merge "Removed Throttle Manager as obsolete" 2013-01-15 16:56:30 -08:00