13566 Commits

Author SHA1 Message Date
Jianzheng Zhou
d5c69462c6 remove unnecessary switchUser call
If userId doesn't change, no need to do switchuser.or it will
introduce some tweak for gps modules in quick off/on because
they need cost time in off/on.

Change-Id: Ie5e408dc8be69c8a63a18bcb2cfe478cef4d70e6
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
2014-03-13 09:09:22 +08:00
Dave Allison
0efbd9a463 ART profiler usage.
This is a change to add args to some of the profiler related
functions, including installd commands.

Also read properties and set command line options for the runtime
profiling parameters.

Changed calls to isDexOptNeeded() to isDexOptNeededInternal().  This
needs additional arguments passed for profiles.

Bug: 12877748
Change-Id: I1a426c9309d760bac0cf92daa298defee62287c1

Conflicts:
	core/jni/AndroidRuntime.cpp
2014-03-07 12:32:44 -08:00
Narayan Kamath
27ad525c7e Inform libcore of time format pref. changes.
- Introduce a boolean extra for intent TIME_CHANGED that
  specifies if the user wants a 24 hour format or not.
- Have the ActivityManagerService inform running processes
  of changes to this preference.
- Add plumbing in ActivityThread to inform j.t.DateFormat

Change-Id: I05fafb903ae54e39c03a048b7a219dc5a93fd472
2014-03-07 13:48:04 +00:00
Craig Mautner
a0b4d0ce47 Merge "Avoid duplication of AppWindowToken in created Task" 2014-03-04 15:19:17 +00:00
Yevgen Pronenko
c36a5b9c36 Avoid duplication of AppWindowToken in created Task
When WindowManagerService creates a new Task, it passes atoken to the
Task constructor. In this case atoken is added to mAppTokens list by
the Task constructor and then it is added manually again by calling
newTask.mAppTokens.add(atoken). As a result, the same atoken is present
in mAppTokens list twice.

When another window token is added to the list, it may be placed in
beetwen duplicated tokens and corresponding window will be hidden from
the screen by corresponding duplicated windows.
From user perspective it means that some windows will not be displayed
on the screen.

The issue is fixed by avoid adding atoken to mAppTokens list manually
when it was added already in Task constructor.

Change-Id: I10628e68186160fffdde07beb7d84ab3cecb7051
2014-03-04 15:07:34 +01:00
Christopher Tate
16678ac66f Merge "Fixed upgrading from forward-lock application to system application" 2014-02-27 22:01:29 +00:00
Jeff Brown
3651cb7b4a am cd9cd758: am c213b3a3: am f7f80d7b: Merge "Start the dream manager even if dreams are not supported." into klp-modular-dev
* commit 'cd9cd758d6dc884220f86ff10812c9e33a978de5':
  Start the dream manager even if dreams are not supported.
2014-02-24 22:25:19 +00:00
Jeff Brown
c213b3a34c am f7f80d7b: Merge "Start the dream manager even if dreams are not supported." into klp-modular-dev
* commit 'f7f80d7b54b11d432bb6e72da526edf369128ea7':
  Start the dream manager even if dreams are not supported.
2014-02-24 22:18:32 +00:00
Jeff Brown
f7f80d7b54 Merge "Start the dream manager even if dreams are not supported." into klp-modular-dev 2014-02-24 22:16:00 +00:00
Jeff Brown
e0dd3ca81d Start the dream manager even if dreams are not supported.
The dreams manager also manages dozing.  It has a minimal footprint
so there is no real reason to disable the component (it just makes
debugging more difficult).

Improved the documentation of the config_dreamsSupported resource
to clarify exactly what it controls.

Bug: 12494706
Change-Id: I78244846f7c1ddfd11bc1605af59b0db91337971
2014-02-24 14:07:27 -08:00
Adam Lesinski
4c90185a35 am 542b55d9: am c8661519: am 83930aa0: Merge "Fix broken IME when decrypting storage" into klp-modular-dev
* commit '542b55d9a4bee2f98f8a0a6948e0873c5faaddc7':
  Fix broken IME when decrypting storage
2014-02-22 00:20:57 +00:00
Adam Lesinski
c866151926 am 83930aa0: Merge "Fix broken IME when decrypting storage" into klp-modular-dev
* commit '83930aa09aecef7429d8a1c07b80f10b7e2e13f6':
  Fix broken IME when decrypting storage
