diff --git a/libs/rs/java/RenderScript/android/renderscript/Matrix.java b/graphics/java/android/renderscript/Matrix.java
similarity index 99%
rename from libs/rs/java/RenderScript/android/renderscript/Matrix.java
rename to graphics/java/android/renderscript/Matrix.java
index 79b60d0..a266d6b 100644
--- a/libs/rs/java/RenderScript/android/renderscript/Matrix.java
+++ b/graphics/java/android/renderscript/Matrix.java
@@ -20,6 +20,10 @@
 import android.util.Log;
 
 
+/**
+ * @hide
+ *
+ **/
 public class Matrix {
 
     public Matrix() {
diff --git a/libs/rs/java/RenderScript/android/renderscript/ProgramVertexAlloc.java b/graphics/java/android/renderscript/ProgramVertexAlloc.java
similarity index 98%
rename from libs/rs/java/RenderScript/android/renderscript/ProgramVertexAlloc.java
rename to graphics/java/android/renderscript/ProgramVertexAlloc.java
index 020ddb2..82bcc30 100644
--- a/libs/rs/java/RenderScript/android/renderscript/ProgramVertexAlloc.java
+++ b/graphics/java/android/renderscript/ProgramVertexAlloc.java
@@ -20,6 +20,10 @@
 import android.util.Log;
 
 
+/**
+ * @hide
+ *
+ **/
 public class ProgramVertexAlloc {
     public static final int MODELVIEW_OFFSET = 0;
     public static final int PROJECTION_OFFSET = 16;
diff --git a/libs/rs/java/RenderScript/android/renderscript/RSSurfaceView.java b/graphics/java/android/renderscript/RSSurfaceView.java
similarity index 99%
rename from libs/rs/java/RenderScript/android/renderscript/RSSurfaceView.java
rename to graphics/java/android/renderscript/RSSurfaceView.java
index 3835793..f024bf6 100644
--- a/libs/rs/java/RenderScript/android/renderscript/RSSurfaceView.java
+++ b/graphics/java/android/renderscript/RSSurfaceView.java
@@ -30,6 +30,10 @@
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 
+/**
+ * @hide
+ *
+ **/
 public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback {
     private SurfaceHolder mSurfaceHolder;
 
diff --git a/libs/rs/java/RenderScript/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
similarity index 99%
rename from libs/rs/java/RenderScript/android/renderscript/RenderScript.java
rename to graphics/java/android/renderscript/RenderScript.java
index e355635..f829b08 100644
--- a/libs/rs/java/RenderScript/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -14,6 +14,10 @@
  * limitations under the License.
  */
 
+/**
+ * @hide
+ *
+ **/
 package android.renderscript;
 
 import java.io.InputStream;
@@ -31,6 +35,10 @@
 import android.graphics.Bitmap;
 import android.graphics.Color;
 
+/**
+ * @hide
+ *
+ **/
 public class RenderScript {
     static final String LOG_TAG = "libRS_jni";
     private static final boolean DEBUG  = false;
@@ -48,7 +56,7 @@
     static {
         sInitialized = false;
         try {
-            System.loadLibrary("RS_jni");
+            System.loadLibrary("rs_jni");
             _nInit();
             sInitialized = true;
         } catch (UnsatisfiedLinkError e) {
diff --git a/libs/rs/jni/Android.mk b/graphics/jni/Android.mk
similarity index 68%
rename from libs/rs/jni/Android.mk
rename to graphics/jni/Android.mk
index f669065..c0279b6 100644
--- a/libs/rs/jni/Android.mk
+++ b/graphics/jni/Android.mk
@@ -1,8 +1,8 @@
-LOCAL_PATH:=$(call my-dir)
+LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_SRC_FILES := \
-	RenderScript_jni.cpp
+LOCAL_SRC_FILES:= \
+    android_renderscript_RenderScript.cpp
 
 LOCAL_SHARED_LIBRARIES := \
         libandroid_runtime \
@@ -20,6 +20,7 @@
 
 LOCAL_C_INCLUDES += \
 	$(JNI_H_INCLUDE) \
+	$(LOCAL_PATH)/../../libs/rs \
 	$(rs_generated_include_dir) \
 	$(call include-path-for, corecg graphics)
 
@@ -27,10 +28,9 @@
 
 LOCAL_LDLIBS := -lpthread
 
-LOCAL_MODULE:= libRS_jni
-LOCAL_PRELINK_MODULE := false
-
+LOCAL_ADDITIONAL_DEPENDENCIES := $(addprefix $(rs_generated_include_dir)/,rsgApiFuncDecl.h)
+LOCAL_MODULE:= librs_jni
 LOCAL_ADDITIONAL_DEPENDENCIES += $(rs_generated_source)
+LOCAL_MODULE_TAGS := optional
 
 include $(BUILD_SHARED_LIBRARY)
-
diff --git a/libs/rs/jni/RenderScript_jni.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
similarity index 99%
rename from libs/rs/jni/RenderScript_jni.cpp
rename to graphics/jni/android_renderscript_RenderScript.cpp
index 1747673..573610c 100644
--- a/libs/rs/jni/RenderScript_jni.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -32,8 +32,8 @@
 #include "JNIHelp.h"
 #include "android_runtime/AndroidRuntime.h"
 
-#include "../RenderScript.h"
-#include "../RenderScriptEnv.h"
+#include <RenderScript.h>
+#include <RenderScriptEnv.h>
 
 //#define LOG_API LOGE
 #define LOG_API(...)
diff --git a/libs/rs/Android.mk b/libs/rs/Android.mk
index 0091e32..d24a92c 100644
--- a/libs/rs/Android.mk
+++ b/libs/rs/Android.mk
@@ -1,6 +1,3 @@
-# Only build if BUILD_RENDERSCRIPT is defined to true in the environment.
-ifeq ($(BUILD_RENDERSCRIPT),true)
-
 LOCAL_PATH:=$(call my-dir)
 
 
@@ -106,16 +103,16 @@
 LOCAL_SHARED_LIBRARIES += libcutils libutils libEGL libGLESv1_CM libui libacc
 LOCAL_LDLIBS := -lpthread -ldl
 LOCAL_MODULE:= libRS
-LOCAL_PRELINK_MODULE := false
 
 LOCAL_MODULE_TAGS := optional
 
 include $(BUILD_SHARED_LIBRARY)
 
+ifeq ($(BUILD_RENDERSCRIPT),true)
+
 # Include the subdirectories ====================
 include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk,\
-            jni \
             java \
     	))
 
-endif # BUILD_RENDERSCRIPT
+endif
\ No newline at end of file
diff --git a/libs/rs/java/Film/Android.mk b/libs/rs/java/Film/Android.mk
index 2e9c243..b7f98fc 100644
--- a/libs/rs/java/Film/Android.mk
+++ b/libs/rs/java/Film/Android.mk
@@ -18,7 +18,7 @@
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript
+#LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript
 
 LOCAL_PACKAGE_NAME := Film
 
diff --git a/libs/rs/java/Fountain/Android.mk b/libs/rs/java/Fountain/Android.mk
index af3d5fc..b6a9f10 100644
--- a/libs/rs/java/Fountain/Android.mk
+++ b/libs/rs/java/Fountain/Android.mk
@@ -18,7 +18,7 @@
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript
+#LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript
 
 LOCAL_PACKAGE_NAME := Fountain
 
diff --git a/libs/rs/java/RenderScript/Android.mk b/libs/rs/java/RenderScript/Android.mk
deleted file mode 100644
index 616fbd261..0000000
--- a/libs/rs/java/RenderScript/Android.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Copyright (C) 2008 Esmertec AG.
-# Copyright (C) 2008 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-LOCAL_PATH := $(call my-dir)
-
-# the library
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
-            $(call all-subdir-java-files) 
-
-LOCAL_MODULE:= android.renderscript
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/libs/rs/java/Rollo/Android.mk b/libs/rs/java/Rollo/Android.mk
index 1c6dfdf..5a4957c 100644
--- a/libs/rs/java/Rollo/Android.mk
+++ b/libs/rs/java/Rollo/Android.mk
@@ -18,7 +18,7 @@
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript
+#LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript
 
 LOCAL_PACKAGE_NAME := Rollo
 
