Commit Graph

922 Commits

Author SHA1 Message Date
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
Dianne Hackborn
138d870fb7 am 1f1fa7ed: am fb90df8c: Merge "Truthiness is good." into ics-mr1
* commit '1f1fa7edd608137863b863da44ee26efb5a93e23':
  Truthiness is good.
2011-12-07 10:49:56 -08:00
Dianne Hackborn
478237db07 Truthiness is good.
Change-Id: Iedd4d4027576001fc5e829bb0a1023dd2aefce99
2011-12-05 18:15:17 -08:00
Romain Guy
fe0d3523a5 Merge "Make sure onPostExecute() is never called after cancel() Bug #5651553" 2011-12-05 14:50:54 -08:00
Romain Guy
657f51371c Make sure onPostExecute() is never called after cancel()
Bug #5651553

As dfined by the documentation.

Change-Id: I627a49ee000d6990b61fd64dde9b06f72cd5cbae
2011-12-05 14:49:33 -08:00
Dianne Hackborn
a2a56f82a8 am 48e07296: am bfb3dec2: Merge "More social integration." into ics-mr1
* commit '48e07296800c49f8bc9b34cc57372593021f79a1':
  More social integration.
2011-12-01 18:52:27 -08:00
Dianne Hackborn
a3d487cb13 More social integration.
Change-Id: I9be09e08bda5db6c05f5beabc380708a11ead43b
2011-12-01 18:42:24 -08:00
Nick Pelly
082ccca5ff am 4fb747f3: am 043a8b14: Merge "Replace vendor specific NfcGoogle.apk with generic Nfc.apk" into ics-mr1
* commit '4fb747f329523d6b3a7efc59a4360a249cdaa5ad':
  Replace vendor specific NfcGoogle.apk with generic Nfc.apk
2011-11-21 21:08:29 -08:00
Nick Pelly
a5cb9f4217 Replace vendor specific NfcGoogle.apk with generic Nfc.apk
The access control changes allow us to just use Nfc.apk with
the regular platform certificate, instead of the custom signed
NfcGoogle.apk. So we can compeltely get rid of vendor/google/apps/NfcGoogle
and just build it out of packages/apps/Nfc now.

The package name is also reverted from com.android.nfc3 to com.android.nfc

The NFC uid needs to get bumped (25 to 27) to allow the cert change.

Bug: 5608249
Change-Id: I09a81a896ff3cceb5a8de331d3399921b870932a
2011-11-21 14:55:29 -08:00
Jeff Brown
fe2d4abdd9 am 698d3de6: am e7de36e6: Merge "Throw TransactionTooLargeException when Binder transaction fails. Bug: 5578022" into ics-mr1
* commit '698d3de681bf85047675baa61f9b28961f3d6862':
  Throw TransactionTooLargeException when Binder transaction fails. Bug: 5578022
2011-11-10 16:14:43 +00:00
Jeff Brown
0bde66a837 Throw TransactionTooLargeException when Binder transaction fails.
Bug: 5578022

Previously, Binder transactions failed silently, which caused
problems because apps would carry on assuming that the operation
had succeeded.  Often, the apps would crash soon due to a violated
invariant, but sometimes they managed to do some damage first...

Change-Id: Ia9cc98b3b761a8160e7c4e87507860b5912c0451
2011-11-08 20:42:11 -08:00
Robert Greenwalt
08d153fb8e am fd900f05: am 348297ab: Merge "Start using IP tool for advanced routing." into ics-mr0
* commit 'fd900f05fb67046b97701f20626f7fd408fd8990':
  Start using IP tool for advanced routing.
2011-11-05 19:33:46 +00:00
Robert Greenwalt
fd900f05fb am 348297ab: Merge "Start using IP tool for advanced routing." into ics-mr0
* commit '348297abc0e03fb87a1d22465020b580d83fdd61':
  Start using IP tool for advanced routing.
2011-11-04 22:55:30 +00:00
Doug Zongker
e2d58e95a0 close input streams obtained from otacerts zip file
Quells a StrictMode warning from OTA verification.

