diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 0b7262b..16ad55a 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -417,9 +417,9 @@
     synchronized void nScriptCSetScript(byte[] script, int offset, int length) {
         rsnScriptCSetScript(mContext, script, offset, length);
     }
-    native int  rsnScriptCCreate(int con, String val, String cacheDir);
-    synchronized int nScriptCCreate(String resName, String cacheDir) {
-      return rsnScriptCCreate(mContext, resName, cacheDir);
+    native int  rsnScriptCCreate(int con, String packageName, String resName, String cacheDir);
+    synchronized int nScriptCCreate(String packageName, String resName, String cacheDir) {
+        return rsnScriptCCreate(mContext, packageName, resName, cacheDir);
     }
 
     native void rsnSamplerBegin(int con);
diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java
index b10247c..c1e4358 100644
--- a/graphics/java/android/renderscript/ScriptC.java
+++ b/graphics/java/android/renderscript/ScriptC.java
@@ -77,8 +77,14 @@
 
         rs.nScriptCBegin();
         rs.nScriptCSetScript(pgm, 0, pgmLength);
-        Log.v(TAG, "Create script for resource = " + resources.getResourceName(resourceID));
+
+        // E.g, /system/apps/Fountain.apk
+        String packageName = rs.getApplicationContext().getPackageResourcePath();
+        // For res/raw/fountain.bc, it wil be /com.android.fountain:raw/fountain
+        String resName = resources.getResourceName(resourceID);
         String cacheDir = rs.getApplicationContext().getCacheDir().toString();
-        return rs.nScriptCCreate(resources.getResourceName(resourceID), cacheDir);
+
+        Log.v(TAG, "Create script for resource = " + resName);
+        return rs.nScriptCCreate(packageName, resName, cacheDir);
     }
 }
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
index 493653a..9da4428 100644
--- a/graphics/jni/android_renderscript_RenderScript.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -902,12 +902,14 @@
 }
 
 static jint
-nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName, jstring cacheDir)
+nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring packageName, jstring resName, jstring cacheDir)
 {
     LOG_API("nScriptCCreate, con(%p)", con);
+    const char* packageNameUTF = _env->GetStringUTFChars(packageName, NULL);
     const char* resNameUTF = _env->GetStringUTFChars(resName, NULL);
     const char* cacheDirUTF = _env->GetStringUTFChars(cacheDir, NULL);
-    jint i = (jint)rsScriptCCreate(con, resNameUTF, cacheDirUTF);
+    jint i = (jint)rsScriptCCreate(con, packageNameUTF, resNameUTF, cacheDirUTF);
+    _env->ReleaseStringUTFChars(packageName, packageNameUTF);
     _env->ReleaseStringUTFChars(resName, resNameUTF);
     _env->ReleaseStringUTFChars(cacheDir, cacheDirUTF);
     return i;
@@ -1301,7 +1303,7 @@
 
 {"rsnScriptCBegin",                  "(I)V",                                  (void*)nScriptCBegin },
 {"rsnScriptCSetScript",              "(I[BII)V",                              (void*)nScriptCSetScript },
-{"rsnScriptCCreate",                 "(ILjava/lang/String;Ljava/lang/String;)I",  (void*)nScriptCCreate },
+{"rsnScriptCCreate",                 "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I",  (void*)nScriptCCreate },
 
 {"rsnProgramStoreBegin",             "(III)V",                                (void*)nProgramStoreBegin },
 {"rsnProgramStoreDepthFunc",         "(II)V",                                 (void*)nProgramStoreDepthFunc },
diff --git a/libs/rs/Android.mk b/libs/rs/Android.mk
index 2ec003f..c2e58b6 100644
--- a/libs/rs/Android.mk
+++ b/libs/rs/Android.mk
@@ -113,11 +113,11 @@
 	rsVertexArray.cpp
 
 
-LOCAL_SHARED_LIBRARIES += libcutils libutils libEGL libGLESv1_CM libGLESv2 libui libbcc
+LOCAL_SHARED_LIBRARIES += libz libcutils libutils libEGL libGLESv1_CM libGLESv2 libui libbcc
 
-LOCAL_STATIC_LIBRARIES := libft2 librslib_rt
+LOCAL_STATIC_LIBRARIES := libdex libft2 librslib_rt
 
-LOCAL_C_INCLUDES += external/freetype/include
+LOCAL_C_INCLUDES += external/freetype/include external/zlib dalvik
 
 LOCAL_LDLIBS := -lpthread -ldl
 LOCAL_MODULE:= libRS
diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec
index cf94060..021ff92 100644
--- a/libs/rs/rs.spec
+++ b/libs/rs/rs.spec
@@ -321,6 +321,7 @@
 	}
 
 ScriptCCreate {
+        param const char * packageName
         param const char * resName
         param const char * cacheDir
 	ret RsScript
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 0ae85cb..5197eeb 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -20,6 +20,9 @@
 #include "../../compile/libbcc/include/bcc/bcc.h"
 #include "utils/Timers.h"
 #include "utils/StopWatch.h"
+extern "C" {
+#include "libdex/ZipArchive.h"
+}
 
 #include <GLES/gl.h>
 #include <GLES/glext.h>
@@ -402,7 +405,12 @@
 extern const char rs_runtime_lib_bc[];
 extern unsigned rs_runtime_lib_bc_size;
 
-void ScriptCState::runCompiler(Context *rsc, ScriptC *s, const char *resName, const char *cacheDir) {
+void ScriptCState::runCompiler(Context *rsc,
+                               ScriptC *s,
+                               long modWhen,
+                               long crc32,
+                               const char *resName,
+                               const char *cacheDir) {
     {
         s->mBccScript = bccCreateScript();
         s->mEnviroment.mIsThreadable = true;
@@ -413,6 +421,8 @@
         if (bccReadBC(s->mBccScript,
                       s->mEnviroment.mScriptText,
                       s->mEnviroment.mScriptTextLength,
+                      modWhen,
+                      crc32,
                       resName,
                       cacheDir) >= 0) {
           //bccLinkBC(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size);
@@ -424,6 +434,8 @@
             bccReadBC(s->mBccScript,
                       s->mEnviroment.mScriptText,
                       s->mEnviroment.mScriptTextLength,
+                      modWhen,
+                      crc32,
                       NULL,
                       cacheDir);
             bccCompileBC(s->mBccScript);
@@ -542,7 +554,11 @@
     ss->mScript->mEnviroment.mScriptTextLength = len;
 }
 
-RsScript rsi_ScriptCCreate(Context * rsc, const char *resName, const char *cacheDir)
+
+RsScript rsi_ScriptCCreate(Context *rsc,
+                           const char *packageName,
+                           const char *resName,
+                           const char *cacheDir)
 {
     ScriptCState *ss = &rsc->mScriptC;
 
@@ -550,7 +566,34 @@
     ss->mScript.clear();
     s->incUserRef();
 
-    ss->runCompiler(rsc, s.get(), resName, cacheDir);
+    // Open the apk and return the ZipArchive:
+    //  int dexZipOpenArchive(const char* fileName, ZipArchive* pArchive)
+    ZipArchive archive;
+    long modWhen;
+    long crc32;
+    if (!dexZipOpenArchive(packageName, &archive)) {  // Success
+      ZipEntry entry = dexZipFindEntry(&archive, resName);
+
+      int method;
+      size_t uncompLen;
+      size_t compLen;
+      off_t offset;
+      if (!dexZipGetEntryInfo(&archive,
+                              entry,
+                              &method,
+                              &uncompLen,
+                              &compLen,
+                              &offset,
+                              &modWhen,
+                              &crc32)) {
+      } else {
+        LOGI("Coudn't get entry info for the bitcode in an apk");
+      }
+    } else {
+      LOGI("Couldn't open the archive and read the bitcode");
+    }
+
+    ss->runCompiler(rsc, s.get(), modWhen, crc32, resName, cacheDir);
     ss->clear(rsc);
     return s.get();
 }
diff --git a/libs/rs/rsScriptC.h b/libs/rs/rsScriptC.h
index a714132..4cb5ade 100644
--- a/libs/rs/rsScriptC.h
+++ b/libs/rs/rsScriptC.h
@@ -83,7 +83,7 @@
     void init(Context *rsc);
 
     void clear(Context *rsc);
-    void runCompiler(Context *rsc, ScriptC *s, const char *resName, const char *cacheDir);
+    void runCompiler(Context *rsc, ScriptC *s, long modWhen, long crc32, const char *resName, const char *cacheDir);
 
     struct SymbolTable_t {
         const char * mName;
