Commit Graph

945 Commits

Author SHA1 Message Date
Jeff Sharkey
4b12171c64 Merge "Update Environment fallback defaults." 2012-04-18 12:23:54 -07:00
Craig Mautner
a51a9564fd Add call-stack reporting methods into Debug
Added two public methods to Debug. These methods return a String
indicating the caller (getCaller()) or callers (getCallers(int depth))
of the calling method. The String indicates the class, method and line
number of the caller(s). Similar to using Throwable.fillInStackTrace()
but much more concise.

Change-Id: I53d0085aa50e4501d28e8eb3ad5b91ef700ac218
2012-04-17 17:25:50 -07:00
Jeff Sharkey
e704a15bbf Update Environment fallback defaults.
Change-Id: Ia385b03023e38c01546e57635ccf9b29d017220a
2012-04-17 16:28:44 -07:00
Chris Craik
192a65e9f6 Add webview tracing bit
Change-Id: I7e292cf780fa2e59f183debb0e7e2bc61f27543d
2012-04-16 16:08:40 -07:00
Jeff Brown
a47425a13c Add support for input devices that have vibrators.
Added a getVibrator() method to InputDevice which returns a Vibrator
associated with that input device.  Its uses the same API as the
system vibrator which makes it easy for applications to be modified
to use one or the other.

Bug: 6334179
Change-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e
2012-04-13 17:01:15 -07:00
Jeff Brown
c2346134bb Extract Vibrator implementation from interface.
Moved the core logic of Vibrator into SystemVibrator, potentially
allowing for the creation of other Vibrator subclasses.

Fixed several places where we were creating new Vibrator
instances unnecessarily instead of getting it from the Context.

It is safe to make Vibrator abstract because its constructor
was hidden from the SDK so it was not possible to subclass it.

Bug: 6334179
Change-Id: I18ece6544c26a7efb2d5099f8346a10aef8a5e18
2012-04-13 04:05:17 -07:00
Romain Guy
8f3b8e3299 Allow fine-grained control over functors execution
Adds non-drawing execution mode

Change-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf
2012-04-02 15:15:07 -07:00
Jeff Sharkey
0c44525a48 Merge "Copy EXTRA_STREAM into ClipData and grant." 2012-03-23 17:09:13 -07:00
Jeff Sharkey
678d04f1b6 Copy EXTRA_STREAM into ClipData and grant.
When sending SEND or SEND_MULTIPLE intents, copy any EXTRA_STREAM
Uris to ClipData and set GRANT_READ_URI_PERMISSION flag.

Bug: 6216357
Change-Id: I3c9b0d1d4b7e0c4655b47c4192150b0c3641e0e8
2012-03-23 15:45:37 -07:00
Amith Yamasani
ad812a23df Merge "Package restrictions per user" 2012-03-22 15:11:51 -07:00
Jeff Sharkey
8a8b581e66 Move network policy to per-appId (instead of UID).
To support multi-user, store network policy per-appId and expand to
apply rules to all UserInfo on device.

Bug: 6140462
Change-Id: Ic0866b4d41c8c60cc1c0a597f0de927b92b65b1e
2012-03-22 11:02:43 -07:00
Amith Yamasani
483f3b06ea Package restrictions per user
Packages can be enabled/disabled per user.
This requires maintaining stopped/launched states and
enabled / disabled components and packages per user.

Refactored pm.Settings and PackageSettingsBase to keep
track of states per user.

Migrated the stopped-packages.xml to users/<u>/package-restrictions.xml

Changed intent resolution to handle individual user restrictions.
Bunch of IPackageManager calls now have a userId argument.
Make AppWidgetService handle removals of packages.

Added some tests for pm.Settings and PackageManager.

Change-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861
2012-03-22 10:08:24 -07:00
Kenny Root
ab750c5e29 Merge "Add VPN UID to list in Process" 2012-03-19 17:26:23 -07:00
Kenny Root
26993b37d5 Add VPN UID to list in Process
The VPN user ID is defined in android_filesystem_config.h as 1016. Add
it to android.os.Process so it can be referred to in Java code.

