Index: android/src/org/rockbox/RockboxService.java
===================================================================
--- android/src/org/rockbox/RockboxService.java	(revision 29712)
+++ android/src/org/rockbox/RockboxService.java	(working copy)
@@ -175,7 +175,9 @@
             {
                 final int BUFFER = 8*1024;
                 String rockboxDirPath = "/data/data/org.rockbox/app_rockbox/rockbox";
+                String rockboxSdDirPath = "/sdcard/rockbox";
                 File rockboxDir = new File(rockboxDirPath);
+                File rockboxSdDir = new File(rockboxSdDirPath);
 
                 /* load library before unzipping which may take a while */
                 synchronized (lock) {
@@ -190,7 +192,7 @@
                  */
                 File libMisc = new File("/data/data/org.rockbox/lib/libmisc.so");
                 /* use arbitrary file to determine whether extracting is needed */
-                File arbitraryFile = new File(rockboxDir, "viewers.config");
+                File arbitraryFile = new File(rockboxSdDir, "viewers.config");
                 if (!arbitraryFile.exists() || (libMisc.lastModified() > arbitraryFile.lastModified()))
                 {
                     try
@@ -208,7 +210,15 @@
                            /* strip off /.rockbox when extracting */
                            String fileName = entry.getName();
                            int slashIndex = fileName.indexOf('/', 1);
-                           file = new File(rockboxDirPath + fileName.substring(slashIndex));
+                           if(fileName.substring(slashIndex).startsWith("/rocks")
+                               || fileName.substring(slashIndex).startsWith("/codecs"))
+                           {
+                               file = new File(rockboxDirPath + fileName.substring(slashIndex));
+                           }
+                           else
+                           {
+                               file = new File(rockboxSdDirPath + fileName.substring(slashIndex));
+                           }
 
                            if (!entry.isDirectory())
                            {