2014-02-21 22:17:26 +00:00
Adam Lesinski
8793dd873d Fix broken IME when decrypting storage
Bug:13113499
Change-Id: Icf767864c8ff694fd569b9237ae1004cc20204a2
2014-02-21 14:06:47 -08:00
Greg Hackmann
38bf514668 Move time setting code from SystemClock to AlarmManagerService
On devices using /dev/rtc instead of /dev/alarm, updating the
time-of-day clock and RTC are separate syscalls.  Hence the clock and
RTC could be left in inconsistent states if two threads called
SystemClock.setCurrentTimeMillis() simultaneously.

By moving this code into AlarmManagerService, we can put a global lock
around AlarmManagerService.setTime() and prevent the race condition.

Note that access to SystemClock.setCurrentTimeMillis() is now gated by
android.permission.SET_TIME, where before it was gated by filesystem
permissions (i.e., could the process write to /dev/alarm or /dev/rtc).

Change-Id: Ia34899a4cde983656305fd2ef466dfe908ed23c8
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-02-21 09:53:19 -08:00
Ashok Bhat
4de3f481bc AArch64: Make AssetAtlasService 64-bit compatible
Changes in this patch include

[x] Long(64-bit) is used to store native pointers in
    AssetAtlasService and related classes as they can be 64-bit.

[x] Some minor changes have been done to conform with
    standard JNI practice (e.g. use of jint instead of int
    in JNI function prototypes)

Change-Id: Ib4c77c134e3ad5b21732e20cde9a54a0b16bdab1
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-20 12:10:24 +00:00
RoboErik
3328868544 Merge "Initial round of MediaSession APIs" 2014-02-20 00:25:10 +00:00
RoboErik
01fe661ae5 Initial round of MediaSession APIs
This is far from complete but puts the basic components in place
for an app to interact with media sessions.

Change-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f
2014-02-19 13:41:37 -08:00
Adam Lesinski
f542a33c8d Fix build due to change in SystemServiceManager
Change-Id: I0fabb98b7b84e5c721757d20df4eac501ca21cc0
2014-02-19 12:29:58 -08:00
Adam Lesinski
a78068e7a3 am 13c83996: am 1c532c2e: am 4b07b26e: Merge "Make UsbService optional" into klp-modular-dev
* commit '13c839962e246517a7a95326610ea30c529d79dc':
  Make UsbService optional
2014-02-19 19:48:05 +00:00
Adam Lesinski
1c532c2e2d am 4b07b26e: Merge "Make UsbService optional" into klp-modular-dev
* commit '4b07b26e8654df52ca80bb2165ebdf9352ab9337':
  Make UsbService optional
2014-02-19 19:41:26 +00:00
Junu Kim
fcb87369b1 A background started service is removed from mStartingBackground when timeout.
Fix is to make sure mStartingBackground is updated to remove one.

Change-Id: I0e42beb550d33e6e400349b85bbb89848e18d520
2014-02-19 16:25:21 +09:00
Adam Lesinski
5441745eff am 019b1f26: am 2ea983a5: am 3d9bcb90: Create FEATURE_ constants for print and backup
* commit '019b1f2668ac17f5e52b6ce32a524d26134a062a':
  Create FEATURE_ constants for print and backup
2014-02-18 23:03:37 +00:00
Adam Lesinski
2ea983a567 am 3d9bcb90: Create FEATURE_ constants for print and backup
* commit '3d9bcb90ee6c0ffff93642539ae64fb672c7f14a':
  Create FEATURE_ constants for print and backup
2014-02-18 22:57:37 +00:00
Adam Lesinski
2cb6c60c0d Make UsbService optional
Tweaked the services Android.mk to build dependencies
when building with mm[m].

Change-Id: I6dad511c652bcacc085f27ede5f8f22a6982c6bd
2014-02-18 14:57:09 -08:00
Adam Lesinski
3d9bcb90ee Create FEATURE_ constants for print and backup
Bug:13079822

Change-Id: I6f4b759951d45989e8aad4011fae431ee2ecae0c
2014-02-18 14:33:00 -08:00
Jeff Sharkey
02a64daefe Merge "Tethering: Skip link local addresses when enabling NAT" 2014-02-18 17:11:10 +00:00
Jeff Sharkey
234b0b037e Merge "Fix, MountService now only sends one onShutDownComplete" 2014-02-18 17:10:02 +00:00
Brice Jaglin
8554a0933b Fixed upgrading from forward-lock application to system application
Fixes the case when the app on system is newer than the
currently installed. Something that can happen e.g. after
a FOTA update.

