117982 Commits

Author SHA1 Message Date
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
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
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
Tim Murray
0e3431d4c7 DO NOT MERGE: Mark new util type functions as @hide in AOSP.
Change-Id: I834e07aef142aa79ed1603535689d0b833357f6c
2014-01-31 14:05:20 -08:00
Jason Sams
cf9c894a9b Check that bound allocations are 1D
We do not support higher order bound allocations. The
stride is not available to the script so they cannot
walk the allocation correctly.

Change-Id: I9447a5d43c3ae1b88fc9522628a17bd5a317ffc6
2014-01-31 12:35:19 -08:00
Tim Murray
b75c27e870 Fix debug context.
bug 12477551

Change-Id: Icac28abc3dabce31834faa1942b596c2f207f29e
2014-01-31 12:35:19 -08:00
Tim Murray
504abb3626 Enable asynchronous destruction of BaseObjs.
Change-Id: Iaddf8041a3c870a986ec8999e6ccc3aede38fc4c

Conflicts:
	rs/java/android/renderscript/BaseObj.java
2014-01-31 12:35:18 -08:00
Tim Murray
e926dddb21 Fix most logging macros for context pointers.
Change-Id: I7f4a8db4f3a52c368cc32ce0428f8001df8a4166
2014-01-31 12:35:18 -08:00
Tim Murray
e6eaaf6a8e Fix getBytesSize for YUV allocations.
bug 12134914

Change-Id: I128e75b756a5bd129077177e254f1db6c94182f1
2014-01-31 12:35:17 -08:00
Tim Murray
355707e4f6 Move RenderScript from graphics/ to new fw/base subdirectory rs.
Change-Id: I30b6633578f063840e1bdbcc9ba513b727912a6d
2014-01-31 12:35:17 -08:00
Tim Murray
7a629fac82 Convert Java/JNI to 64-bit, part 2.
This changes BaseObj to support 64-bit IDs. There are a few caveats:

1. Since it is deprecated, RSG will not support 64-bit.
2. Currently, methods that pass arrays of IDs to the driver are not supported in 64-bit. This will be fixed in a later CL.

bug 11332320

Change-Id: If0dbecc8b285e260f767e441e05088b6a1b749a2
2014-01-31 11:16:09 -08:00
Tim Murray
a78e9adb86 Convert Java/JNI to 64-bit, part 1.
This converts context and device storage to use long instead of int.

bug 11332320

Change-Id: If93a5d78385d3004d5e709762b78bd1d3538088d
2014-01-31 11:15:33 -08:00