content: package fuzion24.device.vulnerability.vulnerabilities.framework.jar;
  
  import android.content.Context;
  
  import fuzion24.device.vulnerability.util.CPUArch;
  import fuzion24.device.vulnerability.vulnerabilities.VulnerabilityTest;
  
  import java.io.File;
  import java.util.ArrayList;
  import java.util.List;
  
  // https://android.googlesource.com/platform/libcore/+/cb11b9fff2a1af8bb4fcad18986003a7f59189c6 //Tests
  // https://android.googlesource.com/platform/libcore/+/2bc5e811a817a8c667bca4318ae98582b0ee6dc6 //Fix
  // http://bluebox.com/technical/android-fake-id-vulnerability/
  // https://bluebox.com/wp-content/uploads/2014/08/us-14-Forristal-Android_FakeID_FINAL.compressed.pdf
  
  
  public class JarBug13678484 implements VulnerabilityTest {
  
      @Override
      public List<CPUArch> getSupportedArchitectures() {
          ArrayList<CPUArch> archs = new ArrayList<>();
          archs.add(CPUArch.ALL);
          return archs;
      }
  
      @Override
      public String getCVEorID() {
          return "JarBug13678484";
      }
  
      @Override
      public boolean isVulnerable(Context context) throws Exception {
          // Check for the existence of this constructor:
          // public JarFile(File file, boolean verify, int mode, boolean chainCheck)
          try {
              java.util.jar.JarFile.class.getConstructor(File.class, boolean.class, int.class, boolean.class);
              return false;
          } catch(NoSuchMethodException e) {
              return true;
          }
      }
  }
  