Merge commit '39792d2262352ae775091876d5488d2412a2ff92' into gingerbread-plus-aosp
* commit '39792d2262352ae775091876d5488d2412a2ff92':
Fix bugs with granting permissions through onNewIntent().
It would grant the permission to the temporary ActivityRecord,
not the real one, so it never got cleaned up.
Also allow granting of permissions to services because... well,
it would be really really useful. And it introduces some
refactoring that we'll need to support cut/paste.
Change-Id: If521f509042e7baad7f5dc9bec84b6ba0d90ba09
Merge commit 'cf6d2a1de274e9a4156b12be811a180eb36412ab' into gingerbread-plus-aosp
* commit 'cf6d2a1de274e9a4156b12be811a180eb36412ab':
Fix issue #2845673: android:exported="false" is not obeyed
Merge commit '2e47052fc4ad3439adc2322fd953fd58a85d457c'
* commit '2e47052fc4ad3439adc2322fd953fd58a85d457c':
Fix problems with determining when to kill apps for wake usage.
Merge commit '567722eee190f7cf88dc7ea95167db76d5514842' into gingerbread-plus-aosp
* commit '567722eee190f7cf88dc7ea95167db76d5514842':
Fix problems with determining when to kill apps for wake usage.
Merge commit 'a8d9291d7f93d1aa0d24d71d65c7de2894812177' into gingerbread-plus-aosp
* commit 'a8d9291d7f93d1aa0d24d71d65c7de2894812177':
Various battery info things:
- Now track wake locks in battery history.
- Now track sensors in battery history.
- Some filtering of sensory data.
- Fixes to some data that wasn't cleared when resetting battery stats.
- Print amount discharged since last charge.
And the big part -- keep track of wake locks held per process,
and kill processes that hold wake locks too much while they are in
the background. This includes information in the battery stats
about the process being killed, which will be available to the
developer if the app is reported.
Change-Id: I97202e94d00aafe0526ba2db74a03212e7539c54
Merge commit '2d8b9fe0f9fe44c17ccc4d041f726df490548984'
* commit '2d8b9fe0f9fe44c17ccc4d041f726df490548984':
New system property "sys.boot_completed" set to 1 when boot completed.
Merge commit 'bd1c082cf90d07e3ccb017b72e59b5ccad81dd07' into gingerbread-plus-aosp
* commit 'bd1c082cf90d07e3ccb017b72e59b5ccad81dd07':
New system property "sys.boot_completed" set to 1 when boot completed.
ClipboardManager was in android.text(!!) so it needed to be moved
up to android.content to have access to the richer data types we
now need.
ClippedData is the data representation. Still needs a lot of
fleshing out to allow holding more than one data type at a time
and perhaps conversions between them. (MIME-oriented interrogation
and conversion will be done through ContentProvider, which needs
to grow an ability to report multiple MIME types and accept a
desired MIME type when a stream is being opened.)
Change-Id: Ifa51bedcd084a677813b255d171804e8496b0cb5
The NotificationManager tries to crash the calling app, but
in the case of a service calling startForeground, the caller
is the ActivityManager, so system_server goes down.
NotificationManagerService#enqueueNotificationInternal is a
new internal-only method that accepts a UID/PID to use when
punishing bogus notifications (such as the one in
http://b/2869787).
Change-Id: I84a9854bae630bc90288cebb94f174809d5dac8c
I was seeing lots of stack traces of people hung for noticeable
amounts of time when switching between activities.
e.g. On of the common gmail stacks showing this pause was:
android.os.StrictMode$StrictModeDiskWriteViolation: policy=391 violation=1
at android.os.StrictMode$AndroidBlockGuardPolicy.startHandlingViolationException(StrictMode.java:272)
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:243)
at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:238)
at java.io.FileOutputStream.<init>(FileOutputStream.java:97)
at java.io.FileOutputStream.<init>(FileOutputStream.java:69)
at com.android.server.am.UsageStatsService.writeStatsFLOCK(UsageStatsService.java:424)
at com.android.server.am.UsageStatsService.writeStatsToFile(UsageStatsService.java:398)
at com.android.server.am.UsageStatsService.notePauseComponent(UsageStatsService.java:539)
at com.android.server.am.ActivityManagerService.updateUsageStats(ActivityManagerService.java:1856)
at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:667)
at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2925)
at com.android.server.am.ActivityStack.requestFinishActivityLocked(ActivityStack.java:2836)
at com.android.server.am.ActivityManagerService.finishActivity(ActivityManagerService.java:2276)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:237)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1415)
at android.os.Binder.execTransact(Binder.java:320)
at dalvik.system.NativeStart.run(Native Method)
at android.app.ActivityManagerProxy.finishActivity(ActivityManagerNative.java:1454)
at android.app.Activity.finish(Activity.java:3260)
at android.app.Activity.onBackPressed(Activity.java:1929)
at android.app.Activity.onKeyUp(Activity.java:1907)
at android.view.KeyEvent.dispatch(KeyEvent.java:1088)
at android.app.Activity.dispatchKeyEvent(Activity.java:2087)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1661)
at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2543)
at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2516)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1866)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3609)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Change-Id: Id49157bc635017292eaefddc5e22d73f5f4ab05e
Merge commit 'd2165cfce7911dac66d1195ed9123e79b086d22b' into gingerbread-plus-aosp
* commit 'd2165cfce7911dac66d1195ed9123e79b086d22b':
StrictMode: time violations in Binder calls
Merge commit '85673d91681e6b5dede0c72f36ed3b81f5c4bb0d'
* commit '85673d91681e6b5dede0c72f36ed3b81f5c4bb0d':
Clear preferred activities when home process crashes
Merge commit 'a4fd0078d138b433d2250a74833ee3cc6424143a' into gingerbread-plus-aosp
* commit 'a4fd0078d138b433d2250a74833ee3cc6424143a':
Clear preferred activities when home process crashes
If the "default" Home application has been replaced with
a third-party app that is repeatedly crashing at start-up,
there is no way for the user to clear the preferred activities
or uninstall the bad application. If we clear the package
preferred activities when the application crashes, the user
will be prompted with the ResolverActivity at the next boot
and can try using the app again or choose to use another
Home application.
Change-Id: I8ba8e95e6752916d50515d96c117d3084fa980fd
Merge commit '931ee98cc05aedaf0a7cdf0b7ec503a8586359f5'
* commit '931ee98cc05aedaf0a7cdf0b7ec503a8586359f5':
Cap the size of StrictMode buffering we do before calling DropBox.
Merge commit 'b73045935cd8ec5d1a1c5e7a7ca800448b5789ea' into gingerbread-plus-aosp
* commit 'b73045935cd8ec5d1a1c5e7a7ca800448b5789ea':
Cap the size of StrictMode buffering we do before calling DropBox.
Merge commit '14bfa398a4e8697ce5822861a684b7d1245e4a85' into gingerbread-plus-aosp
* commit '14bfa398a4e8697ce5822861a684b7d1245e4a85':
Infrastructure to report running services to developer.
Merge commit 'f96c2719c3cb4878e899b6fe0753b4f4b8aea8b7'
* commit 'f96c2719c3cb4878e899b6fe0753b4f4b8aea8b7':
StrictMode: batch drop box writes for system apps
This was mostly cloned from the "am profile" implementation. It's
intended to replace the old "kill -10" approach used by "runhat".
We could really use a native heap dump, so I pass a "managed"
flag through that indicates whether we want to dump the native or
managed heap. We don't currently have a native heap dump-to-file
function, so it currently just logs a warning.
(android.ddm.DdmHandleNativeHeap.getLeakInfo is a good start -- it
copies /proc/maps and then calls get_malloc_leak_info to get some
goodies. Needs some formatting to make it human-readable. I didn't
want to cram all that into this change.)
It would be useful if "am" didn't exit until the heap dump operation
completed, but I'm not sure how to do that.
Bug 2759474.
Change-Id: I46bc98067738d8c72ac0fc10002ca67bb4929271
The guard is compiled out by default because it adds overhead to
android.os.Process.setPriority().
Change-Id: Ibb2a648c6349b381abb7ae62a358888b04fba871
This was originally written as an in-case-we-need-it facility, but was
never actually used in production. It also soaked up a surprising amount
of cpu on occasion, as well as doing sketchy things like demoting the
system_server's primary looper thread to the background cgroup at times.
Change-Id: I9a81a8d1e9caea9e0a1277d97785fe96add438d7
Introdude a new ActivityStack class that holds all of the
state and management of a stack of activities. Paves the way
for having multiple activity stacks, though at this point
there should be no change in functionality and the activity
manager is still assuming there is only one stack.
Change-Id: Iea4859a24c9269061043755ec58a615028d4183b
Implement notification manager handling of bad notifications, to
call a new activity manager to have the owner's process crashed
(if there is one).
Change-Id: Ib15e8d0c598756f3b39c99cc2045c18e054daf6b