Commit Graph

3286 Commits

Author SHA1 Message Date
John Spurlock
919fc360c3 am 62826f55: am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit '62826f55be4415684b4e321469298ba43d598bbb':
  Fix doc typos in AppOpsManager.java
2014-03-14 04:13:00 +00:00
Jeff Brown
ba6b897816 resolved conflicts for merge of 825dd9dd to klp-dev-plus-aosp
.
Change-Id: I2363c40f641e7e60487354e1710312db2cbbc89a
2014-03-13 21:10:40 -07:00
John Spurlock
62826f55be am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit 'f6228d95eae7b05dd0015b3062e72c89148e65a2':
  Fix doc typos in AppOpsManager.java
2014-03-13 22:14:57 +00:00
Jeff Brown
825dd9dd38 am 73bd57f7: Merge "Retain display when creating specialized contexts. (DO NOT MERGE)" into klp-dev
* commit '73bd57f7abdb9eaf9239aa13945990acc6c97cd2':
  Retain display when creating specialized contexts. (DO NOT MERGE)
2014-03-13 00:15:19 +00:00
Jeff Brown
73bd57f7ab Merge "Retain display when creating specialized contexts. (DO NOT MERGE)" into klp-dev 2014-03-13 00:12:53 +00:00
Chad Brubaker
9544120133 am 1011960c: am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev
* commit '1011960c44a4f84d53d05199fe1ca09be9473822':
  Add the calling package name to requestRouteToHost
2014-03-12 23:21:02 +00:00
Jeff Brown
f86c3a44f2 Retain display when creating specialized contexts. (DO NOT MERGE)
Fixed a bug that cause Context.createPackageContext() to discard
display information.  Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
2014-03-11 20:43:52 -07:00
Chad Brubaker
1011960c44 am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev
* commit 'decfd7079b622f9135aeb8f7b2ec48005c844c38':
  Add the calling package name to requestRouteToHost
2014-03-11 19:22:39 +00:00
Dave Allison
2fddd6cd2e am b94904ab: am 3fc3b9fd: Merge "ART profiler usage."
* commit 'b94904ab6dfbb9db7e8042f10886042a295857d4':
  ART profiler usage.
2014-03-11 18:51:42 +00:00
Narayan Kamath
59ed568fa5 am cd4874cf: am d265bcc4: Merge "Inform libcore of time format pref. changes."
* commit 'cd4874cfdc00d17454529b5dca85a487c7c2de77':
  Inform libcore of time format pref. changes.
2014-03-11 18:42:30 +00:00
Chad Brubaker
decfd7079b Merge "Add the calling package name to requestRouteToHost" into klp-dev 2014-03-11 17:51:45 +00:00
John Spurlock
925b85eae8 Fix doc typos in AppOpsManager.java
Change-Id: I3c930a2afce48c57570681a95595149df5158053
2014-03-10 16:52:11 -04:00
Greg Hackmann
5468a5c117 am 9e413bf4: am bbfc08b3: Merge changes I6d4fdada,Ia34899a4
* commit '9e413bf4e562d98b6efeb157369f152edd5f0261':
  open("/dev/rtc0") failure in AlarmManagerService.setTime() should be non-fatal
  Move time setting code from SystemClock to AlarmManagerService
2014-03-10 18:04:47 +00:00
Elliott Hughes
be59a21164 am 29d60b95: am 8d41e653: Merge "Miscellaneous small documentation fixes."
* commit '29d60b95fa8019c0542f46551057c4d376bb8a7a':
  Miscellaneous small documentation fixes.
2014-03-08 01:51:52 +00: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
Chris Wren
48ef4b2dc3 am 111e981d: am 70d5ed26: Merge "use relative positioning for notification actions" into klp-dev
* commit '111e981dc7f7d62647d6aa5e6c44cfd13af53608':
  use relative positioning for notification actions
2014-03-07 18:31:29 +00:00
Chris Wren
111e981dc7 am 70d5ed26: Merge "use relative positioning for notification actions" into klp-dev
* commit '70d5ed269268c1da6169b49b555d7295ac5d6763':
  use relative positioning for notification actions
