summaryrefslogtreecommitdiffstats
path: root/services
Commit message (Collapse)AuthorAgeFilesLines
* [ActivityManager] Reduce report wrong anr activityriddle_hsu2015-04-012-15/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Symptom: Report ANR on wrong activity. Reproduce steps: (All launchMode, taskAffinity are default and without additional intent flag) Case 1: 1.Launch activity A from launcher. 2.Activity A starts B activity. 3.Press home key. 4.Launch activity A from launcher (B is top). 5.Press back key twice to finish B and A, A sleep 10s in onResume. 6.ANR will report on launcher. Case 2: 1.Launch activity A from launcher. 2.Press home key. 3.Kill process of A. 4.Launch activity A from launcher. 5.A sleep 10s in onResume, press back key immediately. 6.ANR will report on launcher. Possible root cause: Focused activity will not be updated every time when activity resumed. (the condition to call setFocusedActivityLocked) Case 1: Launcher was stopped and not waitingVisible due to launcher is not the previous one, then getWaitingHistoryRecordLocked has no chance to correct the real ANR activity. Case 2: Due to process of next activity is died, bring existed task will not set mResumedActivity (it will be set when its process is started), so when assigning waitingVisible from processStoppingActivitiesLocked, the return value of allResumedActivitiesVisible will be true even there is no mResumedActivity. That results set waitingVisible to false to previous activity (e.g. launcher), then also cannot correct ANR target as case 1. Change-Id: I0b24f46a8fab266382ebc6e2ed84ebeca9358768
* Merge "Clear the previous states before setting the new app visibility"Craig Mautner2015-03-311-5/+5
|\
| * Clear the previous states before setting the new app visibilitytiger_huang2015-03-261-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If setAppVisibility() is called multiple times in a short interval while the screen is turned off between the calls, the visibility of the app would be wrong. For example, the user may see the app under the launcher, not the wallpaper under the launcher. The flow to the issue: 1. Screen is on. 2. AM calls setAppVisibility() token=App A's token, visible=true 3. Screen is turned off. 4. AM calls setAppVisibility() token=App A's token, visible=false Note: a. In 2., WM would put App A into mOpeningApps, and tell it to be visible. b. In 4., because the screen is off now, App A would not be removed from mOpeningApps. App A might be told to be invisible directly through setTokenVisibilityLocked(), but it would be told to be visible again in handleAppTransitionReadyLocked() later. Change-Id: Icf3d69031ea2822245008248ec8f12bd57218880
* | Merge "[ActivityManager] Fix index out of bounds when updating next pss time."Olawale Ogunwale2015-03-312-7/+13
|\ \
| * | [ActivityManager] Fix index out of bounds when updating next pss time.riddle_hsu2015-03-312-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Symptom: System server crash. Root Cause: The value curProcState for array index is -1 if the process has not attached yet. Solution: Skip computing for process which is not attached or curProcState is nonexistent state. Change-Id: I71aaf45bb78d73097ebe9dfebf76b72f2d243232
* | | Merge "An updater for all timezone data on a device"Neil Fuller2015-03-313-33/+55
|\ \ \ | |/ / |/| |
| * | An updater for all timezone data on a deviceNeil Fuller2015-03-263-33/+55
| |/ | | | | | | | | | | | | | | | | | | | | | | The existing one, being deleted here, did not work properly: it only updated the file used by libcore and bionic, it did not update the ICU data. Most of the installation logic exists in code in libcore/tzdata that is independent of the server code so that it can be tested. Bug: 19941636 Change-Id: Id0985f8c5be2f12858ee8bf52acf52bdb2df8741
* | Add ProcessInfoService to activity manager.Ruben Brunk2015-03-301-1/+42
| | | | | | | | | | | | | | | | - Adds a new AIDL interface for querying process information from activity manager. Bug: 19186859 Change-Id: Ic08858f346d6b66e7bfc9da6faa2c6e38d9b2e82
* | Merge "Add getLegacyVpnInfoPrivileged method"Robert Greenwalt2015-03-261-0/+8
|\ \ | |/ |/|
| * Add getLegacyVpnInfoPrivileged methodsj.cha2015-03-231-0/+8
| | | | | | | | | | | | | | | | | | | | Follows the Google's permission check policy. Add a getLegacyVpnInfoPrivileged method which skips the permission check and change getLegacyVpnInfo to check the permission and then call getLegacyVpnInfoPrivileged. It is already checked in this commit : https://android-review.googlesource.com/#/c/141771/ Signed-off-by: SangJin Cha <sj.cha@lge.com> Change-Id: I83cfaedbd85745574f3ddf118b11b6e0415483c6
* | Merge "[ActivityManager] Avoid killing unrelated processes."Olawale Ogunwale2015-03-241-4/+7
|\ \
| * | [ActivityManager] Avoid killing unrelated processes.riddle_hsu2015-03-171-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kernel will reuse process id, when wrap-around happens, there may be just after a pid is freed, a new thread/process uses the pid immediately. For examples, there may be a process with pid 1234 killed by lowmemorykiller or itself (app.killed=false). Before the death recipient enters AMS, a new thread/process is started with pid 1234, then when appDiedLocked executes, this new pid 1234 will be killed again. It is especially easy happens to zygote: During zygote starting process, it will stop 5 daemons threads. And restart the 5 threads after fork is called, so it has larger pid range to hit the resue case. https://code.google.com/p/android/issues/detail?id=160661 Solution: If the dead event is from binder, it is not necessary to call killProcessQuiet again, because it should really be dead. Keep no checking for killProcessGroup because zygote does not have record under /acct/, and also the parameter uid has restriction that will not kill another application which reuses the pid. Change-Id: Iec4a4884ae641c4d036f4d024ce463f7a351a17b
* | | Merge "Layout the window to be displayed if it would be resized"Olawale Ogunwale2015-03-241-0/+4
|\ \ \
| * | | Layout the window to be displayed if it would be resizedtiger_huang2015-01-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes an issue which caused the resumed app to get the wrong insets at first. https://code.google.com/p/android/issues/detail?id=120421 Change-Id: I38c58121465372d1d66a7a98e386b0396d7d0f89
* | | | DimLayer : remove unnecessary surface transaction callsDohyun Lee2015-03-242-25/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is the case that adjustSurface() get called even if the size of the surface of DimLayer is not changed actually. Since changing the size of a surface is processed synchronously in the SurfacFlinger, there is usually a few milliseconds delay (up to 1 vsync interval) when we launch an application. This patch avoids such cases. Change-Id: Ib1f76d54f9f2364ac54b70120e4b781e8534e750 Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
* | | | Prevent unexpected rotation while going back to keyguardtiger_huang2015-03-231-39/+66
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original logic would let the app hidden by keyguard be able to decide the orientation. While going back from a show-when-locked app to keyguard, there would be a short time that keyguard is unable to decide the orientation, which causes WMS uses the wrong orientation from the wrong app. https://code.google.com/p/android/issues/detail?id=155640 Change-Id: Ibc17bfe4603f68b241dc7380459ec9de42a3e259
* | | Merge "Add JIT late override property"Mathieu Chartier2015-03-181-0/+9
|\ \ \
| * | | Add JIT late override propertyMathieu Chartier2015-03-181-0/+9
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | Required for JIT debug property since user builds can't restart the shell. Bug: 19735273 Change-Id: I1983852e80010c344b45e0bb459de47c56adfce8
* | | logd: optimize statisticsMark Salyzyn2015-03-121-0/+1
|/ / | | | | | | | | | | | | | | logd reads /data/system/packages.xml (because it also contains shared UIDs) and is sensitive to line break and tag name issues. Bug: 19608965 Change-Id: I2a4a6bcfb10529e4b29c9664cbbf12842e689dd1
* | Merge "Wait for opening apps ready before stopping freezing display"Olawale Ogunwale2015-03-121-8/+12
|\ \
| * | Wait for opening apps ready before stopping freezing displaytiger_huang2015-03-101-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the screen rotation is changing, we will freeze the display until all the window surfaces are all drawn (this is not including windows which have no surface). If the opening app's window surface is created after we stop freezing the display, there would be no waiting for the app, and the user would see the black screen. In this change, we would not only wait for the windows which have surface, but also wait for the windows about to have surface before stopping freezing display. https://code.google.com/p/android/issues/detail?id=150921 Change-Id: I7de4db8ca902236f3e9f730b04dbde681cf8c032
* | | Merge "Wait for visible wallpaper drawn before starting app transitions"Olawale Ogunwale2015-03-121-0/+52
|\ \ \
| * | | Wait for visible wallpaper drawn before starting app transitionstiger_huang2015-03-111-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the opening app has wallpaper, when the closing app starts hiding, the wallpaper would be revealed. It would be nice if we play the app transitions while opening apps, closing apps, and visible wallpapers are all drawn. https://code.google.com/p/android/issues/detail?id=150811 Change-Id: I3c7d140f6f6e43e18119e48f9cab441ee96b17e5
* | | | Fix build, broken by https://android-review.googlesource.com/#/c/115890/Lorenzo Colitti2015-03-121-1/+0
| | | | | | | | | | | | | | | | Change-Id: Ieafa2fb0a7f539d8f933ad9c98e3be80457da6e5
* | | | Merge "Remove dead code, mostly DataStateTracker."Lorenzo Colitti2015-03-122-294/+0
|\ \ \ \
| * | | | Remove dead code, mostly DataStateTracker.Paul Jensen2015-03-112-294/+0
| |/ / / | | | | | | | | | | | | Change-Id: I1433937bffdb29bd42fb1adbfcf0a50ceffac7dd
* | | | Extracted a separate class to run dexopt on packagesFyodor Kupolov2015-03-115-326/+410
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | performDexOptLibsLI and related methods were extracted to PackageDexOptimizer class. Minor refactoring of PackageManagerService. This is a non-functional change. It should simplify further work to allow storing OAT files inside package dir. (cherry picked from commit eeea67b8c3678d882d3774edc41242c63daa60fa) Change-Id: I3494a2da70605362bb6fb4625ffbee1cbe1cd457
* | | | Merge "[ActivityManager] Fix index OOB when resetting removed task"Craig Mautner2015-03-111-3/+5
|\ \ \ \ | |/ / / |/| | |
| * | | [ActivityManager] Fix index OOB when resetting removed taskriddle_hsu2015-03-111-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assume task T has an activity X lives in process P. When P is died and before death recipient being called, start activity with flag RESET_TASK_IF_NEEDED to bring the existed task T. Then scheduleResumeActivity IPC will fail and trigger start a new process that removes task T. That results resetTaskIfNeededLocked cannot find the task when continuing the start flow. Detail: https://code.google.com/p/android/issues/detail?id=159558 Change-Id: Icc400c7a6c481a3f78657e9fb83cf0c3a17dde68
* | | | am 7f383873: Merge "Frameworks/base: Pass APK debugability to installd"Andreas Gampe2015-03-102-4/+6
|\ \ \ \ | | |/ / | |/| | | | | | | | | | * commit '7f383873566024c7121cadae3bbdd2a7c47150bc': Frameworks/base: Pass APK debugability to installd
| * | | Merge "Frameworks/base: Pass APK debugability to installd"Andreas Gampe2015-03-092-4/+6
| |\ \ \
| | * | | Frameworks/base: Pass APK debugability to installdAndreas Gampe2015-03-092-4/+6
| | |/ / | | | | | | | | | | | | Change-Id: Id17ec72babe2ee88713a0d274eff86508de30666
* | | | am 14ccc26f: Merge "[ActivityManager] Skip receiver precisely."Olawale Ogunwale2015-03-091-16/+11
|\ \ \ \ | |/ / / | | | | | | | | | | | | * commit '14ccc26f1ce006963f1a0b7a917404aa6a0e9da1': [ActivityManager] Skip receiver precisely.
| * | | Merge "[ActivityManager] Skip receiver precisely."Olawale Ogunwale2015-03-091-16/+11
| |\ \ \ | | |/ / | |/| |
| | * | [ActivityManager] Skip receiver precisely.riddle_hsu2015-03-041-16/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Symptom: Report broadcast ANR on a dead process. Detail and sample: http://code.google.com/p/android/issues/detail?id=158329 Root cause: app.curReceiver can only remember the last running. If an application is both receiving FG and BG broadcast, only one of queue can discard, the remain one will still count as timeout. Solution: Select the skip-tartget-receiver by comparing the skipping app to the first record of mOrderedBroadcasts of each broadcast queues. Change-Id: Ic68d56f21b417a34f2d30d64ecfbed09c5e1764d
* | | | am 63ab6eb2: Merge "Frameworks/base: Use ArraySet more explicitly"Andreas Gampe2015-03-051-10/+14
|\ \ \ \ | |/ / / | | | | | | | | | | | | * commit '63ab6eb220a2a75837d6e3d18d19cbd5dda175eb': Frameworks/base: Use ArraySet more explicitly
| * | | Frameworks/base: Use ArraySet more explicitlyAndreas Gampe2015-03-051-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In KeySetManagerService, use ArraySet more explicitly. Avoid for-each loops. Collections API methods on ArraySet are not very efficient. Iterators incur two object allocations: a helper and the actual iterator object. During boot, about 4.5K such calls are made. Using the ArraySet more explicitly like an ArrayList/array avoids the overhead. Bug: 19617481 Change-Id: I25df334fa1d4be3210667fb1404e3c43f2585049
* | | | am 56fde9e7: Merge "SELinuxPolicyInstallReceiver: Prevent partial or mixed ↵Nick Kralevich2015-03-031-52/+29
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | policy updates." * commit '56fde9e70ef850ca7e3f076e52567f5c75b5e7da': SELinuxPolicyInstallReceiver: Prevent partial or mixed policy updates.
| * | | SELinuxPolicyInstallReceiver: Prevent partial or mixed policy updates.Stephen Smalley2015-02-271-52/+29
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current SELinuxPolicyInstallReceiver logic can yield a partial or mixed (old and new) set of policy files under /data/security/current if there is an error or a crash at certain points before completing the installation of the update. Rewrite the logic to avoid the possibility of such partial or mixed policy updates by using rename on the entire directory of policy files rather than operating on a per-file basis. Also separate the extraction of the policy files from the bundle into their own temporary directory. Make sure we delete any previous temporary directory or backup directory before using them for this update. Drop the use of a symlink for /data/security/current altogether; it provides no benefit. Change-Id: I564af01c2c3ca1531c216013b8724c7511f32de8 Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
* | | Merge commit '32acf753e8989766f67fd5300d3eb467f707cc79' into HEADBill Yi2015-02-19191-5916/+14290
|\ \ \ | |/ / |/| |
| * | am 88a9a2a4: Merge "Support for faster brightness response to light ↵Filip Gruszczynski2015-02-142-23/+46
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | changes." into lmp-mr1-modular-dev * commit '88a9a2a46eb77ea340175f5d272433f4de1b6f93': Support for faster brightness response to light changes.
| | * | Support for faster brightness response to light changes.Filip Gruszczynski2015-02-132-23/+46
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 18572096 Change-Id: Ic9448db672b036779d16883f3476249cea45d97a
| * | | am aee7f64c: am b4a5c04c: Merge "Remove code that sets user.* system ↵Narayan Kamath2015-02-131-25/+5
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | properties." * commit 'aee7f64c10ffd2135dc98f7a540836ad7a32438b': Remove code that sets user.* system properties.
| * \ \ \ am 6f2dd8a9: Merge "Support circular magnification frame on circular ↵Casey Burkhardt2015-02-121-5/+19
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | devices" into lmp-mr1-modular-dev * commit '6f2dd8a9b195a2bc8538820d8685a4a0576964f9': Support circular magnification frame on circular devices
| | * | | Merge "Support circular magnification frame on circular devices" into ↵Casey Burkhardt2015-02-121-5/+19
| | |\ \ \ | | | | | | | | | | | | | | | | | | lmp-mr1-modular-dev
| | | * | | Support circular magnification frame on circular devicesCasey Burkhardt2015-02-121-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The magnification viewport expects its boundary to be a rectangular region, and always draws it as such. This change causes the indicator to draw as a circle on devices with circular displays. This also refactors the width of the indicator's frame to use a proper dimension resource and updates the width to 4dip. Bug:18242438 Change-Id: I1d86647b6d1ef84f5dd506f4141223ec050a79b5
| * | | | | am 7e7c91ec: am e4049b6d: am f45e5dbf: Merge "NoMan: Initialize filter value ↵John Spurlock2015-02-121-0/+2
| |\ \ \ \ \ | | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reported to listeners." into lmp-mr1-dev * commit '7e7c91ec95eca5e1089ede9953f27d8c3d3b8bea': NoMan: Initialize filter value reported to listeners.
| | * | | | am e4049b6d: am f45e5dbf: Merge "NoMan: Initialize filter value reported to ↵John Spurlock2015-02-121-0/+2
| | |\ \ \ \ | | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | listeners." into lmp-mr1-dev * commit 'e4049b6d36ded6ec808be5f884248772a4059a72': NoMan: Initialize filter value reported to listeners.
| | | * | | am f45e5dbf: Merge "NoMan: Initialize filter value reported to listeners." ↵John Spurlock2015-02-121-0/+2
| | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into lmp-mr1-dev * commit 'f45e5dbf599a0043d7f6576f20eafb2c1c157204': NoMan: Initialize filter value reported to listeners.
| | | | * \ \ Merge "NoMan: Initialize filter value reported to listeners." into lmp-mr1-devJohn Spurlock2015-02-121-0/+2
| | | | |\ \ \