118045 Commits

Author SHA1 Message Date
John Spurlock
c23929c3a3 Example controller app for system ui demo mode.
Demo mode is protected behind a system setting.  To enable:
$ adb shell settings put global sysui_demo_allowed 1

Change-Id: I2248e27a253bf9eac176e8be9153a2b147cefa40
2014-02-07 14:47:47 -05:00
Jean-Luc Brouillet
8067c9ec87 am 11e6cabc: Merge "Fix a typo."
* commit '11e6cabc66a5ecfc9dadbd68fc0a5ed7d2a4656d':
  Fix a typo.
2014-02-07 11:11:28 -08:00
Ashok Bhat
e9bea2a182 Fix TinyHashMap to use generic hash_type instead of hash_t
TinyHashMap used hash_t(key) to generate hashcode. This
would not work for 64-bit pointers as hash_t is declared as
an uint32_t.

Replaced the hash_t(key) call to more generic android::hash_type(key).
This function is a template function declared in TypeHelpers.h and
has a version available for all data types including pointers.

Change-Id: I612cf18b49ca7c30b63f9d6938df68fed7d80d08
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-07 19:10:04 +00:00
Jean-Luc Brouillet
11e6cabc66 Merge "Fix a typo." 2014-02-07 19:08:36 +00:00
Jean-Luc Brouillet
d60799ec84 Fix a typo.
Change-Id: I770fe97ab0635de84d15393aca6bca57552f2f10
2014-02-07 11:04:26 -08: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
Ashok Bhat
d2507a2f3c Fix in MediaMuxer's JNI code
android_media_MediaMuxer_native_setup should return jlong. It was
incorrectly returning jint.

Change-Id: I31a475af0818f4d5dcbb39380b42612188cf3853
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-07 18:10:22 +00:00
Dan Sandler
6b1f3acdf0 am 6ea720ba: Merge "Make sure to turn off led after pulse()"
* commit '6ea720bacb805e88fc3b8634bbd9dc7fa918beaa':
  Make sure to turn off led after pulse()
2014-02-07 08:02:15 -08:00
Dan Sandler
6ea720bacb Merge "Make sure to turn off led after pulse()" 2014-02-07 15:59:08 +00:00
Stephen Smalley
d8fa586099 Convert all selinux_android_restorecon and _setfilecon calls to new API.
libselinux selinux_android_restorecon API is changing to the more
general interface with flags and dropping the older variants.

Also get rid of the old, no longer used selinux_android_setfilecon API
and rename selinux_android_setfilecon2 to it as it is the only API in use.

Change-Id: I1e71ec398ccdc24cac4ec76f1b858d0f680f4925
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-02-07 09:36:25 -05:00
Tim Murray
67cc2d033e Add hidden minor version ID for support lib workarounds.
Change-Id: I7940e32c78caaab351fb28d92e5fadbea6292b27
2014-02-06 17:07:05 -08:00
Dave Platt
89d4c897a0 Finish fixing Zygote descriptor leakage problem
In order to prevent Zygote descriptors from leaking into the child
environment, they should be closed by the forked-off child process
before the child switches to the application UID.  These changes close
the descriptors via dup2(), substituting a descriptor open to
/dev/null in their place; this allows the Zygote Java code to close
the FileDescriptor objects cleanly.

This is a multi-project change: dalvik, art, libcore, frameworks/base,
and external/sepolicy are affected.  The CLs need to be approved
together, lest the build break or the software fail to boot.

Round 2: indent change

Bug: 12114500
Change-Id: I090402136a8a8b7d6aad6eb153026e85d7cf6ad3
2014-02-06 13:24:38 -08:00
Ashok Bhat
a3850d8f8f AArch64: Use long for pointers in SurfaceSession class
For storing pointers, long is used in SurfaceSession class,
as native pointers can be 64-bit.

Change-Id: I1535a488dfffaddd20e3beac57e558035d715cbf
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-06 16:57:49 +00:00
Chris Craik
0ec3ca6e08 am 449273e2: Merge "Fix for positioning of glyphs within a bitmap"
* commit '449273e2d575041ffe1a5d435666d36923de888b':
  Fix for positioning of glyphs within a bitmap
2014-02-05 13:40:22 -08:00
Chris Craik
449273e2d5 Merge "Fix for positioning of glyphs within a bitmap" 2014-02-05 21:36:42 +00:00
Ashok Bhat
0e0c0885ae AArch64: Use long for pointers in RS Java/JNI code
Changes include
[x] Some JNI functions, with return type jlong, casts
    pointer to jint before returning it. This has been fixed.