2014-03-07 15:10:47 +00: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
Dianne Hackborn
c1349a9601 am 4ad93639: am 67754d93: Merge "Runtime resource overlay, iteration 2"
* commit '4ad93639d210297764db3ffcd870ff38464943de':
  Runtime resource overlay, iteration 2
2014-03-07 02:27:10 +00:00
Chris Wren
be63a95d2b use relative positioning for notification actions
Bug: 10531101
Change-Id: Ia1d7cac880f620a9760271344edf920caf0d852d
2014-03-06 14:55:23 -05:00
Chad Brubaker
18dd015e6e Add the calling package name to requestRouteToHost
The calling package name will be used to check if an application is a
system application when deciding if a route should be exempt from VPN
routing rules.

Bug: 12937545
Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
2014-03-05 13:35:20 -08:00
Greg Hackmann
bbfc08b3ab Merge changes I6d4fdada,Ia34899a4
* changes:
  open("/dev/rtc0") failure in AlarmManagerService.setTime() should be non-fatal
  Move time setting code from SystemClock to AlarmManagerService
2014-02-21 21:01:00 +00: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
Elliott Hughes
8d41e653ba Merge "Miscellaneous small documentation fixes." 2014-02-21 17:19:21 +00:00
John Spurlock
9dd87081e4 am 99873565: am ba231fca: Fix bad @links in PendingIntent.java
* commit '998735652d2449e3ccbac7686b71bf40dca06e94':
  Fix bad @links in PendingIntent.java
2014-02-19 13:47:52 +00:00
John Spurlock
998735652d am ba231fca: Fix bad @links in PendingIntent.java
* commit 'ba231fcabfdf8f8bd72dbb428b8d35ae14a1a14d':
  Fix bad @links in PendingIntent.java
2014-02-19 13:44:14 +00:00
John Spurlock
ba231fcabf Fix bad @links in PendingIntent.java
Change-Id: I0a0014e17907f5cf16c3536a99e41efa9dafc963
2014-02-18 13:19:57 -05: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
Narayan Kamath
d0ec6d8c50 am bc2a449a: am cb4d3ec1: Merge "Fix preference puts with "null" values."
* commit 'bc2a449a615b30efb81a1a0082a1bb0db515d0f5':
  Fix preference puts with "null" values.
2014-01-13 05:01:44 -08:00
Narayan Kamath
cb4d3ec1ea Merge "Fix preference puts with "null" values." 2014-01-13 12:29:41 +00:00
Narayan Kamath
c6f429007c Fix preference puts with "null" values.
Null values were being written out as <null /> elements in the
XML prefs file (as expected). This allowed the getFoo() functions
to work correctly because they treated null values as missing mappings
but containsKey would fail.

bug: https://code.google.com/p/android/issues/detail?id=64563
Change-Id: I1f466d01db96bf26e208d4fed3a6f257228bea5d
2014-01-08 12:04:53 +00:00
Narayan Kamath
3f589e5d1e am 2842bd02: am de8c3cf1: Merge "AArch64: Use long for pointers in App/Backup"
* commit '2842bd021c11274720d6a10219538b536b7d2050':
  AArch64: Use long for pointers in App/Backup
2014-01-08 04:02:05 -08:00
Ashok Bhat
58b8b24256 AArch64: Use long for pointers in App/Backup
For storing pointers, long is used, as
native pointers can be 64-bit.

In addition, 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: I7aee49dc26cf6c86af8f1d882e9cd1cc145a1977
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-08 11:54:01 +00:00
Ian Rogers
0e16e3d7dd am c2b50c10: am f11dee79: Merge "Add a call to registerAppInfo for the VMRuntime"
* commit 'c2b50c10f0bf636562deba1d92ec7b54b13909de':
  Add a call to registerAppInfo for the VMRuntime
2014-01-07 13:38:44 -08:00
Mark Doliner
9525f2a72e Miscellaneous small documentation fixes.
Most of these I noticed on my own. The change to docs/html/tools/testing/testing_ui.jd is mentioned in a bug report:
https://code.google.com/p/android/issues/detail?id=56324

Signed-off-by: Mark Doliner <markdoliner@google.com>
2014-01-03 19:15:36 +00:00
Dave Allison
24bafbc933 Add a call to registerAppInfo for the VMRuntime
This calls into the VMRuntime tells it where the
application directory is located.

