code: protected Manifest getSubsystemManifest(String assetId) throws IOException {
          ZipFile repoZip = null;
          try {
              repoZip = createZipFile();
              ZipEntry entry = createFromRelative(assetId);
  
              // Empty / non exisstent zip or manifest can't be found
              if (null == repoZip || null == entry) {
                  return null;
              }
  
              // Input stream to the inner zip
              ZipInputStream zis = new ZipInputStream(repoZip.getInputStream(entry));
              ZipEntry innerEntry = zis.getNextEntry();
              ZipEntry subsystemEntry = null;
              while (null != innerEntry) {
                  if ("OSGI-INF/SUBSYSTEM.MF".equalsIgnoreCase(innerEntry.getName())) {
                      subsystemEntry = innerEntry;
                      break;
                  }
                  innerEntry = zis.getNextEntry();
              }
              if (subsystemEntry == null) {
                  return null;
              } else {
                  return ManifestProcessor.parseManifest(zis);
              }
          } finally {
              if (repoZip != null) {
                  repoZip.close();
              }
          }
      }
docs: Gets the manifest file from an ESA
  
  @param assetId
  @return
  @throws IOException