[x] Minor JNI function prototype changes where
    formal paramter type has been changed to a JNI
    type (int to jint for example).

[x] long is used for ScriptC, Sampler, Font, ProgramStore
    handles as they can be 64-bit.

[x] A new hidden constructor ScriptC(long, RenderScript)
    has been added. This should eventually replace public
    API method ScriptC(int, RenderScript).

[x] Font and FileA3D use getNativeAsset instead of getAssetInt
    to get Asset Handles. The getAssetInt method will be
    deprecated in favor of getNativeAsset, as the former does
    not support 64-bit.

[x] rsnPathCreate method accepts loop as an int. This should
    be long as the underlying RS function assumes this to be
    a pointer.

Change-Id: I919d857e5933febe63966049da83de9f9adee6f5
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-05 11:26:38 +00:00
Stephen Hines
eadd69413a am bc80e40b: Merge "Add message to RS docs about application vs. library packaging."
* commit 'bc80e40b160596c262fee0ee4df4b9f15cc14e89':
  Add message to RS docs about application vs. library packaging.
2014-02-04 17:57:11 -08:00
Stephen Hines
bc80e40b16 Merge "Add message to RS docs about application vs. library packaging." 2014-02-05 01:52:32 +00:00
Tim Murray
6ceac9f099 am f5294ed5: (-s ours) Merge "DO NOT MERGE: Mark new util type functions as @hide in AOSP."
* commit 'f5294ed57cf388973a1db29b062b1577966f90d1':
  DO NOT MERGE: Mark new util type functions as @hide in AOSP.
2014-02-03 14:41:42 -08:00
Tim Murray
b1bec0d916 am 3fb6feac: Merge "Check that bound allocations are 1D"
* commit '3fb6feacc62e1021c705b53d46e915ecf50582d2':
  Check that bound allocations are 1D
2014-02-03 14:41:39 -08:00
Tim Murray
67d9e0be8e am 0cc37f4c: Merge "Fix debug context."
* commit '0cc37f4cdeaed95e4f61f1a6e7b78f07e7025e97':
  Fix debug context.
2014-02-03 14:41:30 -08:00
Tim Murray
42e4aee598 am 0539b7b4: Merge "Enable asynchronous destruction of BaseObjs."
* commit '0539b7b4116622d33c91dbaa9a3040c7a3a703d6':
  Enable asynchronous destruction of BaseObjs.
2014-02-03 14:41:27 -08:00
Tim Murray
42955bab2a am d8b4dd95: Merge "Fix most logging macros for context pointers."
* commit 'd8b4dd9555e987df92206562061080b327598f41':
  Fix most logging macros for context pointers.
2014-02-03 14:41:24 -08:00
Tim Murray
d39e19eb8a am 351879df: Merge "Fix getBytesSize for YUV allocations."
* commit '351879df3aff02987a6f4c4485bf004a96fcb150':
  Fix getBytesSize for YUV allocations.
2014-02-03 14:41:21 -08:00
Tim Murray
16e9362e5f am 8fced317: Merge "Move RenderScript from graphics/ to new fw/base subdirectory rs."
* commit '8fced3174ad45e5d618f28c82d69bd21261f6108':
  Move RenderScript from graphics/ to new fw/base subdirectory rs.
2014-02-03 14:41:17 -08:00
Tim Murray
8df3ea6699 am b4cf2a2a: Merge "Convert Java/JNI to 64-bit, part 2."
* commit 'b4cf2a2aee78b0ed3e75b5a07baaf5479fe708d9':
  Convert Java/JNI to 64-bit, part 2.
2014-02-03 14:41:14 -08:00
Tim Murray
72d637e297 am e22e268e: Merge changes If93a5d78,I1957f7ac
* commit 'e22e268e6d158f37173b1bce37a5614daabcf18c':
  Convert Java/JNI to 64-bit, part 1.
  Add long/double read support.
2014-02-03 14:41:11 -08:00
Tim Murray
bccee732b5 am 61eb6b55: Merge "Use Object + type in place of specific array"
* commit '61eb6b55c6b4db14e025240fc754e1314f57bd00':
  Use Object + type in place of specific array
2014-02-03 14:41:08 -08:00
Tim Murray
6991488250 am e559d7ee: Merge "Utility API for creating types."
* commit 'e559d7ee53a69502c9aef8764bb055ed2d1adb64':
  Utility API for creating types.
