Commit Graph

3246 Commits

Author SHA1 Message Date
Allen Shen
1c0f21ea84 WallpaperManager: add NULL pointer check for getCropAndSetWallpaperIntent
Originally the api 'getCropAndSetWallpaperIntent' does not check
whether the parsed parameter is a NULL pointer, as leads to the
whole app crash if it call this api with a null parameter accidentally.
A null pointer check logic is added into its original parameter check
logic, so that this API will throw an IllegalArgumentException if it
is parsed with a null pointer

Change-Id: Ib7de40e571419d09e1a744edc969eb7162766b75
2014-04-30 17:09:19 +08:00
Elliott Hughes
34385d352d Track libcore.os' move to android.system.
(This is partial, but should cover everything in AOSP master except
for the zygote.)

Change-Id: I1042c99245765746a744c44e714095cb2c6cb75d
2014-04-28 11:11:32 -07: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
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
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
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
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
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
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
Mathieu Chartier
3254260b8b Merge "Update Dalvik process state through VMRuntime." 2013-12-10 02:18:06 +00: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
Jeff Brown
f0b9ee9637 am 5773f724: am dd4f9e8b: Merge "Update the media router dialogs and integrate into system UI." into klp-dev
* commit '5773f72457246e437c24624cda8ec2a869165ee8':
  Update the media router dialogs and integrate into system UI.
2013-11-10 22:04:54 -08:00
Jeff Brown
5773f72457 am dd4f9e8b: Merge "Update the media router dialogs and integrate into system UI." into klp-dev
* commit 'dd4f9e8b61c0a5639aa82480b7fdd760a2ed609c':
  Update the media router dialogs and integrate into system UI.
2013-11-10 22:02:23 -08:00
Jeff Brown
0abd3a6ce8 Update the media router dialogs and integrate into system UI.
Port the new style UI back into the framework from the support library.
There are now two dialogs: a chooser and a controller.  We use the
same dialogs for selecting routes within app and within quick settings.

Note that the new UI does not support any grouping features since they
are deprecated and unused.

Bug: 11257292
Change-Id: I64e936a18d25ab75f0c470cbc1e7085f67004863
2013-11-10 14:39:19 -08:00
Jeff Brown
c2b652fd4d am 5182ea4b: am d40a4d74: Merge "Add media router service and integrate with remote displays." into klp-dev
* commit '5182ea4bb20ec8fbe9562d0eaae8135d433ea0b6':
  Add media router service and integrate with remote displays.
2013-11-07 17:44:14 -08:00
Jeff Brown
5182ea4bb2 am d40a4d74: Merge "Add media router service and integrate with remote displays." into klp-dev
* commit 'd40a4d74c623175c96a2e9d865a99826e56d1132':
  Add media router service and integrate with remote displays.
2013-11-07 17:41:44 -08:00
Jeff Brown
d40a4d74c6 Merge "Add media router service and integrate with remote displays." into klp-dev 2013-11-08 01:36:55 +00:00
Dianne Hackborn
03be79b35c am fbf4888d: am 9882d388: Merge "Fix issue #11223338: Not retaining service started state while restarting" into klp-dev
* commit 'fbf4888d19b0c68d8004f9ad2423a583dc01178e':
  Fix issue #11223338: Not retaining service started state while restarting
2013-11-07 10:21:34 -08:00
Dianne Hackborn
fbf4888d19 am 9882d388: Merge "Fix issue #11223338: Not retaining service started state while restarting" into klp-dev
* commit '9882d3889957200c3db62f47142988dea99a7291':
  Fix issue #11223338: Not retaining service started state while restarting
2013-11-07 10:18:53 -08:00
Jeff Brown
69b07161be Add media router service and integrate with remote displays.
This change adds a new media router service whose purpose is to track
global state information associated with media routes.  This service
publishes routes to the media router instance in application processes
and handles requested state changes such as selecting or unselecting
global routes.  The service also binds to remote display provider
services which can offer new remote display routes to the system.

Includes a test application for manually verifying certain aspects
of the operation of the media router service.

The remote display provider interface is essentially a stripped down
media route provider interface as defined in the support library
media router implementation.  For now, it is designed to be used only
by first parties to publish remote display routes to the system so
it is not exposed as public API in the SDK.  In the future, the remote
display provider interface will most likely be deprecated and replaced
with a more featureful media route provider interface for third
party integration, similar to what is in the support library today.

Further patch sets integrate these new capabilities into the System UI
and Settings for connecting remote displays.

