diff --git a/openbmc-sfw b/openbmc-sfw
index 16a98f4..192869a 100755
--- a/openbmc-sfw
+++ b/openbmc-sfw
@@ -28,7 +28,7 @@
                              verify=False)
         j = r.json()
         if j['status'] != 'ok':
-            raise Exception("Failed to query entries: \n" + r.text)
+            raise Exception("Failed to query software: \n" + r.text)
 
         events = j['data']
 
@@ -39,7 +39,7 @@
 
         j = r.json()
         if j['status'] != 'ok':
-            raise Exception("Failed to get event " + image + ": \n" + r.text)
+            raise Exception("Failed to get image " + image + ": \n" + r.text)
 
         return j['data']
 
@@ -56,6 +56,17 @@
 
         return j['data']
 
+    def activate_image(self, image_id):
+        r = self.session.put(self.url + "/xyz/openbmc_project/software/" + image_id + "/attr/RequestedActivation", 
+                             data="xyz.openbmc_project.Software.Activation.RequestedActivations.Active",
+                             verify=False)
+        
+        j = r.json()
+        if j['status'] != 'ok':
+            raise Exception("Failed to activate image " + image_id + ": \n" + r.text)
+
+        return j['data']
+
 
 def do_list_sfw(args):
     s = BMC(server=args.server)
@@ -72,6 +83,10 @@
     s = BMC(server=args.server)
     s.upload_image(args.image)
 
+def do_activate_image(args):
+    s = BMC(server=args.server)
+    s.activate_image(args.image_id)
+
 parser = argparse.ArgumentParser()
 parser.add_argument('--server', help='hostname or IP of BMC', type=str,
                     required=True)
@@ -88,6 +103,10 @@
 image_upload.add_argument('image', help='The image to upload')
 image_upload.set_defaults(func=do_upload_image)
 
+image_activate = subparsers.add_parser('activate', help='Activate input image id')
+image_activate.add_argument('image_id', help='The image id to activate')
+image_activate.set_defaults(func=do_activate_image)
+
 args = parser.parse_args()
 
 if 'func' in args:
