117996 Commits

Author SHA1 Message Date
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
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
bc80e40b16 Merge "Add message to RS docs about application vs. library packaging." 2014-02-05 01:52:32 +00: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
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
Jason Sams
29868dfae2 Add long/double read support.
Change-Id: I1957f7ac18262a3004a4adcb7c31055212e483c2
2014-01-31 11:15:27 -08:00
Jason Sams
6fcf2e196b Use Object + type in place of specific array
Changed to avoid the explosion of entry points in the JNI layer.

Change-Id: I7d6cc565c8853b06560eb891fdd5e8acf05c9779
2014-01-31 11:14:47 -08:00
Jason Sams
4b7f37891b Utility API for creating types.
Change-Id: I3263cb4440ef3a60cd418f0559b8c5638a9b8bf3
2014-01-31 11:14:09 -08:00
Jason Sams
2e05973560 Remove old hidden API.
This was never shipped and long since replaced by ioReceive().

Change-Id: Ieba7fd4305c2c561cc36154c57414783e4bf502b
2014-01-31 11:12:53 -08:00
Jason Sams
1887d523a5 Remove hidden API setSurfaceTexture.
Change-Id: Ib6a3c5b84550932168f314375e74059507fc01ae
2014-01-31 11:12:39 -08:00
Ashok Bhat
863f98bbb3 Use long to store pointers in GLES_JNI/EGL classes
Change-Id: I43b32f2a85c07b3f59c57e28e3d03e8d1cabcd8b
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-01-31 16:27:30 +00:00
Narayan Kamath
49b7ba4dbc Merge "AArch64: Make AssetManager and related classes 64-bit compatible" 2014-01-31 14:35:13 +00:00
Ashok Bhat
896043d67d AArch64: Make AssetManager and related classes 64-bit compatible
Following changes have been done:

[x] Long is used to store native pointers as pointers can be
    64-bit.

[x] AssetManager openAsset native function returned -1 if
    file name was empty and java function considered any
    non-zero value as success. This has been fixed by native
    function throwing Illegal Argument Exception as well.

[x] AssetManager incRefsLocked and decRefsLocked now accept
    long as input to support 64-bit native references.

[x] AssetManager incRefsLocked method incorrecly used
    'this.hashCode()' instead of the passed parameter id.
    This has been fixed.

[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: I095b9f900d49e51f43ad6afc47cbc23116a6a64a
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-31 14:14:29 +00:00
Narayan Kamath
1cadc07dd1 Merge "Change ResourceType cookies to int32_t." 2014-01-31 14:13:48 +00:00
Narayan Kamath
7c4887f66b Change ResourceType cookies to int32_t.
Also change the order of parameters in ResTable constructors
to avoid ambiguity.

(cherry picked from commit 00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1)

Change-Id: I874c5d03c134dc3c331fba423b5280366296287c
2014-01-31 13:47:27 +00:00
Narayan Kamath
b9f960e094 Merge "Fixed cancel() not working correctly" 2014-01-31 13:20:58 +00:00
Ashok Bhat
cdf34469b3 Use long for pointers in EmojiFactory and PdfDocument
Change-Id: I275c9ce390dd9e01f772e2044c74cebdb0701de6
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-01-31 12:03:28 +00:00
Stephen Hines
7f75eaa218 Add message to RS docs about application vs. library packaging.
Change-Id: I49b694629ded066e5ee9c1af29970c59cb637fdd
2014-01-30 19:43:20 -08:00
Igor Murashkin
e05b7b50e2 Merge "EGL14.eglCreateWindowSurface should set producerControlledByApp" 2014-01-31 01:26:15 +00:00
Zhijun He
0a1b64fe79 Merge "Release locked buffer when it fails to acquire graphics buffer" 2014-01-30 23:01:21 +00:00
Brian Carlstrom
3038046b23 Merge "frameworks/base: Rename persist.sys.dalvik.vm.lib to allow new default" 2014-01-30 21:50:58 +00: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