2958 Commits

Author SHA1 Message Date
Narayan Kamath
25c55ca902 am 911b2ce3: am 4a642ee5: Merge "Remove unused JNITest class"
* commit '911b2ce3da7dbd8b6335d1092fc6c9e880147104':
  Remove unused JNITest class
2014-02-21 16:47:43 +00:00
Ashok Bhat
42f06b0e22 Remove unused JNITest class
JNITest class is no longer actively used. This patch
removes the class (java and jni) files.

JNI interfaces and calls are extensively tested in
the art unit tests (art/tests) and in cts (see
CtsJniTestCases).

Change-Id: I62f7c72deb5d206fa3f545ae39a9cb9011110d0a
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-21 14:34:35 +00:00
Narayan Kamath
c95ed62111 am fca204a4: am 05cebdc2: Merge "Fix several bad function definitions."
* commit 'fca204a4b8771b800383c91465a48eb2cd8b3ba2':
  Fix several bad function definitions.
2014-02-20 13:02:25 +00:00
Narayan Kamath
520a5673fb am b152473f: am 9fce8535: Merge "AArch64: Make AssetAtlasService 64-bit compatible"
* commit 'b152473f46d8176e7eb2c55b54342a7a29c525cf':
  AArch64: Make AssetAtlasService 64-bit compatible
2014-02-20 13:02:21 +00:00
Narayan Kamath
05cebdc2ab Merge "Fix several bad function definitions." 2014-02-20 12:55:27 +00:00
Narayan Kamath
047b938f71 Fix several bad function definitions.
We claim these functions want jlong as input (8 bytes wide)
but the definitions use pointer types or jints
(4 bytes wide for 32 bit).

bug: 12890271

(cherry picked from 017546e65280a3389b6167f5fc3b5d1c3001154a)

Change-Id: Iede02be90e6a3c9a2db1fe04dcd0db99abe37097
2014-02-20 12:52:16 +00:00
Ashok Bhat
4de3f481bc AArch64: Make AssetAtlasService 64-bit compatible
Changes in this patch include

[x] Long(64-bit) is used to store native pointers in
    AssetAtlasService and related classes as they can be 64-bit.

