public void decode() throws AndrolibException, IOException, DirectoryException {
   if (hasResources()) {
     ensureFilePath();
     // read the resources.arsc checking for STORED vs DEFLATE compression
     // this will determine whether we compress on rebuild or not.
     log.printf("decoding resources.arsc\n");
     RawARSCDecoder.decode(mApkFile.getDirectory().getFileInput("resources.arsc"), log);
     ResPackage[] pkgs =
         ARSCDecoder.decode(mApkFile.getDirectory().getFileInput("resources.arsc"), this);
     ARSCDecoder.write(mApkFile.getDirectory().getFileInput("resources.arsc"), this, pkgs);
   }
 }