Bug: 11539952
Change-Id: I20e0b8c63e459699a1bc9af435e65ae96f1e1e73
2013-12-18 17:01:37 -08:00
Kenny Root
62d509d24f am 37c69fdd: Merge "Use java.util.Objects instead on internal API"
* commit '37c69fdd826f3973966430adc1abfbefc19bc16e':
  Use java.util.Objects instead on internal API
2013-12-13 14:17:29 -08:00
Kenny Root
e6585b32ea Use java.util.Objects instead on internal API
Not needed since java.util.Objects implements all the needed
functionality.

Change-Id: Icd31d49a9801d1705427f028e9ac927d58e7d34c
2013-12-13 13:40:30 -08:00
Scott Main
f70d7b9ace am cf5ed42f: am df75bdcc: rewrite intent guide and add doc with intents supported by platform apps
* commit 'cf5ed42f0b5f2b3787da39d19e9716d6b244b9b5':
  rewrite intent guide and add doc with intents supported by platform apps
2013-12-10 17:04:57 -08:00
Scott Main
cf5ed42f0b am df75bdcc: rewrite intent guide and add doc with intents supported by platform apps
* commit 'df75bdcc5546112958a6a5834c1a7e060f88bc68':
  rewrite intent guide and add doc with intents supported by platform apps
2013-12-11 01:00:46 +00:00
Scott Main
df75bdcc55 rewrite intent guide and add doc with intents supported by platform apps
Change-Id: Ida7ccbc693e7635198fd368b9560b7843266c7cc
2013-12-10 15:53:37 -08:00
Mathieu Chartier
cb3ee4ed3e am 3254260b: Merge "Update Dalvik process state through VMRuntime."
* commit '3254260b8b55496468e2b897c76cadd9ecde508d':
  Update Dalvik process state through VMRuntime.
2013-12-09 18:24:29 -08:00
Mathieu Chartier
3254260b8b Merge "Update Dalvik process state through VMRuntime." 2013-12-10 02:18:06 +00:00
Katie McCormick
37e4c405a6 am 484b57a5: am 9d0a88bd: Merge "Doc updates: Javadoc fixes" into klp-docs
* commit '484b57a5655f28967e0062f578f38535dff52323':
  Doc updates: Javadoc fixes
2013-11-26 14:00:33 -08:00
Katie McCormick
484b57a565 am 9d0a88bd: Merge "Doc updates: Javadoc fixes" into klp-docs
* commit '9d0a88bd4e07deac01d7759b70cdf160456be1c0':
  Doc updates: Javadoc fixes
2013-11-26 21:58:18 +00:00
Katie McCormick
f2ef28d840 Doc updates: Javadoc fixes
Change-Id: I82381056f9f13e53ab8a0525f5a53bf98674c052
2013-11-26 13:52:48 -08:00
Mathieu Chartier
1e37090caa Update Dalvik process state through VMRuntime.
We now update Dalvik's process state through VMRuntime when the
process state changes in ActivityThread. This is used to determine
when to do trimming and will be used to determine when to do
compaction in the near future.

Bug: 8981901

Change-Id: I5eea272ba4ec2d1ed789b058d6457cb3c1fcf777
2013-11-25 17:03:40 -08:00
Christopher Tate
c8ea38fe18 am e3705342: am b0183f0a: Harden against transiently unavailable backup transports
* commit 'e3705342671d08b5cd94a0d69ef8099a2c3211f8':
  Harden against transiently unavailable backup transports
2013-11-19 11:48:50 -08:00
Christopher Tate
e370534267 am b0183f0a: Harden against transiently unavailable backup transports
* commit 'b0183f0ae311966cff0e10e8139c56f97288d1f2':
  Harden against transiently unavailable backup transports
2013-11-19 11:46:48 -08:00
Christopher Tate
b0183f0ae3 Harden against transiently unavailable backup transports
The init & clear operations are particularly important to ensure
delivery when at all possible, so we retry those periodically
if the transport is unavailable when we first attempt them.

Now with 100% less build break.

Bug 11716868

Change-Id: I2af4e93788068cfac97c0a48d3568c561eefa23d
2013-11-19 11:24:46 -08:00