[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: Ib4c77c134e3ad5b21732e20cde9a54a0b16bdab1
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-20 12:10:24 +00:00
Narayan Kamath
41dd75f813 am 96ddea41: am 7c710936: Merge "Remove java.io.tmpdir assignment in AndroidRuntime."
* commit '96ddea413dcf266d996877d3fc2d81738c5316c8':
  Remove java.io.tmpdir assignment in AndroidRuntime.
2014-02-19 16:28:56 +00:00
Narayan Kamath
7c710936c5 Merge "Remove java.io.tmpdir assignment in AndroidRuntime." 2014-02-19 14:24:48 +00:00
Narayan Kamath
3d03e5b90d Remove java.io.tmpdir assignment in AndroidRuntime.
This value is overridden by the framework anyway
(see ActivityThread.handleBindApplication). Besides,
it doesn't seem like a great idea to let tools clutter
/sdcard/ with temp files.

Change-Id: I26c710cbea7397f89e6103e54a73044a87da95b1
2014-02-14 17:42:24 +00:00
Narayan Kamath
7a66d8ea7c am 3bec0fbb: am fa8f95e9: Merge "AArch64: Use long for pointers in SurfaceSession class"
* commit '3bec0fbb349a969934828ee726956877a3a21dee':
  AArch64: Use long for pointers in SurfaceSession class
2014-02-14 13:17:13 +00:00
Narayan Kamath
fa8f95e9b9 Merge "AArch64: Use long for pointers in SurfaceSession class" 2014-02-14 13:10:44 +00:00
Nick Kralevich
20b5fd98fb am 93994e9d: am a9bb594d: Merge "Convert all selinux_android_restorecon and _setfilecon calls to new API."
* commit '93994e9db44a30402bd596764163d81ee1b1fd30':
  Convert all selinux_android_restorecon and _setfilecon calls to new API.
2014-02-12 23:19:05 +00:00
Nick Kralevich
a9bb594da6 Merge "Convert all selinux_android_restorecon and _setfilecon calls to new API." 2014-02-12 23:09:37 +00:00
Nick Kralevich
dd3d95f182 resolved conflicts for merge of 4ad93639 to klp-modular-dev-plus-aosp
Change-Id: I7ad222301ec0b863d48a1a9a839469436c385ea0
2014-02-12 11:05:59 -08:00
Dianne Hackborn
67754d93c4 Merge "Runtime resource overlay, iteration 2" 2014-02-11 21:29:58 +00:00
Narayan Kamath
86fb9904ad am 8a63c34b: am 3aeb629d: Merge "Use long to store pointers in GLES_JNI/EGL classes"
* commit '8a63c34bb0f0cf25051c6eeb49c21476258fadfb':
  Use long to store pointers in GLES_JNI/EGL classes
2014-02-11 16:34:16 +00:00
Narayan Kamath
d350af9695 am b90fc64b: am f44a3f1e: Merge "Use long for pointers in EmojiFactory and PdfDocument"
* commit 'b90fc64b030ee50bda9a0dabb5247660b70d6659':
  Use long for pointers in EmojiFactory and PdfDocument
2014-02-11 16:34:04 +00:00
Narayan Kamath
3aeb629d82 Merge "Use long to store pointers in GLES_JNI/EGL classes" 2014-02-11 15:39:04 +00:00
Narayan Kamath
f44a3f1e00 Merge "Use long for pointers in EmojiFactory and PdfDocument" 2014-02-11 14:07:17 +00:00
Colin Cross
675d44ad23 am 12f1f5b8: am 40545f32: Merge "frameworks/base: fix errors inside ALOGV"
* commit '12f1f5b87326a31f4c69e949a1e645e82c9152d4':
  frameworks/base: fix errors inside ALOGV
2014-02-10 22:09:12 +00:00
Colin Cross
d06969518b frameworks/base: fix errors inside ALOGV
Fix errors exposed by adding compile-time checking to disabled ALOGVs.

Change-Id: I9beeb5d5df498c63d6bed49734ee80a8e0afcefc
2014-02-09 21:54:01 -08: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
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
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
797b5adcb4 am 77a1986c: am 49b7ba4d: Merge "AArch64: Make AssetManager and related classes 64-bit compatible"
* commit '77a1986c69760583f05eabbf7dac7c25dd8b7e7b':
  AArch64: Make AssetManager and related classes 64-bit compatible
2014-01-31 16:29:23 +00:00
Igor Murashkin
ed5d7a6f14 am 4463a4ef: am e05b7b50: Merge "EGL14.eglCreateWindowSurface should set producerControlledByApp"
* commit '4463a4ef26b2eb62fae74568193fd07e97dedd4d':
  EGL14.eglCreateWindowSurface should set producerControlledByApp
2014-01-31 16:29:06 +00: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
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
5cdbac1e44 am 70986e19: am ab71f8b6: Merge "AArch64: Use of long for pointers in PropertyValuesHolder"
* commit '70986e197bbaf4de4f8126519a75df2b057c3b52':
  AArch64: Use of long for pointers in PropertyValuesHolder
2014-01-31 12:17:09 +00:00
Narayan Kamath
133c9649c3 am fa2e16e3: am 54190ec8: Merge "change Surface constructor arg to 64bit"
* commit 'fa2e16e36d95d5cf0848a28a98ac4566321fc119':
  change Surface constructor arg to 64bit
2014-01-31 12:17:05 +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
Nick Kralevich
643be3bab1 am 3dfa15c4: am db3278ab: Merge "Map SELinux log levels to Android log levels."
* commit '3dfa15c49b4c78cdf3bf1af79e9b307596455708':
  Map SELinux log levels to Android log levels.
2014-01-31 10:26:32 +00:00
Igor Murashkin
e05b7b50e2 Merge "EGL14.eglCreateWindowSurface should set producerControlledByApp" 2014-01-31 01:26:15 +00:00
Narayan Kamath
ab71f8b68f Merge "AArch64: Use of long for pointers in PropertyValuesHolder" 2014-01-30 10:37:12 +00:00
Chong Zhang
b215529c72 change Surface constructor arg to 64bit
Bug: 12799017
Bug: 12799384

(cherry picked from commit af608e81d450b962a443a21fb1a6feadeb355fe1)

Change-Id: I8d1471b16e6a6d334a3a32b789045eb171b81e03
2014-01-30 09:50:21 +00:00
Stephen Smalley
e0dda3c8e2 Map SELinux log levels to Android log levels.
Change-Id: I202c543ca6e4110c4011d1904eada4b75b59ff10
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-01-29 12:55:58 -05:00
Narayan Kamath
d933edc742 am 9ecada44: am dfd4f523: am d228a038: Merge "mNativeCanvas is long, not int."
* commit '9ecada44042c49516d781281bbe0cba4e0af51a2':
  mNativeCanvas is long, not int.
2014-01-29 15:33:48 +00:00
Narayan Kamath
d228a03891 Merge "mNativeCanvas is long, not int." 2014-01-29 15:02:05 +00:00
Narayan Kamath
e3a6663bb2 mNativeCanvas is long, not int.
swapNativeCanvas was asking for an int field.

Change-Id: I660fb13ecfb5d3b24201676dc03c16d61c92af07
2014-01-29 12:21:32 +00:00
Narayan Kamath
c74f7619e1 am cdc095ae: am 7be33110: am d4ccffd3: Merge "AArch64: Use long for pointers in graphics/Interpolator"
* commit 'cdc095ae4850d9ffd08de0d6e8828949603fcdd1':
  AArch64: Use long for pointers in graphics/Interpolator
2014-01-29 12:21:21 +00:00
Narayan Kamath
0cc4bb1ff3 am e4fc5c17: am 74db9ddb: am 887b1ca8: Merge "AArch64: Use long for pointers in SurfaceTexture"
* commit 'e4fc5c17c092a77e0647e01e93a6b0e806c27692':
  AArch64: Use long for pointers in SurfaceTexture
2014-01-29 12:21:11 +00:00
Narayan Kamath
d4ccffd3ba Merge "AArch64: Use long for pointers in graphics/Interpolator" 2014-01-29 12:12:27 +00:00
Narayan Kamath
887b1ca879 Merge "AArch64: Use long for pointers in SurfaceTexture" 2014-01-29 12:12:17 +00:00
Narayan Kamath
09d07d0d33 am e3e4b405: am 9846fb69: am 50afaefd: Merge "AArch64: Make Binder and Parcel 64-bit compatible"
* commit 'e3e4b40577032f6fad38bfbeb9c2b40df89f0ef9':
  AArch64: Make Binder and Parcel 64-bit compatible
2014-01-29 10:51:51 +00:00
Ashok Bhat
0141e88434 AArch64: Use of long for pointers in PropertyValuesHolder
Long is used in PropertyValuesHolder class to store native pointers
as they can be 64-bit. Note that jmethodID, a pointer to structures,
is also carried in long rather than int to support 64-bit system.

Change-Id: Ifb514fc8473d7c41c0d6194fc6eb85d4816b2cd9
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-01-29 10:47:27 +00:00
Narayan Kamath
50afaefdc0 Merge "AArch64: Make Binder and Parcel 64-bit compatible" 2014-01-29 10:43:23 +00:00
Mark Salyzyn
8bb5e66295 am d732f561: am 2c6b048b: am 967c5d00: Merge changes I3659193f,I8b78e4db
* commit 'd732f561b24e643676812855396d0c9b9138b4c8':
  jni: Resolve build warnings
  jni: Incorporate liblog reading API
2014-01-28 21:42:07 +00:00
Mark Salyzyn
967c5d00df Merge changes I3659193f,I8b78e4db
* changes:
  jni: Resolve build warnings
  jni: Incorporate liblog reading API
2014-01-28 21:30:40 +00:00
Narayan Kamath
8697dc674c am be674bf6: am 23abbfbb: am 154614ab: Merge "AArch64: Use long for pointers in graphics/Camera"
* commit 'be674bf688fec9ce4ec04e77c93644be8253d273':
  AArch64: Use long for pointers in graphics/Camera
2014-01-28 19:22:12 +00:00