diff --git a/artifact_info.py b/artifact_info.py
index 35fdba0..a8b0021 100644
--- a/artifact_info.py
+++ b/artifact_info.py
@@ -101,3 +101,8 @@
 REQUESTED_TO_OPTIONAL_MAP = {
     TEST_SUITES: [CONTROL_FILES, AUTOTEST_PACKAGES],
 }
+
+# Map between the artifact name and the folder after it's unzipped.
+ARTIFACT_UNZIP_FOLDER_MAP = {
+    ANDROID_TEST_ZIP: 'DATA',
+}
diff --git a/devserver.py b/devserver.py
index c5bd8bd..54c25e3 100755
--- a/devserver.py
+++ b/devserver.py
@@ -60,6 +60,7 @@
 from cherrypy.process import plugins
 
 import autoupdate
+import artifact_info
 import build_artifact
 import cherrypy_ext
 import common_util
@@ -759,6 +760,44 @@
     return 'Success'
 
   @cherrypy.expose
+  def locate_file(self, **kwargs):
+    """Get the path to the given file name.
+
+    This method looks up the given file name inside specified build artifacts.
+    One use case is to help caller to locate an apk file inside a build
+    artifact. The location of the apk file could be different based on the
+    branch and target.
+
+    Args:
+      file_name: Name of the file to look for.
+      artifacts: A list of artifact names to search for the file.
+
+    Returns:
+      Path to the file with the given name. It's relative to the folder for the
+      build, e.g., DATA/priv-app/sl4a/sl4a.apk
+
+    """
+    dl, _ = _get_downloader_and_factory(kwargs)
+    try:
+      file_name = kwargs['file_name'].lower()
+      artifacts = kwargs['artifacts']
+    except KeyError:
+      raise DevServerError('`file_name` and `artifacts` are required to search '
+                           'for a file in build artifacts.')
+    build_path = dl.GetBuildDir()
+    for artifact in artifacts:
+      # Get the unzipped folder of the artifact. If it's not defined in
+      # ARTIFACT_UNZIP_FOLDER_MAP, assume the files are unzipped to the build
+      # directory directly.
+      folder = artifact_info.ARTIFACT_UNZIP_FOLDER_MAP.get(artifact, '')
+      artifact_path = os.path.join(build_path, folder)
+      for root, _, filenames in os.walk(artifact_path):
+        if file_name in set([f.lower() for f in filenames]):
+          return os.path.relpath(os.path.join(root, file_name), build_path)
+    raise DevServerError('File `%s` can not be found in artifacts: %s' %
+                         (file_name, artifacts))
+
+  @cherrypy.expose
   def setup_telemetry(self, **kwargs):
     """Extracts and sets up telemetry
 
diff --git a/devserver_integration_test.py b/devserver_integration_test.py
index d37d62d..93b994c 100755
--- a/devserver_integration_test.py
+++ b/devserver_integration_test.py
@@ -152,7 +152,7 @@
     """Attempts to start devserver on |port|.
 
     In the default case where port == 0, the server will bind to an arbitrary
-    availble port. If successful, this method will set the devserver's pid
+    available port. If successful, this method will set the devserver's pid
     (self.pid), actual listening port (self.port) and URL (self.devserver_url).
 
     Raises:
@@ -418,9 +418,8 @@
     """Test that using a pidfile works correctly."""
     with open(self.pidfile, 'r') as f:
       pid = f.read()
-
     # Let's assert some process information about the devserver.
-    self.assertTrue(pid.isdigit())
+    self.assertTrue(pid.strip().isdigit())
     process = psutil.Process(int(pid))
     self.assertTrue(process.is_running())
     self.assertTrue('devserver.py' in process.cmdline)
@@ -438,7 +437,7 @@
     """Tests core autotest workflow where we stage/update with a test payload.
 
     """
-    build_id = 'x86-mario-release/R32-4810.0.0'
+    build_id = 'peppy-release/R50-7870.0.0'
     archive_url = 'gs://chromeos-image-archive/%s' % build_id
 
     response = self._MakeRPC(IS_STAGED, archive_url=archive_url,