Bug: 11257292
Change-Id: I31109f23f17b474d17534d0f5f4503e388b081c2
2013-11-07 03:25:37 -08:00
John Spurlock
74bdc178ca am de46104a: am 317c79f8: Merge "Docfixes for DownloadManager." into klp-docs
* commit 'de46104a3797653f6e564ca3774dc9528dd1ac1e':
  Docfixes for DownloadManager.
2013-11-06 21:24:09 -08:00
John Spurlock
de46104a37 am 317c79f8: Merge "Docfixes for DownloadManager." into klp-docs
* commit '317c79f80b878a4cbc99979a13a1b3c6cf948767':
  Docfixes for DownloadManager.
2013-11-07 05:19:33 +00:00
Newton Allen
badb59cd5d am 47feee53: Merge "Fix some documentation typos." into klp-docs
* commit '47feee535f9e4e77165b93b6b9f10379e7aa4bbd':
  Fix some documentation typos.
2013-11-07 05:19:12 +00:00
Dianne Hackborn
daa0d5c929 Fix issue #11223338: Not retaining service started state while restarting
When I cleaned up how we maintained the lifecycle of the tracker with a
service, I broke most tracking of the service restart state.  (Since at
that point the service is no longer associated with a process, so I
must clean up the tracker state).  This change introduces a new special
case for interacting with a service tracker to explicitly tell it when
a service is being restarted.  It also fixes how we update the process
state when services are attached to it, so it goes in and out of the
restarting state correctly.

In addition:

- Maybe fix issue #11224000 (APR: Dependent processes not getting added
  to LRU list).  We were not clearing ServiceRecord.app when bringing
  down a service, so if for some reason there were still connections to
  it at that point (which could happen for example for non-create bindings),
  then we would so it when updating the LRU state of that client process.
- dumpsys procstats's package argument can now be a package or process
  name, and we will dump all relevent information we can find about that
  name.
- Generally improved the quality of the dumpsys procstats output with its
  various options.
- Fixed a bug in ActivityManager.dumpPackageState() where it would hang if
  the service was dumping too much, added meminfo to the set of things
  dumped, and tweaked command line options to include more data.
- Added some more cleaning code to ActiveServices.killServices() to make
  sure we clean out any restarting ServiceRecord entries when a process is
  being force stopped.
- Re-arranged ActiveServices.killServices() to do the main killing of the
  service first, to avoid some wtf() calls that could happen when removing
  connections.

Bug: 11223338
Bug: 11224000

Change-Id: I5db28561c2c78aa43561e52256ff92c02311c56f
2013-11-06 16:42:17 -08:00
Newton Allen
04b7821496 am 47feee53: Merge "Fix some documentation typos." into klp-docs
* commit '47feee535f9e4e77165b93b6b9f10379e7aa4bbd':
  Fix some documentation typos.
2013-11-04 19:25:58 -08:00
John Spurlock
92a262c7f4 Docfixes for DownloadManager.
Change-Id: If01420ed3964fda89c459d3f9021b5088520b6b1
2013-11-04 16:25:38 -05:00
Michael Wright
d35e94a3cb am 6be8dde6: am 4846a93b: Merge "Only call dump when a ViewRoot actually exists" into klp-dev
* commit '6be8dde6f6447fe56af2a52554bba77ad0ee8d9c':
  Only call dump when a ViewRoot actually exists
2013-11-01 13:18:39 -07:00
Michael Wright
4846a93b55 Merge "Only call dump when a ViewRoot actually exists" into klp-dev 2013-11-01 20:11:48 +00:00
Michael Wright
5f48dc7409 Only call dump when a ViewRoot actually exists
Bug: 11446494
Change-Id: I47e35d7b4d49d6893ba0c9f8ad05b31f91be85d2
2013-11-01 12:42:49 -07:00
John Spurlock
9b8145f774 am 17433a63: am b7824a94: Merge "Manage keyguard nav elements using transitions." into klp-dev
* commit '17433a633a3d415fc1932738c0814c3dc6716683':
  Manage keyguard nav elements using transitions.
2013-11-01 11:54:32 -07:00
John Spurlock
56d007b998 Manage keyguard nav elements using transitions.
Move the logic for managing dimming the navigation bar
elements on the lockscreen into BarTransitions.

Replace search light + camera assets with new
versions at full brightness, and apply 50% dimming
at runtime, including the IME dismiss button.

Remove unused StatusBarManager _NOP hints.

Improve choreography between camera button +
password security (w/ IME).  Fix a few found bugs
in PagedView.

Improve password security unlock transition, manually
fade in back along with the rest of the icons.