Change-Id: If3da3765747afda4e5e0761e289c45eebc7cddd5
2012-03-19 15:07:53 -07:00
Jeff Sharkey
3761f33387 Move StrictMode timers to postAtFrontOfQueue().
StrictMode posts a message to estimate how long the main thread was
blocked during a violation.  Currently, any pending messages are
counted against the violation.  To avoid this, switch to using
postAtFrontOfQueue().

Bug: 6119289
Change-Id: I94530632ca678b78b75a698cf9193641b102be9a
2012-03-16 15:46:46 -07:00
Jeff Brown
a8c67eb904 Merge "Add Java wrappers for new atrace functionality." 2012-03-12 13:25:27 -07:00
Jeff Brown
481c1570dc Add Java wrappers for new atrace functionality.
Instrument a few parts of the input dispatcher and the
view hierarchy.

Change-Id: I49285c9fb3502253baa1ffed60f521b8c24fccaf
2012-03-09 15:43:50 -08:00
Ken Wakasa
f76a50ce8f Fix obvious typos under frameworks/base/core
Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
2012-03-09 22:48:43 +09:00
Jeff Sharkey
047238ced4 Switch Parcel to static JNI calls, pass pointer.
Instead of using parcelForJavaObject(), pass down the mNativeObj
pointer explicitly.  Benchmarks show that writeInt() is roughly 3x
faster with this approach.

Change-Id: I24ca235c334c44be716070aa8066ec8a429eadb7
2012-03-08 18:29:03 -08:00
Jeff Sharkey
061ccee7f3 Merge "Deprecate some FileUtils, pointing to Os instead." 2012-03-08 16:29:54 -08:00
Jeff Sharkey
929b5899a3 Deprecate some FileUtils, pointing to Os instead.
Change-Id: I5d306784ea924ffd8c32c4768f975190445932a4
2012-03-08 14:31:57 -08:00
Dirk Dougherty
e61cad321d resolved conflicts for merge of 532679a5 to master
Change-Id: Id60d047c0e1f288acff97526c016cca632873b6b
2012-03-07 16:58:03 -08:00
Dirk Dougherty
4d7bc65538 Doc change: String changes for Android Market
Change-Id: I823812a4fd24021bec906ad856479c92a8d2a759
2012-03-05 22:02:35 -08:00
Dianne Hackborn
6569625bee Fix issues #6103378 and #5959515.
Change-Id: I762d86dd7119c9ac02f4b8803c4a250c6b7637c7
6103378: APR: IOOBE at android.content.pm.PackageParser.generatePackageInfo(
    PackageParser.java:355)
5959515: PackageManager doesn't validate className in setComponentEnabledSetting
2012-03-05 18:49:21 -08:00
Jeff Sharkey
09c8f48c10 Merge "Report leaked Context registrations to StrictMode." 2012-03-05 10:49:11 -08:00
Jeff Sharkey
eb00769e89 Merge "Allow disk I/O while performing dump()." 2012-03-02 18:07:35 -08:00
Jeff Sharkey
e861b42379 Allow disk I/O while performing dump().
Add Closeable to ParcelFileDescriptor, and always close any incoming
PFDs when dumping.

Bug: 6106309
Change-Id: I25b465692d5e1da0a5980a307cb48a058bc2bca7
2012-03-02 12:31:27 -08:00
Jeff Sharkey
d7026f1612 Report leaked Context registrations to StrictMode.
When tearing down any leaked BroadcastReceiver or ServiceConnection
Context registrations, report through StrictMode.

Bug: 6084353
Change-Id: I5e78039299e2c9c1440cd1fd09317da78ffee82a
2012-03-01 21:10:05 -08:00
Jeff Brown
b1ec5ef460 Shouldn't catch Throwable in AsyncTask.
Throwable includes classes of Error that really should be fatal.

Bug: 5945222
Change-Id: I602f958396048451f404dd2306cdf5e57172acf0
2012-03-01 16:33:04 -08:00
Christopher Tate
8662cab5c6 Merge: Introduce UpdateLocks
An "UpdateLock" works similarly to a wake lock in API: the caller is
providing a hint to the OS that now is not a good time to interrupt
the user/device in order to do intrusive work like applying OTAs.
This is particularly important for headless or kiosk-like products
where ordinarily the update process will be automatically scheduled
and proceed without user or administrator intervention.

