diff --git a/api/controller/android_unittest.py b/api/controller/android_unittest.py
index 59f2342..dee7b35 100644
--- a/api/controller/android_unittest.py
+++ b/api/controller/android_unittest.py
@@ -7,79 +7,80 @@
 
 from __future__ import print_function
 
+import mock
+
 from chromite.api import api_config
 from chromite.api.controller import android
 from chromite.api.gen.chromite.api import android_pb2
 from chromite.api.gen.chromiumos import common_pb2
-# TODO(crbug/904939): implement service/android.py
-from chromite.cbuildbot import commands
 from chromite.lib import constants
 from chromite.lib import cros_build_lib
 from chromite.lib import cros_test_lib
 from chromite.lib import osutils
+from chromite.lib.build_target_util import BuildTarget
+from chromite.service import packages
+
 
 class MarkStableTest(cros_test_lib.MockTestCase, api_config.ApiConfigMixin):
   """Unittests for MarkStable."""
 
   def setUp(self):
-    self.command = self.PatchObject(commands, 'MarkAndroidAsStable')
+    self.uprev = self.PatchObject(packages, 'uprev_android')
 
     self.input_proto = android_pb2.MarkStableRequest()
     self.input_proto.tracking_branch = 'tracking-branch'
     self.input_proto.package_name = 'android-package-name'
     self.input_proto.android_build_branch = 'android_build_branch'
-    self.board1 = self.input_proto.boards.add()
-    self.board1.name = 'board1'
-    self.board2 = self.input_proto.boards.add()
-    self.board2.name = 'board2'
+    self.input_proto.build_targets.add().name = 'foo'
+    self.input_proto.build_targets.add().name = 'bar'
+
+    self.build_targets = [BuildTarget('foo'), BuildTarget('bar')]
 
     self.response = android_pb2.MarkStableResponse()
 
   def testValidateOnly(self):
     """Sanity check that a validate only call does not execute any logic."""
-    patch = self.PatchObject(commands, 'MarkAndroidAsStable')
-
     android.MarkStable(self.input_proto, self.response,
                        self.validate_only_config)
-    patch.assert_not_called()
+    self.uprev.assert_not_called()
 
   def testFailsIfTrackingBranchMissing(self):
     """Fails if tracking_branch is missing."""
     self.input_proto.tracking_branch = ''
     with self.assertRaises(cros_build_lib.DieSystemExit):
       android.MarkStable(self.input_proto, self.response, self.api_config)
-    self.command.assert_not_called()
+    self.uprev.assert_not_called()
 
   def testFailsIfPackageNameMissing(self):
     """Fails if package_name is missing."""
     self.input_proto.package_name = ''
     with self.assertRaises(cros_build_lib.DieSystemExit):
       android.MarkStable(self.input_proto, self.response, self.api_config)
-    self.command.assert_not_called()
+    self.uprev.assert_not_called()
 
   def testFailsIfAndroidBuildBranchMissing(self):
     """Fails if android_build_branch is missing."""
     self.input_proto.android_build_branch = ''
     with self.assertRaises(cros_build_lib.DieSystemExit):
       android.MarkStable(self.input_proto, self.response, self.api_config)
-    self.command.assert_not_called()
+    self.uprev.assert_not_called()
 
   def testCallsCommandCorrectly(self):
     """Test that commands.MarkAndroidAsStable is called correctly."""
     self.input_proto.android_version = 'android-version'
     self.input_proto.android_gts_build_branch = 'gts-branch'
-    self.command.return_value = 'cat/android-1.2.3'
+    self.uprev.return_value = 'cat/android-1.2.3'
     atom = common_pb2.PackageInfo()
     atom.category = 'cat'
     atom.package_name = 'android'
     atom.version = '1.2.3'
     android.MarkStable(self.input_proto, self.response, self.api_config)
-    self.command.assert_called_once_with(
-        buildroot=self.input_proto.buildroot,
+    self.uprev.assert_called_once_with(
         tracking_branch=self.input_proto.tracking_branch,
         android_package=self.input_proto.package_name,
         android_build_branch=self.input_proto.android_build_branch,
-        boards=self.input_proto.boards,
+        chroot=mock.ANY,
+        build_targets=self.build_targets,
         android_version=self.input_proto.android_version,
         android_gts_build_branch=self.input_proto.android_gts_build_branch)
     self.assertEqual(self.response.android_atom, atom)
@@ -90,14 +91,14 @@
     """Test that early exit is handled correctly."""
     self.input_proto.android_version = 'android-version'
     self.input_proto.android_gts_build_branch = 'gts-branch'
-    self.command.return_value = ''
+    self.uprev.return_value = ''
     android.MarkStable(self.input_proto, self.response, self.api_config)
-    self.command.assert_called_once_with(
-        buildroot=self.input_proto.buildroot,
+    self.uprev.assert_called_once_with(
         tracking_branch=self.input_proto.tracking_branch,
         android_package=self.input_proto.package_name,
         android_build_branch=self.input_proto.android_build_branch,
-        boards=self.input_proto.boards,
+        chroot=mock.ANY,
+        build_targets=self.build_targets,
         android_version=self.input_proto.android_version,
         android_gts_build_branch=self.input_proto.android_gts_build_branch)
     self.assertEqual(self.response.status,
@@ -107,18 +108,18 @@
     """Test that pinned error is handled correctly."""
     self.input_proto.android_version = 'android-version'
     self.input_proto.android_gts_build_branch = 'gts-branch'
-    self.command.side_effect = commands.AndroidIsPinnedUprevError('pin/xx-1.1')
+    self.uprev.side_effect = packages.AndroidIsPinnedUprevError('pin/xx-1.1')
     atom = common_pb2.PackageInfo()
     atom.category = 'pin'
     atom.package_name = 'xx'
     atom.version = '1.1'
     android.MarkStable(self.input_proto, self.response, self.api_config)
-    self.command.assert_called_once_with(
-        buildroot=self.input_proto.buildroot,
+    self.uprev.assert_called_once_with(
         tracking_branch=self.input_proto.tracking_branch,
         android_package=self.input_proto.package_name,
         android_build_branch=self.input_proto.android_build_branch,
-        boards=self.input_proto.boards,
+        chroot=mock.ANY,
+        build_targets=self.build_targets,
         android_version=self.input_proto.android_version,
         android_gts_build_branch=self.input_proto.android_gts_build_branch)
     self.assertEqual(self.response.android_atom, atom)
