예제 #1
0
 private bool IsApk64Bit(string apkFilename)
 {
     UpdateStatus("Checking if APK is 64-bit...");
     try
     {
         using (var apk = new ZipFileProvider(apkFilename, FileCacheMode.None, true, QuestomAssets.Utils.FileUtils.GetTempDirectory()))
         {
             if (apk.DirectoryExists(LIBMODLOADER64_TARGET_FILE.GetDirectoryFwdSlash()))
             {
                 UpdateStatus("APK is 64 bit");
                 return(true);
             }
             if (apk.DirectoryExists(LIBMODLOADER_TARGET_FILE.GetDirectoryFwdSlash()))
             {
                 UpdateStatus("APK is 32 bit");
                 return(false);
             }
             UpdateStatus("Can't find a libs folder for either 32 or 64 bit...");
             throw new ModException("Unable to find library folder to determine 32 or 64 bit.");
         }
     }
     catch (Exception ex)
     {
         Log.LogErr("Error determining if APK is 64 bit!", ex);
         UpdateStatus("Unable to determine if APK is 32 or 64 bit!");
         throw new ModException("Error determining if APK is 64 bit!", ex);
     }
 }
예제 #2
0
 private void AddModLoaderToApk(string apkFilename)
 {
     UpdateStatus("Adding the libmodloader.so file to the APK...");
     try
     {
         using (var apk = new ZipFileProvider(apkFilename, FileCacheMode.None, false, QuestomAssets.Utils.FileUtils.GetTempDirectory()))
         {
             using (var resStream = _context.Resources.OpenRawResource(Resource.Raw.libmodloader))
             {
                 using (var resStream64 = _context.Resources.OpenRawResource(Resource.Raw.libmodloader64))
                 {
                     if (apk.DirectoryExists(LIBMODLOADER_TARGET_FILE.GetDirectoryFwdSlash()))
                     {
                         apk.QueueWriteStream(LIBMODLOADER_TARGET_FILE, resStream, true, true);
                     }
                     if (apk.DirectoryExists(LIBMODLOADER64_TARGET_FILE.GetDirectoryFwdSlash()))
                     {
                         apk.QueueWriteStream(LIBMODLOADER64_TARGET_FILE, resStream64, true, true);
                     }
                     apk.Save();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Log.LogErr("Error adding libmodloader.so to APK", ex);
         UpdateStatus("Error adding modloader to the APK!");
         throw new ModException("Error adding libmodloader.so to APK", ex);
     }
 }