UpdateLocks require that the caller hold the new signatureOrSystem
permission android.permission.UPDATE_LOCK.  acquire() and release()
will throw security exceptions if this is not the case.

The "is now convenient?" state is expressed to interested parties
by way of a sticky broadcast sent only to registered listeners.  The
broadcast is protected; only the system can send it, so listeners
can trust it to be accurate.  The broadcast intent also includes a
timestamp (System.currentTimeMillis()) to help inform listeners that
wish to implement scheduling policies based on when the device became
idle.

The API change here is a tiny one: a dump(PrintWriter) method has been
added to the TokenWatcher class to facilitate getting information out
of it for dumpsys purposes.  UpdateLock itself is still @hide.

Bug 5543442

Change-Id: I3709c831fc1883d7cb753cd2d3ee8e10a61e7e48
2012-02-29 14:05:24 -08:00
Todd Poynor
94d0024557 Power HAL PowerManagerService hookup
Use PowerHAL to set system awake/suspend state.

Change-Id: If58a6f548564ea141b68f304455997d9ff04eace
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2012-02-17 22:19:45 -08:00
Jeff Brown
aa917f8522 Merge "Improve MessageQueue sync barrier implementation." 2012-02-16 19:49:03 -08:00
Jeff Brown
0f85ce3837 Improve MessageQueue sync barrier implementation.
Instead of acquiring and releasing a barrier using an up/down
counter, we post a message to the queue that represents the
barrier.  This is a more natural representation of the barrier
and better matches what we want to do with it: stall messages
behind the barrier in the queue while allowing messages earlier
in the queue to run as usual.

Refactored the MessageQueue a little bit to simplify the quit
logic and to better encapsulate the invariant that all
messages within the queue must have a valid target.  Messages
without targets are used to represent barriers.

Bug: 5721047
Change-Id: Id297d9995474b5e3f17d24e302c58168e0a00394
2012-02-16 14:58:33 -08:00
John Grossman
37237839e8 Add Java interfaces to the common_time services.
Add classes to handling binder marshalling to and from the native
common_time interfaces (config and clock)

Change-Id: I04fc429d9af27736c4f7f9b5468011ffdd4d7eaa
Signed-off-by: John Grossman <johngro@google.com>
2012-02-16 13:45:10 -08:00
Jeff Brown
e799cb78b4 Add a barrier mechanism to the MessageQueue.
The synchronization barrier enables selectively blocking
execution of synchronous messages until the barrier is released.
Asynchronous messages may continue running in the meantime.

The barrier is intended to be used to implement more sophisticated
scheduling policies related to view hierarchy traversals.  While
traversals are pending, most messages posted to the message queue
must be held up.  This is to satisfy the invariant that traversals
will occur before subsequently posted messages are handled.

The exception to this rule are "asynchronous" messages that represent
external events or interrupts that come from other components such
as VSYNC pulses, input events or sensor events.  Because these messages
are typically delivered at arbitrary times, they are independent of
traversals or other typical synchronization boundaries.

Messages can now be flagged as asynchronous to indicate that they
are weakly ordered.

Bug: 5721047
Change-Id: I1446dcfbc896f33b48355adc28967ace8c8c9b9b
2012-02-14 19:27:15 -08:00
Amith Yamasani
f0451db422 Merge "Multi-user - wallpaper service" 2012-02-10 14:34:52 -08:00
Amith Yamasani
37ce3a8af6 Multi-user - wallpaper service
- Allow each user to have their own wallpaper (live or static).
- Migrate old wallpaper on upgrade.
- Update SystemBackupAgent to backup/restore from primary user's
  new wallpaper directory.

Reduce dependency on Binder.getOrigCallingUser() by passing the
userId for bindService.

Change-Id: I19c8c3296d3d2efa7f28f951d4b84407489e2166
2012-02-10 14:34:07 -08:00
Mike Lockwood
cba928cef7 SystemServer: Add support for disabling AudioService and MountService
Using the same convention in system_init.cpp, you can disable these
services by setting system properties:

	system_init.startaudioservice=0
	system_init.startmountservice=0

