//using System; //using System.Collections; //using System.Collections.Generic; //using System.Reflection; //using UnityEngine; //using UnityEditor; //using System.Runtime.CompilerServices; //using MonoHook; //using System.IO; //using Obfuz; //namespace HybridCLR.MonoHook //{ //#if UNITY_2021_1_OR_NEWER && !UNITY_2023_1_OR_NEWER // [InitializeOnLoad] // public class CopyStrippedAOTAssembliesHook // { // private static MethodHook _hook; // static CopyStrippedAOTAssembliesHook() // { // if (_hook == null) // { // Type type = typeof(UnityEditor.EditorApplication).Assembly.GetType("UnityEditorInternal.AssemblyStripper"); // MethodInfo miTarget = type.GetMethod("StripAssembliesTo", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); // MethodInfo miReplacement = new StripAssembliesDel(OverrideStripAssembliesTo).Method; // MethodInfo miProxy = new StripAssembliesDel(StripAssembliesToProxy).Method; // _hook = new MethodHook(miTarget, miReplacement, miProxy); // _hook.Install(); // } // } // private delegate bool StripAssembliesDel(string outputFolder, out string output, out string error, IEnumerable linkXmlFiles, object runInformation); // private static bool OverrideStripAssembliesTo(string outputFolder, out string output, out string error, IEnumerable linkXmlFiles, object runInformation) // { // bool result = StripAssembliesToProxy(outputFolder, out output, out error, linkXmlFiles, runInformation); // if (!result) // { // return false; // } // UnityEngine.Debug.Log($"== StripAssembliesTo outputDir:{outputFolder}"); // string outputStrippedDir = $"Library/Obfuz/StrippedAOTAssemblies/{EditorUserBuildSettings.activeBuildTarget}"; // Directory.CreateDirectory(outputStrippedDir); // foreach (var aotDll in Directory.GetFiles(outputFolder, "*.dll")) // { // string dstFile = $"{outputStrippedDir}/{Path.GetFileName(aotDll)}"; // Debug.Log($"[CopyStrippedAOTAssemblies] copy aot dll {aotDll} -> {dstFile}"); // File.Copy(aotDll, dstFile, true); // } // ObfuzProcess.RunObfuscate(); // return result; // } // [MethodImpl(MethodImplOptions.NoOptimization)] // private static bool StripAssembliesToProxy(string outputFolder, out string output, out string error, IEnumerable linkXmlFiles, object runInformation) // { // Debug.LogError("== StripAssembliesToProxy =="); // output = ""; // error = ""; // return true; // } // } //#endif //}