Bug:11221659
Change-Id: Ifd1f8c9f400d90542f0ca858b9a4deacabbd518a
2013-11-01 11:33:48 -04:00
Newton Allen
ff236f5fc1 Fix some documentation typos.
Change-Id: I0360d468d54d970c87f313e24e50965245206f28
(cherry picked from commit c502744f2d)
2013-11-01 02:38:01 +00:00
Svetoslav
1868689417 am acd8741d: am a84e1197: Merge "Uninitialized UiAutomationConnection incorrectly enforces caller id." into klp-dev
* commit 'acd8741de6610bf3e2ec5ee682f7baa54d1fc383':
  Uninitialized UiAutomationConnection incorrectly enforces caller id.
2013-10-31 17:35:50 -07:00
Svetoslav
a84e1197f5 Merge "Uninitialized UiAutomationConnection incorrectly enforces caller id." into klp-dev 2013-11-01 00:31:02 +00:00
Svetoslav
9663fd09e9 Uninitialized UiAutomationConnection incorrectly enforces caller id.
When a client of a UiAutomationConnection is set it remembers its UID
and allows subsequent operations only from this UID. The connection
If the connection was not used, i.e. its client is not set, and an
attempt to destroy it is made the connection enforces the caller UID
to be that of the owner but it does not have an owner yet. Now if the
destroy method is called on a connection that is never used (has no
client) we do not enforce caller UID.

bug:11465888

Change-Id: I739dfc45e772ea970b6ab384e4420184724333a3
2013-10-31 16:28:24 -07:00
Jim Miller
ee3b039ac6 am aa8dbf11: am 43ef1c8c: Merge "Remove deprecated API calls to KeyguardManager from statusbar" into klp-dev
* commit 'aa8dbf111444435b6071f7b226af5a7bb2a56c52':
  Remove deprecated API calls to KeyguardManager from statusbar
2013-10-31 15:30:02 -07:00
Jim Miller
a999d463c1 Remove deprecated API calls to KeyguardManager from statusbar
Fixes bug 11448304

Change-Id: I3049a20d9320af0425d7a8f08d5aa208e470e292
2013-10-31 14:32:29 -07:00
Dianne Hackborn
a03fc2c296 am 1c18c5d4: am 3a702cb5: Merge "Fix issue #11391003: Allow dumpsys meminfo to be used with native processes" into klp-dev
* commit '1c18c5d40ce7004d28aaa8f6c6713efcc72e6706':
  Fix issue #11391003: Allow dumpsys meminfo to be used with native processes
2013-10-28 15:05:46 -07:00
Dianne Hackborn
3a702cb5d7 Merge "Fix issue #11391003: Allow dumpsys meminfo to be used with native processes" into klp-dev 2013-10-28 21:59:18 +00:00
Christopher Tate
13c4645bfc am f7d74870: am 6364c26c: Merge "Un-deprecate setInexactRepeating() and tweak docs" into klp-dev
* commit 'f7d74870db6f8b1275d4b93268b0210e351647b3':
  Un-deprecate setInexactRepeating() and tweak docs
2013-10-25 18:17:56 -07:00
Christopher Tate
109e4db471 Un-deprecate setInexactRepeating() and tweak docs
Bug 10461371

Change-Id: Ic62a0e94c83c0c7b50e21a7bee19c3d92255d231
2013-10-25 16:55:36 -07:00
Dianne Hackborn
e77187d018 Fix issue #11391003: Allow dumpsys meminfo to be used with native processes
Change-Id: I005e4dc763deafac95dc3aa6261c06d1808fdaff
2013-10-25 16:32:41 -07:00
Christopher Tate
66f6fa7b36 am 9a995257: am 6aedab9b: Merge "DOCS: document API 19+ Alarm Manager API and behaviors" into klp-dev
* commit '9a9952571a19eb849558885215b0bbe564a9176c':
  DOCS: document API 19+ Alarm Manager API and behaviors
2013-10-25 15:06:15 -07:00
Christopher Tate
062bce7d87 DOCS: document API 19+ Alarm Manager API and behaviors
Bug 9941334

Change-Id: I65473bd62f7113c74ed6277d61db56c76441ff1b
2013-10-25 13:59:44 -07:00
Jeff Brown
83bf440440 am 3e3296e5: am 82f31701: Merge "Log view root, input and looper state in bug reports." into klp-dev
* commit '3e3296e526663306237fe551527146286e14f4e4':
  Log view root, input and looper state in bug reports.
2013-10-17 19:13:30 -07:00