118124 Commits

Author SHA1 Message Date
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
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
77a1986c69 am 49b7ba4d: Merge "AArch64: Make AssetManager and related classes 64-bit compatible"
* commit '49b7ba4dbc0b4984fc466bb98e9cfa40650db85b':
  AArch64: Make AssetManager and related classes 64-bit compatible
2014-01-31 07:30:21 -08:00
Narayan Kamath
9af955744d am 1cadc07d: Merge "Change ResourceType cookies to int32_t."
* commit '1cadc07dd1e3711fb1e57548038e3026682c5ef8':
  Change ResourceType cookies to int32_t.
2014-01-31 07:30:18 -08:00
Narayan Kamath
149510e010 am b9f960e0: Merge "Fixed cancel() not working correctly"
* commit 'b9f960e094d53440be5c7e8759a74dbb0ab57317':
  Fixed cancel() not working correctly
2014-01-31 07:30:15 -08:00
Igor Murashkin
4463a4ef26 am e05b7b50: Merge "EGL14.eglCreateWindowSurface should set producerControlledByApp"
* commit 'e05b7b50e234e8ed2471f5ad96bb3d715067e9f3':
  EGL14.eglCreateWindowSurface should set producerControlledByApp
2014-01-31 07:30:12 -08: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