Unlink app image if copy fails for A/B OTA

Usually this happens when the app was recompiled with interpret-only.
In this case, move_ab_path will fail for the app image. If this
occurs, delete the existing app image to not have a stale one wasting
storage space.

Test: Make fake AB ota, delete the a/b generated app image, take the
OTA, ensure there is no stale app image after reboot. Also tested
that other apps with valid app images still had an image.

Bug: 31323617
Change-Id: I699b5eb3dc8f82759c284a1d299865b2c3a890d0
diff --git a/cmds/installd/commands.cpp b/cmds/installd/commands.cpp
index 2014e99..31f9d7e 100644
--- a/cmds/installd/commands.cpp
+++ b/cmds/installd/commands.cpp
@@ -2186,6 +2186,9 @@
         bool art_success = true;
         if (!a_image_path.empty()) {
             art_success = move_ab_path(b_image_path, a_image_path);
+            if (!art_success) {
+                unlink(a_image_path.c_str());
+            }
         success = art_success || kIgnoreAppImageFailure;