Change-Id: I102e9cdd5693d5e66667c0c8989dc2643c72dd16
2014-02-18 14:37:09 +01:00
Ben Gruver
509a243c2c Merge "Check the return value of listFiles on the ifw directory" 2014-02-14 21:15:50 +00:00
Ben Gruver
26c6b783d2 Check the return value of listFiles on the ifw directory
listFiles can return null if the directory doesn't exist

Bug: 10497143
Change-Id: Ie4cbdf18a259a9641669a4e6b9bf49b4879acc67
2014-02-14 13:07:11 -08:00
Jeff Brown
88aaef7128 am ce0552f3: am 8a4c2bb1: am 567f7ca4: Refactor dream manager to new pattern.
* commit 'ce0552f360d8c8f0bc45095293be369800ce9c93':
  Refactor dream manager to new pattern.
2014-02-14 09:50:37 +00:00
Jeff Brown
8a4c2bb1f0 am 567f7ca4: Refactor dream manager to new pattern.
* commit '567f7ca424280ae957b04d4f3df690055f2d41df':
  Refactor dream manager to new pattern.
2014-02-14 09:14:09 +00:00
Jeff Brown
567f7ca424 Refactor dream manager to new pattern.
Change-Id: I99ab4bd98d56a290368dc4b24e5bb24e0656b522
2014-02-13 23:26:59 -08:00
Wink Saville
bba3a694b8 Merge "Telephony API extension v2" 2014-02-13 04:26:33 +00:00
Dianne Hackborn
67754d93c4 Merge "Runtime resource overlay, iteration 2" 2014-02-11 21:29:58 +00:00
Narayan Kamath
b823bd4560 Merge "Use long to store pointers in ConsumerIrService" 2014-02-11 14:29:09 +00:00
Jeff Brown
cab8617b8c am 25df673b: am 1b51c9cb: Merge "Make SystemService constructor take a Context." into klp-modular-dev
* commit '25df673b849de374cf1de40250dfd8a48b7ac28b':
  Make SystemService constructor take a Context.
2014-02-11 08:33:50 +00:00
Jeff Brown
25df673b84 am 1b51c9cb: Merge "Make SystemService constructor take a Context." into klp-modular-dev
* commit '1b51c9cb96fe2a0818289857a016521eed1ec183':
  Make SystemService constructor take a Context.
2014-02-11 08:18:34 +00:00
Jeff Brown
b880d880c6 Make SystemService constructor take a Context.
This change simplifies the process of initializing a SystemService
by folding the onCreate() step back into the constructor.  It removes
some ambuiguity about what work should happen in the constructor and
should make it possible for services to retain most of their final
fields after refactoring into the new pattern.

Change-Id: I25f41af0321bc01898658ab44b369f9c5d16800b
2014-02-10 20:01:43 -08:00
Rickard Helldin
5fb5df0013 Fix, MountService now only sends one onShutDownComplete
The event onShutDownComplete are sent only when all
volumes are shutdown. (Not one for every volume.)

Change-Id: I6af521ee8285ca581efac7d3c5f013dfbff3ee30
2014-02-10 23:21:25 +09:00
Christopher Tate
ff27e6bc44 Merge "Use canonical path for /vendor/app" 2014-02-07 23:30:24 +00:00
Ashok Bhat
0d552f7d8b Use long to store pointers in ConsumerIrService
Change-Id: I4e6562b7dc09f87ad80b1e862b614a370d37feb5
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-07 18:12:23 +00:00
Dan Sandler
6ea720bacb Merge "Make sure to turn off led after pulse()" 2014-02-07 15:59:08 +00:00
Adam Lesinski
9f97de1335 am a5a93f55: am 7f416631: Merge "Check feature bits before loading optional services" into klp-modular-dev
* commit 'a5a93f559d337ad5b79716b05ea43707eb779dc8':
  Check feature bits before loading optional services
2014-02-06 20:25:51 +00:00
Adam Lesinski
a5a93f559d am 7f416631: Merge "Check feature bits before loading optional services" into klp-modular-dev
* commit '7f416631413e75a1756bd316a2e1906725d72f24':
  Check feature bits before loading optional services
2014-02-06 20:16:30 +00:00
Adam Lesinski
898c13df7b Check feature bits before loading optional services
At startup, we check with PackageManager whether a system service is
available before attempting to load it. A system service is available
if its associated feature (similar to hardware features) is present.
This does not remove unavailable services from the compiled jar.

Change-Id: I13571805083aa4e65519a74acb52efd17b9fb3d7
2014-02-05 19:26:40 +00:00
Mårten Kongstad
48d22323ce Runtime resource overlay, iteration 2
Support any number of overlay packages. Support any target package.

UPDATED PACKAGE MATCHING
------------------------
In Runtime resource overlay, iteration 1, only a single overlay package
was considered. Package matching was based on file paths:
/vendor/overlay/system/framework-res.apk corresponded to
/system/framework-res.apk. Introduce a more flexible matching scheme
where any package is an overlay package if its manifest includes

    <overlay targetPackage="com.target.package"/>

For security reasons, an overlay package must fulfill certain criteria
to take effect: see below.

THE IDMAP TOOL AND IDMAP FILES
------------------------------
Idmap files are created by the 'idmap' binary; idmap files must be
present when loading packages. For the Android system, Zygote calls
'idmap' as part of the resource pre-loading. For application packages,
'idmap' is invoked via 'installd' during package installation (similar
to 'dexopt').

UPDATED FLOW
------------
The following is an outline of the start-up sequences for the Android
system and Android apps. Steps marked with '+' are introduced by this
commit.

Zygote initialization
   Initial AssetManager object created
+    idmap --scan creates idmaps for overlays targeting 'android', \
           stores list of overlays in /data/resource-cache/overlays.list
   AssetManager caches framework-res.apk
+  AssetManager caches overlay packages listed in overlays.list

Android boot
   New AssetManager's ResTable acquired
     AssetManager re-uses cached framework-res.apk
+    AssetManager re-uses cached 'android' overlays (if any)

App boot
   ActivityThread prepares AssetManager to load app.apk
+  ActivityThread prepares AssetManager to load app overlays (if any)
   New AssetManager's ResTable acquired as per Android boot

SECURITY
--------
Overlay packages are required to be pre-loaded (in /vendor/overlay).
These packages are trusted by definition. A future iteration of runtime
resource overlay may add support for downloaded overlays, which would
likely require target and overlay signatures match for the overlay to
be trusted.

LOOKUP PRIORITY
---------------
During resource lookup, packages are sequentially queried to provide a
best match, given the constraints of the current configuration. If any
package provide a better match than what has been found so far, it
replaces the previous match. The target package is always queried last.

When loading a package with more than one overlay, the order in which
the overlays are added become significant if several packages overlay
the same resource.

Had downloaded overlays been supported, the install time could have been
used to determine the load order. Regardless, for pre-installed
overlays, the install time is randomly determined by the order in which
the Package Manager locates the packages during initial boot. To support
a well-defined order, pre-installed overlay packages are expected to
define an additional 'priority' attribute in their <overlay> tags:

    <overlay targetPackage="com.target.package" priority="1234"/>

Pre-installed overlays are loaded in order of their priority attributes,
sorted in ascending order.

Assigning the same priority to several overlays targeting the same base
package leads to undefined behaviour. It is the responsibility of the
vendor to avoid this.

The following example shows the ResTable and PackageGroups after loading
an application and two overlays. The resource lookup framework will
query the packages in the order C, B, A.

        +------+------+-     -+------+------+
        | 0x01 |      |  ...  |      | 0x7f |
        +------+------+-     -+------+------+
            |                           |
        "android"                Target package A
                                        |
                       Pre-installed overlay B (priority 1)
                                        |
                       Pre-installed overlay C (priority 2)

Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
2014-02-03 11:20:30 +01:00
Brian Carlstrom
c6c633608a frameworks/base: Rename persist.sys.dalvik.vm.lib to allow new default
Bug: 12798969
Change-Id: Ibb7ed86867e4dca53ad7fe33326b08e6f5e664c4
2014-01-30 13:16:48 -08:00
Johan Redestig
41a17c2e72 Use canonical path for /vendor/app
It wasn't possible to start apps installed in /vendor/app
on a device where /vendor was a symbolic link to /system/vendor.
This is currently the default configuration for android (see
init.rc)

During installation a dex file is created at:
/data/dalvik-cache/vendor@app@blah.blah.apk@classes.dex

But dalvik would fail to start this app with the following error:
I/dalvikvm( 3453): Unable to open or create cache for /system/vendor/app/blah.apk \
(/data/dalvik-cache/system@vendor@app@blah.blah.apk@classes.dex)

Note that dalvik were trying to start /system/vendor/app while the
app was installed in /vendor. There was a conflict between the
package manager and dalvik on how to interpret paths. This change
makes the package manager consistent with dalvik.

Change-Id: I1c7e3c3ae45f97dd742cbf06f7965a7405c821a7
2014-01-30 09:45:23 +01:00
Narayan Kamath
6e09eb4c67 Merge "AArch64: Make graphics classes 64-bit compatible" 2014-01-28 19:12:17 +00:00