Change-Id: Ie3e4c345551d1925fcc37c3ae9ce5c45713be93a
2011-11-04 14:11:12 -07:00
Robert Greenwalt
3b28e9a3da Start using IP tool for advanced routing.
bug:5495862
bug:5396842
Change-Id: I5e31b352b14a4dc746cacce4d61cf8d9ad7382a0
2011-11-04 09:52:04 -07:00
Christopher Tate
bc6f0ce8be Add persistent property to disable strict mode
Setting persist.sys.strictmode.disable to 'true' will disable strict
mode on eng/userdebug builds where it is turned on by default.
Explicitly enabling it in the Settings UI will override this, so
it's still possible to toggle it there even when this property
has been set on the device.

Change-Id: Ifd971f948fb2f803d509c2a06112c4bb932a5b1f
2011-11-03 13:16:27 -07:00
Dianne Hackborn
f35fe23669 Add new OOM adjustment for the "previous" process.
This is the process that you had previously been interacting with
in the UI before the current one.  Treating it specially should
allow us to improve the scenario of switching back and forth
between two apps.

Also add API constent for ICS MR1.

Change-Id: Ib3fe4df36b270be11dfd6b7e8d107c9994058a4d
2011-11-01 19:25:20 -07:00
Jeff Brown
bce4561708 resolved conflicts for merge of 2d280f75 to ics-mr1
Change-Id: I459e1cb0b60fb94dfb12862fedb9f8d949c226a7
2011-10-30 14:24:02 -07:00
Jeff Brown
89101cd9d9 Improve the slow query instrumentation.
On user-debug and eng builds, you can set the
"db.log.slow_query_threshold" system property to queries that
take longer than the specified number of milliseconds.
Set it to 0 to log all queries.

This property has been around for a while but it was implemented
poorly.  In particular, it *changed* the behavior of the query
by calling getCount() while holding the Db connection.
In normal operation, the query will not actually run until later.

By putting the timing logic into fillWindow() instead, we ensure
that we only measure queries that actually ran.  We also capture
cases where the cursor window gets filled multiple times.

Bug: 5520301
Change-Id: I174f5e1ea15831a1d22a36e9a804d7755f230b38
2011-10-28 14:58:39 -07:00
Michael Chan
cf0ca99a22 Fix typos
Change-Id: I6406b33f52bd8fb126a9b346d1bfe30ca2c2144b
http://code.google.com/p/android/issues/detail?id=14614
http://code.google.com/p/android/issues/detail?id=3563
http://code.google.com/p/android/issues/detail?id=5960
2011-10-20 15:32:37 -07:00
Dianne Hackborn
3585a3dfc6 am 47f8367a: Merge "Work on issue #5465917: Wakelock *overflow* held for very long times" into ics-mr0
* commit '47f8367ab79247501d5d204632a7797fa8a888e5':
  Work on issue #5465917: Wakelock *overflow* held for very long times
2011-10-19 11:10:18 -07:00
Dianne Hackborn
c24ab866b0 Work on issue #5465917: Wakelock *overflow* held for very long times
- Fix ordering problem in sync manager that would cause its wake
  locks to slightly appear in the system process when they should
  be fully accounted against the app.
- Allow the system process to have more wake lock names in its
  battery stats.
- In the bug report output, print totals of the wake locks for each
  process, to make it easier to parse what is being printed for things
  like the system process with a huge number of individual wake locks.

Change-Id: I3cf39330f22f3c51c11e65e4124150d73a7da2dd
2011-10-18 16:38:17 -07:00
Christopher Tate
b9c1acfb0b DO NOT MERGE - Require device encryption password for adb backup/restore
This supersedes any backup-password that the user might supply.  Per
design, the device encryption password is also always used to encrypt
the backup archive.

The CL introduces two new strings, used for prompting the user for
their device encryption password rather than their settings-defined
"backup password" when confirming a full backup or restore operation.

Bug 5382487

Change-Id: I278737927a4ecbb765bfb5ecfd28a4cb8dae52ef
2011-10-13 17:39:48 -07:00
Christopher Tate
32418be49e Require device encryption password to perform adb backup/restore
This supersedes any backup-password that the user might supply.  Per
design, the device encryption password is also always used to encrypt
the backup archive.

The CL introduces two new strings, used for prompting the user for
their device encryption password rather than their settings-defined
"backup password" when confirming a full backup or restore operation.

Bug 5382487

Change-Id: I0b03881b45437c944eaf636b6209278e1bba7a9f
2011-10-13 12:29:32 -07:00