Use chromiumos_test_image.tar.xz instead of image.zip

we only need the chromiumos_test_image, so use tar.xz file instead

Bug: 346676738
Test: launch the app
Change-Id: I495f3d111089d1bfd8ecff03044ed9264491f1d4
diff --git a/ferrochrome_app/Android.bp b/ferrochrome_app/Android.bp
index 182d289..b3998a7 100644
--- a/ferrochrome_app/Android.bp
+++ b/ferrochrome_app/Android.bp
@@ -13,6 +13,9 @@
     init_rc: ["custom_vm_setup.rc"],
     required: ["custom_vm_setup"],
     certificate: "platform",
+    static_libs: [
+        "apache-commons-compress",
+    ],
 }
 
 sh_binary {
diff --git a/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java b/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
index 71a9ff8..769e74f 100644
--- a/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
+++ b/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
@@ -27,6 +27,10 @@
 import android.view.WindowManager;
 import android.widget.TextView;
 
+import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
+import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -37,8 +41,6 @@
 import java.nio.file.StandardCopyOption;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
 
 public class FerrochromeActivity extends Activity {
     ExecutorService executorService = Executors.newSingleThreadExecutor();
@@ -160,16 +162,17 @@
         String urlString =
                 "https://storage.googleapis.com/chromiumos-image-archive/ferrochrome-public/"
                         + version
-                        + "/image.zip";
+                        + "/chromiumos_test_image.tar.xz";
         try (InputStream is = (new URL(urlString)).openStream();
-                ZipInputStream zis = new ZipInputStream(is)) {
-            ZipEntry entry;
-            while ((entry = zis.getNextEntry()) != null) {
+                XZCompressorInputStream xz = new XZCompressorInputStream(is);
+                TarArchiveInputStream tar = new TarArchiveInputStream(xz)) {
+            TarArchiveEntry entry;
+            while ((entry = tar.getNextTarEntry()) != null) {
                 if (!entry.getName().contains("chromiumos_test_image.bin")) {
                     continue;
                 }
                 updateStatus("copy " + entry.getName() + " start");
-                Files.copy(zis, IMAGE_PATH, StandardCopyOption.REPLACE_EXISTING);
+                Files.copy(tar, IMAGE_PATH, StandardCopyOption.REPLACE_EXISTING);
                 updateStatus("copy " + entry.getName() + " done");
                 updateVersionInfo(version);
                 break;