diff --git a/src/main/groovy/com/android/tools/internal/emulator/BuildEmulator.groovy b/src/main/groovy/com/android/tools/internal/emulator/BuildEmulator.groovy
index e7433df..9163d88 100644
--- a/src/main/groovy/com/android/tools/internal/emulator/BuildEmulator.groovy
+++ b/src/main/groovy/com/android/tools/internal/emulator/BuildEmulator.groovy
@@ -82,6 +82,9 @@
     }
 
     boolean windows = false
+
+    // True if this is a full debug build which includes coverage.
+    boolean debug = false
     @Input
     String revision
 
@@ -91,9 +94,18 @@
     @TaskAction
     void build() {
 
-        String command = windows ?
-                "$project.projectDir/android/rebuild.sh --verbose --mingw --out-dir=$output --sdk-revision=$revision --sdk-build-number=$build_number --symbols --crash-prod" :
-                "$project.projectDir/android/rebuild.sh --verbose --out-dir=$output --sdk-revision=$revision --sdk-build-number=$build_number --symbols --crash-prod"
+        String command = "$project.projectDir/android/rebuild.sh --verbose --out-dir=$output --sdk-revision=$revision --sdk-build-number=$build_number"
+
+
+        if (windows) {
+            command = command + " --mingw"
+        }
+
+        if (debug) {
+            command = command + " --debug"
+        } else {
+            command = command + " --symbols --crash-prod"
+        }
 
         LoggerWriter stdout = new LoggerWriter(logger, LogLevel.INFO)
         LoggerWriter stderr = new LoggerWriter(logger, LogLevel.ERROR)
@@ -110,15 +122,21 @@
         stdout.reset();
         stderr.reset();
 
+        if (!debug) {
+            uploadSymbols(stdout, stderr)
+        }
+    }
+
+    void uploadSymbols(LoggerWriter stdout, LoggerWriter stderr) {
         /**
          * Upload the symbols
          */
-        command = "$project.projectDir/android/scripts/upload-symbols.sh --crash-prod --symbol-dir=$output/build/symbols"
+        String command = "$project.projectDir/android/scripts/upload-symbols.sh --crash-prod --symbol-dir=$output/build/symbols"
 
-        p = command.execute()
+        Process p = command.execute()
         p.consumeProcessOutput(stdout, stderr)
 
-        result = p.waitFor()
+        int result = p.waitFor()
 
         /*
           upload symbols throws errors intermittently due to use of xargs
diff --git a/src/main/groovy/com/android/tools/internal/sdk/base/SdkEmulatorPlugin.groovy b/src/main/groovy/com/android/tools/internal/sdk/base/SdkEmulatorPlugin.groovy
index 2c3d387..9a5fbbf 100644
--- a/src/main/groovy/com/android/tools/internal/sdk/base/SdkEmulatorPlugin.groovy
+++ b/src/main/groovy/com/android/tools/internal/sdk/base/SdkEmulatorPlugin.groovy
@@ -79,6 +79,11 @@
         copyFiles.noticeTaskNames = noticeTaskNames
         copyFiles.mustRunAfter cleanFolder
 
+        Task copyCodeCoverage = project.tasks.create("copyBuild${platformName.capitalize()}CodeCoverage", Copy)
+        copyCodeCoverage.from(sdkDebugRoot).include("**/*code-coverage.zip")
+        copyCodeCoverage.destinationDir = project.ext.androidHostDist
+        copyCodeCoverage.mustRunAfter copyFiles
+
         Task copyBuildInfo = project.tasks.create("copyBuild${platformName.capitalize()}Info", Copy)
         copyBuildInfo.from(sdkRoot).include("android-info.txt")
         copyBuildInfo.destinationDir = project.ext.androidHostDist
@@ -89,7 +94,9 @@
         zipFiles.destinationDir = project.ext.androidHostDist
 
         Zip zipDebugFiles = project.tasks.create("zip${platformName.capitalize()}DebugSdk", Zip)
-        zipDebugFiles.from(sdkDebugRoot)
+        // Tool items do not support multiple labels (only release/debug). We don't want
+        // The code-coverage zip to end up in th final debug/release zip. (b/111696853)
+        zipDebugFiles.from(sdkDebugRoot).exclude("**/*code-coverage.zip")
         zipDebugFiles.destinationDir = project.ext.androidHostDist
 
         String buildNumber = System.getenv("BUILD_NUMBER")
@@ -111,7 +118,7 @@
 
         makeTask.description = "Packages the ${platformName.capitalize()} emulator"
         makeTask.group = "Android SDK"
-        makeTask.dependsOn cleanFolder, copyFiles, zipFiles, zipDebugFiles, copyBuildInfo
+        makeTask.dependsOn cleanFolder, copyFiles, zipFiles, zipDebugFiles, copyBuildInfo, copyCodeCoverage
         project.afterEvaluate {
             List<Task> copyTasks = Lists.newArrayList()
 