Signed-off-by: Mike Lockwood <lockwood@android.com>
2012-02-10 12:02:04 -08:00
Dianne Hackborn
21fbd1f7da Some cruft removal.
Change-Id: If4a94bfd4a033748eb13e8f3ff25e24382746778
2012-02-10 10:54:15 -08:00
Dianne Hackborn
a573f6a1d9 Some hardening of isolated processes by restricting access to services.
Services now must explicitly opt in to being accessed by isolated
processes.  Currently only the activity manager and surface flinger
allow this.  Activity manager is needed so that we can actually
bring up the process; SurfaceFlinger is needed to be able to get the
display information for creating the Configuration.  The SurfaceFlinger
should be safe because the app doesn't have access to the window
manager so can't actually get a surface to do anything with.

The activity manager now protects most of its entry points against
isolated processes.

Change-Id: I0dad8cb2c873575c4c7659c3c2a7eda8e98f46b0
2012-02-09 18:06:01 -08:00
Dianne Hackborn
a0c283eac3 Add new feature for running services in "isolated" sandbox processes.
This reserves a range of uids (for each user) in which these processes
run.  These uids are not associated with an application, so they
effectively run with no permissions.  When a Service requests to
run in such a process through android:isolatedProcess="true", each
time it is brought up a new isolated process is started with its
own unique uid.

What we have so far gives us the basic infrastructure; more work
remains to further lock down what these uids have access to.

Change-Id: Ibfd27c75619cba61f528f46ede9113f98dc5f45b
2012-02-09 11:18:33 -08:00
Amith Yamasani
742a671273 Multi-user - 1st major checkin
Switching activity stacks
Cache ContentProvider per user
Long-press power to switch users (on phone)

Added ServiceMap for separating services by user
Launch PendingIntents on the correct user's uid
Fix task switching from Recents list
AppWidgetService is mostly working.

Commands added to pm and am to allow creating and switching profiles.

Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
2012-02-03 12:01:47 -08:00
Romain Guy
5e9120d4ad Always initialize AsyncTask on the main thread.
Change-Id: I039e5d6cb7157a0c8873e0d29161daf1cbda5577
2012-01-30 14:11:44 -08:00
Dianne Hackborn
81e9276a47 Added JELLY_BEAN version name; update some targetSdkVersion docs.
Change-Id: Ia38ff5b9ad2b63c2cf667260881222d9ff168052
2012-01-25 11:16:57 -08:00
Dianne Hackborn
d9ea468d6a New brightness setting to adjust auto-brightness mode.
Change-Id: Icfec22be99d8c79e9ff5720b80fb9dacbba36134
2012-01-23 12:01:00 -08:00
Glenn Kasten
a7f6562065 Merge "Add android.os.Process.setThreadScheduler" 2012-01-17 07:20:47 -08:00
Jeff Sharkey
7f97e65add Clear reply before writing exception.
Changes Binder.execTransact() to clear any partial reply before
writing the exception.  Specifically, this fixes case where an
onTransact() could leave a writeNoException() floating in the reply.

Bug: 5686023
Change-Id: Ibc944464a010f5ec2fd8ef3cc84ac23d8260a491
2011-12-14 18:07:54 -08:00
Joe Malin
84a0060ea1 am bea42859: am aa2719df: am 3937e055: Merge "DOC CHANGE: Add text for android.os.storage" into ics-mr0
* commit 'bea4285934b4cd5bab21f7c69ac82d871b6ee05f':
  DOC CHANGE: Add text for android.os.storage
2011-12-07 17:17:09 -08:00
Joe Malin
aa2719df72 am 3937e055: Merge "DOC CHANGE: Add text for android.os.storage" into ics-mr0
* commit '3937e055708a8618f184feab204fed4bb41f3f6e':
  DOC CHANGE: Add text for android.os.storage
2011-12-07 17:11:59 -08:00
Joe Malin
13235db8f7 DOC CHANGE: Add text for android.os.storage
Change-Id: Ia5785cff3860907af4c53cbe769126496ee338c3
2011-12-07 15:50:34 -08:00