2014-02-03 14:41:05 -08:00
Tim Murray
271c3b7499 am b1c1518e: Merge "Remove old hidden API."
* commit 'b1c1518ef1e89fb8bc42022b6455a695cacd949c':
  Remove old hidden API.
2014-02-03 14:41:02 -08:00
Tim Murray
9bad32c383 am aea3b581: Merge "Remove hidden API setSurfaceTexture."
* commit 'aea3b5816d8461fcbc4a384874a1a073ecdeafcf':
  Remove hidden API setSurfaceTexture.
2014-02-03 14:41:00 -08:00
Tim Murray
f5294ed57c Merge "DO NOT MERGE: Mark new util type functions as @hide in AOSP." 2014-02-03 22:37:13 +00:00
Tim Murray
3fb6feacc6 Merge "Check that bound allocations are 1D" 2014-02-03 22:37:11 +00:00
Tim Murray
0cc37f4cde Merge "Fix debug context." 2014-02-03 22:37:06 +00:00
Tim Murray
0539b7b411 Merge "Enable asynchronous destruction of BaseObjs." 2014-02-03 22:37:00 +00:00
Tim Murray
d8b4dd9555 Merge "Fix most logging macros for context pointers." 2014-02-03 22:36:54 +00:00
Tim Murray
351879df3a Merge "Fix getBytesSize for YUV allocations." 2014-02-03 22:36:53 +00:00
Tim Murray
8fced3174a Merge "Move RenderScript from graphics/ to new fw/base subdirectory rs." 2014-02-03 22:36:50 +00:00
Tim Murray
b4cf2a2aee Merge "Convert Java/JNI to 64-bit, part 2." 2014-02-03 22:36:45 +00:00
Tim Murray
e22e268e6d Merge changes If93a5d78,I1957f7ac
* changes:
  Convert Java/JNI to 64-bit, part 1.
  Add long/double read support.
2014-02-03 22:36:38 +00:00
Tim Murray
61eb6b55c6 Merge "Use Object + type in place of specific array" 2014-02-03 22:36:36 +00:00
Tim Murray
e559d7ee53 Merge "Utility API for creating types." 2014-02-03 22:36:13 +00:00
Tim Murray
b1c1518ef1 Merge "Remove old hidden API." 2014-02-03 22:36:06 +00:00
Tim Murray
aea3b5816d Merge "Remove hidden API setSurfaceTexture." 2014-02-03 22:35:15 +00:00
Mårten Kongstad
ad6ed950db Runtime resource overlay, iteration 2, test cases
Add automated test cases for runtime resource overlay, iteration 2.

The test cases are a mixture of 'adb shell' commands and regular
instrumentation tests. The device is rebooted between tests to setup
different overlay scenarios for framework-res.apk.

To verify Runtime resoure overlay, iteration 2, run
    $ frameworks/base/core/tests/overlaytests/testrunner.py

For a list of supported options, run
    $ frameworks/base/core/tests/overlaytests/testrunner.py --help

Change-Id: I692aa1a7ad073efd116b24f9ec7f197dfd65dfef
2014-02-03 11:20:33 +01: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
Mårten Kongstad
65a05fd56d New command line tool 'idmap'
Introduce a new tool 'idmap' to handle generation and verification of
idmap files. The tool is modelled on 'dexopt', and is intended to be
used similarly, notably by 'installd'.
See cmds/idmap/idmap.cpp for further documentation on 'idmap'.

Note: this commit is interdependent on a commit in project build/ to add
'idmap' to PRODUCT_PACKAGES.

Note: the changes to androidfw are only stubs. The actual implementation
will be provided in Runtime resource overlay, iteration 2.

Change-Id: I7131b74ece1e46c8a9c0a31d103e686aa07da2bb
2014-02-03 09:47:16 +01:00
Kenny Root
85ee57d1ae am c064a1b5: Merge "Remove DRLCertFactory"
* commit 'c064a1b5d9a68bb5513e6ed64a067ab822e98764':
  Remove DRLCertFactory
2014-01-31 14:58:53 -08:00
Kenny Root
c064a1b5d9 Merge "Remove DRLCertFactory" 2014-01-31 22:54:44 +00:00
Kenny Root
4f2323106b Remove DRLCertFactory
No longer needed since Conscrypt is the main provider.

Change-Id: Iee741ef376af2de52db79df07e96057438778bc6
2014-01-31 14:10:15 -08:00