Give core execute permission at runtime

pull/5940/head
2dust 2024-10-25 10:10:55 +08:00
parent a2e8755730
commit 0efb0b5e3e
2 changed files with 23 additions and 2 deletions

View File

@ -15,13 +15,34 @@ namespace ServiceLib.Handler
private Process? _processPre; private Process? _processPre;
private Action<bool, string>? _updateFunc; private Action<bool, string>? _updateFunc;
public void Init(Config config, Action<bool, string> updateFunc) public async Task Init(Config config, Action<bool, string> updateFunc)
{ {
_config = config; _config = config;
_updateFunc = updateFunc; _updateFunc = updateFunc;
Environment.SetEnvironmentVariable("V2RAY_LOCATION_ASSET", Utils.GetBinPath(""), EnvironmentVariableTarget.Process); Environment.SetEnvironmentVariable("V2RAY_LOCATION_ASSET", Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("XRAY_LOCATION_ASSET", Utils.GetBinPath(""), EnvironmentVariableTarget.Process); Environment.SetEnvironmentVariable("XRAY_LOCATION_ASSET", Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
if (Utils.IsLinux())
{
var coreInfo = CoreInfoHandler.Instance.GetCoreInfo();
foreach (var it in coreInfo)
{
if (it.CoreType == ECoreType.v2rayN)
{
continue;
}
foreach (var vName in it.CoreExes)
{
var exe = Utils.GetExeName(Utils.GetBinPath(vName, it.CoreType.ToString()));
if (File.Exists(exe))
{
await Utils.SetLinuxChmod(exe);
}
}
}
}
} }
public async Task LoadCore(ProfileItem? node) public async Task LoadCore(ProfileItem? node)

View File

@ -208,7 +208,7 @@ namespace ServiceLib.ViewModels
await ConfigHandler.InitBuiltinRouting(_config); await ConfigHandler.InitBuiltinRouting(_config);
await ConfigHandler.InitBuiltinDNS(_config); await ConfigHandler.InitBuiltinDNS(_config);
CoreHandler.Instance.Init(_config, UpdateHandler); await CoreHandler.Instance.Init(_config, UpdateHandler);
TaskHandler.Instance.RegUpdateTask(_config, UpdateTaskHandler); TaskHandler.Instance.RegUpdateTask(_config, UpdateTaskHandler);
if (_config.GuiItem.EnableStatistics) if (_config.GuiItem.EnableStatistics)